Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki

Wielkość: px
Rozpocząć pokaz od strony:

Download "Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki"

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

- 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ółowo

Operacja Teta-złączenia. v1 v1 Θ v2

Operacja 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ółowo

Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki

Dr 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

-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ółowo

Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie

Wykł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ółowo

Model relacyjny. Wykład II

Model 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ółowo

Krok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG');

Krok 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ółowo

1 Wstęp do modelu relacyjnego

1 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ółowo

Model relacyjny. Wykład II

Model 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ółowo

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

KARTA 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ółowo

Egzamin / zaliczenie na ocenę* 0,5 0,5

Egzamin / 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ółowo

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Wprowadzenie 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ółowo

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

INFORMATYKA 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ółowo

Autor: Joanna Karwowska

Autor: 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ółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie 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ółowo

Wykład 2. Relacyjny model danych

Wykł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ółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski. Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Tadeusz 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ółowo

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Program 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ółowo

Bazy danych. Algebra relacji

Bazy 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ółowo

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

Grupa 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ółowo

2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

2010-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ółowo

Bazy danych - wykład wstępny

Bazy 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ółowo

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

BAZY 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ółowo

Projektowanie relacyjnych baz danych

Projektowanie 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ółowo

Wprowadzenie do SQL TEMAT 4 - Zadania dodatkowe

Wprowadzenie 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ółowo

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Definicja 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ółowo

Technologia informacyjna

Technologia 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ółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy 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ółowo

RBD Relacyjne Bazy Danych Więzy realcji

RBD 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ółowo

Relacyjny model baz danych, model związków encji, normalizacje

Relacyjny 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ółowo

Bazy danych Algebra relacji Wykład dla studentów matematyki

Bazy 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ółowo

RBD Relacyjne Bazy Danych

RBD 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ółowo

Systemy 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 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ółowo

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

030 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ółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne 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ółowo

Relacyjny model danych

Relacyjny 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ółowo

Podstawowe 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 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ółowo

Systemy baz danych. mgr inż. Sylwia Glińska

Systemy 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ółowo

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Algebra 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ółowo

Technologie baz danych

Technologie 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ółowo

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Zasady 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ółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy 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ółowo

P 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 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ółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof 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ółowo

SZKOLENIE: Administrator baz danych. Cel szkolenia

SZKOLENIE: 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ółowo

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy 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ółowo

Normalizacja. Pojęcie klucza. Cel normalizacji

Normalizacja. 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ółowo

2017/2018 WGGiOS AGH. LibreOffice Base

2017/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ółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE 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ółowo

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Informatyka Ć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ółowo

Baza danych. Modele danych

Baza 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ółowo

Bazy danych Wykład zerowy. P. F. Góra

Bazy 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ółowo

Wykład I. Wprowadzenie do baz danych

Wykł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ółowo

Wprowadzenie do baz danych

Wprowadzenie 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ółowo

Agnieszka Ptaszek Michał Chojecki

Agnieszka 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ółowo

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

KaŜ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ółowo

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

Jak 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ółowo

TEST E.14 BAZY DANYCH

TEST 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ółowo

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Bazy 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ółowo

Bazy 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 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ółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe 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ółowo

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

BAZY 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ółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy 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ółowo

Normalizacja relacyjnych baz danych. Sebastian Ernst

Normalizacja 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ółowo

Wykład 6. SQL praca z tabelami 3

Wykł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ółowo

WYKŁAD 1. Wprowadzenie do problematyki baz danych

WYKŁ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ółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy 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ółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy 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ółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@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ółowo

Bazy danych Access KWERENDY

Bazy 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ółowo

Relacyjny model danych. Relacyjny model danych

Relacyjny 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ółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy 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ółowo

Pojęcie zależności funkcyjnej

Poję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ółowo

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy 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ółowo

BAZY DANYCH Podstawowe pojęcia

BAZY 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ółowo

Zależności funkcyjne c.d.

Zależ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ółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE 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ółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne 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ółowo

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

BAZY 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ółowo

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

PLAN 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ółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie 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ółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium 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ółowo

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Cel 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ółowo

PODSTAWOWE POJĘCIA BAZ DANYCH

PODSTAWOWE 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ółowo

Relacyjne bazy danych

Relacyjne 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ółowo

Informatyka 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 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ółowo

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Pytania 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ółowo

Plan 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. 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ółowo

Wykład 8. SQL praca z tabelami 5

Wykł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ółowo

Ję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 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ółowo

Co to są relacyjne bazy danych?

Co 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ółowo

3. Podzapytania, łączenie tabel i zapytań

3. 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ółowo

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykł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ółowo

Wykład 5. SQL praca z tabelami 2

Wykł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ółowo

Bazy danych wykład drugi. Konrad Zdanowski

Bazy 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ółowo

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Bazy 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ółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. 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ółowo

Cel normalizacji. Tadeusz Pankowski

Cel 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ółowo

Kiedy i czy konieczne?

Kiedy 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