Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki
|
|
- Arkadiusz Osiński
- 6 lat temu
- Przeglądów:
Transkrypt
1 Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki Pokój: 517/B4 witold.rekuc@pwr.edu.pl Telefon: www: kbo.pwr.edu.pl/pracownik/rekuc dr inż. Witold Rekuć Bazy danych 1
2 Bazy danych dr inż. Witold Rekuć Bazy danych 2
3 dr inż. Witold Rekuć Bazy danych 3
4 dr inż. Witold Rekuć Bazy danych 4
5 Plan wykładu I. Opis programu przedmiotu, organizacja zajęć oraz zasady zaliczania i oceniania. Technologia relacyjnych baz danych. System zarządzania bazą danych. Relacyjna baza danych i jej struktura. II. III. Operacje aktualizacji danych. Więzy integralności. Definicja, zastosowanie i realizacja operacji na tabelach: selekcja, projekcja, równo-złączenie, theta-złączenie. IV. Definicja, zastosowanie i realizacja operacji na tabelach: operacje teoriomnogościowe: suma, iloczyn, różnica niesymetryczna, dopełnienie. V. Definicja, zastosowanie i realizacja operacji na tabelach: dzielenie. VI. Podstawy normalizacji relacyjnej bazy danych: zależności funkcyjne i ich rodzaje, dekompozycja relacji i ich schematów, formy normalne schematów relacji, denormalizacja. VII. Normalizacja relacyjnej bazy danych - studium przypadku dr inż. Witold Rekuć Bazy danych 5
6 Plan wykładu c. d. VIII. Pojęciowe (konceptualne) modelowanie danych. Model związków encji. Model klas UML IX. Budowa modeli związków encji/modeli klas - studium przypadku X. Odwzorowanie modelu związków encji/klas w schemat relacyjnej bazy danych - podstawy metodologiczne XI. Odwzorowanie modelu związków encji w schemat relacyjnej bazy danych - studium przypadku. XII. Rola baz danych w systemach informacyjnych zarządzania. XIII. Podsumowanie. Sprawdzian teoretyczny (P) dr inż. Witold Rekuć Bazy danych 6
7 I. Technologia relacyjnych baz danych. System zarządzania bazą danych. Relacyjna baza danych i jej struktura. 1. Podstawowe pojęcia systemu bazy danych. 2. Założenia modelu relacyjnego. 3. Klucze relacji. dr inż. Witold Rekuć Bazy danych 7
8 1. Podstawowe pojęcia systemu bazy danych Baza danych System bazy danych System zarządzania bazą danych Meta baza danych Interfejs aplikacja-szbd Aplikacje Interfejs użytkowników aplikacji... Język użytkowników bazy danych... Język administratora bazy danych Użytkownicy aplikacji Użytkownicy bazy danych Administrator bazy danych dr inż. Witold Rekuć Bazy danych 8
9 System bazy danych: jest składnikiem systemu informatycznego przechowującym i udostępniającym dane o pewnej rzeczywistości, zwanej często dziedziną przedmiotową, przechowuje i udostępnia dane wspierając cele stawiane systemowi informatycznemu, którego jest składnikiem, obsługuje aplikacje składowe systemu informatycznego oraz czasami bezpośrednio użytkowników końcowych, sam składa się z trzech podstawowych składników: bazy danych, metabazy danych i systemu zarządzania bazą danych. Baza danych jest zbiorem danych przechowywanych na nośniku komputerowym, spełniających określone wymagania: przedstawiających rzeczywistość poprawnie (niezawodnie i prawdziwie) i w wymaganym zakresie. Meta baza danych jest zbiorem danych o danych pamiętanych w bazie danych jest opisem: ich struktury, reguł poprawności (integralności) i reguł dostępu do nich z aplikacji i użytkowników końcowych. dr inż. Witold Rekuć Bazy danych 9
10 System zarządzania bazą danych jest oprogramowaniem, spełniającym aktywną rolę w systemie bazy danych: korzystając z systemu operacyjnego realizuje dostęp do danych w bazie danych: ich zapis do oraz odczyt z bazy danych, oferuje programistom aplikacji i użytkownikom końcowym określony język dostępu do danych w bazie danych i metabazie, korzystając z opisu w metabazie struktury oraz reguł poprawności (integralności) danych ma zapewnić poprawność danych zapisywanych do bazy danych, korzystając z opisu w metabazie struktury oraz reguł dostępu do danych z aplikacji i użytkowników końcowych ma zapewnić, że ten dostęp jest zgodny z uprawnieniami/ zezwoleniami, wspiera realizację funkcji specjalnego użytkownika systemu bazy danych, jakim jest administrator. dr inż. Witold Rekuć Bazy danych 10
11 Administrator (systemu) bazy danych jest rolą osoby lub grupy osób, głównie spełniających następujące zadania: instalowanie i utrzymywanie w stanie aktualnym oprogramowania systemu bazy danych (SZBD, narzędzia), alokacja bazy danych w systemie pamiętania bazy danych i planowanie przyszłych wymagań pamięciowych, modyfikowanie struktury bazy danych stosowanie do wymagań aplikacji, zapewnienie bezpieczeństwa systemu, bieżąca kontrola dostępu użytkowników do bazy danych, kontrola i zapewnienie wydajności systemu, planowanie skladowania danych (backup) i ich odzyskiwania, wykonywanie składowania i odzyskiwania danych utrzymywanie archiwów danych, utrzymywanie kontaktów z dostawcami sporządzanie raportów o funkcjonowaniu systemu dr inż. Witold Rekuć Bazy danych 11
12 2. Założenia modelu relacyjnego Laboratorium IBM San Jose (California) A relational model for large shared data banks Communication of the ACM, 13:6,1970 System R - prototyp oprogramowania Edgar F. Codd dr inż. Witold Rekuć Bazy danych 12
13 Czym jest relacyjna baza danych? dr inż. Witold Rekuć Bazy danych 13
14 Baza danych jest zbiorem nazwanych tabel, składających się z prostych (niepodzielnych na podkolumny) kolumn* Kategorie Kasety Klienci Rewersy * w teorii baz danych, w odniesieniu do tabeli używa się terminu relacja, ponieważ przyjmuje się, że znana z matematyki relacja n-członowa jest formalnym modelem tabeli dr inż. Witold Rekuć Bazy danych 14
15 Każda tabela w bazie danych ma nagłówek*, który jest zbiorem nazw kolumn/pól wraz z przyporządkowanymi im zbiorami dopuszczalnych wartości, które można w nich (kolumnach/polach) umieszczać. nazwy kolumn/pól przyporządkowanie NumeryKlientów Nazwiska Imiona Adresy zbiory dopuszczalnych wartości (dziedziny) Zbiór dopuszczalnych wartości, które można umieszczać w kolumnie tabeli nazywa się także dziedziną wartości lub krótko dziedziną. * W teorii baz danych, w odniesieniu do nagłówka tabeli używa się terminu schemat relacji, który ma nazwę i na który składają się nazwy atrybutów (kolumn/pól) oraz funkcja o nazwie dom przyporządkowująca atrybutom dziedziny ich wartosci. dr inż. Witold Rekuć Bazy danych 15
16 W bazie danych może być w tym samym czasie wiele tabel o tym samym nagłówku, posiadających jednak różne nazwy. Klienci_rozliczeni Klienci_zalegający dr inż. Witold Rekuć Bazy danych 16
17 Każda kolumna tabeli musi mieć określoną dziedzinę wartości, czyli zbiór wartości, które moga pojawić się w kolumnie. Dziedzinę określa się przez podanie: typu danych oraz dodatkowych ograniczeń. Pod typem danych rozumie się skończony, nazwany zbiór wartości wraz z dopuszczalnymi operacjami na tych wartościach oraz relacjami jakie można między tymi wartościami ustalać. Przykłady typów danych Typ danej Zbiór wartości Operacje/relacje Liczba całkowita (integer) , -, *, <, >, >=,... Pojedyncza precyzja (liczba rzeczywista) E E 45; 0; E E38 +, -, *, /, <, >, >=,... Tak/Nie (boolean) {PRAWDA, FAŁSZ} and, or, not,... Tekst krótki (short text) ciag znaków o długości , &, <, >, >=,... Data krótka <, >, =,... dr inż. Witold Rekuć Bazy danych 17
18 Przykłady definicji kolumn Nazwa kolumny Typ danej Ograniczenia Nrklienta Liczba całkowita between 1 and >=1 and <=20000 Kapitał Pojedyncza precyzja >=10000 Czy stały klient Nazwa Tak/Nie Tekst krótki Data rejestracji Data krótka <=Date() Zdefiniujmy kolumny tabeli w bazie danych MS ACCESS dr inż. Witold Rekuć Bazy danych 18
19 Tabela jest zbiorem wierszy, przy czym każdy wiersz jest, odpowiadającym nagłówkowi tabeli, zestawem wartości pochodzących z dziedzin wartości Klienci wiersze (rekordy, krotki) kolumny (pola, atrybuty) dr inż. Witold Rekuć Bazy danych 19
20 Dodanie nowego wiersza/rekordu do tabeli Klienci Nowy wiersz 7 Beck Andrzej Jawalska 17 7 Zbiór dopuszczalnych numerów klientów Beck Zbiór dopuszczalnych nazwisk Andrzej Zbiór dopuszczalnych imion Jawajska 17 Zbiór dopuszczalnych adresów dr inż. Witold Rekuć Bazy danych 20
21 Problem określoności wartości w kolumnach Podczas konstruowania nowego wiersza tabeli może okazać się, że nie jest możliwe określenie wartości dla niektórych pól wiersza. Przyczyna może być: - subiektywna: niewiedza osoby konstruującej wiersz, - obiektywna: natura opisywanego obiektu. Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu 1 Klinton Regan Joanna Regan Abejowska Hilary Joanna Audiński Józef 4 Pafawagow Paweł 5 Jordański Andrzej Adam Dolmedicka Dolmedicka Janina dr inż. Witold Rekuć Bazy danych 21
22 Projektując tabelę dla pewnego zastosowania powinniśmy rozstrzygnąć dla każdej jej kolumny: - czy wartość w kolumnie musi być zawsze określona, - czy wartość w kolumnie może, ale nie musi, być nieokreślona. Do oznaczenia nieokreśloności wartości atrybutu stosuje się słowo NULL Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu 1 Klinton Regan Joanna null Regan Audiński Pafawagow Abejowska null null Hilary Józef Paweł Joanna null null null null 5 Jordański null Andrzej Adam Dolmedicka Dolmedicka Janina null null dr inż. Witold Rekuć Bazy danych 22
23 Reakcja systemu bazy danych na dane niezgodne z ograniczeniem NULL not null Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu 1 Klinton Regan Joanna null Regan Abejowska Hilary Joanna Audiński null Józef null null 4 Pafawagow null Paweł null null 5 Jordański null Andrzej Adam Dolmedicka Dolmedicka Janina null null 7 Beck Andrzej null Jerzy odrzucony! 7 Beck null Andrzej Jerzy przyjęty! dr inż. Witold Rekuć Bazy danych 23
24 Nieokreśloność wartości w kolumnach i logika trójwartościowa 6 Dolmel Elektryczna Telefon = ? PRAWDA (TRUE) 6 Dolmel Elektryczna FALSZ (FALSE) 6 Dolmel Elektryczna 3 NIE WIEM (UNKNOWN) NULL trzecia wartość logiczna dr inż. Witold Rekuć Bazy danych 24
25 Zerowa długość oraz nieokreśloność wartości w kolumnach typu tekstowego Do zapisu wartości tekstowych stosuje się cudzysłów. Cudzysłów pełni dwa zadania: - wskazuje początek i koniec tekstu, na przykład: Cameron, abc, - odróżnia wartości typu tekstowego od wartości innych typów, na przykład: 123 i 123, i , true i true. Zapis oznacza tekst o zerowej długości, ponieważ cudzysłów zawiera zero znaków. Tekst o zerowej długości jest wartością OKREŚLONĄ (not NULL). Uwaga: znaki cudzysłowu nie są pamiętane razem za znakami tekstu Przykład 6 Dolmel Elektryczna 3 tekst o zerowej długości 6 Dolmel Elektryczna 3 Telefon is NULL? FALSZ PRAWDA NULL dr inż. Witold Rekuć Bazy danych 25
26 Projektując tabelę dla pewnego zastosowania powinniśmy rozstrzygnąć dla każdej jej kolumny typu tekstowego: - czy wartość w kolumnie musi być zawsze niezerowej długości, - czy wartość w kolumnie może, ale nie musi, być zerowej długości. Jeżeli dopuszczamy zerową długość wartości w kolumnach tekstowych, to musimy określić jaki jest sens (interpretacja, znaczenie) takiej wartości. dr inż. Witold Rekuć Bazy danych 26
27 Przykład Jeżeli dla kolumny o nazwie Numer telefonu osoby dopuszczamy zerową długość wartości oraz wartość NULL, moglibyśmy przyjąć następującą interpretację każdego przypadku: Numer telefonu jest NULL : Numer telefonu jest zerowej długości : Numer telefonu jest niezerowej długości : osoba nie ma telefonu osoba ma telefon, ale tego numeru nie znamy osoba ma telefon i jest to podana wartość dr inż. Witold Rekuć Bazy danych 27
28 Reakcja systemu bazy danych na dane niezgodne z ograniczeniem zerowej długości danych tekstowych not zero-length not null Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu 1 Klinton Regan Joanna null Regan Abejowska Hilary Joanna Audiński null Józef null null 4 Pafawagow null Paweł null null 5 Jordański null Andrzej Adam Dolmedicka Dolmedicka Janina null null 7 Andrzej Andrzej odrzucony! 7 Beck null Andrzej Jerzy przyjęty! 7 Beck null Andrzej null null przyjęty! dr inż. Witold Rekuć Bazy danych 28
29 Nieokreśloność wartości w kolumnach i operacje na wartościach i relacje między wartościami Operacje na wartościach nieokreślonych Możliwym jest, że: jeżeli X is NULL to X op Y is NULL gdzie op { +, -, *, /,... } Przykład: NULL is NULL Relacje między wartościami nieokreślonymi Możliwym jest, że: jeżeli X is NULL to X Q Y is UNKNOWN gdzie Q { =, >, <, >=,... } Przykład: 100 >= NULL is UNKNOWN Uwaga: funkcje wbudowane w systemach baz danych często ignorują wartości NULL, dlatego należy zadbać, by wartości w bazie danych, wszedzie gdzie jest to możliwe i konieczne, były zawsze określone. dr inż. Witold Rekuć Bazy danych 29
30 Zachowanie systemu bazy danych podczas wykonywania operacji na danych nieokreślonych Nr Nazwa Kwota Przykład MS ACCESS Nazwa1 Nazwa3 null Nazwa5 Nazwa suma(kwota) = 1271 średnia(kwota) = 317,75 (=1271/4) policz(kwota) = 4 policz(nazwa) = 5 Zachowanie systemu bazy danych podczas ustalania relacji między danymi nieokreślonymi Nr Nazwa Nazwa1 Kwota Kwota Wyświetl wiersze, dla których: Kwota1<Kwota2 3 4 Nazwa Nr Nazwa Kwota1 Kwota2 5 Nazwa Nazwa Nazwa dr inż. Witold Rekuć Bazy danych 30
31 Operatory logiki trójwartościowej q q p AND q p True False Unknown True True False Unknown False False False False Unknown Unknown False Unknown p OR q p True False Unknown True True True True False True False Unknown Unknown True Unknown Unknown p True False Unknown NOT p False True Unknown q p = q p True False Unknown True True False Unknown False False True Unknown Unknown True Unknown Unknown dr inż. Witold Rekuć Bazy danych 31
32 Uwagi podsumowujące i uzupełniające 1. Porządek kolumn w tabeli jest nieistotny (sens, semantyka kolumny nie zależy od jej pozycji w nagłówku). Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu 1 Klinton Regan Joanna Regan Abejowska Hilary Joanna Audiński Józef 4 Pafawagow Paweł 5 Jordański Andrzej Adam Dolmedicka Dolmedicka Janina Osoba Nr Nazwisko Nazwisko panieńskie Imię2 Imię1 Nr telefonu 1 Klinton Regan Joanna Regan Abejowska Joanna Hilary Audiński Józef 4 Pafawagow Paweł 5 Jordański Adam Andrzej Dolmedicka Dolmedicka Janina dr inż. Witold Rekuć Bazy danych 32
33 2. Porządek wierszy w tabeli jest nieistotny (sens, semantyka wiersza nie zależy od jego pozycji w tebeli. Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu 1 Klinton Regan Joanna Regan Abejowska Hilary Joanna Audiński Józef 4 Pafawagow Paweł 5 Jordański Andrzej Adam Dolmedicka Dolmedicka Janina Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu 1 Klinton Regan Joanna Jordański Andrzej Adam Audiński Józef 4 Pafawagow Paweł 2 Regan Abejowska Hilary Joanna Dolmedicka Dolmedicka Janina dr inż. Witold Rekuć Bazy danych 33
34 3. Wiersze tabeli mogą tworzyć wielozbiory (zestawy wierszy z duplikatami) po warunkiem, że dopuszcza się duplikaty wierszy. Osoba Nr Nazwisko Nazwisko panieńskie Imię1 Imię2 Nr telefonu Klinton Jordański Audiński Regan Joanna Andrzej Józef Adam wiersze zduplikowane 4 Pafawagow Paweł Regan Abejowska Hilary Joanna Dolmedicka Dolmedicka Janina Jordański Andrzej Adam Pafawagow Paweł wiersze zduplikowane dr inż. Witold Rekuć Bazy danych 34
35 4. Wartości w wierszach muszą być proste (skalarne, atomowe). Osoba Data urodzenia Nr Nazwisko Nazwisko panieńskie Imię Rok Miesiąc Dzień Nr telefonu Klinton Regan Audiński Regan Abejowska Joanna Hilary Józef struktura niedopuszczalna 4 5 Pafawagow Jordański Paweł Andrzej Dolmedicka Dolmedicka Janina Osoba Nr Nazwisko Nazwisko panieńskie Imię Data urodzenia Nr telefonu Klinton Regan Audiński Pafawagow Jordański Regan Abejowska Joanna Hilary Józef Paweł Andrzej 1998/09/ /03/ /12/ /08/ /01/ struktura dopuszczalna 6 Dolmedicka Dolmedicka Janina 1998/04/14 5. Tabela, która ma kolumny o dziedzinach wartości skalarnych jest w pierwszej postaci normalnej. 6. Wszystkie tabele relacyjnej bazy danych muszą być w, co najmniej, pierwszej postaci normalnej. dr inż. Witold Rekuć Bazy danych 35
36 3. Klucze tabel Kluczem tabeli nazywamy niepusty zbiór kolumn (atrybutów) taki, że: a) dla dowolnej pary różnych wierszy t1 i t2 tej tabeli, jego wartości dla obu tych wierszy są różne oraz b) żaden jego podzbiór właściwy nie spełnia tego (a) warunku. Przykład: Dokumenty Nr NrSprzedawcy NrNabywcy Data Kluczem w tabeli Dokumenty jest zbiór 1/02 2/ K = {Nr, NrSprzedawcy} 1/02 3/ Kluczem w tabeli Dokumenty nie może być zbiór: 2/02 4/ K = {Nr} K ' = {Nr, NrSprzedawcy, NrNabywcy} dr inż. Witold Rekuć Bazy danych 36
37 Inne przykłady: Osoba(Pesel, Nip, Nazwisko, Imię, DataUrodzenia) Klucz1={Pesel}, Klucz2={Nip} Egzamin(NrStudenta, KodPrzedmiotu, Data, Ocena) warianty kluczy: Klucz={NrStudenta, KodPrzedmiotu, Data} Klucz={NrStudenta, Data} Klucz={NrStudenta, KodPrzedmiotu} PozycjeDokumentu(Nr, NrSprzedawcy, Np,SmbTow, CenaNetto, Ilość) Klucz1={Nr, NrSprzedawcy, Np}, Klucz2={Nr, NrSprzedawcy, SmbTow} dr inż. Witold Rekuć Bazy danych 37
38 Każdy zbiór kolumn, który zawiera klucz (jako podzbiór kolumn) nazywany jest nadkluczem. Uwaga: nadklucz zawiera kolumny nadmiarowe, które faktycznie nie są potrzebne do wskazania wiersza. Uwagi: 1. Każda tabela, będąca zbiorem wierszy posiada co najmniej jeden klucz (bo nie zawiera dwóch lub więcej identycznych wierszy). 2. Jeżeli tabela ma więcej niż jeden klucz, to klucze te różnią się co najmniej jedną kolumną (atrybutem). 3. Klucze mogą być proste (jednokolumnowe) lub złożone (wielokolumnowe) dr inż. Witold Rekuć Bazy danych 38
39 Kluczem podstawowym tabeli nazywamy klucz, który ze względu na pewne cechy praktyczne zostaje arbitralnie wybrany spośród wszystkich kluczy tabeli. Wszystkie klucze nazywa się kandydującymi Przykład: Przedmiot (Kod, Nazwa, Opis), Kluczem podstawowy: K1={Kod} Klucz kandydujący: K2={Nazwa} Określoność wartości klucza podstawowego Klucz podstawowy tabeli musi mieć wartość określoną (NULL jest niedopuszczalne) dr inż. Witold Rekuć Bazy danych 39
40 Definicja tabeli w MS ACCESS (język graficzny) dr inż. Witold Rekuć Bazy danych 40
41 II. Operacje aktualizacji danych. Więzy integralności. Tabele w bazie danych są zmienne w czasie, a ich zmienność wynika z faktu, że muszą one być odzwierciedleniem zmieniającej się rzeczywistości. Aby tabele nadążały za rzeczywistością muszą być poddawane: redefinicji: dodawanie usuwanie kolumn, zmiana dziedzin wartości kolumn, zmiana dopuszczalnych zależności między wartościami, aktualizacji: dodawanie, usuwanie, zmiana wartości w wierszach. dr inż. Witold Rekuć Bazy danych 41
42 Operacje aktualizacji dodaj nowy wiersz do tabeli, usuń istniejący wiersz z tabeli, zmień wartości w wierszu obecnym w tabeli. Podstawowe wymaganie: w aktualizacji bazy danych musimy zapewnić poprawność bazy danych: Poprawność merytoryczna zgodność bazy danych z rzeczywistością Poprawność formalna zgodność bazy danych z regułami formalnymi dr inż. Witold Rekuć Bazy danych 42
43 Więzy integralnościowe Więzy integralnościowe to ograniczenia nałożone na wartości danych w bazie danych, które muszą być spełnione, aby baza danych była formalnie poprawna. Dają się wyrazić: deklaratywnie: za pomocą zdań logicznych lub interpretowanych jako logiczne lub proceduralnie: za pomocą napisanych przez użytkownika procedur lub funkcji zapamiętanych i uruchamianych przez system w celu sprawdzenia, czy ograniczenie jest spełnione. Podział ze względu na przedmiot ograniczenia: więzy dziedziny, więzy klucza, więzy integralności referencyjnej, inne więzy. dr inż. Witold Rekuć Bazy danych 43
44 Więzy dziedziny wartość w kolumnie tabeli musi należeć do dziedziny tej kolumny lub jeżeli jest to dopuszczalne może być nieokreślona (NULL). Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza Abeja Abejowska Audi Audiego 2 3 Pafawag Wagonowa 2 4 Iase Energetyczna Dolmed Medyczna 1 Wstaw wiersz -3 Makrosoft Informatyczna A1 NULL Naruszenie więzów dziedziny dr inż. Witold Rekuć Bazy danych 44
45 Więzy klucza w tabeli nie mogą występować dwa lub więcej wierszy o tej samej wartości klucza; klucz podstawowy musi mieć wartość określoną. Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza Abeja Abejowska Audi Audiego 2 3 Pafawag Wagonowa 2 4 Iase Energetyczna Dolmed Medyczna 1 Wstaw wiersz NULL Makrosoft Informatyczna 1 NULL Naruszenie więzów dziedziny Naruszenie więzów klucza Wstaw wiersz 2 Makrosoft Informatyczna 1 NULL dr inż. Witold Rekuć Bazy danych 45
46 Więzy integralności referencyjnej Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL Abeja Audi Pafawag Iase Abejowska Audiego Wagonowa Energetyczna Opole Wałbrzych Kraków OP DL MP 5 Dolmed Medyczna 1 Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL i OP dr inż. Witold Rekuć Bazy danych 46
47 Więzy integralności referencyjnej Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Opole OP 2 Audi Audiego 2 3 Wałbrzych DL 3 Pafawag Wagonowa 2 4 Iase Energetyczna Kraków MP 5 Dolmed Medyczna 1 6 TP SA Telewizyjna Dodaj do tabeli Firmy wiersz Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL, OP,??? dr inż. Witold Rekuć Bazy danych 47
48 Więzy integralności referencyjnej Firmy Nr Nazwa Ulica KodMjc Telefon Miejscowości Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL Abeja Audi Pafawag Iase Abejowska Audiego Wagonowa Energetyczna Opole Wałbrzych Kraków OP DL MP 5 Dolmed Medyczna 1 Usuń z tabeli Miejscowości ten wiersz Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL,???,??? dr inż. Witold Rekuć Bazy danych 48
49 Więzy integralności referencyjnej Firmy Nr Nazwa Ulica KodMjc Telefon Miejscowości Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL Abeja Audi Pafawag Iase Abejowska Audiego Wagonowa Energetyczna Opole Wałbrzych Kraków OP DL MP 5 Dolmed Medyczna 1 Zmień kod Miejscowości 3 na 4 Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL, OP,??? dr inż. Witold Rekuć Bazy danych 49
50 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Opole OP 2 Audi Audiego 2 3 Wałbrzych DL 3 Pafawag Wagonowa 2 4 Kraków MP 4 Iase Energetyczna Dolmed Medyczna 1 Dla każdego wiersza tabeli Firmy musi występować wiersz w tabeli Miejscowości taki, że: Firmy.KodMjc=Miejscowości.Kod Dla każdego wiersza tabeli Miejscowości może występować wiersz w tabeli Firmy taki, że: Firmy.KodMjc=Miejscowości.Kod dr inż. Witold Rekuć Bazy danych 50
51 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Opole OP 2 Audi Audiego 2 3 Wałbrzych DL 3 Pafawag Wagonowa 2 4 Kraków MP 4 Iase Energetyczna Dolmed Medyczna 1 Uwagi: pola (kolumny) wiążące wiersze obu tabel nazywamy polami pokrewnymi, pary powiązanych wierszy obu tabel nazywa się wierszami pokrewnymi, pary tabel tak powiązanych nazywa się tabelami pokrewnymi dr inż. Witold Rekuć Bazy danych 51
52 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Opole OP 2 Audi Audiego 2 3 Wałbrzych DL Pafawag Iase Dolmed Wagonowa Energetyczna Medyczna Kraków Klucz = {Kod} MP Klucz = {Nr} Klucz obcy = {KodMjc} Dane są dwie tabele: To zwana tabelą odwołującą się Td zwana tabelą docelową Kluczem obcym tabeli To do tabeli Td nazywamy niepusty zbiór kolumn (atrybutów) To, którego wartości są wartościami klucza tabeli Td Więzy integralności referencyjnej Dla każdej wartości klucza obcego w tabeli odwołującej się musi istnieć wiersz (pokrewny) w tabeli docelowej zawierający wartość tego klucza. dr inż. Witold Rekuć Bazy danych 52
53 Przykład 1: Student (Nr, Nazwisko, Adres) Klucz={Nr} Egzamin (NrStudenta, KodPrzedmiotu, Data, Ocena) Klucz={NrStudenta, KodPrzedmiotu, Data} KluczObcy do tabeli Student KO1={NrStudenta} KluczObcy do tabeli Przedmiot KO2={KodPrzedmiotu} Przedmiot (Kod, Nazwa) Klucz={Kod} tabela docelowa tabela odwołująca się tabela docelowa Przykład 2: Dostawca (Kod, Nazwa, Ulica, KodMjc) Miejscowość (Kod, Nazwa) Dostawa (KodDostawcy, SmbTowaru, Data, Ilość) Towar (Symbol, Nazwa, Cena, Jm) Wskaż klucze i klucze obce! Czy tabela może być jednocześnie odwołującą się I docelową? dr inż. Witold Rekuć Bazy danych 53
54 Przykład 3: dr inż. Witold Rekuć Bazy danych 54
55 Przykład 3 - komentarz: Dokumenty(NrFaktury, NrSprzedawcy, NrNabywcy, Data) Klucz={NrFaktury, NrSprzedawcy} PozycjeDokumentów(NrFaktury, NrSprzedawcy, NrPozycji, SmbTow, Ilość, CenaNetto) Klucz={NrFaktury, NrSprzedawcy, NrPozycji} KluczObcy do tabeli Dokumenty KO={NrFaktury, NrSprzedawcy} Uwagi 1. Klucze obce mogą być proste (jednokolumnowe) lub złożone (wielokolumnowe). 2. Skład klucza obcego musi odpowiadać składowi klucza, do którego on się odwołuje. dr inż. Witold Rekuć Bazy danych 55
56 Inne więzy integralnościowe Więzy inne są specyficzne dla dziedziny zastosowań. Są one określone przez warunki, których niespełnienie byłoby świadectwem błędu w danych lub świadectwem naruszenia reguł organizacji, w której baza danych jest użytkowana. Przykłady: 1. Data dostawy nie może być wcześniejsza od daty zamówienia tej dostawy. 2. Dla każdego promotora liczba dyplomatów nie może być większa od Nie może być wykonane wypożyczenie książki czytelnikowi, który zalega ze zwrotem innych książek. dr inż. Witold Rekuć Bazy danych 56
57 III. Definicja, zastosowanie i realizacja operacji na tabelach: selekcja, projekcja, równo-złączenie, theta-złączenie Operacje na tabelach Operacje relacyjne Projekcja Selekcja Złączenia Dzielenie Operacje teoriomnogościowe Suma Iloczyn Różnica niesymetryczna Dopełnienie Przemianowanie dr inż. Witold Rekuć Bazy danych 57
58 Operacja projekcji Wyznacza tabelę o nagłówku (schemacie) ograniczonym do zbioru zadanych nazw kolumn (atrybutów) r(r) - tabela r o schemacie R poddawana projekcji X schemat nowej tabeli - zbiór zadanych nazw (X R) q(x) - tabela q o schemacie X, wynik projekcji q(x) = X ( r (R) ) = { t[x] : t r } gdzie t[x] oznacza wiersz powstały przez zredukowanie t do wartości atrybutów z X R X dr inż. Witold Rekuć Bazy danych 58
59 Przykład r({a,b,c,d}) A B C D a5 b2 c1 d1 a6 b4 c5 d2 a6 b4 c1 d3 a6 b4 c1 d2 a1 b2 c2 d1 {C,D} ( r ({A,B,C,D}) ) = q({c,d}) C c1 c5 c1 c1 c2 D d1 d2 d3 d2 d1 {A,B} ( r ({A,B,C,D}) ) = q({a,b}) A a5 a6 a1 B b2 b4 b2 dr inż. Witold Rekuć Bazy danych 59
60 Przykład Podaj nazwy i numery telefonów firm q({nazwa, Telefon}) = {Nazwa, Telefon} ( Firmy ({Nr, Nazwa, Ulica,KodMjc, Telefon})) q Firmy Nazwa Telefon Nr Nazwa Ulica KodMjc Telefon Nasza Firma Nasza Firma Nasza Abeja Abeja Abejowska Audi Pafawag {Nazwa, Telefon} 2 3 Audi Pafawag Audiego Wagonowa 2 2 Iase Iase Energetyczna Dolmed 5 Dolmed Medyczna 1 wiersze zredukowane do X={Nazwa, Telefon} dr inż. Witold Rekuć Bazy danych 60
61 dr inż. Witold Rekuć Bazy danych 61
62 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) dr inż. Witold Rekuć Bazy danych 62
63 q Firmy KodMjc Nr Nazwa Ulica KodMjc Telefon 1 0 Nasza Firma Nasza Abeja Abejowska {KodMjc} 2 3 Audi Pafawag Audiego Wagonowa Iase Energetyczna Dolmed Medyczna 1 dr inż. Witold Rekuć Bazy danych 63
64 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) dr inż. Witold Rekuć Bazy danych 64
65 q KodMjc {KodMjc} Firmy Nr Nazwa 0 Nasza Firma 1 Abeja 2 Audi 3 Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Iase Energetyczna Dolmed Medyczna 1 dr inż. Witold Rekuć Bazy danych 65
66 Przykład Chcemy obliczyć wartość średnią obrotu miesięcznego w roku q({obrót}) = {Obrót} ( Obroty ({Miesiąc,Obrót}) ) q Obroty Obrót Miesiąc Obrót {Obrót} Styczeń Luty Marzec Kwiecień Maj czerwiec Zostaw duplikaty w tabeli wynikowej dr inż. Witold Rekuć Bazy danych 66
67 W języku SQL: select nazwa, telefon from Firmy; select distinct nazwa, telefon from Firmy; select * from Firmy; dr inż. Witold Rekuć Bazy danych 67
68 Operacja selekcji Wyznacza tabelę o nagłówku (schemacie) identycznym z nagłówkiem (schematem) tabeli zadanej, ale o wierszach spełniających pewien warunek selekcji r(r) F q(r) tabela r o nagłówku (schemacie) R poddawana selekcji warunek selekcji (formuła logiczna) tabela q o nagłówku (schemacie) R, wynik selekcji q(r) = F ( r (R) ) = { t : t r i F(t) = prawda } wiersze spełniające warunek selekcji dr inż. Witold Rekuć Bazy danych 68
69 Przykład r({a,b,c,d}) A B C D a5 2 a1 1 a6 4 a5 2 a6 4 a1 1 a6 4 a1 2 a1 2 a1 1 r ({A,B,C,D}) ) = q ({A,B,C,D}) B A B C D a6 4 a5 2 a6 4 a1 1 a6 4 a1 2 r ({A,B,C,D}) ) = q ({A,B,C,D}) B A B C D and D<2 a6 4 a1 1 r ({A,B,C,D}) ) = q ({A,B,C,D}) B=4 or D<2 A B C D a5 2 a1 1 a6 4 a5 2 a6 4 a1 1 a6 4 a1 2 a1 2 a1 1 dr inż. Witold Rekuć Bazy danych 69
70 Przykład Podaj dane miejscowości z województwa dolnośląskiego q({kod,nazwa,kodwoj}) = KodWoj=DL ( Miejscowości ({Kod,Nazwa,KodWoj}) ) Miejscowości q Kod 1 Nazwa Wrocław KodWoj DL 1 Wrocław DL 3 Wałbrzych DL Kod Nazwa KodWoj KodWoj=DL 2 Opole OP 3 Wałbrzych DL 4 Warszawa MZ 5 6 Katowice Kraków SL MP dr inż. Witold Rekuć Bazy danych 70
71 dr inż. Witold Rekuć Bazy danych 71
72 q({... })= (KodMjc=2) and (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) and 2 dr inż. Witold Rekuć Bazy danych 72
73 q({... })= (KodMjc=2) or (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) or 2 dr inż. Witold Rekuć Bazy danych 73
74 Realizacja selekcji w SQL select * from Miejscowości where KodWoj = DL ; select * from Firmy where (KodMjc = 2) and (Telefon IS NULL); select * from Firmy where (KodMjc = 2) or (Telefon IS NULL); dr inż. Witold Rekuć Bazy danych 74
75 Złożenie operacji projekcji i selekcji q(x) = X ( F ( r (R) ) Przykład Podaj nazwy firm z Opola, które nie mają określonego numeru telefonu q({nazwa})= {Nazwa} ( (KodMjc=2) and (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon}))) (Telefon is NULL) Firmy q Nr 0 Nazwa Nasza Firma Ulica Nasza KodMjc 1 Telefon Nazwa 1 Abeja Abejowska Pafawag 3 Pafawag Wagonowa 2 Audi {Nazwa} ( (KodMjc=2) and (Telefon is NULL) 2 Audi Audiego 2 4 Iase Energetyczna Dolmed Medyczna 1 dr inż. Witold Rekuć Bazy danych 75
76 q({nazwa})= {Nazwa} ( (KodMjc=2) and (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon}))) W języku graficznym: 2 dr inż. Witold Rekuć Bazy danych 76
77 W języku SQL: select Nazwa from Firmy where KodMjc = 2 and Telefon IS NULL; dr inż. Witold Rekuć Bazy danych 77
78 Operacje złączenia Problem: chcemy uzyskać zestawienie firm z nazwami miejscowości. Firmy Nr Nazwa 0 Nasza Firma 1 Abeja 2 Audi 3 Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Miejscowości Kod Nazwa KodWoj 1 Wrocław DL 2 Opole OP 3 Wałbrzych DL Wojewodztwa Kod Nazwa DL Dolnośląskie OP Opolskie 4 Iase Energetyczna Dolmed Dokumenty Medyczna 1 PozycjeDokumentu Nr NrSprzerdawcy Np SmbTow CenaNetto Ilość Nr NrSprzerdawcy NrNabywcy Data 1/ , / / , / / , / / , / / , / / , / / ,00 45 Towary Smb Nazwa Jm StawkaVat 3/02 3/02 3/ ,50 7,80 3, Pasztet Mortadela kg kg 7% 7% 2/02 2/ ,00 4, Chipsy Kawa Jakobs paczka 400g paczka 100g 7% 7% 4/ , Makrela kons. puszka 250g 7% dr inż. Witold Rekuć Bazy danych 78
79 Złączenia Theta-złączenie Pełne złączenie (full-join) Złączenie prawostronne (right-join) Złączenie lewostronne (left-join) Złączenie naturalne Równo-złączenie (=) Pozostałe-theta (>, <, >=, <=, <> ) dr inż. Witold Rekuć Bazy danych 79
80 Operacja równo-złączenia Dane są: r(r) tabela r o nagłówku (schemacie) R, A R s(s) tabela s o nagłówku (schemacie) S, B S R i S nie zawierają tych samych nazw (R S = Ø) q(r S) = r [ A=B ] s = { t : t[r] r, t[s] s i t[a] = t[b] } r R A s S B v v t v v dr inż. Witold Rekuć Bazy danych 80
81 Przykład r (A,B,C,D) A B C D a5 b2 c1 d1 a6 b4 c3 d2 a6 b4 c1 d3 a6 b4 c1 d2 a1 b2 c2 d1 S (CK, CN) CK CN c1 cn1 c2 cn2 c3 cn3 c4 cn4 q(a,b,c,d,ck,cn) := r [ C=CK ] s A B C D CK CN a5 b2 c1 d1 c1 cn1 a6 b4 c3 d2 c3 cn3 a6 b4 c1 d3 c1 cn1 a6 b4 c1 d2 c1 cn1 a1 b2 c2 d1 c2 cn2 dr inż. Witold Rekuć Bazy danych 81
82 Przykład Firmy Nr Nazwa 0 Nasza Firma 1 Abeja 2 Audi 3 Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Miejscowości Kod Nazwa KodWoj 1 Wrocław DL 2 Opole OP 3 Wałbrzych DL 4 Iase Energetyczna Dolmed Medyczna 1 Firmy [ KodMjc = Kod ] Miejscowości Firmy Nr Nazwa Nasza Firma Abeja Audi Pafawag Iase Ulica Nasza Abejowska Audiego Wagonowa Energetyczna KodMjc Telefon Miejscowości Kod Nazwa KodWoj 1 Wrocław DL 2 Opole OP 3 Wałbrzych DL 5 Dolmed Medyczna 1 dr inż. Witold Rekuć Bazy danych 82
83 Firmy Nr Nazwa Nasza Firma Abeja Audi Pafawag Iase Ulica Nasza Abejowska Audiego Wagonowa Energetyczna KodMjc Telefon Miejscowości Kod Nazwa KodWoj 1 Wrocław DL 2 Opole OP 3 Wałbrzych DL 5 Dolmed Medyczna 1 Firmy [ KodMjc = Kod ] Miejscowości Zestawienie firm Nr Nazwa Ulica KodMjc Telefon Kod Nazwa (Mjc) KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Wałbrzych DL 2 Audi Audiego 2 2 Opole OP 3 Pafawag Wagonowa 2 2 Opole OP 4 Iase Energetyczna Wałbrzych DL 5 Dolmed Medyczna 1 1 Wrocław DL dr inż. Witold Rekuć Bazy danych 83
84 Firmy [ KodMjc = Kod ] Miejscowości dr inż. Witold Rekuć Bazy danych 84
85 Firmy [ ] Miejscowości = Firmy Miejscowości - iloczyn kartezjański dr inż. Witold Rekuć Bazy danych 85
86 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Opole OP 2 Audi Audiego 2 3 Wałbrzych DL 3 Pafawag Wagonowa 2 4 Iase Energetyczna Dolmed Medyczna 1 Firmy [ ] Miejscowości = Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj - iloczyn kartezjański { { { { { { Nasza Firma Nasza Firma Nasza Firma Abeja Abeja Abeja Audi Audi Audi Pafawag Pafawag Pafawag Iase Iase Iase Dolmed Dolmed Dolmed Nasza Nasza Nasza Abejowska Abejowska Abejowska Audiego Audiego Audiego Wagonowa Wagonowa Wagonowa Energetyczna Energetyczna Energetyczna Medyczna Medyczna Medyczna Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych DL OP DL DL OP DL DL OP DL DL OP DL DL OP DL DL OP DL dr inż. Witold Rekuć Bazy danych 86
87 Złożenie operacji projekcji, selekcji i równo-złączenia q(x) = X ( F ( r [A=B] s ) Przykład {Dokumenty.Data} ( Miejscowości.Nazwa= Wałbrzych ( Dokumenty [NrNabywcy=Nr] Firmy [KodMjc=Kod ] Miejscowości )) dr inż. Witold Rekuć Bazy danych 87
88 równo-złączenie projekcja selekcja dr inż. Witold Rekuć Bazy danych 88
89 Podaj zestawienie towarów sprzedawanych poszczególnych województwach Iloczyn kartezjański tabel dr inż. Witold Rekuć Bazy danych 89
90 Równo-złączenie wielu tabel dr inż. Witold Rekuć Bazy danych 90
91 Równo-złączenie tabel po polach o tych samych nazwach Te pola mają identyczne nazwy, ale różny sens!!! dr inż. Witold Rekuć Bazy danych 91
92 Równo-złączenie tabel po polach o różnych nazwach, ale mających ten sam sens (wariant 1) Znajdź dane firmsprzedawców dr inż. Witold Rekuć Bazy danych 92
93 Równo-złączenie tabel po polach o różnych nazwach, ale mających ten sam sens (wariant 2) Znajdź dane firmnabywców dr inż. Witold Rekuć Bazy danych 93
94 Równo-złączenie tabel po polach o różnych nazwach, ale mających ten sam sens (wariant 3) Znajdź dane firm, w dokumencie występują jednocześnie w dwóch rolach: sprzedawcy i nabywcy dr inż. Witold Rekuć Bazy danych 94
95 Równo-złączenie w języku SQL select Firmy.Nazwa, Miejscowości.Nazwa from Firmy inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod; select Firmy.Nazwa, Miejscowości.Nazwa from Firmy inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod where Firmy.Telefon is Null; select Dokumenty.NrFaktury, Firmy.Nazwa, Dokumenty.Data from ( PozycjeDokumentu inner join Dokumenty on (PozycjeDokumentu.NrSprzedawcy = Dokumenty.NrSprzedawcy) and (PozycjeDokumentu.NrFaktury = Dokumenty.NrFaktury) ) inner join Firmy on Dokumenty.NrSprzedawcy = Firmy.Nr; dr inż. Witold Rekuć Bazy danych 95
96 Zadania F( Nr, Nazwa ) T ( Smb, Nazwa ) 1 n1 a na 2 n2 b nb 3 n3 c nc 4 n4 D (NrD, NrS, NrN,Data) P ( NrD, NrS, Np, Smb, Ilosc, Cena) d a d b d a d a d b c a c b c 10 5 F Firmy, T Towary, D Dokumenty, P PozycjeDokumentu dr inż. Witold Rekuć Bazy danych 96
97 Oblicz: 1) {Data}(D) 2) NrS=1 and NrN=2(D), NrS=1 or NrN=2(D) 3) {NrD,NrS}( Smb=a(P)) ) D [NrS=Nr] F, D [NrN=Nr] F, D [Nrd=Nrd,NrS=NrS] P Napisz wyrażenie algebraiczne dla żądań: 1) Podaj nazwy firm, które coś kupiły w dniu 'd1'. 2) Podaj nazwy towarów kupionych przez firmę o nazwie 'n3'. 3) Podaj dni, w których kupiono towar o nazwie 'na'. 4) Podaj nazwy towarów sprzedanych po cenie > 2. dr inż. Witold Rekuć Bazy danych 97
98 Podaj nazwy firm, które coś kupiły w dniu 'd1'. {Nazwa}( Data= d1 (F[Nr=NrN]D)) Data= d1 dr inż. Witold Rekuć Bazy danych 98
99 Podaj nazwy towarów kupionych przez firmę o nazwie 'n3'. {T.Nazwa} F.Nazwa= n3 ( T[Smb=Smb]P[NrD=NrD,NrS=NrS]D[NrN=Nr]F)) dr inż. Witold Rekuć Bazy danych 99
100 Podaj dni, w których kupiono towar o nazwie 'na'. {D.Data} T.Nazwa= na (T[Smb=Smb] P[NrD=NrD,NrS=NrS]D)) dr inż. Witold Rekuć Bazy danych 100
101 Podaj nazwy towarów sprzedanych po cenie > 2. {T.Nazwa} Cena>2 (T[Smb=Smb]P)) dr inż. Witold Rekuć Bazy danych 101
102 Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ { >, <, >=, <=, =, <> } - operator Teta r q(r S) = r [ AΘB ] s = { t : t[r] r, t[s] s i t[a] Θ t[b] } R S A s B v1 v2 t v1 v1 Θ v2 v2 dr inż. Witold Rekuć Bazy danych 102
103 Przykład r1 A B r2 C D a2 1 a5 2 a5 2 a1 1 a1 1 a6 4 a6 4 a1 2 a1 2 r1 [ B > D ] r2 = A B C D a5 2 a1 1 a6 4 a5 2 a6 4 a1 1 a6 4 a1 2 a1 2 a1 1 dr inż. Witold Rekuć Bazy danych 103
104 Przykład Grupa Autokar Nazwa Liczność Numer rej Pojemność Pielgrzymka 10 WRU Studenci 50 DW Emeryci 55 WCX Szkoła 20 WWX Urząd Miejski 30 WRA Pafawag 20 DW Podać autokary, które mogą obsłużyc poszczególne grupy turystyczne [Grupa] [Liczność] <= [Autokar].Pojemność ] Grupa Autokar Nazwa Liczność Numer rej Pojemność Pielgrzymka 10 WRU Studenci 50 DW Emeryci 55 WCX Szkoła 20 WWX Urząd Miejski 30 WRA Pafawag 20 DW dr inż. Witold Rekuć Bazy danych 104
105 W języku graficznym: W języku SQL: select Autokar.Numer rej, Grupa.Nazwa from Autokar, Grupa where Grupa.Liczność <= Autokar.Pojemność; dr inż. Witold Rekuć Bazy danych 105
106 Operacja złączenia naturalnego Dane są: r(r) tabela r o schemacie R, s(s) tabela s o schemacie S, R i S nie muszą być rozłączne q(r S) = r s = { t : t[r] r, t[s] s } dr inż. Witold Rekuć Bazy danych 106
107 Przykład r1 A B r2 B C a2 b1 a5 c2 a5 b2 a1 c1 a1 b1 a6 c4 a6 b5 a1 c2 a1 b2 r1 r2 = A B C a2 b1 c1 a2 b1 c2 a1 b1 c1 a1 b2 c2 a6 b5 c2 dr inż. Witold Rekuć Bazy danych 107
108 Przykład ( iloczyn kartezjański!!! ) r1 A B r2 C D a2 b1 c5 d2 a5 b2 c1 d1 a1 b1 r1 r2 = A B C D a2 b1 c5 d2 a2 b1 c1 d1 a5 b2 c5 d2 a5 b2 c1 d1 a1 b1 c5 d2 a1 b1 c1 d1 dr inż. Witold Rekuć Bazy danych 108
109 IV. Definicja, zastosowanie i realizacja operacji na tabelach: operacje teoriomnogościowe: suma, iloczyn, różnica niesymetryczna, dopełnienie Operacje na tabelach Operacje relacyjne Projekcja Selekcja Złączenia Dzielenie Operacje teoriomnogościowe Suma Iloczyn Różnica niesymetryczna Dopełnienie Przemianowanie dr inż. Witold Rekuć Bazy danych 109
110 Operacje teoriomnogościowe suma tabel Dane są tabele o jednakowych nagłówkach (schematach): r(r) s(r) r(r) s(r) = q(r) = { t : t r lub t s } Przykład r A B s A B a2 b1 a5 b2 a5 b2 a1 b1 a1 b1 a6 b4 a6 b4 a1 b2 a3 b2 q A a2 a5 a1 a6 a3 a1 B b1 b2 b1 b4 b2 b2 dr inż. Witold Rekuć Bazy danych 110
111 Realizacja operacji sumy tabel w MS ACCESS za pomocą kwerendy dołączającej dr inż. Witold Rekuć Bazy danych 111
112 a) r s q := r s b) c) r s r s kwerenda dołączająca r kwerenda tworząca tabelę q kwerenda tworząca tabelę rob {z duplikatami} q kwerenda dołączająca kwerenda dołączająca rob {z duplikatami} kwerenda tworząca tabelę usuń duplikaty {bez duplikatów} dr inż. Witold Rekuć Bazy danych 112
113 Kwerenda dołączająca: Realizacja operacji sumy tabel w SQL insert into r(a,b) select s.a, s.b from s; insert into r select s.* from s; Kwerenda sumująca: select * from r union all select * from s; {z duplikatami} select * from r union select * from s; {bez duplikatów} dr inż. Witold Rekuć Bazy danych 113
114 Operacje teoriomnogościowe iloczyn tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r i t s } Przykład r A B s A B a2 b1 a5 b2 a5 b2 a1 b1 a1 b1 a6 b4 a6 b4 a1 b2 q A a5 a1 a6 B b2 b1 b4 a3 b2 dr inż. Witold Rekuć Bazy danych 114
115 Realizacja operacji iloczynu tabel w MS ACCESS za pomocą kwerendy wybierającej q := r s {r.*} (r [ r.a 1 =s.a 1,..., r.a n =s.a n ] s) r A B s A B q A B a2 b1 a5 b2 a5 b2 {r.a,r.b} (r [ r.a = s.a, r.b = s.b ] s) a5 b2 a1 b1 a1 b1 a1 b1 a6 b4 a6 b4 a6 b4 a1 b2 a3 b2 dr inż. Witold Rekuć Bazy danych 115
116 złączenie po wszystkich polach dr inż. Witold Rekuć Bazy danych 116
117 Realizacja operacji iloczynu tabel w SQL MS ACCESS: select r.* from r inner join s on (r.a=s.a) and r.b=s.b); PostgreSQL: select r.* from r intersect select s.* from s; select r.* from r intersect all select s.* from s; dr inż. Witold Rekuć Bazy danych 117
118 Operacje teoriomnogościowe różnica niesymetryczna tabel Dane są tabele o jednakowych nagłówkach (schematach): r(r) s(r) r(r) s(r) = q(r) = { t : t r i t s } Przykład r A B s A B a2 b1 a5 b2 a5 b2 a1 b1 a1 b1 a6 b4 a6 b4 a1 b2 q A a2 a3 B b1 b2 a3 b2 dr inż. Witold Rekuć Bazy danych 118
119 Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej Rekordy unikatowe dr inż. Witold Rekuć Bazy danych 119
120 Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej a) b) q := r s q := r q := q s r s r s kwerenda usuwająca kwerenda tworząca tabelę r = r s q = r kwerenda usuwająca q = r - s dr inż. Witold Rekuć Bazy danych 120
121 Realizacja odejmowania w SQL MS ACCESS: PostgreSQL: delete distinctrow s.* from r inner join s on (r.a=s.a) and ( r.b=s.b); select r.* from r except select s.* from s; select r.* from r except all select s.* from s; dr inż. Witold Rekuć Bazy danych 121
122 insert into Odbiorca select from Dostawca.* Dostawca; dr inż. Witold Rekuć Bazy danych 122
123 select Dostawca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); dr inż. Witold Rekuć Bazy danych 123
124 delete distinctrow Odbiorca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); dr inż. Witold Rekuć Bazy danych 124
125 Operacje teoriomnogościowe dopełnienie Dana jest tabela r(r), w której R={A 1,A 2,...,A n } Każdej nazwie A 1,A 2,...,A n przyporządkowano zbiór dopuszczalnych wartości D 1,D 2,...,D n dop(r(r)) = D 1 D 2... D n r(r) Przykład R={A 1,A 2 } D 1 = {1,2} D 2 = {a,b} D 1 D 2 A 1 A 2 1 a 1 b 2 a r A 1 A 2 2 a 1 b dop(r) A 1 A 2 1 a 2 b 2 b dr inż. Witold Rekuć Bazy danych 125
126 Przykład Obiekt Nazwa Adres Grupa Numer Liczność Zwiedziła Nazwa Numer Muzeum Muzealna 1 10 Muzeum 1 Park zdrojowy Parkowa 2 50 Park zdrojowy 1 Zamek Zapora Zamkowa Wodna 3 55 Zamek Zapora 2 3 Podać, która grupa i który obiekt ma jeszcze zwiedzić, jeżeli już odbyły się wizyty podane w tabeli Zwiedziła {Nazwa} (Obiekt) {Numer} (Grupa) Zwiedziła select Obiekt.Nazwa, Grupa.Numer from Obiekt, Grupa except select Zwiedziala.Nazwa, Zwiedzila.Numer from Zwiedzila; dr inż. Witold Rekuć Bazy danych 126
127 dr inż. Witold Rekuć Bazy danych 127
128 dr inż. Witold Rekuć Bazy danych 128
129 Czy można realizować dopełnienie za pomocą selekcji z zaprzeczeniem? Przypadek wiele do jeden (n:1) Przypadek wiele do wielu (n:m) dr inż. Witold Rekuć Bazy danych 129
130 Przypadek wiele do jeden (n:1) Odejmowanie od uniwersum Miejscowości Województwa WP Miejscowości KodWoj= DL (Miejscowości) KodWoj<> DL (Miejscowości) DL SL PM Selekcja z zaprzeczeniem {1,2,3,7,8,9,10, 11,12} odpowiedź prawidłowa {1,2,3,7,8,9,10, 11,12} odpowiedź prawidłowa dr inż. Witold Rekuć Bazy danych 130
131 Przypadek wiele do wielu (n:m) Odejmowanie od uniwersum Firmy Kupowały Towary Śledzie Zupa Pasztet Chipsy Selekcja z zaprzeczeniem Firmy Nazwa= Pasztet (Kupowały) Nazwa<> Pasztet (Kupowały) {1,2,3,4,5,6, 10, 12} odpowiedź prawidłowa {1,2,3,4,5,6,8,9,10,11,12} odpowiedź błędna dr inż. Witold Rekuć Bazy danych 131
132 Przypadek wiele do wielu (n:m) Odejmowanie od uniwersum Firmy Towary Śledzie Zupa Pasztet Chipsy Nazwa= Pasztet (Kupowały) Nazwa= Zupa (Kupowały) {7,8,9,11} {2,4,5,6,8} = {7,9,11} odpowiedź prawidłowa Kupowały Nazwa= Pasztet and Nazwa<> Zupa (Kupowały) {7, 8, 9, 11} odpowiedź błędna Selekcja z zaprzeczeniem dr inż. Witold Rekuć Bazy danych 132
133 Przemianowanie atrybutów Firmy Nr Nazwa 0 Nasza Firma 1 Abeja 2 Audi 3 Pafawag 4 Iase 5 Dolmed Ulica Nasza Abejowska Audiego Wagonowa Energetyczna Medyczna KodMjc Telefon Dokumenty Nr NrSprzerdawcy 1/02 0 2/02 0 1/02 1 3/02 0 2/02 3 4/02 0 NrNabywcy Data {NrSprzedawcy} (Dokumenty) {NrNabywcy} (Dokumenty) ) [??=Nr ]Firmy ta nazwa powinna być wspólna dr inż. Witold Rekuć Bazy danych 133
134 SELECT Osoba.Pesel, [Pesel rodzica] AS Pesel, [Pesel dziadka] AS Pesel, [Pesel pradziadka] AS Pesel FROM ((Osoba INNER JOIN...)...)... ; dr inż. Witold Rekuć Bazy danych 134
135 V. Definicja, zastosowanie i realizacja operacji na tabelach: dzielenie Operacje na tabelach Operacje relacyjne Projekcja Selekcja Złączenia Dzielenie Operacje teoriomnogościowe Suma Iloczyn Różnica niesymetryczna Dopełnienie Przemianowanie dr inż. Witold Rekuć Bazy danych 135
136 Operacja dzielenia Dane są tabele: Utworzymy: tabelę r(r) o nagłówku R, którą nazwiemy dzielną, tabelę s(s) o nagłówku S),którą nazwiemy dzielnikiem. tabelę q(t) o nagłówku T, którą nazwiemy ilorazem, przy czym z definicji, nagłówek T = R S q(t) = r(r) s(s) = { t : dla każdej t s s, istnieje t r r taka, że t r [R-S]= t i t r [S] = t s } gdzie t s jest wierszem s, a istnieje t r jest wierszem r. Nieformalnie: operacja dzielenia znajduje te wiersze dzielnej, które łączą się z każdym wierszem dzielnika dr inż. Witold Rekuć Bazy danych 136
137 Przykład Obiekt Nazwa Muzeum Adres Muzealna Grupa Numer 1 Liczność 10 Zwiedziła Nazwa Muzeum Park zdrojowy Numer 1 1 Park zdrojowy Parkowa 2 50 Muzeum Muzeum 3 Podać, które grupy zwiedziły już każdy obiekt: Zwiedziła Obiekt Zwiedziła Nazwa Muzeum Park zdrojowy Muzeum Numer Obiekt Nazwa Muzeum Park zdrojowy Adres Muzealna Parkowa Muzeum 3 {Nazwa,Numer} {Nazwa, Adres} Grupy Numer 1 Numery grup, które w tabeli Zwiedziła łączą się z każdym obiektem dr inż. Witold Rekuć Bazy danych 137
138 Przykład Obiekt Nazwa Muzeum Adres Muzealna Grupa Numer 1 Liczność 10 Zwiedziła Nazwa Muzeum Park zdrojowy Numer 1 1 Park zdrojowy Parkowa 2 50 Muzeum Muzeum 3 Podać obiekty zwiedzone już przez każdą grupę: Zwiedziła Grupa Zwiedziła Nazwa Muzeum Park zdrojowy Muzeum Muzeum Numer Grupa Numer Liczność {Nazwa,Numer} {Numer, Liczność} Obiekty Nazwa Muzeum Nazwy obiektów, które w tabeli Zwiedziła łączą się z każdą grupą dr inż. Witold Rekuć Bazy danych 138
139 Realizacja operacji dzielenia za pomocą kwerend q = r s R-S ( r ) R-S (( R-S ( r ) s) r) r s R-S ( r ) rob1 ( rob1 s ) kwerenda tworząca tabelę rob2 kwerenda tworząca tabelę rob1 rob2 r rob2 r kwerenda usuwająca rob2 kwerenda usuwająca rob1 R-S (rob2) rob1 dr inż. Witold Rekuć Bazy danych 139
140 Realizacja operacji dzielenia w SQL select Nazwa from Zwiedziła as r1 where not exists (select * from Grupa where not exists ( select * from Zwiedziła as r2 where (r1.nazwa=r2.nazwa) and (r2.numer=grupa.numer ))); dr inż. Witold Rekuć Bazy danych 140
141 VI. Podstawy normalizacji relacyjnej bazy danych: zależności funkcyjne i ich rodzaje, dekompozycja relacji i ich schematów, formy normalne schematów relacji, denormalizacja Anomalie aktualizacji: - niemożność dodania nowych wierszy do tabeli w przypadku, gdy wiersze nie są kompletne, - możliwość niekontrolowanej straty danych przy usuwaniu wierszy, - niebezpieczeństwo wprowadzenia sprzeczności w danych przy aktualizacji pól wierszy. Nadmiar czynności i danych: - wielokrotna aktualizacja zduplikowanych danych, - możliwe większe użycie pamięci. dr inż. Witold Rekuć Bazy danych 141
142 Rozkład (dekompozycja) tabeli (relacji) Dane są: - relacja r(r) - zbiory X 1, X 2,...,X p takie, że X 1 X 2... X p = { A 1,A 2,...,A k } Rozkładem (dekompozycją) tabeli r(r) na X 1, X 2,...,X p nazywamy zestaw tabel, powstałych w wyniku projekcji tabeli r na zbiory X 1, X 2,...,X p : X1 (r), X2 (r),..., Xp (r), gdzie: Xi (r) jest to operacja projekcji - przekształcenia tabeli r do postaci o nagłówku X i dr inż. Witold Rekuć Bazy danych 142
143 Przykład r ( A B C D ) a1 b1 c1 d1 a2 b3 c2 d2 a3 b2 c1 d1 a4 b1 c3 d3 X1={A,B,C) i X2={C,D} X1 (r) = q1 (A B C ) a1 b1 c1 a2 b3 c2 a3 b2 c1 a4 b1 c3 X2 (r) = q2 (C D ) c1 d1 c2 d2 c3 d3 dr inż. Witold Rekuć Bazy danych 143
144 Rozkład tabel bez straty danych Rozkład tabeli r(r) na X 1, X 2,...,X p nazywamy rozkładem bez straty danych jeżeli: X1 (r) 2 (r)... Xp (r) = r(r) gdzie: oznacza operację złączenia naturalnego Uwaga: rozkład tabeli jest bez straty danych, gdy jest odwracalny. dr inż. Witold Rekuć Bazy danych 144
145 Przykład 1 r ( A B C D ) a1 b1 c1 d1 a2 b3 c2 d2 a3 b2 c1 d1 a4 b1 c3 d3 X1={A,B,C) i X2={C,D} X1 (r) = q1 ( A B C ) a1 b1 c1 a2 b3 c2 a3 b2 c1 a4 b1 c3 X2 (r) = q2 ( C D ) c1 d1 c2 d2 c3 d3 Czy powyższy rozkład jest bez straty danych? Złączmy naturalnie tabele q1 i q2. q1 ( A B C ) a1 b1 c1 a2 b3 c2 a3 b2 c1 a4 b1 c3 q2 ( C D ) c1 d1 c2 d2 c3 d3 q ( A B C D ) a1 b1 c1 d1 a2 b3 c2 d2 a3 b2 c1 d1 a4 b1 c3 d3 dr inż. Witold Rekuć Bazy danych 145
146 Przykład 2 r (A B C D ) a1 b1 c1 d1 a2 b3 c2 d2 a3 b2 c1 d1 a4 b1 c3 d3 R1={A,B) i R2={C,D} R2 (r) = q2 ( C D ) c1 d1 c2 d2 c3 d3 R1 (r) = q1 ( A B ) a1 b1 a2 b3 a3 b2 a4 b1 R1 (r) R2 (r)? r(r) Przykład 3 R1={A,C) i R2={B,C,D} Przykład 4 R1={A,B) i R2={A,C,D} Przykład 5 R1={A,B,C,D) i R2={D} dr inż. Witold Rekuć Bazy danych 146
147 Przykład 6 a) R1={NumerSklepu, AdresSklepu}, R2={NumerSklepu,SymbolTowaru, NazwaTowaru, StanMagazynowy, Data, IlośćSprzedana} dr inż. Witold Rekuć Bazy danych 147
148 b) R1={SymbolTowaru, NazwaTowaru, StanMagazynowy}, R2={NumerSklepu,AdresSklepu,SymbolTowaru, Data, IlośćSprzedana} dr inż. Witold Rekuć Bazy danych 148
149 c) R1={NumerSklepu, SymbolTowaru, Data, AdresSklepu}, R2={NumerSklepu, SymbolTowaru, Data, NazwaTowaru, StanMagazynowy} R3={NumerSklepu, SymbolTowaru, Data, IlośćSprzedana} dr inż. Witold Rekuć Bazy danych 149
150 d) R1={NumerSklepu, AdresSklepu, StanMagazynowy}, R2={NumerSklepu, NazwaTowaru, Data} R3={NumerSklepu, IlośćSprzedana} R4={SymbolTowaru,IlośćSprzedana} dr inż. Witold Rekuć Bazy danych 150
151 Dlaczego czynność rozkładu tabel ma znaczenie praktyczne? Czynność rozkładu tabel ma znaczenie praktyczne ponieważ umożliwia modyfikację złych projektów baz danych do postaci dobrej. Na czym może polegać zło projektu bazy danych? Dlaczego rozkład tabel usuwa złe własności projektu bazy danych? W jaki sposób rozpoznać złe projekty bazy danych? dr inż. Witold Rekuć Bazy danych 151
152 Na czym może polegać zło projektu bazy danych? klucz główny dr inż. Witold Rekuć Bazy danych 152
153 Wstaw wiersz 2 Mokra 34 null null null null null Wstaw wiersz null null 004 Kawa 0 null null klucz główny dr inż. Witold Rekuć Bazy danych 153
154 Usuń wiersz, który spełnia warunek: NumerSklepu = 3 dr inż. Witold Rekuć Bazy danych 154
155 Zmień wartość pola StanMagazynowy na 300 w wierszu, który spełnia warunek: SymbolTowaru = 003! dr inż. Witold Rekuć Bazy danych 155
156 Zmień wartość pola StanMagazynowy na 300 w wierszach, które spełniają warunek: SymbolTowaru = wykonaj wielokrotnie czynność aktualizacji wierszy tabeli dr inż. Witold Rekuć Bazy danych 156
157 Co jest złego w projekcie tabeli Tabela1: - niemożność dodania nowych wierszy do tabeli w przypadku, gdy wiersze nie są kompletne, - możliwość niekontrolowanej straty danych przy usuwaniu wierszy, - niebezpieczeństwo wprowadzenia sprzeczności w danych przy aktualizacji pól wierszy, - wielokrotna aktualizacja zduplikowanych danych, - możliwe większe użycie pamięci. dr inż. Witold Rekuć Bazy danych 157
158 Jakie są konsekwencje, ogólnie: anomalie aktualizacji: - niemożność dodania nowych wierszy do tabeli w przypadku, gdy wiersze nie są kompletne, - możliwość niekontrolowanej straty danych przy usuwaniu wierszy, - niebezpieczeństwo wprowadzenia sprzeczności w danych przy aktualizacji pól wierszy, nadmiar czynności i danych: - wielokrotna aktualizacja zduplikowanych danych, - możliwe większe użycie pamięci. dr inż. Witold Rekuć Bazy danych 158
159 Jakie są sposoby unikania negatywnych zjawisk, takich jak : anomalie aktualizacji i nadmiar danych oraz nadmiar czynności? Odpowiedź: normalizacja struktury tabel. Tabela, która ma kolumny o dziedzinach wartości skalarnych jest w pierwszej postaci normalnej. Pierwsza postac normalna nie gwarantuje unikniecia anomalii i nadmiaru. Potrzebne jest zapewnienie, by tabele miały strulturę określoną przez wyższe postaci normalne: 2,3,3BCNF, 4, 5. dr inż. Witold Rekuć Bazy danych 159
160 Co dalej więc? pojęcie zależności funkcyjnej, pojęcie schematu relacyjnego jako modelu nagłówka tabeli, wnioskowanie o zależnościach funkcyjnych trywialne i nietrywialne zależności funkcyjne wyznaczanie kluczy tabeli na podstawie zależności funkcyjnych niepełna zależność funkcyjna od klucza i druga postać normalna, przechodnia zależność funkcyjna od klucza i trzecia postać normalna. dr inż. Witold Rekuć Bazy danych 160
161 Zależności funkcyjne między danymi Jaka jest data urodzenia osoby o numerze pesel ? DataUrodzenia = f (pesel), du = DataUrodzenia (pesel) PESELE DATY_URODZENIA Pesel Data urodzenia dr inż. Witold Rekuć Bazy danych 161
162 Jaką ocenę otrzymał student o numerze indeksu _ ? Ocena = f (Numer_Indeksu, Kod_Przedmiotu, Data) oc = Ocena (Numer_Indeksu, Kod_Przedmiotu, Data) Numer_indeksu Kod_przedmiotu Data Ocena _ Mat ,0 _ Fiz ,0 _ Chem ,0 dr inż. Witold Rekuć Bazy danych 162
163 Numer_indeksu Nazwisko Kod_przedmiotu Data Ocena _ Klinton Mat ,0 _ Klinton Fiz ,0 _ Klinton Chem ,0 dr inż. Witold Rekuć Bazy danych 163
164 Jakie zależności funkcyjne można by wskazać w tabeli niżej: dr inż. Witold Rekuć Bazy danych 164
165 Jakie zależności funkcyjne można by wskazać w bazie danych: dr inż. Witold Rekuć Bazy danych 165
166 Określenie zależności funkcyjnej między danymi w tabeli Dane są: - tabela r(r), o R(A 1, A 2,..., A n ) - wybieramy niepuste zbiory X, Y {A 1, A 2,..., A n } W tabeli r jest spełniona zależność funkcyjna X Y wtedy i tylko wtedy, gdy dla każdej wartości x X (r) liczba wierszy w X Y (r) jest równa 1 dr inż. Witold Rekuć Bazy danych 166
167 Dana jest tabela: r ( A B C D ) a1 b1 c1 d1 a2 b3 c2 d2 a3 b2 c1 d1 a4 b1 c3 d3 Przykład 1 Czy {C} {D}? X = {C} {C} (r) = q ( C ) c1 c2 c3 X = {C} i Y = {D} {C,D} (r) = q ( C D ) c1 d1 c2 d2 c3 d3 dr inż. Witold Rekuć Bazy danych 167
168 Dana jest tabela: r ( A B C D ) a1 b1 c1 d1 a2 b3 c2 d2 a3 b2 c1 d1 a4 b1 c3 d3 Przykład 2 Czy {C,D} {A,B}? {A,B,C,D} (r) = q ( A B C D ) a1 b1 c1 d1 a3 b2 c1 d1 a2 b3 c2 d2 a4 b1 c3 d3 Przykład 3 Czy {B,C} {C,D}? {B,C,D} (r) = q ( B C D ) b1 c1 d1 b2 c1 d1 b3 c2 d2 b1 c3 d3 dr inż. Witold Rekuć Bazy danych 168
169 Dana jest tabela tabela1( NumerSklepu, AdresSklepu, SymbolTowaru, NazwaTowaru, StanMagazynowy, Data, IlośćSprzedana ) klucz={numersklepu,symboltowaru, Data} Przykłady 5) czy {NumerSklepu, SybmolTowaru, Data} {AdresSklepu, NazwaTowaru, IlośćSprzedana}? 6) czy {NumerSklepu, SymbolTowaru, Data} {NrSklepu, SymbolTowaru}? 7) czy {NumerSklepu} {AdresSklepu}? 8) czy {SymbolTowaru} {NazwaTowaru}? 9) czy {SymbolTowaru} {IlośćSprzedana}? dr inż. Witold Rekuć Bazy danych 169
170 NumerSklepu AdresSklepu SymbolTowaru NazwaTowaru,StanMagazynowy NumerSklepu,SymbolTowaru,Data IlośćSprzedana dr inż. Witold Rekuć Bazy danych 170
171 Tabela2 NrKasety Tytuł NrKlienta Nawisko NrKasety,NrKlienta,DataWypozycz Zapłacono NrKasety,NrKlienta,DataWypozycz Tytuł NrKasety,NrKlienta,DataWypozycz Nazwisko dr inż. Witold Rekuć Bazy danych 171
172 Schemat relacyjny Nagłówek tabeli nie jest prostym zbiorem nazw, lecz zbiorem nazw, między którymi występują zależności funkcyjne. Uzupełnimy schemat relacji R o zależności funkcyjne. Schematem relacyjnym (nagłówkiem tabeli) oznaczonym przez R nazywamy parę dwóch zbiorów: Z - zbioru atrybutów (kolumn) i F - zbioru zależności funkcyjnych między atrybutami. Schemat relacyjny jest oznaczany za pomocą wyrażenia: gdzie R( Z, F ) R jest nazwą schematu, Z jest zbiorem atrybutów Z={A 1,A 2,...,A n } F jest zbiorem zależności funkcyjnych w Z F={X Y: X,Y Z} Przykład 1 R( {A,B,C}, { AB C, B C } ) R( A B C ) dr inż. Witold Rekuć Bazy danych 172
173 Przykład 2 R ( Z, F ) dla tabeli Tabela1 Z = { F = { NrKasety, Tytuł, NrKlienta, Nazwisko, DataWypozycz, Zapłacono} NrKasety Tytuł, NrKlienta Nawisko, NrKasety,NrKlienta,DataWypozycz Zapłacono } dr inż. Witold Rekuć Bazy danych 173
174 Wnioskowanie o zależnościach funkcyjnych Może być wiele zależności funkcyjnych w nagłówku tabeli. Wiele z nich możemy wywnioskować na podstawie zależności znanych. Reguły wnioskowania: 1) zwrotność: jeżeli Y X, to X Y 2) rozszerzenie: jeżeli X Y, to XZ YZ 3) addytywność: jeżeli X Y i X Z to X YZ 4) projekcyjność: jeżeli X YZ to X Y i X Z 5) przechodniość: jeżeli X Y i Y Z, to X Z 6) pseudo-przechodniość: jeżeli X Y i YZ W, to XZ W Schemat relacji Reguły wnioskowania Pozostałe zależności funkcyjne dr inż. Witold Rekuć Bazy danych 174
175 1) zwrotność: jeżeli Y X, to X Y {Pesel, Nazwisko} {Pesel, Nazwisko}, {Pesel, Nazwisko} {Nazwisko}, {Pesel, Nazwisko} {Nazwisko} {MarkaSamochodu, NazwiskoPremiera} {MarkaSamochodu}, {MarkaSamochodu, NazwiskoPremiera} {NazwiskoPremiera} Wniosek: każdy zestaw atrybutów określa funkcyjnie siebie i wszystkie swoje składniki 2) rozszerzenie: jeżeli X Y, to XZ YZ jeżeli {Pesel} {Nazwisko}, to {Pesel, DataZakupu} {Nazwisko, DataZakupu} Wniosek: zestaw atrybutów po obu stronach zależności funkcyjnej możemy rozszerzyć o kolejne dowolne atrybuty nadal mając zależność funkcyjną dr inż. Witold Rekuć Bazy danych 175
176 3) addytywność: jeżeli X Y i X Z to X YZ jeżeli {Pesel} {Nazwisko} i {Pesel} {Zawód} to {Pesel} {Nazwisko, Zawód} Wniosek: jeżeli dany zestaw atrybutów określa funkcyjnie dwa zestawy atrybutów, to te dwa ostatnie zestawy atrybutów możemy połączyć w jeden mając nadal zależność funkcyjną 4) projektywność: jeżeli X YZ to X Y i X Z jeżeli {Pesel} {Nazwisko, Zawód} to {Pesel} {Nazwisko} i {Pesel} {Zawód} Wniosek: jeżeli pewien zestaw atrybutów określa funkcyjnie jakiś zestaw atrybutów, to określa funkcyjnie każdy składnik tego ostatniego 5) przechodniość: jeżeli X Y i Y Z, to X Z jeżeli {Pesel} {DataUrodzenia} i {DataUrodzenia} {DzieńTygodnia} to {Pesel} {DzieńTygodnia} Wniosek: jeżeli zestaw atrybutów określa funkcyjnie pewien zestaw a ten z kolei określa funkcyjnie trzeci zestaw to pierwszy z nich także określa funkcyjnie trzeci dr inż. Witold Rekuć Bazy danych 176
177 Przykład R( {A,B,C}, { B C } ) R( {A,B,C}, { B C } ) Reguły wnioskowania zwrotność: A A, B B, C C, AB A, AB B, AB AB, AC A, AC C, AC AC, BC B, BC C, BC BC, ABC A, ABC B, ABC C, ABC AB, ABC AC, ABC BC, ABC ABC, rozszerzenie: AB AC, addytywność: AB ABC, projektywność: AB A, AB AC, AB BC AB B, AB AB, AB C dr inż. Witold Rekuć Bazy danych 177
178 Domknięcie zbioru zależności funkcyjnych w schemacie relacyjnym (nagłówku tabeli) Dany jest schemat relacyjny (nagłówek tabeli) R ( Z, F ), w którym Z jest zbiorem nazw atrybutów, a F zbiorem zależności funkcyjnych. Domknięciem zbioru zależności F, oznaczanym przez F +, nazywamy zbiór wszystkich zależności w R : należących do F i pozostałych, wyprowadzonych za pomocą reguł wnioskowania. Przykład R ( {A,B,C}, { B C } ) F + = { B C, A A, B B, C C, AB A, AB B, AB AB, AC A, AC C, AC AC, BC B, BC C, BC BC, ABC A, ABC B, ABC C, ABC AB, ABC AC, ABC BC, ABC ABC, AB C, AB AC, AB BC, AB ABC } dr inż. Witold Rekuć Bazy danych 178
179 Trywialne i nietrywialne zależności funkcyjne Zależność funkcyjna X Y jest zależnością trywialną, jeżeli Y X. Zależności pozostałe są zależnościami nietrywialnymi Przykład R( {A,B,C}, { B C } ) F + = { B C, A A, B B, C C, AB A, AB B, AB AB, AC A, AC C, AC AC, BC B, BC C, BC BC, ABC A, ABC B, ABC C, ABC AB, ABC AC, ABC BC, ABC ABC, AB C, AB AC, AB BC, AB ABC } Trywialne zależności funkcyjne są spełnione w każdej relacji o danym schemacie dr inż. Witold Rekuć Bazy danych 179
180 Określenie klucza tabeli za pomocą zależności funkcyjnych Dany jest schemat relacyjny R( Z, F ) - nagłówek pewnej tabeli. Kluczem tabeli o nagłówku (schemacie relacyjnym) niepusty zbiór atrybutów K Z taki, że: R( Z, F ) nazywamy a) K określa funkcyjnie wszystkie atrybuty (K Z F + ) i b) żaden podzbiór właściwy K nie spełnia (a) (dla każdego K' K, K' R F + ). Wniosek Klucz to taki minimalny zbiór atrybutów należący Z, który funkcyjnie określa wszystkie atrybuty Z, każdy atrybut z osobna lub każdy podzbiór Z. dr inż. Witold Rekuć Bazy danych 180
181 Przykłady Firmy(Nr, Nazwa, Ulica,KodMjc, Telefon) Towary(Symbol, Nazwa, StawkaVAT, JM) Dokumenty(NrDokumentu, NrSprzedawcy, NrNabywcy, Data) PD(NrDokumentu, NrSprzedawcy,NrPozycji, SmbTow, Ilość, CenaJedn) dr inż. Witold Rekuć Bazy danych 181
182 Algorytm określenia klucza tabeli na podstawie zależności funkcyjnych Dany jest schemat relacyjny R( Z, F ) oraz zbiór X Z. Domknięciem danego zbioru atrybutów X, oznaczanym przez X +, nazywamy zbiór atrybutów z Z, które w schemacie R zależą funkcyjnie od X lub pewnych podzbiorów X. Algorytm wyznaczania X + jako domknięcia X: 1) w X + umieść wszystkie atrybuty X, 2) w X + umieść wszystkie atrybuty z Z-X, które zależą funkcyjnie od dowolnych podzbiorów X, 3) zakończ, gdy nie będzie możliwe dodawanie atrybutów do X +. dr inż. Witold Rekuć Bazy danych 182
183 Przykład 1 R( {A,B,C,D,E}, { AB C, D E } ) a) X=AB 1) X + = AB, bo X=AB 2) X + = ABC, bo AB C 3) stop Odpowiedź: X + = ABC b) X=ABD 1) X + = ABD, bo X=ABD 2) X + = ABCD, bo AB C 3) X + = ABCDE, bo D E 4) stop Odpowiedź: X + = ABCDE Który ze zbiorów X jest kluczem? dr inż. Witold Rekuć Bazy danych 183
184 Przykład 2: R( {A,B,C,D,E,F,G}, {AB C, C A, BC EF, F G } ) Wyznaczyć klucz Hipoteza1 X=BC 1) X + = BC 2) X + = BCEF 3) X + = ABCEF 4) X + = ABCEFG 5) stop Hipoteza3 X=AB 1) X + = AB 2) X + = ABC 3) X + = ABCEF 4) X + = ABCEFG 5) stop Hipoteza2 X=BCD 1) X + = BCD 2) X + = BCDEF 3) X + = ABCDEF 4) X + = ABCDEFG 5) stop Hipoteza4 X=ABD 1) X + = ABD 2) X + = ABCD 3) X + = ABCDEF 4) X + = ABCDEFG 5) stop K1=BCD K2=ABD dr inż. Witold Rekuć Bazy danych 184
185 Atrybuty kluczowe i niekluczowe Atrubut A Z nazywamy atrybutem kluczowym wtedy i tylko wtedy, gdy wchodzi w skład pewnego klucza schematu R(Z,F). Pozostałe atrybuty ze zbioru Z nazywany niekluczowymi Przykłady Firmy(Nr, Nazwa, Ulica, KodMjc, Telefon) Towary(Symbol, Nazwa, StawkaVAT, JM) Dokumenty(NrDokumentu, NrSprzedawcy, NrNabywcy, Data) PD(NrDokumentu, NrSprzedawcy, NrPozycji, SmbTow, Ilość, CenaJedn Zwiedziła(NrGrupy, NazwaObiektu) dr inż. Witold Rekuć Bazy danych 185
186 Niepełne zależności funkcyjne od klucza Dany jest schemat relacyjny R( Z, F ) z kluczem K oraz atrybut A Z takie, że A jest niekluczowy Zależność K {A} jest niepełną zależnością funkcyjną A od klucza K, wtedy i tylko wtedy, gdy istnieje takie niepuste K, będące podzbiorem właściwym K, że K {A}. Mówimy wtedy, że A nie w pełni zależy od K. K A K dr inż. Witold Rekuć Bazy danych 186
187 Przykład Tabela2 NrKasety Tytuł NrKlienta Nawisko NrKasety,NrKlienta,DataWypozycz Zapłacono NrKasety,NrKlienta,DataWypozycz Tytuł NrKasety,NrKlienta,DataWypozycz Nazwisko zależności niepełne atrybut kluczowy atrybut niekluczowy dr inż. Witold Rekuć Bazy danych 187
188 Skutkami występowania niepełnych zależności funkcyjnych atrybutów niekluczowych od kluczy są: - anomalie aktualizacji, - nadmiar danych i czynności. dr inż. Witold Rekuć Bazy danych 188
189 Przykład 1 R({indeks, kod_prz, data, ocena, nazwa_prz}, {indeks, kod_prz, data ocena, kod_prz nazwa_prz} ) K={indeks, kod_prz, data} r ( indeks, kod_prz, data, ocena, nazwa_prz ) i1 kp1 d1 c1 np1 i1 kp2 d2 c3 np2 i2 kp2 d3 c2 np2 np3 i3 kp2 d2 c4 np2 i1 null kp2 kp4 d3 null c3 null np2 np4 Dodaj do tabeli nowy przedmiot. Usuń wiersze dla daty d1. Czy można po tej operacji określić nazwę przedmiotu kp1? Zmień nazwę przedmiotu kp2 na np3. Co będzie, gdy zapomnimy zaktualizować wszystkie pozycje? Czy jest w tabeli nadmiar danych? Czy możemy spodziewać nadmiaru czynności przy aktualizacji danych? odmowa! dr inż. Witold Rekuć Bazy danych 189
190 Przykład Tabela2 Dodaj do tabeli nowego klienta, który jeszcze nic nie wypożyczył. Usuń wiersze dla daty > Czy możesz znaleźć tytuł kasety o numerze 1? Zmień tytuł kasety Speed na Prędkość. Czy jest w tabeli nadmiar danych? Czy możemy spodziewać nadmiaru czynności przy aktualizacji danych? dr inż. Witold Rekuć Bazy danych 190
191 dr inż. Witold Rekuć Bazy danych 191
192 Rozkład schematu relacyjnego (nagłówka tabeli) Dane są: schemat relacyjny (nagłówek tabeli) R(Z, F) niepuste zbiory X 1, X 2,...,X p Z takie, że ich suma daje z powrotem zbiór Z, czyli X 1 X 2... X p = Z Rozkładem (dekompozycją) schematu relacyjnego R(Z, F) na X 1, X 2,...,X p nazywamy zestaw schematów relacyjnych: R 1, R 2,...,R p takich, że R i = R i (X i,f i ), F i F dla i = 1,..., p. W wyniku rozkładu nagłówka danej tabeli otrzymujemy p nowych nagłówków, które zawierają zbiory atrybutów odpowiednio X 1, X 2,...,X p wraz z zależnościami między tymi atrybutami F 1, F 2,...,F p, wziętymi z F. dr inż. Witold Rekuć Bazy danych 192
193 Przykład SchematTabeli2( {NrKasety, NrKlienta, DataWypozycz, Nazwisko, Tytuł, Zapłacono}, {NrKasety,NrKlienta,DataWypozycz Zapłacono, NrKasety,NrKlienta,DataWypozycz Tytuł, NrKasety,NrKlienta,DataWypozycz Nazwisko, NrKasety Tytuł, NrKlienta Nawisko} ) SchematTabeli2 rozkładamy na: X 1 = {NrKasety, NrKlienta, DataWypozycz, Nazwisko, Zapłacono } X 2 = {NrKasety, Tytuł} Otrzymujemy schematy: SchematDlaR1( {NrKasety, NrKlienta, DataWypozycz, Nazwisko, Zapłacono}, { NrKasety,NrKlienta,DataWypozycz Zapłacono, NrKasety,NrKlienta,DataWypozycz Nazwisko, NrKlienta Nazwisko} ) SchematDlaR2( {NrKasety, Tytuł}, {NrKasety Tytuł} ) dr inż. Witold Rekuć Bazy danych 193
194 Tabela2 Tabela21 Tabela22 dr inż. Witold Rekuć Bazy danych 194
195 Rozkład bez straty danych usuwający ze schematu zależności niepełne od klucza Dany jest schemat (nagłówek) R(Z,F) z kluczem K oraz zbiorem atrybutów niekluczowych X, dla których istnieje podzbiór właściwy K' klucza K taki, że K' X Rozkład bez straty danych usuwający ze schematu zależności niepełne od klucza polega na utworzeniu: schematu R 1 (K' X, K' X) zawierającego K oraz atrybuty X wraz z zależnością K' X oraz schematu R 2 (Z X, F P ) zawierającego wszystkie atrybuty oprócz X oraz pozostałe zależności funkcyjne F p. Tabelę o schemacie (nagłówku) R(Z,F) można zastąpić dwiema tabelami o schematach (nagłówkach) R 1 (K' X, K' X) oraz R 2 (Z X, F P ). dr inż. Witold Rekuć Bazy danych 195
196 Przykład R( indeks, kod_prz, data, ocena, nazwa_prz ) R1 ( kod_prz, nazwa_prz ) R2 ( indeks, kod_prz, data, ocena ) dr inż. Witold Rekuć Bazy danych 196
197 Przykład 1: R( {A,B,C,D,E,F}, {AB F, AC F, B DE, C DE, B C, C B} ) K1 = {A,B} K2 = {A,C} Atrybuty niekluczowe D, E, F AB DE jest niepełna od klucza bo B DE AC DE jest niepełna od klucza bo C DE Są dwa warianty rozkładów: * Interpretacja: R={Miesiąc, Pesel, Nip, Nazwisko, Adres, Dochód} dr inż. Witold Rekuć Bazy danych 197
198 Wariant 1 R1( {B,D,E}, {B DE} ), K = {B} Atrybuty niekluczowe: D, E R2( {A,B,C,F}, {AB F, AC F, B C, C B } ) K1 = {A, B}, K2 = {A, C} Atrybuty niekluczowe: F Wariant 2 R1( {C,D,E}, {C DE} ), K = {C} Atrybuty niekluczowe: D, E R2( {A,B,C,F}, {AB F, AC F, B C, C B } ) K1 = {A, B}, K2 = {A, C} Atrybuty niekluczowe: F dr inż. Witold Rekuć Bazy danych 198
199 Przykład 2: R( {A,B,C,D,E,F}, {ABC F, BC D, B E} ) K = {A,B,C} Atrybuty niekluczowe D, E, F ABC D jest niepełna od klucza bo BC D R1( {B,C,D}, {BC D} ), K = {BC} Atrybuty niekluczowe: D R2( {A,B,C,E,F}, {ABC F, B E} ) K = {A, B, C}, Atrybuty niekluczowe: E,F ABC E jest niepełna od klucza bo B E R21( {B,E}, {B E} ), K = {B} Atrybuty niekluczowe: E R22( {A,B,C,F}, {ABC F} ), K = {A,B,C} Atrybuty niekluczowe: F dr inż. Witold Rekuć Bazy danych 199
200 Zależności funkcyjne przechodnie od klucza Dany jest schemat relacyjny R( Z, F ) z kluczem K oraz niekluczowy atrybut A Z. Atrybut A jest przechodnio zależny od klucza K wtedy i tylko wtedy, gdy istnieje taki zbiór atrybutów X Z nie będący kluczem oraz nie zawierający A (A X), który wyznacza funkcyjnie A. K X A dr inż. Witold Rekuć Bazy danych 200
201 Przykład 1 R ( Kod, Nazwa, kodwoj, nazwawoj ) km1 nm1 kw1 nw1 km2 nm2 kw1 nw1 km3 nm3 kw2 nw2 km4 nm4 kw1 nw1 Przykład 2 K Nr Nazwa Ulica KodMjc Telefon Nazwa (Mjc) KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Wałbrzych DL 2 Audi Audiego 2 Opole OP 3 Pafawag Wagonowa 2 Opole OP 4 Iase Energetyczna Wałbrzych DL 5 Dolmed Medyczna 1 Wrocław DL dr inż. Witold Rekuć Bazy danych 201
202 Skutkami występowania przechodnich zależności funkcyjnych atrybutów niekluczowych od kluczy są: - anomalie aktualizacji, - nadmiar danych i czynności. dr inż. Witold Rekuć Bazy danych 202
203 Przykład R ( Kod, Nazwa, kodwoj, nazwawoj ) km1 nm1 kw1 nw1 km2 nm2 kw1 nw1a km3 nm3 kw2 nw2 km4 nm4 kw1 nw1 null null kw3 nw3 odmowa! Dodaj do tabeli nowe województwo, którym jeszcze nie mamy miejscowości. Usuń wiersze dla kodu km3. Czy można teraz określić nazwę województwa o kodzie kw2. Zmień nazwę województwa kw1 na nw1a. Czy jest w tabeli nadmiar danych? Czy możemy spodziewać nadmiaru czynności przy aktualizacji danych? dr inż. Witold Rekuć Bazy danych 203
204 Przykład K Nr Nazwa Ulica KodMjc Telefon Nazwa (Mjc) KodWoj 0 Nasza Firma Nasza Wrocław DL 1 Abeja Abejowska Wałbrzych DL 2 Audi Audiego 2 Opole OP 3 Pafawag Wagonowa 2 Opole OP 4 Iase Energetyczna Wałbrzych DL 5 Dolmed Medyczna 1 Wrocław DL Dodaj do tabeli nową miejscowość. Usuń wiersze dla numeru 2 i 3. Czy możesz określić województwo dla Opola? Zmień nazwę miejscowości o kodzie 3. Czy jest w tabeli nadmiar danych? Czy możemy spodziewać nadmiaru czynności przy aktualizacji danych? dr inż. Witold Rekuć Bazy danych 204
205 Rozkład bez straty danych usuwający ze schematu zależności przechodnie od klucza Dany jest schemat (nagłówek) R(Z,F) z kluczem K, atrybutem niekluczowym A oraz zbiorem atrybutów niekluczowych X, dla których X {A} Rozkład bez straty danych usuwający ze schematu zależności przechodnie od klucza polega na utworzeniu: schematu R 1 (X {A}, X {A}) zawierającego X oraz atrybut A wraz z zależnością X {A} oraz schematu R 2 (Z {A},F p ) zawierającego wszystkie atrybuty Z oprócz A oraz pozostałe zależności funkcyjne F p. Tabelę o schemacie (nagłówku) R(Z,F) można zastąpić dwiema tabelami o schematach (nagłówkach) R 1 (X {A}, X {A}) oraz R 2 (Z {A},F p ). dr inż. Witold Rekuć Bazy danych 205
206 Przykład R( Kod, Nazwa, kodwoj, nazwawoj ) R1( kodwoj, nazwawoj ) R2( Kod, Nazwa, kodwoj ) dr inż. Witold Rekuć Bazy danych 206
207 Przykład : R( {A,B,C,D,E,F}, {ABC F, F D, B E} ) K = {A,B,C} Atrybuty niekluczowe D, E, F ABC E ABC D jest niepełna od klucza bo, B E i B jest częścią klucza jest przychodnia od klucza bo ABC F i F D Usuńmy zależność niepełną: R1( {B,E}, {B E} ) K = {B} R2( {A,B,C,D,F}, {ABC F, F D} ) K = {A,B,C} Usuńmy zależność przechodnią: R21( {D,F}, {F D} ) K = {F} R22( {A,B,C,F}, {ABC F} ) K = {A,B,C} dr inż. Witold Rekuć Bazy danych 207
208 Normalizacja schematów relacji Pierwsza postać normalna (1PN) schematu relacyjnego Schemat relacyjny R(Z,F) jest w pierwszej postaci normalnej, jeżeli dziedzina wartości każdego atrybutu A Z zawiera wartości atomowe (niepodzielne). Przykład Wyrób brak normalizacji id nazwa wymiary producent id nazwa adres kraj adres_w_kraju 1PN Wyrób id nazwa w 1 w 2 w 3 id pr nazwa producenta kraj_ producenta adres_w_krajuproducenta dr inż. Witold Rekuć Bazy danych 208
209 Druga postać normalna (2PN) schematu relacyjnego Schemat relacyjny R(Z,F) jest w drugiej postaci normalnej, wtedy i tylko wtedy, gdy jest w pierwszej postaci normalnej i każdy niekluczowy atrybut A Z jest w pełni zależny funkcyjnie od każdego klucza tego schematu. Które schematy są w 2PN?: R( {A,B,C,D,E,F}, {ABC F, BC D, B E} ) R( {A,B,C,D,E,F}, {AB F, F DE, D C} ) R( {A,B,C,D,E,F}, {A F, BC D, B E, F BC} ) dr inż. Witold Rekuć Bazy danych 209
210 Trzecia postać normalna (3PN) schematu relacyjnego Schemat relacyjny R(Z,F) jest w trzeciej postaci normalnej, wtedy i tylko wtedy, gdy jest w drugiej postaci normalnej i każdy niekluczowy atrybut A Z jest nieprzechodnio zależny funkcyjnie od każdego klucza tego schematu. Które schematy są w 3PN?: R( {A,B,C,D,E,F}, {ABC F, BC D, B E} ) R( {A,B,C,D,E,F}, {AB F, F DE, D C} ) R( {A,B,C,D,E,F}, {AB F, AB D, AB E, AB C ) R( {A,B,C,D,E,F}, {AB DEF, AB C, C B ) dr inż. Witold Rekuć Bazy danych 210
211 Procedura normalizacji Start Opracowanie schematów relacji (R,F) Test na 1PN Korekta schematów są schematy nie spełniające wymogu 1PN? nie tak Test na 2PN i 3PN Rozkład schematów są schematy nie spełniające wymogu 2 i 3PN? nie tak Stop dr inż. Witold Rekuć Bazy danych 211
212 Celowa denormalizacja Modyfikacja schematu bazy danych do stanu naruszającego reguły dla postaci normalnych mająca na celu poprawienie szybkości wyszukiwania danych, kosztem nadmiaru danych i szybkości aktualizacji: 1) wprowadzenie przechodniej zależności od kluczy (3PN 2PN), 2) wprowadzenie niepełnej zależności od kluczy (2PN 1PN), 3) inne dr inż. Witold Rekuć Bazy danych 212
213 VII. Normalizacja relacyjnej bazy danych studium przypadku Karta urządzenia Typ urządzenia Id Nazwa Wymiary Wys. Szer Głęb. Numer inwentarzowy Data zakupu Data instalacji Producent Naprawy Id Nazwa Adres Kod kraju Nazwa Kraju Adres w kraju Data Koszt Kod wykonawcy Data ostatniego przeglądu dr inż. Witold Rekuć Bazy danych 213
214 Podejście analityczne dr inż. Witold Rekuć Bazy danych 214
215 1. Zbierzmy wszystkie dane w jednej tabeli Nr in we nt. Data Typ urządzenia Producent Naprawy Data ost. Zak upu Id Nazwa Wymiary Id Nazwa producenta Adres producenta Data Koszt Kod wykonawcy przeglądu Inst alac ji W ys. Sz er. G łę b. produ centa Kod kraju Nazwa Kraju Adres w kraju Czy wszystkie kolumny w tej tabeli są proste? Tabela NrInwent Data TypUrządzenia Producent Naprawy Data ost. przeglądu Zakupu Instalacji Id Nazwa Wymiary Id Nazwa Adres Producenta Data Koszt Kod Wykonawcy Wys Szer Głęb Kod Kraju Nazwa Kraju Adres w kraju Tabela nie jest w 1PN! dr inż. Witold Rekuć Bazy danych 215
216 2. Zlikwidujmy kolumny złożone, zastępując je wieloma kolumnami prostymi Nr in we nt. Data Typ urządzenia Producent Naprawy Data ost. Zak upu Id Nazwa Wymiary Id Nazwa producenta Adres producenta Data Koszt Kod wykonawcy przeglądu Inst alac ji W ys. Sz er. G łę b. produ centa Kod kraju Nazwa Kraju Adres w kraju Tabela Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt naprawy Kod wykonawcy naprawy Data ost. przeglądu Tabela jest w 1PN! dr inż. Witold Rekuć Bazy danych 216
217 3. Określmy nietrywialne zależności funkcyjne w tej tabeli Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Czy schemat (nagłówek) tej tabeli jest w postaci wyższej niż 1PN? Czy są w tym schemacie zależności niepełne atrybutów niekluczowych od kluczy? Czy są w tym schemacie zależności przechodnie atrybutów niekluczowych od kluczy? dr inż. Witold Rekuć Bazy danych 217
218 4. Określmy klucze tabeli Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Czy są w tej tabeli pojedyncze atrybuty, które określają funkcyjnie wszystkie atrybuty tej tabeli (pozwalają znaleźć jeden i tylko jeden wiersz)? Które atrybuty mogłyby kandydować do roli bycia kluczem? Numer inwentarzowy? Id typu? Id producenta? Kod kraju? Kod wykonawcy naprawy? dr inż. Witold Rekuć Bazy danych 218
219 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Numer inwentarzowy? Id typu? Id producenta? Kod kraju? Kod wykonawcy naprawy? dr inż. Witold Rekuć Bazy danych 219
220 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Numer inwentarzowy? Id typu? Id producenta? Kod kraju? Kod wykonawcy naprawy? dr inż. Witold Rekuć Bazy danych 220
221 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Numer inwentarzowy? Id typu? Id producenta? Kod kraju? Kod wykonawcy naprawy? dr inż. Witold Rekuć Bazy danych 221
222 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Numer inwentarzowy? Id typu? Id producenta? Kod kraju? Kod wykonawcy naprawy? dr inż. Witold Rekuć Bazy danych 222
223 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Numer inwentarzowy? Id typu? Id producenta? Kod kraju? Kod wykonawcy naprawy? dr inż. Witold Rekuć Bazy danych 223
224 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Czy są w tej tabeli złożone atrybuty, które określają funkcyjnie wszystkie atrybuty tej tabeli (pozwalają znaleźć jeden i tylko jeden wiersz)? Które atrybuty mogłyby kandydować do roli bycia kluczem? Może pewna kombinacja atrybutów ze zbioru?: { Numer inwentarzowy, Id typu, Id producenta, Kod kraju, Kod wykonawcy naprawy }? dr inż. Witold Rekuć Bazy danych 224
225 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Może : { Numer inwentarzowy, Data naprawy}? dr inż. Witold Rekuć Bazy danych 225
226 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu {Numer inwentarzowy, Data naprawy} {Numer inwentarzowy} { Koszt naprawy, Kod wykonawcy naprawy} { Data zakupu, Data instalacji, Id typu urządzenia, Nazwa typu urządzenia, Wys., Szer., Głęb., Id producenta, Nazwa producenta, Kod kraju producenta, Nazwa kraju producenta, Adres w kraju producenta, Data ost. przeglądu } dr inż. Witold Rekuć Bazy danych 226
227 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu {Numer inwentarzowy, Data naprawy} {Numer inwentarzowy, Data naprawy} { Koszt naprawy, Kod wykonawcy naprawy} { Data zakupu, Data instalacji, Id typu urządzenia, Nazwa typu urządzenia, Wys., Szer., Głęb., Id producenta, Nazwa producenta, Kod kraju producenta, Nazwa kraju producenta, Adres w kraju producenta, Data ost. przeglądu } dr inż. Witold Rekuć Bazy danych 227
228 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu {Numer inwentarzowy, Data naprawy} {Numer inwentarzowy, Data naprawy, Data zakupu, Data instalacji, Id typu urządzenia, Nazwa typu urządzenia, Wys., Szer., Głęb., Id producenta, Nazwa producenta, Kod kraju producenta, Nazwa kraju producenta, Adres w kraju producenta, Koszt naprawy, Kod wykonawcy naprawy, Data ost. przeglądu } dr inż. Witold Rekuć Bazy danych 228
229 {Numer inwentarzowy, Data naprawy} {Numer inwentarzowy, Data naprawy, Data zakupu, Data instalacji, Id typu urządzenia, Nazwa typu urządzenia, Wys., Szer., Głęb., Id producenta, Nazwa producenta, Kod kraju producenta, Nazwa kraju producenta, Adres w kraju producenta, Koszt naprawy, Kod wykonawcy naprawy, Data ost. przeglądu } Powyższy zbiór atrybutów {Numer inwentarzowy, Data naprawy} wyznacza funkcyjnie wszystkie atrybuty tabeli. Czy może więc być kluczem tej tabeli? dr inż. Witold Rekuć Bazy danych 229
230 Przypomnijmy sobie! Określenie klucza tabeli za pomocą zależności funkcyjnych Dany jest schemat relacyjny R( Z, F ) - nagłówek pewnej tabeli. Kluczem tabeli o nagłówku (schemacie relacyjnym) niepusty zbiór atrybutów K Z taki, że: R( Z, F ) nazywamy a) K określa funkcyjnie wszystkie atrybuty (K Z F + ) i b) żaden podzbiór właściwy K nie spełnia (a) (dla każdego K' K, K' R F + ). Wniosek Klucz to taki minimalny zbiór atrybutów należący Z, który funkcyjnie określa wszystkie atrybuty Z, każdy atrybut z osobna lub każdy podzbiór Z. dr inż. Witold Rekuć Bazy danych 230
231 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Czy prawdą jest, że: {Numer inwentarzowy} Odpowiedź: NIE {Numer inwentarzowy, Data naprawy, Data zakupu, Data instalacji, Id typu urządzenia, Nazwa typu urządzenia, Wys., Szer., Głęb., Id producenta, Nazwa producenta, Kod kraju producenta, Nazwa kraju producenta, Adres w kraju producenta, Koszt naprawy, Kod wykonawcy naprawy, Data ost. przeglądu } dr inż. Witold Rekuć Bazy danych 231
232 Nr in we nt. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządze nia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Data napr awy Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Czy prawdą jest, że: {Data naprawy} Odpowiedź: NIE {Numer inwentarzowy, Data naprawy, Data zakupu, Data instalacji, Id typu urządzenia, Nazwa typu urządzenia, Wys., Szer., Głęb., Id producenta, Nazwa producenta, Kod kraju producenta, Nazwa kraju producenta, Adres w kraju producenta, Koszt naprawy, Kod wykonawcy naprawy, Data ost. przeglądu } dr inż. Witold Rekuć Bazy danych 232
233 {Numer inwentarzowy, Data naprawy} {Numer inwentarzowy, Data naprawy, Data zakupu, Data instalacji, Id typu urządzenia, Nazwa typu urządzenia, Wys., Szer., Głęb., Id producenta, Nazwa producenta, Kod kraju producenta, Nazwa kraju producenta, Adres w kraju producenta, Koszt naprawy, Kod wykonawcy naprawy, Data ost. przeglądu } Wniosek: powyższy zbiór atrybutów, tzn., {Numer inwentarzowy, Data naprawy} a) wyznacza funkcyjnie wszystkie atrybuty tabeli i b) żaden jego podzbiór właściwy, tzn., ani {Numer inwentarzowy} ani {Data naprawy} nie wyznaczają funkcyjnie wszystkich atrybutów (a). Zbiór atrybutów {Numer inwentarzowy, Data naprawy} jest kluczem rozpatrywanej tabeli. dr inż. Witold Rekuć Bazy danych 233
234 5. Zbadajmy: czy schemat tej tabeli jest 3PN? Nr in w en t. Da ta na pr a wy Da ta za ku pu Da ta Ins tal acj i Id typ u urz ądz eni a Nazw a typu urząd zenia W y s. S z e r. G ł ę b. Id produ centa Nazwa producenta Kod kraju prod ucen ta Nazwa kraju producenta Adres w kraju produc enta Koszt naprawy Kod wykonawcy naprawy Data ost. przeglądu klucz Schemat tej tabeli nie jest 3PN, bo występują w nim niepełne i przechodnie zależności od klucza dr inż. Witold Rekuć Bazy danych 234
235 6. Zdekomponujmy schemat tej tabeli na mniejsze usuwając niepełne i przechodnie zależności Nr in w en t. Da ta na pr a wy Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządz enia W y s. S z e r. G ł ę b. Id producenta Nazwa producenta Kod kraju prod ucen ta Adres w kraju produc enta Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Kod kraju Nazwa kraju dr inż. Witold Rekuć Bazy danych 235
236 Nr in w en t. Da ta na pr a wy Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Nazwa typu urządz enia W y s. S z e r. G ł ę b. Id producenta Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Kod kraju Nazwa kraju Id producenta Nazwa producenta Kod kraju prod ucen ta Adres w kraju produc enta dr inż. Witold Rekuć Bazy danych 236
237 Nr in w en t. Da ta na pr a wy Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Id producenta Koszt napra wy Kod wykonawcy naprawy Data ost. przeglądu Kod kraju Nazwa kraju Id producenta Nazwa producenta Kod kraju prod ucen ta Adres w kraju produc enta Id ty pu ur zą dz en ia Nazwa typu urządz enia W y s. S z e r. G ł ę b. dr inż. Witold Rekuć Bazy danych 237
238 Efekt końcowy normalizacji: czy schematy tych tabel są w 3PN? NaprawyUrządzeń Urządzenia Nr in w en t. Da ta na pr a wy Koszt napra wy Kod wykonawcy naprawy Nr in w en t. Da ta za ku pu Da ta Ins tal acj i Id ty pu ur zą dz en ia Id producenta Data ost. przeglądu Kraje Producenci TypyUrządzeń Kod kraju Nazwa kraju Id producenta Nazwa producenta Kod kraju prod ucen ta Adres w kraju produc enta Id ty pu ur zą dz en ia Nazwa typu urządz enia W y s. S z e r. G ł ę b. dr inż. Witold Rekuć Bazy danych 238
239 Projekt bazy danych w 3PN: dr inż. Witold Rekuć Bazy danych 239
240 Reasumując: przeanalizowałem dany dokument i zrozumiałem jego sens i sens jego pól, opracowałem schemat (nagłówek) tabeli, która mogłaby służyć do pamiętania danych z dokumentów tego typu, stwierdziłem, że w schemacie tym pewne atrybuty (kolumny) są złożone, a więc schemat ten nie jest w 1PN; zlikwidowałem atrybuty złożone zastępując je atrybutami prostymi otrzymując 1PN, zidentyfikowałem nietrywialne zależności funkcyjne między atrybutami w schemacie tej tabeli, określiłem klucz tabeli, zbadałem, czy są w tym schemacie zależności funkcyjne niepełne lub przechodnie atrybutów niekluczowych od klucza, rozłożyłem bez straty danych schemat tabeli na mniejsze schematy tak, aby otrzymać bazę danych o schematach tabel w 3PN. dr inż. Witold Rekuć Bazy danych 240
241 VIII. Pojęciowe (konceptualne) modelowanie danych. Model związków encji. Model klas UML 1. Encja i jej instancje 2. Związki między encjami - asocjacje 3. Atrybuty encji 4. Atrybuty związków 5. Szczególne struktury związków 6. Związki generalizacji/specjalizacji dr inż. Witold Rekuć Bazy danych 241
242 Typ urządzenia # Id * Nazwa * Wysokość * Szerokość * Głębokość Kraj # Kod * Nazwa Serwisant # Kod * Nazwisko Urządzenie # NrInwentarzowy * DataZakupu * DataInstalacji * DataOstPrzeglądu Miejscowość # Kod * Nazwa Naprawa # Data * Koszt Producent # Id * Nazwa Miejsce # NazwaUlPl # Numer dr inż. Witold Rekuć Bazy danych 242
243 1. Encja i jej instancje Encja jest to element modelu reprezentujący, istniejące w rozpatrywanym świecie (rzeczywistości), przedmioty, rzeczy, byty indywidualne (indywidua): materialne lub niematerialne, mające ten sam sens ogólny wyrażony ich wspólną nazwą, dające się zidentyfikować (odróżnić od innych) i o których informacje powinny być znane lub przechowywane Przykłady Przedmioty materialne mające wspólny sens wyrażony nazwą Samochód osobowy... Przedmioty niematerialne mające wspólny sens wyrażony nazwą Kategoria prawa jazdy A B C D A1... dr inż. Witold Rekuć Bazy danych 243
244 Przedmioty niematerialne mające wspólny sens wyrażony nazwą Marka samochodu Fiat Volvo Citroen Daewoo FSO... Przedmioty materialne mające wspólny sens wyrażony nazwą Przedmiot nauczania Fiz Che Mat Bio Ast... Przedmioty materialne mające wspólny sens wyrażony nazwą Student dr inż. Witold Rekuć Bazy danych 244
245 Co to znaczy dające się zidentyfikować w rozpatrywanym świecie? Musi istnieć zbiór istotnych cech (atrybutów) pozwalających na odróżnienie modelowanego przedmiotu od przedmiotów innych w praktyce nadaje się przedmiotom proste lub złożone identyfikatory. Przykład pozytywny Samochód PK Kategoria prawa jazdy Marka samochodu Przedmiot nauczania Student Dokument 13/2016 Przykład negatywny 2 Długopis? numer rejestracyjny symbol nazwa nazwa (lub kod) numer indeksu (lub pesel) numer dokumentu brak potrzeby / sposobu identyfikacji dr inż. Witold Rekuć Bazy danych 245
246 Instancja encji jest to przedmiot, rzecz, byt indywidualny (indywiduum) reprezentowany w modelu przez encję. Zakres znaczeniowy encji zbiór instancji encji. Uwaga. Encja powinna być traktowana jako reprezentant instancji jakie są lub mogą się pojawić w czasie istnienia modelu/rzeczywistości Język Model Rzeczywistość nazwa encji (w liczbie pojedynczej) Zakres encji Samochód osobowy Samochód osobowy... symbol graficzny encji encja instancje encji dr inż. Witold Rekuć Bazy danych 246
247 Przykłady encji reprezentujących pewien rozpatrywany świat (rzeczywistość) Typ urządzenia Kraj Serwisant Urządzenie Miejscowość Naprawa Producent Miejsce dr inż. Witold Rekuć Bazy danych 247
248 Znajdowanie encji (przykład: analiza dokumentu ustrukturalizowanego) dr inż. Witold Rekuć Bazy danych 248
249 wpłata dowód wpłaty KP pozycja dowodu wpłaty wpłacający wystawiający sprawdzający zatwierdzający przedmiot (za co) Wpłata Dowód wypłaty Pozycja dowodu wpłaty Wpłacający Pracownik Tytuł wpłaty dr inż. Witold Rekuć Bazy danych 249
250 Znajdowanie encji (przykład: analiza wypowiedzi, tekstu) Firma nasza obsługuje klientów z terenu naszego miasta. Misją firmy jest odpłatne wypożyczanie osobom fizycznym sprzętu różnego typu (w tym sportowego, AGD itp.). Firmą kieruje dwuosobowy zarząd. Są mu podporządkowane jednostki organizacyjne: dział obsługi klienta, magazyn, księgowość i biuro zamówień. Zadania jednostek wynikają z ich nazw. Zarząd decyduje o uzupełnieniu sprzętu, ściąga należności i zajmuje się typowymi sprawami kierowniczymi. Ja jestem pracownikiem działu obsługi klienta i o tym dziale opowiem. Gdy zjawia się klient próbuję określić jego problem i staram się znaleźć rozwiązanie tego problemu. Magazynier ma kartotekę sprzętu dostępnego w magazynie i staram się telefonicznie razem z magazynierem znaleźć coś co klientowi najbardziej odpowiada. Gdy nie ma odpowiedniego sprzętu staramy się nakłonić klienta do zmodyfikowania potrzeby i szukamy czegoś zastępczego. Samo zarejestrowanie wypożyczenia jest dość proste. Najpierw sprawdzam obecność klienta w mojej kartotece klientów na okoliczność zalegania ze zwrotami. Karta klienta zawiera nazwisko, imię, adres, nr pesel i nr dowodu osobistego. Do tej karty są dołączane kopie karty wypożyczenia. Jeżeli klient nie ma karty w mojej kartotece zakładam ją. Jeżeli ma - sprawdzam czy nie zalega za zwrotami. Jeżeli zalega, grzecznie umawiam się z nim na inny dzień - dzień zwrotu zaległości. Gdy nie zalega rejestruje wypożyczenie. Na karcie wypożyczenia rejestruję dane o kliencie oraz dane o wypożyczanym sprzęcie. Jeśli chodzi o klienta wystarczy nazwisko, imię, adres, nr pesel i nr dowodu osobistego. Odnośnie sprzętu zapisuję typ, nazwę, numer inwentarzowy, datę wypożyczenia, przewidywaną datę zwrotu i stawkę dzienną, którą klient akceptuje podpisując kartę. Gdy karta jest już podpisana wystawiam polecenie wydania sprzętu, z którym klient udaje się do magazynu i tam go odbiera. Na tym kończy się obsługa klienta w zakresie wypożyczenia. Gdy klient oddaje sprzęt, udaje się bezpośrednio do magazynu, gdzie otrzymuje potwierdzenie zdania sprzętu. Z tym potwierdzeniem przychodzi do mnie i ja rejestruję zwrot wpisując na karcie wypożyczenia datę faktycznego zwrotu i, co najważniejsze, wystawiam polecenie zapłaty za użytkowanie sprzętu (kwota = ilość dni * stawka dzienna). Klient, po otrzymaniu polecenia zapłaty, idzie do kasy i tam płaci. Na tym kończy się obsługa klienta w zakresie zwrotu sprzętu. dr inż. Witold Rekuć Bazy danych 250
251 Klient Sprzęt Istotne rzeczowniki Klient Sprzęt Wypożyczenie Zwrot Karta klienta Karta wypożyczenia Polecenie wydania sprzętu Potwierdzenie zdania sprzętu Polecenie zapłaty Zapłata (płaci)? Wypożyczenie Zwrot Wydanie sprzętu Zapłata dr inż. Witold Rekuć Bazy danych 251
252 2. Związki między encjami - asocjacje Związek dwóch encji reprezentuje w modelu związki między instancjami tych encji mające wspólny sens. Kategoria prawa jazdy Osoba A ma instruktora przyznana 1 B przyznana 2 C A1 przyznana przyznana 3 D przyznana ma instruktora... dr inż. Witold Rekuć Bazy danych 252
253 A ma instruktora przyznana 1 B przyznana 2 C A1 przyznana przyznana 3 D przyznana ma instruktora... Kategoria prawa jazdy Osoba Kategoria prawa jazdy może mieć instruktora jako Osoba Osoba może być instruktorem w zakresie Kategorii prawa jazdy Kategoria prawa jazdy może być przyznana Osoba Osoba może mieć Kategorii prawa jazdy dr inż. Witold Rekuć Bazy danych 253
254 Kategoria prawa jazdy jest przyznana ma Osoba ma instruktora jest instruktorem Kategoria prawa jazdy może mieć wielu instruktorów jako Osoba Osoba może być instruktorem w zakresie wielu Kategorii prawa jazdy Kategoria prawa jazdy może być przyznana wielu Osobom Osoba może mieć wiele Kategorii prawa jazdy dr inż. Witold Rekuć Bazy danych 254
255 Notacja ogólna dla związku encji Nazwa encji 1 nazwa udziału encji 1* nazwa udziału encji 2* Nazwa encji 2 wiele jeden wymagany (udział encji 1 w związku jest obowiązkowy) opcjonalny (udział encji 2 w związku nie jest obowiązkowy) * Richard Barker używa tu nazwy nazwa końca 1 / nazwa końca 2 dr inż. Witold Rekuć Bazy danych 255
256 Przykłady Każdy wyrób musi mieć co najwyżej jednego producenta Każdy producent może produkować wiele wyrobów Wyrób ma producenta produkuje Firma dr inż. Witold Rekuć Bazy danych 256
257 Przykład encji i ich związków reprezentujących pewien rozpatrywany świat (rzeczywistość) Typ urządzenia Kraj Serwisant jest przedmiotem Urządzenie jest charakteryzuje w Miejscowość wykonuje jest produkowane wykonywana przez Naprawa dotyczy produkuje Producent w Miejsce ma siedzibę w dr inż. Witold Rekuć Bazy danych 257
258 Kardynalność związku Kardynalność związku 1 : 1 Nazwa encji 1 nazwa udziału encji 1 nazwa udziału encji 2 Nazwa encji 2 Kardynalność związku 1 : N Nazwa encji 1 nazwa udziału encji 1 nazwa udziału encji 2 Nazwa encji 2 Kardynalność związku M : N Nazwa encji 1 nazwa udziału encji 1 nazwa udziału encji 2 Nazwa encji 2 dr inż. Witold Rekuć Bazy danych 258
259 Warianty związku encji [ 0 lub 1 ] : [ 0 lub 1 ] Nazwa encji 1 nazwa udziału encji 1 nazwa udziału encji 2 Nazwa encji dr inż. Witold Rekuć Bazy danych 259
260 1 : [ 0 lub 1 ] Zamówienie ma wystawioną wystawiona do Faktura Zamówienie może mieć maksymalnie jedną wystawioną Fakturę Faktura musi być wystawiona do maksymalnie jednego Zamówienia dr inż. Witold Rekuć Bazy danych 260
261 1 : 1 Wpłata ma wystawiony do Dowód wpłaty Wpłata musi mieć maksymalnie jeden wystawiony Dowód wpłaty Dowód wpłaty musi być wystawiony do maksymalnie jednej Wpłaty dr inż. Witold Rekuć Bazy danych 261
262 [ 1 lub więcej ] : [ 0 lub 1] Pracownik jest konserwatorem ma konserwatora Urządzenie Pracownik może być konserwatorem maksymalnie jednego Urządzenia Urządzenie musi mieć co najmniej jednego konserwatora Pracowników dr inż. Witold Rekuć Bazy danych 262
263 1 : [ 0 lub więcej ] Towar figuruje w opisuje Pozycja dokumentu Towar może figurować w zero lub więcej Pozycji dokumentu Pozycja dokuemtu musi opisywać co najwyżej jeden Towar dr inż. Witold Rekuć Bazy danych 263
264 [ 1 lub więcej ] : 1 Pozycja dokumentu wchodzi w skład składa się z Dokument lub więcej dr inż. Witold Rekuć Bazy danych 264
265 [ 0 lub więcej ] : [ 0 lub więcej] Użytkownik portalu jest zainteresowany jest przemiotem zainteresowania Tematyka Użytkownik portalu może być zainteresowany zero lub więcej Tematykami Tematyka może być przedmiotem zainteresowania zero lub więcej Użytkowników portalu dr inż. Witold Rekuć Bazy danych 265
266 [ 0 lub więcej ] : [ 1 lub więcej] Pracownik badawczy jest członkiem ma Zespół badawczy Pracownik badawczy musi być członkiem co najmniej jednego Zespołu badawczego Zespół badawczy musi mieć co najmniej jednego Pracownika badawczego dr inż. Witold Rekuć Bazy danych 266
267 Nazwa encji 1 [ 1 lub więcej ] : [ 1 lub więcej] nazwa udziału encji 1 nazwa udziału encji 2 Nazwa encji dr inż. Witold Rekuć Bazy danych 267
268 [ 0 lub więcej ] : [ 0 lub 1] Pracownik jest członkiem ma Zespół badawczy Pracownik może być członkiem maksymalnie jednego Zespołu badawczego Zespół badawczy może mieć zero lub więcej Pracowników dr inż. Witold Rekuć Bazy danych 268
269 Znajdowanie związków (przykład: analiza dokumentu ustrukturalizowanego) dr inż. Witold Rekuć Bazy danych 269
270 Pracownik Dowód wypłaty Wpłata Wpłacający Pozycja dowodu wpłaty Tytuł wpłaty dr inż. Witold Rekuć Bazy danych 270
271 Pracownik Wpłacający Dowód wypłaty (Wpłata) Pozycja dowodu wpłaty (Pozycja wpłaty) Tytuł wpłaty dr inż. Witold Rekuć Bazy danych 271
272 Znajdowanie związków (przykład: analiza wypowiedzi, tekstu) Firma nasza obsługuje klientów z terenu naszego miasta. Misją firmy jest odpłatne wypożyczanie osobom fizycznym sprzętu różnego typu (w tym sportowego, AGD itp.). Firmą kieruje dwuosobowy zarząd. Są mu podporządkowane jednostki organizacyjne: dział obsługi klienta, magazyn, księgowość i biuro zamówień. Zadania jednostek wynikają z ich nazw. Zarząd decyduje o uzupełnieniu sprzętu, ściąga należności i zajmuje się typowymi sprawami kierowniczymi. Ja jestem pracownikiem działu obsługi klienta i o tym dziale opowiem. Gdy zjawia się klient próbuję określić jego problem i staram się znaleźć rozwiązanie tego problemu. Magazynier ma kartotekę sprzętu dostępnego w magazynie i staram się telefonicznie razem z magazynierem znaleźć coś co klientowi najbardziej odpowiada. Gdy nie ma odpowiedniego sprzętu staramy się nakłonić klienta do zmodyfikowania potrzeby i szukamy czegoś zastępczego. Samo zarejestrowanie wypożyczenia jest dość proste. Najpierw sprawdzam obecność klienta w mojej kartotece klientów na okoliczność zalegania ze zwrotami. Karta klienta zawiera nazwisko, imię, adres, nr pesel i nr dowodu osobistego. Do tej karty są dołączane kopie karty wypożyczenia. Jeżeli klient nie ma karty w mojej kartotece zakładam ją. Jeżeli ma - sprawdzam czy nie zalega za zwrotami. Jeżeli zalega, grzecznie umawiam się z nim na inny dzień - dzień zwrotu zaległości. Gdy nie zalega rejestruje wypożyczenie. Na karcie wypożyczenia rejestruję dane o kliencie oraz dane o wypożyczanym sprzęcie. Jeśli chodzi o klienta wystarczy nazwisko, imię, adres, nr pesel i nr dowodu osobistego. Odnośnie sprzętu zapisuję typ, nazwę, numer inwentarzowy, datę wypożyczenia, przewidywaną datę zwrotu i stawkę dzienną, którą klient akceptuje podpisując kartę. Gdy karta jest już podpisana wystawiam polecenie wydania sprzętu, z którym klient udaje się do magazynu i tam go odbiera. Na tym kończy się obsługa klienta w zakresie wypożyczenia. Gdy klient oddaje sprzęt, udaje się bezpośrednio do magazynu, gdzie otrzymuje potwierdzenie zdania sprzętu. Z tym potwierdzeniem przychodzi do mnie i ja rejestruję zwrot wpisując na karcie wypożyczenia datę faktycznego zwrotu i, co najważniejsze, wystawiam polecenie zapłaty za użytkowanie sprzętu (kwota = ilość dni * stawka dzienna). Klient, po otrzymaniu polecenia zapłaty, idzie do kasy i tam płaci. Na tym kończy się obsługa klienta w zakresie zwrotu sprzętu. dr inż. Witold Rekuć Bazy danych 272
273 Klient Sprzęt Słowa kojarzone ze związkami Klient Sprzęt Wypożyczenie Zwrot Karta klienta Karta wypożyczenia Polecenie wydania sprzętu Potwierdzenie zdania sprzętu Polecenie zapłaty Zapłata (płaci)? Wypożyczenie Zwrot Wydanie sprzętu Zapłata dr inż. Witold Rekuć Bazy danych 273
274 Klient Sprzęt 1 1 Zapłata [0,1] 1 wiele wiele Wypożyczenie 1 1 [0,1] Wydanie sprzętu [0,1] Zwrot dr inż. Witold Rekuć Bazy danych 274
275 Klient Sprzęt wypożycza wypożyczany Zapłata za Wypożyczenie dotyczy Wydanie sprzętu do Zwrot dr inż. Witold Rekuć Bazy danych 275
276 3. Atrybuty encji Atrybutem encji jest cecha, własność, istniejących w rozpatrywanym świecie (rzeczywistości), przedmiotów, rzeczy, bytów indywidualnych (indywiduów) reprezentowanych w modelu przez encje. Atrybuty mają swoje nazwy oraz zbiory dopuszczalnych wartości. Numer Data Zbiór dopuszczalnych numerów Zbiór dopuszczalnych dat Nazwa Wynagrodzenie Zbiór 7 dopuszczalnych nazw Zbiór 7 dopuszczalnych wynagrodzeń dr inż. Witold Rekuć Bazy danych 276
277 Atrybut encji jest to funkcja, która każdej instancji encji przyporządkowuje pewną wartość ze zbioru jego (atrybutu) dopuszczalnych wartości. Przykład Władca Instancje {,,,...} Atrybuty władcy Imię, Numer_kolejny, Przydomek, Rok_urodzenia Zbiór dopuszczalnych wartości(imię) = { Bolesław, Mieszko, Kazimierz, Władysław,... } Zbiór dopuszczalnych wartości(numer_kolejny) = { I, II, III, IV,... } Zbiór dopuszczalnych wartości(przydomek) = { Chrobry, Lambert, Odnowiciel, Herman,... } Zbiór dopuszczalnych wartości(rok_urodzenia) = Liczby_całkowite_>0 dr inż. Witold Rekuć Bazy danych 277
278 Argument funkcji Imię ( ) = Bolesław Numer_kolejny( ) = I Przydomek ( ) = Chrobry Rok_urodzenia( ) = 967 dr inż. Witold Rekuć Bazy danych 278
279 Rok_urodzenia( ) = 990 Rok_urodzenia( ) = 1016 Rok_urodzenia( ) = 1043 Rok_urodzenia( ) = 967 dr inż. Witold Rekuć Bazy danych 279
280 Definicja atrybutów nazwa encji z nazwa_atrybutu_1 z atrybut_atrybutu_2... z atrybut_atrybutu_n Zasady: 1) każdy atrybut jest przypisany do encji, którą charakteryzuje, 2) nazwy atrybutów powinny być w liczbie pojedynczej, 3) nazwy atrybutów powinny proste (w tym, nie powinny zawierać nazwy encji), 4) należy unikać atrybutów wielokrotnych (atrybutów mających ten sam sens ale traktowanych jako odrębne), 5) wartościami atrybutów nie mogą być instancje pewnej encji. z { #, *, o } # - atrybut jest identyfikatorem lub składnikiem identyfikatora * - atrybut musi przyjmować konkretną wartość (wymagany, obowiązkowy) o - atrybut może przyjmować konkretną wartość (niewymagany, opcjonalny) dr inż. Witold Rekuć Bazy danych 280
281 Atrybuty obowiązkowe (*) i opcjonalne (o) nazwa encji nazwa encji not null # atrybut_1 * atrybut_ * atrybut_n null # atrybut_1 o atrybut_ o atrybut_n Przykład Osoba # pesel * nazwisko o nazwisko_panieńskie * data_urodzenia * imię1 o imię2 dr inż. Witold Rekuć Bazy danych 281
282 Atrybuty identyfikujące encje (identyfikatory instancji encji) nazwa encji # atrybut_1 z atrybut_2... z atrybut_n { nazwa encji # atrybut_1... # atrybut_k... z atrybut_n identyfikator prosty (jedno-atrybutowy) identyfikator złożony (wielo-atrybutowy) Przykłady Student # NrAlbumu z Nazwisko z Imię1 z Imię2 uwaga: encje słabe dr inż. Witold Rekuć Bazy danych 282
283 Encje słabe i ich identyfikacja Encja słaba jest modelem zbioru obiektów, których atrybuty nie są wystarczające do identyfikacji tych obiektów Przykład Firma # Regon * Nazwa Identyfikatorem firmy jest jej numer id = {Regon} ma wystawcę Faktura # numer * Data wystawienia Identyfikatorem faktury jest jej numer plus numer firmy ją wystawiającej id = {Firma.Regon, Numer} wchodzi w skład Pozycja faktury # numer Identyfikatorem Pozycji faktury jest jej numer plus numer faktury plus numer firmy ją wystawiającej id = {Numer, Faktura.Numer, Firma.Regon} dr inż. Witold Rekuć Bazy danych 283
284 Adres # kraj # miejscowość # ulica # numer identyfikator złożony (wieloatrybutowy) Kraj # kod * nazwa w Miejscowość # kod * nazwa Firma ma siedzibę w identyfikator rozproszony (wieloatrybutowy) w Miejsce # ulica # numer Firma ma siedzibę w dr inż. Witold Rekuć Bazy danych 284
285 4. Atrybuty związków między encjami Student Przedmiot # indeks * nazwisko * imię1 o imię2 zdaje jest zdawany # kod * nazwa? * data * ocena dr inż. Witold Rekuć Bazy danych 285
286 Student Przedmiot # indeks * nazwisko * imię1 o imię2 zdaje zdawany # kod * nazwa zdaje zdawany # data * ocena Egzamin Data i ocena są atrybutami związku między studentem i przedmiotem reprezentowanym przez odrębną encję o nazwie, na przykład, Egzamin Identyfikatorem egzaminu w tym świecie jest trójka: {indeks, kod, data}, to znaczy: ocena = f (indeks, kod, data ) dr inż. Witold Rekuć Bazy danych 286
287 Student Przedmiot # indeks * nazwisko * imię1 o imię2 zdaje zdawany # kod * nazwa zdaje zdawany! * data * ocena Egzamin Identyfikatorem egzaminu w tym świecie jest para: {indeks, kod} }, to znaczy: ocena = f (indeks, kod ) dr inż. Witold Rekuć Bazy danych 287
288 5. Szczególne struktury związków Związki encji samej z sobą (rekursywne/rekurencyjne) Struktury wielozwiązkowe Związki wykluczające się (wyłączne) Związki nietransferowalne dr inż. Witold Rekuć Bazy danych 288
289 Związki encji samej z sobą (rekursywne/rekurencyjne) Część-0... Część-11 Część-12 Część-1n 1... Część-121 Część-122 Część-12n 2... Część-1221 Część-1222 Część-122n 22 podrzędna Część # kod * nazwa nadrzędna dr inż. Witold Rekuć Bazy danych 289
290 podrzędna Część # kod * nazwa nadrzędna Część może mieć co najwyżej jedną nadrzędną Część Część może mieć wiele podrzędnych Części podrzędna Część # kod * nazwa nadrzędna Część może mieć co najwyżej jedną nadrzędną Część Część musi mieć wiele podrzędnych Części podrzędna Część # kod * nazwa nadrzędna Część musi mieć jedną nadrzędną Część może mieć wiele podrzędnych Część Części dr inż. Witold Rekuć Bazy danych 290
291 wchodzi w skład Część # kod * nazwa składa się z Część może wchodzić w skład wielu Części Część może składać się z wielu Części wchodzi w skład Część # kod * nazwa składa się z Część może wchodzić w skład wielu Części Część musi składać się z wielu Części wchodzi w skład Część # kod * nazwa składa się z Część musi wchodzić w skład wielu Części Część możę składać się z wielu Części wchodzi w skład Część # kod * nazwa składa się z Część musi wchodzić w skład wielu Części Część musi składać się z wielu Części dr inż. Witold Rekuć Bazy danych 291
292 odnosi się do Przedmiot # kod * nazwa jest odniesieniem dla Przedmiot może odnosić się do jednego Przedmiotu Przedmiot może być odniesieniem dla jednego Przedmiotu odnosi się do Przedmiot # kod * nazwa jest odniesieniem dla Przedmiot może odnosić się do jednego Przedmiotu Przedmiot musi być odniesieniem dla jednego Przedmiotu odnosi się do Przedmiot # kod * nazwa jest odniesieniem dla Przedmiot musi odnosić się do jednego Przedmiotu Przedmiot może być odniesieniem dla jednego Przedmiotu dr inż. Witold Rekuć Bazy danych 292
293 Struktury wielozwiązkowe Przykład z n=4 Rodzaj samochodu # kod * nazwa przewożący Rodzaj trasy # kod * nazwa do przejechania encja słaba Stawka * stawkastała * stawkakm Te cztery związki stanowią całość wyznaczającą wartość stawek Rodzaj ładunku # kod * opis przewożonego przejazdu Sezon # kod * nazwa (stawkastała, stawkakm) = f(rodzajsamochodu, RodzajTrasy, RodzajŁadunku, Sezon) dr inż. Witold Rekuć Bazy danych 293
294 Związki wykluczające się (wyłączne) Obowiązująca reguła: instancja encji A może być związana albo z pewną instancją encji B albo z pewną instancją encji C, nigdy jednocześnie z obiema instancjami Notacja Encja A Encja B Encja D Encja C dr inż. Witold Rekuć Bazy danych 294
295 Przykład Notacja Obowiązująca reguła: Umowa o serwisowanie danego urządzenia może być zawarta albo z firmą (podmiotem gospodarczym) albo z osobą fizyczną, nigdy jednocześnie z obiema Urządzenie Umowa o serwisowa nie Firma Osoba fizyczna dr inż. Witold Rekuć Bazy danych 295
296 Związki nietransferowalne Obowiązująca reguła: instancja encji B związana z pewną instancją encji A nie może być przekazana innej instancji encji A Notacja Encja A Encja B dr inż. Witold Rekuć Bazy danych 296
297 Przykład Obowiązująca reguła dotycząca przyznawania dowodów osobistych: dowód osobisty nie może być przekazany (transferowany) innej osobie, nawet wtedy, gdy straci swą ważność do1 do2 do3 Osoba # pesel * nazwisko * imię1 o imię2 otrzymała wydany Dowód osobisty # numer * data_wydania o data_zwrotu jest zatrudniona w Jednostka organizacyjna zatrudnia # symbol * nazwa dr inż. Witold Rekuć Bazy danych 297
298 6. Związki generalizacji/specjalizacji Pojazd... dr inż. Witold Rekuć Bazy danych 298
299 Podział zbioru instancji na podzbiory instancji o wspólnych cechach Pojazd Pojazd osobowy Pojazd ciężarowy... Pojazd specjalny dr inż. Witold Rekuć Bazy danych 299
300 Atrybuty wspólne i specyficzne Atrybuty wspólne Pojazd nr rejestracyjny masa własna data produkcji Pojazd osobowy Pojazd ciężarowy Pojazd specjalny liczba drzwi liczba osób model (sedan, kombi, hachback) ładowność rodzaj ładunku rodzaj podwozia rodzaj czynności Atrybuty specyficzne dr inż. Witold Rekuć Bazy danych 300
301 Związki wspólne i specyficzne Pojazd Producent Atrybuty wspólne Atrybuty specyficzne # nr rejestracyjny * masa własna * data produkcji Pojazd osobowy * liczba drzwi * liczba osób * model Pojazd ciężarowy * ładowność Związek wspólny * regon * nazwa Rodzaj ładunku * kod * nazwa Związki specyficzne Pojazd specjalny * rodzaj podwozia Rodzaj czynności technologicznych * kod * nazwa dr inż. Witold Rekuć Bazy danych 301
302 Hierarchia generalizacji/specjalizacji Osoba Pracownik Pracownik administracji generalizacja Osoba Pracownik dydaktyczny specjalizacja Pracownik Doktorant Doktorant Pracownik administracji Pracownik dydaktyczny Zasady omawianego modelu/notacji: podzbiory instancji są zawsze rozłączne, instancje niższego poziomu hierarchii posiadają (dziedziczą) atrybuty i związki wyższego poziomu. dr inż. Witold Rekuć Bazy danych 302
303 IX. Budowa modeli związków encji/modeli klas - studium przypadku dr inż. Witold Rekuć Bazy danych 303
304 Podatnik składa jest poprzedzane przez jest składane Zgłoszenie NIP 1 poprzedza adresowane do jest adresatem Urząd skarbowy dr inż. Witold Rekuć Bazy danych 304
305 Miejscowość zlokalizowana w jest miejscem urodzenia Numer identyfilacyjny miejsce urodzenia otrzymał kraj lokalizacji kraj nadania Podatnik Kraj posiada miejsce wydania poświadcza tożsamość wydany w Dokument tożsamości Dowód osobisty Paszport dr inż. Witold Rekuć Bazy danych 305
306 Miejsce Zamieszkanie # data Miejscowość zlokalizowana w jest miejscem urodzenia miejsce urodzenia Podatnik zamieszkuje kraj lokalizacji kraj nadania Kraj dr inż. Witold Rekuć Bazy danych 306
307 Miejsce Zamieszkanie # data Zameldowanie # data Miejscowość jest miejscem urodzenia miejsce urodzenia Podatnik zamieszkuje zameldowany dr inż. Witold Rekuć Bazy danych 307
308 jest miejscem siedziby Oddział/ bank obsługiwany przez otwarty dla Rachunek bankowy Miejsce Miejscowość jest miejscem urodzenia miejsce urodzenia Podatnik posiada dr inż. Witold Rekuć Bazy danych 308
309 obsługiwany przez Miejsce Klasa działalności (PKD) Miejscowość jest miejscem urodzenia miejsce urodzenia Podatnik prowadzi Działalność gospodarcza dr inż. Witold Rekuć Bazy danych 309
310 jest miejscem siedziby Oddział/ bank obsługiwany przez otwarty dla Rachunek bankowy Miejsce otwarty dla działalności gospodarczej Miejscowość jest miejscem urodzenia miejsce urodzenia Podatnik posiada używa w działalności dr inż. Witold Rekuć Bazy danych 310
311 Miejsce Biuro rachunkowe Klasa działalności (PKD) Miejscowość miejsce przechowywania dokumentacji obsługuje jest miejscem urodzenia miejsce urodzenia Podatnik prowadzi Działalność gospodarcza dr inż. Witold Rekuć Bazy danych 311
312 Miejsce Biuro rachunkowe Klasa działalności (PKD) Miejscowość miejsce przechowywania dokumentacji obsługuje Organ rejestrowy Podatnik prowadzi Działalność gospodarcza rejestruje dokonywany Wpis do rejestru dotyczy zarejestrowana dr inż. Witold Rekuć Bazy danych 312
313 Miejsce miejsce prowadzenia pozostałe miejsce prowadzenia Miejscowość miejsce przechowywania dokumentacji Organ rejestrowy Podatnik prowadzi Działalność gospodarcza rejestruje dokonywany Wpis do rejestru dotyczy zarejestrowana dr inż. Witold Rekuć Bazy danych 313
314 Przyjmujący Podatnik prowadzi Działalność gospodarcza zgłaszana Reprezentant podatnika Wpis do rejestru dotyczy zarejestrowana Zgłoszenie NIP 1 dr inż. Witold Rekuć Bazy danych 314
315 dr inż. Witold Rekuć Bazy danych 315
316 X. Odwzorowanie modelu związków encji/klas w schemat relacyjnej bazy danych - podstawy metodologiczne Odwzorowanie encji mocnych nazwa encji nazwa encji # atrybut_1 atrybut_2... atrybut_n # atrybut_1 z atrybut_2... z atrybut_n e 1 e 2... e k Encji mocnej odpowiada tabela bazy danych, przy czym: atrybutom encji odpowiadają kolumny tabeli, przy czym: atrybutom obowiązkowym odpowiadają kolumny z wartościami wymaganymi (not null), atrybutom opcjonalnym odpowiadają kolumny z wartościami niewymaganymi (null), identyfikatorom encji odpowiadają klucze tabel. nazwy: encji i atrybutów mogą stać się nazwami tabeli i kolumn, każdej potencjalnej instancji encji odpowiada potencjalny wiersz tabeli. dr inż. Witold Rekuć Bazy danych 316
317 Przykład Osoba # pesel * nazwisko o nazwisko_panieńskie * data_urodzenia * imię1 o imię2 dr inż. Witold Rekuć Bazy danych 317
318 Odwzorowanie związku mocnych encji [ 1 ] : [ 0 lub więcej ] nazwa encji1 # atrybut_11 z atrybut_12... z atrybut_1n nazwa encji2 # atrybut_21 z atrybut_22... z atrybut_2k Encji mocnej występującej w związku po stronie 1 odpowiada tabela bazy danych, o nagłówku zgodnym z zasadami określonymi dla encji mocnej. Kluczem tabeli jest identyfikator tej encji. Encji mocnej występującej w związku po stronie wiele odpowiada tabela bazy danych, o nagłówku zgodnym z zasadami określonymi dla encji mocnej, rozszerzonym o klucz obcy do tabeli po stronie 1. Kluczem tabeli jest identyfikator tej encji. dr inż. Witold Rekuć Bazy danych 318
319 Odwzorowanie związku mocnych encji [ 1 ] : [ 0 lub więcej ] nazwa encji1 # atrybut_11 atrybut_12... atrybut_1n # atrybut_11 z atrybut_12... z atrybut_1n klucz [ 1 ] [ 0 lub więcej ] nazwa encji2 # atrybut_21 atrybut_22... atrybut_2k # atrybut_21 z atrybut_22... z atrybut_2k klucz obcy klucz dr inż. Witold Rekuć Bazy danych 319
320 Przykład Województwo # kod * nazwa Miejscowość # kod * nazwa dr inż. Witold Rekuć Bazy danych 320
321 Zamówienie Zamówienie # numer z data... # numer data # numer z data... Faktura Faktura # numer nr_zam data klucz obcy dr inż. Witold Rekuć Bazy danych 321
322 Odwzorowanie związku encji mocnej i słabej [ 1 ] : [ 0 lub więcej ] nazwa encji1 # atrybut_11 z atrybut_12... z atrybut_1n nazwa encji2 # atrybut_21 z atrybut_22... z atrybut_2k Encji mocnej występującej w związku po stronie 1 odpowiada tabela bazy danych, o nagłówku zgodnym z zasadami określonymi dla encji mocnej. Kluczem tabeli jest identyfikator tej encji. Encji słabej występującej w związku po stronie wiele odpowiada tabela bazy danych, o nagłówku zgodnym z zasadami określonymi dla encji mocnej, rozszerzonym o klucz obcy do tabeli po stronie 1. Kluczem tej tabeli jest para (identyfikator encji mocnej, identyfikator encji słabej). dr inż. Witold Rekuć Bazy danych 322
323 Przykład 1 Student # nr * nazwisko zdaje Przedmiot # kod * nazwa jest zdawany Egzamin # data * ocena dr inż. Witold Rekuć Bazy danych 323
324 Przykład 2 Firma # nr * nazwa * ulica * kodmjc * telefon jest sprzedawcą jest nabywcą Dokument # nrfaktury * data dr inż. Witold Rekuć Bazy danych 324
325 Przykład 3 # nr * nazwa Klub? Spotkanie # nr_kolejny * wynik * data # nr * nazwa Stadion dr inż. Witold Rekuć Bazy danych 325
326 Odwzorowanie związku encji [ 0 lub więcej ] : [ 0 lub więcej ] nazwa encji1 # atrybut_11 z atrybut_12... z atrybut_1n nazwa encji1 # atrybut_11 z atrybut_12... z atrybut_1n nazwa encji12 nazwa encji2 # atrybut_21 z atrybut_22... z atrybut_2k nazwa encji2 # atrybut_21 z atrybut_22... z atrybut_2k Związek encji wiele do wielu zastępujemy parą związków encji, w których uczestniczy encja słaba bez atrybutów. dr inż. Witold Rekuć Bazy danych 326
327 Przykład # ISBN * Tytuł Książka # ISBN * Tytuł Książka Autorstwo Autor # pesel * nazwisko Autor # pesel * nazwisko dr inż. Witold Rekuć Bazy danych 327
328 # ISBN * Tytuł Książka Książka # ISBN Tytuł Autorstwo Autorstwo # ISBN # pesel Autor # pesel * nazwisko Autor # pesel Nazwisko dr inż. Witold Rekuć Bazy danych 328
329 Odwzorowanie związków jest ( ISA ) Dwie strategie: całej strukturze przyporządkujemy jedną relację bazy danych (podejście z NULL). relację bazy danych przyporządkujemy każdej encji (podejście ER), dr inż. Witold Rekuć Bazy danych 329
330 Przykład Pracownik Osoba Student Osoba # pesel * nazwisko Student # indeks * średnia Student stacjonarny * dochód Student nie stacjonarny Student stacjonarny Student nie stacjonarny * zawód Pracownik # numer * publikacje dr inż. Witold Rekuć Bazy danych 330
331 podejście z NULL WszystkieOsoby pesel nazwisko indeks średnia nrprac publikacje dochód zawód typ p1 n1 i1 4,5 null null 800 null ss p2 n2 i2 3,5 null null null ochroniarz sn p3 n3 null null pr1 3 null null pr dr inż. Witold Rekuć Bazy danych 331
332 podejście obiektowo-związkowe (ER) Osoba pesel p1 p2 p3 nazwisko n1 n2 n3 Student pesel indeks średnia p1 i1 4,5 p2 i2 3,5 Pracownik pesel nrprac publikacje p3 pr1 3 StudentST pesel dochód p1 800 StudentNST pesel zawód p2 ochroniarz dr inż. Witold Rekuć Bazy danych 332
333 dr inż. Witold Rekuć Bazy danych 333
334 dr inż. Witold Rekuć Bazy danych 334
335 XI. Odwzorowanie modelu związków encji w schemat bazy danych - studium przypadku. dr inż. Witold Rekuć Bazy danych 335
336 dokument tożsamości następstwo zgłoszeń dr inż. Witold Rekuć Bazy danych 336
337 XII. Rola baz danych w systemach informacyjnych zarządzania. 1. System informacyjny zarządzania 2. Baza danych w systemach informacyjnych zarządzania 3. Modelowy cykl życia systemu informatycznego dr inż. Witold Rekuć Bazy danych 337
338 1. System informacyjny zarządzania Przedsiębiorstwo, firma, instytucja itp. i otoczenie Podmioty zewnętrzne System informacyjny (przepływ informacji) Maszyny i urządzenia Robotnicy, pracownicy ruchu Kadra administracyjna Kierownicy, menedżerowie dr inż. Witold Rekuć Bazy danych 338
339 2. Baza danych w systemach informacyjnych zarządzania System informacyjny (przepływ informacji) Baza danych Kierownicy, menedżerowie Podmioty zewnętrzne Kadra administracyjna Robotnicy, pracownicy ruchu Maszyny i urządzenia dr inż. Witold Rekuć Bazy danych 339
340 System informatyczny (przepływ informacji) Baza danych Kierownicy, menedżerowie Podmioty zewnętrzne Oprogramowanie Kadra administracyjna Robotnicy, pracownicy ruchu Maszyny i urządzenia dr inż. Witold Rekuć Bazy danych 340
341 Systemy ewidencyjno-sprawozdawcze Kierownicy, menedżerowie Analitycy dr inż. Witold Rekuć Bazy danych 341
342 Analitycy Kierownicy, menedżerowie dr inż. Witold Rekuć Bazy danych 342
343 Analitycy Kierownicy, menedżerowie dr inż. Witold Rekuć Bazy danych 343
344 3. Modelowy cykl życia systemu informatycznego dr inż. Witold Rekuć Bazy danych 344
- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego
Dr inż. Ludmiła Rekuć p. 58 B4 www.ioz.pwr.wroc.pl, ludmila.rekuc@pwr.wroc.pl Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl - Przedmiot kończy się egzaminem - Egzamin ma formę
Bardziej szczegółowoOperacja Teta-złączenia. v1 v1 Θ v2
Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ {>, =,
Bardziej szczegółowoDr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki
Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki Pokój: 57/B4 E-mail: witold.rekuc@pwr.edu.pl Telefon: 7-0--5 www: kbo.pwr.edu.pl/pracownik/rekuc dr inż. Witold Rekuć
Bardziej szczegółowo-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium
Dr inż. Ludmiła Rekuć p. 58 B4 www.ioz.pwr.wroc.pl, ludmila.rekuc@pwr.wroc.pl Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl -Wykład kończy się zaliczeniem na ocenę na podstawie
Bardziej szczegółowoWykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie
Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie Literatura.
Bardziej szczegółowoModel relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Bardziej szczegółowoKrok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG');
Zad 2 Znaleźć miejscowości, z których klienci kupili w Naszej firmie każdy z towarów: "Zupy CHOISE","Orzeszki solone", ""Kawa BURG" (niekoniecznie każdy z klientów każdy z towarów!). Krok 1. SELECT Symbol
Bardziej szczegółowo1 Wstęp do modelu relacyjnego
Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared
Bardziej szczegółowoModel relacyjny. Wykład II
Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji
Bardziej szczegółowoKARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem
WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Zał. nr 4 do ZW 33/01 KARTA PRZEDMIOTU Nazwa w języku polskim: Nazwa w języku angielskim: Kierunek studiów (jeśli dotyczy): Specjalność (jeśli dotyczy): Stopień studiów
Bardziej szczegółowoEgzamin / zaliczenie na ocenę* 0,5 0,5
Zał. nr 4 do ZW 33/01 WYDZIAŁ INFORMATYKI I ZARZĄDZANIA KARTA PRZEDMIOTU Nazwa w języku polskim: Technologia przetwarzania danych Nazwa w języku angielskim: Data processing technology Kierunek studiów
Bardziej szczegółowoWprowadzenie do SQL TEMAT 3 - Zadania dodatkowe
Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe 1. Wyselekcjonować firmy z Wrocławia lub Krakowa, którym Nasza firma sprzedała cokolwiek w sierpniu 1992 (użyj funkcji Year i Month). SELECT DISTINCT FIRMY.Nr,
Bardziej szczegółowoINFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe
Relacyjny model danych Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Charakterystyka baz danych Model danych definiuje struktury danych operacje ograniczenia integralnościowe
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje
Bardziej szczegółowoKonstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania
Bardziej szczegółowoWykład 2. Relacyjny model danych
Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających
Bardziej szczegółowoTadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski. Relacyjne bazy danych. są podstawą zachodniej cywilizacji
Relacyjne bazy danych Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1 Model danych Relacyjne bazy danych są podstawą zachodniej cywilizacji 3 Model danych: Aspekt strukturalny: Zbiór struktur
Bardziej szczegółowoProgram wykładu. zastosowanie w aplikacjach i PL/SQL;
Program wykładu 1 Model relacyjny (10 godz.): podstawowe pojęcia, języki zapytań (algebra relacji, relacyjny rachunek krotek, relacyjny rachunek dziedzin), zależności funkcyjne i postaci normalne (BCNF,
Bardziej szczegółowoBazy danych. Algebra relacji
azy danych lgebra relacji Model danych Model danych to spójny zestaw pojęć służący do opisywania danych i związków między nimi oraz do manipulowania danymi i ich związkami, a także do wyrażania więzów
Bardziej szczegółowoGrupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30
Zał. nr 4 do ZW 33/01 WYDZIAŁ INFORMATYKI I ZĄRZADZANIA KARTA PRZEDMIOTU Nazwa w języku polskim: Wprowadzenie do SQL Nazwa w języku angielskim: Introduction to SQL Kierunek studiów (jeśli dotyczy): Zarządzanie
Bardziej szczegółowo2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA
PLAN WYKŁADU Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna BAZY DANYCH Wykład 2 dr inż. Agnieszka Bołtuć MODEL DANYCH Model danych jest zbiorem ogólnych zasad posługiwania
Bardziej szczegółowoBazy danych - wykład wstępny
Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,
Bardziej szczegółowoBAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski
BAZY DANYCH algebra relacyjna Opracował: dr inż. Piotr Suchomski Wprowadzenie Algebra relacyjna składa się z prostych, ale mocnych mechanizmów tworzenia nowych relacji na podstawie danych relacji. Hdy
Bardziej szczegółowoProjektowanie relacyjnych baz danych
Mam nadzieję, że do tej pory przyzwyczaiłeś się do tabelarycznego układu danych i poznałeś sposoby odczytywania i modyfikowania tak zapisanych danych. W tym odcinku poznasz nieco teorii relacyjnych baz
Bardziej szczegółowoWprowadzenie do SQL TEMAT 4 - Zadania dodatkowe
Wprowadzenie do SQL TEMAT 4 - Zadania dodatkowe 1. Znaleźć firmy, z którymi nie była przeprowadzona żadna transakcja. (RÓŻNICA) Krok 1: utworzenie tabeli BEZ_TRANSAKCJI będącej kopią tabeli FIRMY i w której
Bardziej szczegółowoDefinicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.
TECHNOLOGIE BAZ DANYCH WYKŁAD 1 Wprowadzenie do baz danych. Normalizacja. (Wybrane materiały) Dr inż. E. Busłowska Definicja bazy danych Uporządkowany zbiór informacji, posiadający własną strukturę i wartość.
Bardziej szczegółowoTechnologia informacyjna
Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,
Bardziej szczegółowoPodstawy języka SQL. SQL Structured Query Languagestrukturalny
Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych
Bardziej szczegółowoRBD Relacyjne Bazy Danych Więzy realcji
Wykład 8 RBD Relacyjne Bazy Danych Więzy realcji Bazy Danych - A. Dawid 2011 1 Więzy (Constraints) Więzy ograniczenia na związki między poszczególnymi atrybutami w bazie danych. Określają często zakres
Bardziej szczegółowoRelacyjny model baz danych, model związków encji, normalizacje
Relacyjny model baz danych, model związków encji, normalizacje Wyklad 3 mgr inż. Maciej Lasota mgr inż. Karol Wieczorek Politechnika Świętokrzyska Katedra Informatyki Kielce, 2009 Definicje Operacje na
Bardziej szczegółowoBazy danych Algebra relacji Wykład dla studentów matematyki
Bazy danych Algebra relacji Wykład dla studentów matematyki 8 marca 2015 Algebra relacji Model teoretyczny do opisywania semantyki relacyjnych baz danych, zaproponowany przez T. Codda (twórcę koncepcji
Bardziej szczegółowoRBD Relacyjne Bazy Danych
Wykład 7 RBD Relacyjne Bazy Danych Bazy Danych - A. Dawid 2011 1 Selekcja σ C (R) W wyniku zastosowania operatora selekcji do relacji R powstaje nowa relacja T do której należy pewien podzbiór krotek relacji
Bardziej szczegółowoSystemy baz danych. Notatki z wykładu. http://robert.brainusers.net 17.06.2009
Systemy baz danych Notatki z wykładu http://robert.brainusers.net 17.06.2009 Notatki własne z wykładu. Są niekompletne, bez bibliografii oraz mogą zawierać błędy i usterki. Z tego powodu niniejszy dokument
Bardziej szczegółowo030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła
030 PROJEKTOWANIE BAZ DANYCH Prof. dr hab. Marek Wisła Elementy procesu projektowania bazy danych Badanie zależności funkcyjnych Normalizacja Projektowanie bazy danych Model ER, diagramy ERD Encje, atrybuty,
Bardziej szczegółowoPrzestrzenne bazy danych Podstawy języka SQL
Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured
Bardziej szczegółowoRelacyjny model danych
Relacyjny model danych Wykład przygotował: Robert Wrembel BD wykład 2 (1) 1 Plan wykładu Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe BD wykład 2 (2) W ramach drugiego
Bardziej szczegółowoPodstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko
Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych
Bardziej szczegółowoSystemy baz danych. mgr inż. Sylwia Glińska
Systemy baz danych Wykład 1 mgr inż. Sylwia Glińska Baza danych Baza danych to uporządkowany zbiór danych z określonej dziedziny tematycznej, zorganizowany w sposób ułatwiający do nich dostęp. System zarządzania
Bardziej szczegółowoAlgebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.
Algebra relacji Definicja 1 (Relacja matematyczna). Relacją R między elementami zbioru D 1 D 2 D n, gdzie przypomnijmy D 1 D 2 D n = {(d 1, d 2,..., d n ) : d i D i, i = 1, 2,..., n}, nazywamy każdy podzbiór
Bardziej szczegółowoTechnologie baz danych
Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów
Bardziej szczegółowoZasady transformacji modelu DOZ do projektu tabel bazy danych
Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1 A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina
Bardziej szczegółowoBazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność
Bardziej szczegółowoP o d s t a w y j ę z y k a S Q L
P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p
Bardziej szczegółowoKrzysztof Kadowski. PL-E3579, PL-EA0312,
Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza
Bardziej szczegółowoSZKOLENIE: Administrator baz danych. Cel szkolenia
SZKOLENIE: Administrator baz danych. Cel szkolenia Kurs Administrator baz danych skierowany jest przede wszystkim do osób zamierzających rozwijać umiejętności w zakresie administrowania bazami danych.
Bardziej szczegółowoBazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.
Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów
Bardziej szczegółowoNormalizacja. Pojęcie klucza. Cel normalizacji
Plan Normalizacja Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1. Cel normalizacji. 2. Klucze schematów relacyjnych atrybuty kluczowe i niekluczowe. 3. 2PN druga postać normalna. 4. 3PN trzecia
Bardziej szczegółowo2017/2018 WGGiOS AGH. LibreOffice Base
1. Baza danych LibreOffice Base Jest to zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego,
Bardziej szczegółowoPRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
Bardziej szczegółowoInformatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty
Informatyka Ćwiczenie 10 Bazy danych Baza danych jest zbiór informacji (zbiór danych). Strukturę bazy danych można określić w formie jak na rysunku 1. Pracownik(ID pracownika, imie, nazwisko, pensja) Klient(ID
Bardziej szczegółowoBaza danych. Modele danych
Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych
Bardziej szczegółowoBazy danych Wykład zerowy. P. F. Góra
Bazy danych Wykład zerowy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Patron? Św. Izydor z Sewilli (VI wiek), biskup, patron Internetu (sic!), stworzył pierwszy katalog Copyright c 2011-12 P.
Bardziej szczegółowoWykład I. Wprowadzenie do baz danych
Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles
Bardziej szczegółowoWprowadzenie do baz danych
Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można
Bardziej szczegółowoAgnieszka Ptaszek Michał Chojecki
Agnieszka Ptaszek Michał Chojecki Krótka historia Twórcą teorii relacyjnych baz danych jest Edgar Frank Codd. Postulaty te zostały opublikowane po raz pierwszy w 1970 roku w pracy A Relational Model of
Bardziej szczegółowoKaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.
elacja chemat relacji chemat relacji jest to zbiór = {A 1,..., A n }, gdzie A 1,..., A n są artybutami (nazwami kolumn) np. Loty = {Numer, kąd, Dokąd, Odlot, Przylot} KaŜdemu atrybutowi A przyporządkowana
Bardziej szczegółowoJak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?
Plan wykładu Spis treści 1 Projektowanie baz danych 1 2 Zależności funkcyjne 1 3 Normalizacja 1NF, 2NF, 3NF, BCNF 4 4 Normalizacja 4NF, 5NF 6 5 Podsumowanie 9 6 Źródła 10 1 Projektowanie baz danych Projektowanie
Bardziej szczegółowoTEST E.14 BAZY DANYCH
TEST E.14 BAZY DANYCH 1 CZAS PRACY: 45 MINUT 1. W celu dodania rekordu do tabeli Pracownicy należy użyd polecenia SQL a. INSERT INTO Pracownicy VALUES ("Jan", "Kowalski"); b. INSERT VALUES (Jan; Kowalski)
Bardziej szczegółowoBazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1
Bazy danych Wykład V Kwerendy Copyrights by Arkadiusz Rzucidło 1 Wprowadzenie Istotą bazy danych jest możliwość efektywnego wyszukiwania informacji Realizację operacji wyszukiwania zapewniają kwerendy
Bardziej szczegółowoBazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408
Bazy Danych Model Relacyjny Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Relacyjny model danych Relacyjny model danych jest obecnie najbardziej popularnym modelem używanym w systemach
Bardziej szczegółowoPodstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38
Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych
Bardziej szczegółowoBAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski
BAZY DANYCH model relacyjny Opracował: dr inż. Piotr Suchomski Relacyjny model danych Relacyjny model danych posiada trzy podstawowe składowe: relacyjne struktury danych operatory algebry relacyjnej, które
Bardziej szczegółowoSystemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
Bardziej szczegółowoNormalizacja relacyjnych baz danych. Sebastian Ernst
Normalizacja relacyjnych baz danych Sebastian Ernst Zależności funkcyjne Zależność funkcyjna pomiędzy zbiorami atrybutów X oraz Y oznacza, że każdemu zestawowi wartości atrybutów X odpowiada dokładnie
Bardziej szczegółowoWykład 6. SQL praca z tabelami 3
Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1
Bardziej szczegółowoWYKŁAD 1. Wprowadzenie do problematyki baz danych
WYKŁAD 1 Wprowadzenie do problematyki baz danych WYKŁAD 2 Relacyjny i obiektowy model danych JĘZYK UML (UNIFIED MODELING LANGUAGE) Zunifikowany język modelowania SAMOCHÓD
Bardziej szczegółowoBazy danych. Andrzej Łachwa, UJ, /15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 10/15 Semantyka schematu relacyjnej bazy danych Schemat bazy danych składa się ze schematów relacji i więzów
Bardziej szczegółowoBazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych
Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy
Bardziej szczegółowoPawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl
Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność
Bardziej szczegółowoBazy danych Access KWERENDY
Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych
Bardziej szczegółowoRelacyjny model danych. Relacyjny model danych
1 Plan rozdziału 2 Relacyjny model danych Relacyjny model danych - pojęcia podstawowe Ograniczenia w modelu relacyjnym Algebra relacji - podstawowe operacje projekcja selekcja połączenie operatory mnogościowe
Bardziej szczegółowoDiagramy związków encji. Laboratorium. Akademia Morska w Gdyni
Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie
Bardziej szczegółowoPojęcie zależności funkcyjnej
Postacie normalne Plan wykładu Zależności funkcyjne Cel normalizacji Pierwsza postać normalna Druga postać normalna Trzecia postać normalna Postać normalna Boyca - Codda Pojęcie zależności funkcyjnej Definicja
Bardziej szczegółowoBazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski
Bazy danych Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 5 Strukturalny język zapytań (SQL - Structured Query Language) Algebraiczny rodowód podstawowe działania w przykładach Bazy danych.
Bardziej szczegółowoBAZY DANYCH Podstawowe pojęcia
BAZY DANYCH Podstawowe pojęcia Wykład 1 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) BD 1 / 26 Literatura 1. L. Banachowski, Bazy danych. Tworzenie aplikacji, Akademicka
Bardziej szczegółowoZależności funkcyjne c.d.
Zależności funkcyjne c.d. Przykłady. Relacja Film (zapis w postaci tabeli): Tytuł Rok Długość typfilmu nazwastudia nazwiskogwiazdy Gwiezdne 1977 124 Kolor Fox Carrie Fisher Gwiezdne 1977 124 Kolor Fox
Bardziej szczegółowoWPROWADZENIE DO BAZ DANYCH
WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z
Bardziej szczegółowoRelacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Bardziej szczegółowoBAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza
BAZY DANYCH Microsoft Access NORMALIZACJA BAZ DANYCH Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii
Bardziej szczegółowoPLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE
PLAN WYKŁADU Zależności funkcyjne Anomalie danych Normalizacja Postacie normalne Zależności niefunkcyjne Zależności złączenia BAZY DANYCH Wykład 5 dr inż. Agnieszka Bołtuć ZALEŻNOŚCI FUNKCYJNE Niech R
Bardziej szczegółowoModelowanie hierarchicznych struktur w relacyjnych bazach danych
Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego
Bardziej szczegółowoLaboratorium Technologii Informacyjnych. Projektowanie Baz Danych
Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w
Bardziej szczegółowoCel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania
Przedmiot: Bazy danych Rok: III Semestr: V Rodzaj zajęć i liczba godzin: Studia stacjonarne Studia niestacjonarne Wykład 30 21 Ćwiczenia Laboratorium 30 21 Projekt Liczba punktów ECTS: 4 C1 C2 C3 Cel przedmiotu
Bardziej szczegółowoPODSTAWOWE POJĘCIA BAZ DANYCH
Baza danych (data base) - uporządkowany zbiór danych o określonej strukturze, przechowywany na nośniku informacji w komputerze. System bazy danych można zdefiniować jako bazę danych wraz z oprogramowaniem
Bardziej szczegółowoRelacyjne bazy danych
Relacyjne bazy danych W roku 1970 dr Edgar Ted Codd z firmy IBM zaprezentował relacyjny model danych. W modelu tym dane miały być przechowywane w prostych plikach liniowych, które to pliki nazywane są
Bardziej szczegółowoInformatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych
Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy
Bardziej szczegółowoPytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy
Pytania SO Oprogramowanie Biurowe Pytania: Egzamin Zawodowy Pytania SO Oprogramowanie Biurowe (1) Gdzie w edytorze tekstu wprowadza się informację lub ciąg znaków, który ma pojawić się na wszystkich stronach
Bardziej szczegółowoPlan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.
Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy. Przejście od modelu związków encji do modelu relacyjnego: odwzorowanie zbiorów encji, odwzorowanie związków encji
Bardziej szczegółowoWykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
Bardziej szczegółowoJęzyk DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE
Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie
Bardziej szczegółowoCo to są relacyjne bazy danych?
Co to są relacyjne bazy danych? Co to są relacyjne bazy danych? O Są to zbiory danych pogrupowane w tabele o strukturze: kolejne kolumny określają kolejne porcje informacji potrzebne dla każdego wystąpienia,
Bardziej szczegółowo3. Podzapytania, łączenie tabel i zapytań
3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,
Bardziej szczegółowoWykład XII. optymalizacja w relacyjnych bazach danych
Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych
Bardziej szczegółowoWykład 5. SQL praca z tabelami 2
Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,
Bardziej szczegółowoBazy danych wykład drugi. Konrad Zdanowski
Algebra relacji - przypomnienie Niech R(A 1,..., A k ) i S(B 1,..., B n ) relacje. Podstawowe operacje na relacjach: operacje teoriomnogościowe: suma R S, iloczyn R S, różnica R \ S, iloczyn kartezjański
Bardziej szczegółowoBazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)
Bazy danych 1 Wykład 5 Metodologia projektowania baz danych (projektowanie logiczne) Projektowanie logiczne przegląd krok po kroku 1. Usuń własności niekompatybilne z modelem relacyjnym 2. Wyznacz relacje
Bardziej szczegółowo77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.
77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele
Bardziej szczegółowoCel normalizacji. Tadeusz Pankowski
Plan Normalizacja Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1. Cel normalizacji. 2. Klucze schematów relacyjnych atrybuty kluczowe i niekluczowe. 3. 2PN druga postać normalna. 4. 3PN trzecia
Bardziej szczegółowoKiedy i czy konieczne?
Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle
Bardziej szczegółowo