-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium

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

Download "-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium"

Transkrypt

1 Dr inż. Ludmiła Rekuć p. 58 B4 Dr inż. Witold Rekuć p. 57 B4 -Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium Literatura. C. Date. Wprowadzenie do systemów baz danych. WNT, J. Ullman, J. Widom. Podstawowy wykład z systemów baz danych. WNT, Podręczniki systemu MS ACCESS. 4. Materiały do wykładu

2 Laboratorium IBM San Jose (California) A relational model for large shared data banks Communication of the ACM, :6,970. System R - prototyp oprogramowania SEQUEL prototyp języka Dziś: Oprogramowanie MS ACCESS, SQL Server, PostgreSQL, INGRES, ORACLE, DB, Informix, Progres, Język SQL Edgar F. Codd

3 Baza danych jest zbiorem tabel (relacji) pamiętanych w jednym lub wielu plikach Firmy Firm000.mdb Miejscowości Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Kod Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna Nazwa Wojewodztwa KodWoj Kod Nazwa DL Dolnośląskie OP Opolskie 56 PozycjeDokumentu Dokumenty Nr NrSprzerdawcy Np SmbTow CenaNetto Ilość Nr NrSprzerdawcy NrNabywcy Data /0 0 00,00 0 / / ,50 00 / / ,00 50 / /0 00,00 00 / /0 00,00 0 / / ,50 0 4/ /0 0 00,00 45 / ,50 5 / ,80 5 / ,0 00 /0 00,00 0 /0 00 4, / ,60 90 Towary Smb Nazwa Jm StawkaVat 00 Pasztet kg 7% 00 Mortadela kg 7% 00 Chipsy paczka 400g 7% 004 Kawa Jakobs paczka 00g 7% 005 Makrela kons. puszka 50g 7%

4 System zarządzania bazą danych Baza danych System zarządzania bazą danych Język użytkowników bazy danych Język administratora bazy danych... Użytkownicy bazy danych Administrator bazy danych 4

5 Tabela (relacja) Nazwa tabeli (relacji) nazwa kolumny (atrybutu, pola) Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna 56 nagłówek (schemat) Wiersz (rekord, krotka) kolumna (atrybut, pole) 5

6 Wartości w kolumnach (wartości atrybutów) Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna 6 Dolmel 56 Elektryczna Zbiór dopuszczalnych numerów firm Dolme l Zbiór dopuszczalnych nazw firm 45 4 Elektryczn a Zbiór dopuszczalnych nazw ulic Zbiór dopuszczalnych kodów miejscowości Zbiór dopuszczalnych numerów telefonów 6

7 Dziedzina Dziedzina wartości jest to zbiór wartości, które potencjalnie mogą pojawić się w kolumnie tabeli (które może przyjmować atrybut). Różne dziedziny wartości nie muszą być rozłączne Dziedzinę określa się przez podanie typu danych oraz dodatkowych ograniczeń (więzów) lub właściwości MS ACCESS: Nazwa pola Typ danych Nr Liczba Liczba całkowita >=0 i <=999 Nazwa Tekst Długość 0 znaków Ulica Tekst Długość 0 znaków KodMjc Liczba Liczba całkowita between and 99 Telefon Tekst Maska Właściwości 7

8 Określoność wartości w kolumnach (wartości atrybutów) Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna 6 Dolmel 56 Elektryczna Wartość nieokreślona 6 Zbiór dopuszczalnych numerów firm Dolm el Zbiór dopuszczalnych nazw firm 45 4 Elektrycz na Zbiór dopuszczalnych nazw ulic Zbiór dopuszczalnych kodów miejscowości Zbiór dopuszczalnych numerów telefonów 8

9 Projektując tabelę dla pewnego zastosowania możemy rozstrzygnąć dla każdej kolumny: - czy wartość w kolumnie musi być zawsze określona, - czy wartość w kolumnie może być nieokreślona. Do oznaczenia wartości nieokreślonych stosuje się słowo NULL Telefon is NULL telefon jest nieokreślony Telefon is not NULL telefon jest określony Nieokreśloność wartości typu Tekst 6 Dolmel Elektryczna Tekst nieokreślony lub pusty Tekst niepusty tekst określony niepusty - tekst określony pusty - tekst nieokreślony 9

10 Nieokreśloność wartości w kolumnach i logika trójwartościowa Telefon = 45 4? Telefon is NULL? Telefon is not NULL? 6 Dolmel Elektryczna 45 4 TRUE FALSE TRUE 6 Dolmel Elektryczna 4 09 FALSE FALSE TRUE 6 Dolmel Elektryczna UNKNOWN TRUE FALSE NULL Operacje na wartościach nieokreślonych X is NULL Y is not NULL lub is NULL X + Y is NULL 0

11 Wartości domyślne (default) Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna Wartością domyślną danego atrybutu nazywamy wartość z dziedziny tego atrybutu, która ma być wstawiona przez system do każdego dodawanego wiersza 56 6 Zbiór dopuszczalnych numerów firm Dolm el Zbiór dopuszczalnych nazw firm 45 4 Elektrycz na Zbiór dopuszczalnych nazw ulic Zbiór dopuszczalnych kodów miejscowości Zbiór dopuszczalnych numerów telefonów

12 Klucze tabeli Kluczem tabeli nazywamy zbiór atrybutów tabeli, które identyfikują wiersz tabeli i żaden jego podzbiór właściwy tej własności nie ma Dokumenty Nr NrSprzerdawcy NrNabywcy Data / / / / / / Kluczem w tabeli Dokumenty jest zbiór K = {Nr, NrSprzedawcy}

13 Inne przykłady: Osoba(Pesel, Nip, Nazwisko, Imię, DataUrodzenia) K={Pesel}, K={Nip} Egzamin(NrStudenta, KodPrzedmiotu, Data, Ocena) K={NrStudenta, KodPrzedmiotu, Data} PozycjeDokumentu(Nr, NrSprzedawcy, Np,SmbTow, CenaNetto, Ilość) K={Nr, NrSprzedawcy, Np}, K={Nr, NrSprzedawcy, SmbTow} ObrotyMiesięczne(Rok, Mc, Wartość) K={Rok, Mc}

14 Kluczem podstawowym tabeli nazywamy klucz, który ze względu na pewne cechy praktyczne zostaje arbitralnie wybrany spośród kluczy tabeli Przykład: Przedmiot (Kod, Nazwa, Opis) K={Kod}, K={Nazwa} Kluczem podstawowy: K Zbiór atrybutów zawierający klucz nazywamy nadkluczem Przykład: Przedmiot (Kod, Nazwa, Opis) K={Kod}, K={Nazwa} Nadkluczem jest: {Kod, Opis} Określoność wartości kluczy Każdy klucz tabeli musi mieć wartość określoną (NULL jest niedopuszczalne) 4

15 5

16 Przykład definicji tabeli w języku SQL (system PostgreSQL) create table "Firmy" ( Nr decimal(4) Nazwa varchar(0) Ulica varchar(0) KodMjc decimal() Telefon varchar(0) ); primary key check(nr>=0), not null, not null, not null, 6

17 Operacje aktualizacji - dodaj nowy wiersz do tabel - usuń istniejący wiersz z tabeli - zmień wartości w istniejącym wierszu tabeli W aktualizacji bazy danych musimy zapewnić poprawność bazy danych: Poprawność formalna zgodność bazy danych z regułami formalnymi Poprawność merytoryczna zgodność bazy danych z rzeczywistością 7

18 Poprawność formalna więzy integralnościowe: więzy dziedziny wartość atrybutu w tabeli musi należeć do dziedziny tego atrybutu lub jeżeli jest to dopuszczalne może być nieokreślona (NULL) więzy klucza w tabeli nie mogą występować dwa lub więcej wierszy o tej samej wartości klucza; klucz musi mieć wartość określoną więzy integralności referencyjnej patrz niżej inne więzy patrz niżej 8

19 Więzy dziedziny i klucza Firmy Dodaj wiersz Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna Informatyczna A - Makrosoft 56 NULL Naruszenie więzów dziedziny Dodaj wiersz NULL Makrosoft Informatyczna NULL Naruszenie więzów klucza Dodaj wiersz Makrosoft Informatyczna NULL 9

20 Więzy integralności referencyjnej Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Pafawag Wagonowa Wałbrzych DL 4 Iase Energetyczna 5 Dolmed Medyczna Nazwa KodWoj 56 Dodaj do tabeli Firmy wiersz: 6 TP SA Telewizyjna Usuń z tabeli Miejscowości wiersz: Opole DL Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? 0

21 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna Nazwa KodWoj 56 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

22 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna 56 Nazwa KodWoj Klucz = {Kod} Klucz = {Nr} Klucz obcy = {KodMjc} Dane są dwie tabele: To zwana tabelą odwołania Td zwana tabelą docelową Kluczem obcym tabeli To do tabeli Td nazywamy taki zbiór 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łania musi istnieć wiersz w tabeli docelowej zawierający wartość tego klucza.

23 Przykład: Student (Nr, Nazwisko, Adres) Klucz={Nr} Egzamin (NrStudenta, KodPrzedmiotu, Data, Ocena) Klucz={NrStudenta, KodPrzedmiotu, Data} KluczObcy do tabeli Student KO={NrStudenta} KluczObcy do tabeli Przedmiot KO={KodPrzedmiotu} Przedmiot (Kod, Nazwa) Klucz={Kod} Przykład: Dostawca (Kod, Nazwa, Ulica, KodMjc) Miejscowość (Kod, Nazwa) Dostawa (KodDostawcy, SmbTowaru, Data, Ilość) Towar (Symbol, Nazwa, Cena, Jm) Wskazać klucze i klucze obce!

24 Jm 4

25 Przykład definicji tabeli w języku SQL (system PostgreSQL) create domain "NumeryFirm" decimal(4) not null; -create table "Miejscowosci" ( Kod decimal() Nazwa varchar(0) ); -create table "Firmy" ( Nr "NumeryFirm" Nazwa varchar(0) Ulica varchar(0) KodMjc decimal() Telefon varchar(0) ); primary key check(kod>0), not null primary key check(nr>=0), not null, not null, not null references "Miejscowosci"(Kod), 5

26 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:. Data dostawy nie może być wcześniejsza od daty zamówienia tej dostawy.. Dla każdego promotora liczba dyplomatów nie może być większa od 5.. Nie może być wykonane wypożyczenie książki czytelnikowi, który zalega ze zwrotem innych książek. 6

27 Operacje na tabelach Operacje relacyjne Operacje teoriomnogościowe Projekcja Suma Selekcja Iloczyn Złączenie Różnica niesymetryczna Dzielenie Dopeł nienie Przemianowanie 7

28 Operacja projekcji Wyznacza tabelę o schemacie ograniczonym do zbioru zadanych nazw r(r) - tabela r o schemacie R poddawana projekcji X schemat nowej tabeli - zbiór zadanych nazw (X R) 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 8

29 Przykład r({a,b,c,d}) A B C D a5 a6 a6 a6 a b b4 b4 b4 b c c5 c c c d d d d d π π {C,D} {A,B} ( r ({A,B,C,D}) ) = q({c,d}) C D c c5 c c c d d d d d ( r ({A,B,C,D}) ) = q({a,b}) A a5 a6 a B b b4 b 9

30 Przykład Podaj nazwy i numery telefonów firm q({nazwa, Telefon}) = π {Nazwa, Telefon} ( Firmy ({Nr, Nazwa, Ulica,KodMjc, Telefon})) Firmy q Nazwa Telefon Nr Nazwa Ulica KodMjc Telefon Nasza Firma 4 0 Nasza Firma Nasza 4 Abeja 4 55 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna π Audi Pafawag Iase 56 Dolmed {Nazwa, Telefon} 56 wiersze zredukowane do X={Nazwa, Telefon} 0

31

32 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = π {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon}))

33 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = π {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) Firmy q KdMjc Nr Nazwa Ulica 0 Nasza Firma KodMjc Telefon Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna π {KodMjc} 56

34 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = π {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) 4

35 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = π {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) Firmy q KdMjc π {KodMjc} Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna 56 5

36 Przykład Chcemy obliczyć wartość średnią obrotu miesięcznego w roku q({obrót}) = π {Obrót} ( Obroty ({Miesiąc,Obrót}) ) Obroty q Obrót π {Obrót} Miesiąc Obrót Styczeń 00 Luty 00 Marzec 00 Kwiecień 00 Maj 00 czerwiec 00 Zostaw duplikaty w tabeli wynikowej 6

37 Realizacja projekcji w SQL select nazwa, telefon from Firmy; select distinct nazwa, telefon from Firmy; select * from Firmy; 7

38 Operacja selekcji Wyznacza tabelę o schemacie identycznym schematowi tabeli zadanej ale o wierszach spełniających pewien warunek selekcji r(r) F q(r) = tabela r o schemacie R poddawana selekcji warunek selekcji (formuła logiczna) σ F ( r (R) ) = { t : t r i F(t) = prawda } wiersze spełniające warunek selekcji 8

39 Przykład σ B=4 ( r ({A,B,C,D}) ) = q ({A,B,C,D}) r({a,b,c,d}) A B a5 a6 a6 a6 a C D a a5 a a a A B C D a6 a6 a a5 a a σ B=4 ( r ({A,B,C,D}) ) = q ({A,B,C,D}) and D< A B C D a6 4 a σ B=4 ( r ({A,B,C,D}) ) = q ({A,B,C,D}) or D< A a5 a6 a6 a6 a B C a a5 a a a D 9

40 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 Kod q Kod Nazwa KodWoj Wrocław DL Wałbrzych DL σ KodWoj=DL Nazwa KodWoj Wrocław DL Opole OP Wałbrzych DL 4 Warszawa MZ 5 Katowice SL 6 Kraków MP 40

41 4

42 q({... })= σ (KodMjc=) and (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) (Telefon is NULL) 4

43 q({... })= σ (KodMjc=) or (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) (Telefon is NULL) 4

44 Realizacja selekcji w SQL select * from Miejscowości where KodWoj = DL ; select * from Firmy where (KodMjc = ) and (Telefon IS NULL); select * from Firmy where (KodMjc = ) or (Telefon IS NULL); 44

45 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} ( σ (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon}))) (KodMjc=) and (Telefon is NULL) Firmy q Nazwa Audi Pafawag π {Nazwa} ( σ Nr Nazwa Ulica 0 Nasza Firma (KodMjc=) and (Telefon is NULL) KodMjc Telefon Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna 56 45

46 q({nazwa})= π {Nazwa} ( σ (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon}))) (KodMjc=) and (Telefon is NULL) 46

47 Realizacja projekcji i selekcji w SQL select Nazwa from Firmy where KodMjc = and Telefon IS NULL; 47

48 Operacje złączenia Problem: chcemy uzyskać zestawienie firm z nazwami miejscowości. Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna Miejscowości Kod Nazwa Wojewodztwa KodWoj Wrocław DL Kod Nazwa Opole OP DL Dolnośląskie Wałbrzych DL OP Opolskie 56 PozycjeDokumentu Dokumenty Nr NrSprzerdawcy Np SmbTow CenaNetto Ilość Nr NrSprzerdawcy NrNabywcy Data /0 0 00,00 0 / / ,50 00 / / ,00 50 / /0 00,00 00 / /0 00,00 0 / / ,50 0 4/ /0 0 00,00 45 / ,50 5 / ,80 5 / ,0 00 /0 00,00 0 /0 00 4, / ,60 90 Towary Smb Nazwa Jm StawkaVat 00 Pasztet kg 7% 00 Mortadela kg 7% 00 Chipsy paczka 400g 7% 004 Kawa Jakobs paczka 00g 7% 005 Makrela kons. puszka 50g 7% 48

49 Operacje złączenia Problem: chcemy uzyskać zestawienie firm z nazwami miejscowości. Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna 56 Miejscowości Kod Nazwa KodWoj Wrocław DL Opole OP Wałbrzych DL 49

50 Operacja równozłą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 = Ø) q(r S) = r [ A=B ] s = { t : t[r] r, t[s] s i t[a] = t[b] } R A r S B s v t v v v 50

51 Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna Miejscowości Kod Nazwa KodWoj Wrocław DL Opole OP Wałbrzych DL 56 Firmy [ KodMjc = Kod ] Miejscowości Zestawienie firm Nr Nazwa Ulica KodMjc Telefon Kod Nazwa (Mjc) KodWoj 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Wałbrzych DL Audi Audiego Opole OP Pafawag Wagonowa Opole OP 4 Iase Energetyczna Wałbrzych Wrocław 5 Dolmed Medyczna 56 DL DL 5

52 Firmy [ KodMjc = Kod ] Miejscowości 5

53 Firmy [ ] Miejscowości = Firmy Miejscowości 5

54 Złożenie operacji projekcji, selekcji i równozłą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 )) 54

55 Złożenie operacji projekcji, selekcji i równozłączenia 55

56 Iloczyn kartezjański tabel 56

57 Równozłączenie wielu tabel 57

58 Równozłą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; 58

59 Zadania F( Nr, Nazwa ) n n n 4 n4 T ( Smb, Nazwa ) a na b nb c nc D (NrD, NrS, NrN,Data) P ( NrD, NrS, Np, Smb, Ilosc, Cena) d a 0 d b 5 d a 0 4 d a d b 7 c 4 5 a 5 c b 4 4 c

60 Oblicz: ) ) ) 4) π σ π {Data} (D) (D), NrS= and NrN= σ σ NrS= or NrN= (D) ( Smb=a(P)) D [NrS=Nr] F, D [NrN=Nr] F, D [Nrd=Nrd,NrS=NrS] P {NrD,NrS} Napisz wyrażenie algebraiczne dla żądań: ) Podaj nazwy firm, które coś kupiły w dniu 'd'. ) Podaj nazwy towarów kupionych przez firmę o nazwie 'n'. ) Podaj dni, w których kupiono towar o nazwie 'na'. 4) Podaj nazwy towarów sprzedanych po cenie >. 60

61 Operacje na tabelach Operacje relacyjne Operacje teoriomnogościowe Projekcja Suma Selekcja Iloczyn Złączenie Różnica niesymetryczna Dzielenie Dopeł nienie Przemianowanie 6

62 Operacje teoriomnogościowe suma tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r lub t s } Przykład r A a a5 a a6 a B b b b b4 b q s A a5 a a6 a B b b b4 b A a a5 a a6 a a B b b b b4 b b 6

63 Realizacja operacji sumy tabel w MS ACCESS za pomocą kwerendy dołączającej 6

64 Realizacja operacji sumy tabel w MS ACCESS za pomocą kwerendy dołączającej b) q := r s a) r := r s r s kwerenda dołączająca r r q := r q := q s s kwerenda tworząca tabelę q kwerenda dołączająca q 64

65 Realizacja operacji sumy tabel w SQL Kwerenda dołączająca: 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} 65

66 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 a a5 a a6 a b b b b4 b s A B a5 a a6 a b b b4 b q A a5 a a6 B b b b4 66

67 Realizacja operacji iloczynu tabel w MS ACCESS za pomocą kwerendy wybierającej q := r s r A B a a5 a a6 a b b b b4 b s A a5 a a6 a B b b b4 b π{r.*}(r [ r.a =s.a,..., r.a =s.a n n ] s) π{r.a,r.b}(r [ r.a = s.a, r.b = s.b ] s) q A B a5 a a6 b b b4 67

68 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; 68

69 Operacje teoriomnogościowe różnica niesymetryczna 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 a a5 a a6 a b b b b4 b s A a5 a a6 a B q b b b4 b A a a B b b 69

70 Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej Rekordy unikatowe 70

71 Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej b) q := r s a) r := r s r s kwerenda usuwająca r q := r q := q s r s kwerenda tworząca tabelę q kwerenda usuwająca q 7

72 Realizacja odejmowania w SQL MS ACCESS: delete distinctrow s.* from r inner join s on (r.a=s.a) and ( r.b=s.b); PostgreSQL: select r.* from r except select s.* from s; select r.* from r except all select s.* from s; 7

73 insert into Odbiorca select Dostawca.* from Dostawca; 7

74 select Dostawca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); 74

75 delete distinctrow Odbiorca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); 75

76 Operacje teoriomnogościowe dopełnienie Dana jest tabela r(r), w której R={A,A,...,An} Każdej nazwie A,A,...,An przyporządkowano zbiór dopuszczalnych wartości D,D,...,Dn dop(r(r)) = D D... Dn r(r) Przykład R={A,A} D = {,} D = {a,b} D D A A a b a b r A A a b dop(r) A A a b 76

77 Przykład Obiekt Nazwa Zwiedziła Grupa Adres Liczność Numer Nazwa Numer Muzeum Muzealna 0 Muzeum Park zdrojowy Parkowa 50 Park zdrojowy Zamek Zamkowa 55 Zamek Zapora Wodna Zapora 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; 77

78 78

79 Przemianowanie atrybutów Dokumenty Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 5 Dolmed Medyczna (π {NrSprzedawcy} 56 (Dokumenty) π Nr NrSprzerdawcy NrNabywcy Data / / / / / / {NrNabywcy} (Dokumenty) ) [??=Nr ]Firmy ta nazwa powinna być wspólna 79

80 Dana jest tabela r(r) o schemacie R={A,A,...,An}, dla której: a) wybieramy nazwy A,A,...,Ak R = {A,A,...,An} b) określamy nazwy B,B,...,Bk z zamiarem aby Bi zastępowało Ai (i =...k) c) tworzymy nowy schemat Q = ( R {A,A,...,Ak} ) {B,B,...,Bk} δ {A,A,...,Ak <-- B,B,...,Bk} ( r(r) ) = q( Q ) Kontynuacja przykładu: π {Nr} (δ { NrSprzedawcy <-- Nr} ) (Dokumenty) π ( (δ {Nr} {NrNabywcy <-- Nr} (Dokumenty) ) [ Nr=Nr ] Firmy 80

81 Osoba_.pesel as rodzic, Osoba_.pesel as dziadek, Osoba_.pesel as pradziadek, from (Osoba inner join Osoba_...)...); select Osoba.pesel, 8

82 Operacja dzielenia Dane są tabele: r(r), która będzie dzielną, s(s), która będzie dzielnikiem. Utworzymy tabelę: q(t), która będzie ilorazem. Przy czym T = R S q(t) = r(r) s(s) = { t : dla każdej ts s, istnieje tr r taka, że tr[r-s]= t i tr[s] = ts} Nieformalnie: operacja dzielenia znajduje te wiersze dzielnej, które łaczą się z każdym wierszem dzielnika 8

83 Przykład Zwiedziła Obiekt Grupa Nazwa Adres Numer Nazwa Liczność Numer Muzeum Muzeum Muzealna 0 Park zdrojowy Park zdrojowy Parkowa 50 Muzeum 55 Muzeum Podać, które grupy zwiedziły już każdy obiekt: Zwiedziła Obiekt Zwiedziła Nazwa Obiekt Numer Muzeum Park zdrojowy Muzeum Muzeum Nazwa Adres Muzeum Muzealna Park zdrojowy Parkowa {Nazwa,Numer} {Nazwa, Adres} Grupy Numer Numery grup, które w tabeli Zwiedziła łączą się z każdym obiektem 8

84 Przykład Zwiedziła Obiekt Grupa Nazwa Adres Numer Nazwa Liczność Numer Muzeum Muzeum Muzealna 0 Park zdrojowy Park zdrojowy Parkowa 50 Muzeum 55 Muzeum Podać obiekty zwiedzone już przez każdą grupę: Zwiedziła Grupa Zwiedziła Nazwa Grupa Numer Muzeum Park zdrojowy Muzeum Muzeum Numer Liczność {Nazwa,Numer} {Numer, Liczność} Obiekty Nazwa Muzeum Nazwy obiektów, które w tabeli Zwiedziła łączą się z każdą grupą 84

85 Realizacja operacji dzielenia za pomocą kwerend q=r s = R-S (r) π R-S π (( R-S ( r ) s) r) s r π R-S ( r ) π rob kwerenda tworząca tabelę rob kwerenda tworząca tabelę rob ( rob s ) rob r rob r kwerenda usuwająca rob rob π R-S(rob) rob kwerenda usuwająca 85

86 Realizacja operacji dzielenia w SQL select from where Nazwa Zwiedziła as r not exists (select * from Grupa where not exists ( select * from Zwiedziła as r where (r.nazwa=r.nazwa) and (r.numer=grupa.numer ))); 86

87 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 q(r S) = r [ AΘB ] s = { t : t[r] r, t[s] s i t[a] Θ t[b] } r R A s v t S B v v v v Θ v 87

88 Przykład r A a a5 a a6 a r C B a5 a a6 a 4 r [ B > D ] r = D 4 A B C D a5 a6 a6 a6 a a a5 a a a 88

89 Przykład Grupa Nazwa Liczność Pielgrzymka 0 Studenci 50 Emeryci 55 Szkoła 0 Urząd Miejski 0 Pafawag 0 Autokar Numer rej Pojemność WRU 49 5 DW WCX 8 60 WWX WRA 0 DW Podać autokary, które mogą obsłużyc poszczególne grupy turystyczne Grupa [ Liczność <= Pojemność ] Autokar 89

90 Teta złączenie w języku SQL select from where Autokar.Numer rej, Grupa.Nazwa Autokar, Grupa Autokar.Pojemność >= Grupa.Liczność; 90

91 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 } 9

92 Przykład r A a a5 a a6 a r B r B b b b b5 b b5 b b6 b r = A B C a a a a a6 b b b b b5 c c c c c C c c c4 c 9

93 Przykład ( iloczyn kartezjański!!! ) r A a a5 a r B r C b b b c5 c r = D d d A B C D a a a5 a5 a a b b b b b b c5 c c5 c c5 c d d d d d d 9

94 PROJEKTOWANIE TABEL Anomalie aktualizacji Klucz = {NumerSklepu, SymbolTowaru, Data} 94

95 Dodaj towar : < 004, Mentos, 00 > Dodaj sklep : <, Marketowa > Usuń towar : <00> Usuń sklep : <> Usun sprzedaż : <,00,00--*> Zmień adres sklepu : <, Supermarketowa > Zmień stan towaru w magazynie : <00,0> 95

96 Anomalie aktualizacji: - niemożność wykonania operacji aktualizacji bazy danych zapewniającej utrzymanie bazy danych w stanie aktualnym; - dopuszczanie do sprzecznych aktualizacji danych, powielonych (zduplikowanych) w tabelach. Nadmiar: - nadmiar danych - wielokrotne zapisanie tych samych danych w różnych wierszach tej samej tabeli, - nadmiar czynności - wielokrotne wykonywanie tej samej czynności przy aktualizacji tabeli bazy danych. 96

97 Sklep = π {NumerSklepu,AdresSklepu} (Tabela 97

98 Towar = π {SymbolTowaru,NazwaTowaru,StanMagaz} (Tabela) 98

99 SprzedażTowaruWSklepie =π{numersklepu, SymbolTowaru,Data,IlośćSprzedana} (Tabela) 99

100 Klucz={NumerSklepu} Klucz={SymbolTowaru} Klucz={NumerSklepu,SymbolTowaru,Data} 00

101 Dodaj towar : < 004, Mentos, 00 > Dodaj sklep : <, Marketowa > Usuń towar : <00> Usuń sklep : <> Usun sprzedaż : <,00,00--*> Zmień adres sklepu : <, Supermarketowa > Zmień stan towaru w magazynie : <00,0> 0

102 Rozkład (dekompozycja) tabeli Dane są: - tabela r(r) - podzbiory schematu R, R,...,Rp takie, że R R... Rp = R Rozkładem (dekompozycją) tabeli r(r) na R, R,...,Rp nazywamy zestaw: π Przykład r (A B a b a b a b a4 b C c c c c D) d d d d π (r), R π (r),..., R (r) = q ( A a a a a4 R π B b b b b (r) Rp C ) c c c c π R (r) = q ( C c c c D ) d d d R={A,B,C) i R={C,D} 0

103 Rozkład tabel bez straty danych Rozkład tabeli r(r) na R, R,...,Rp nazywamy rozkładem bez straty danych jeżeli: π Przykład r (A B a b a b a b a4 b C c c c c R D) d d d d π (r) π R (r) (r) = q ( A a a a a4 R π... B b b b b (r) = r(r) Rp C ) c c c c π R (r) = q ( C c c c D ) d d d R={A,B,C) i R={C,D} 0

104 Przykład r (A B a b a b a b a4 b C c c c c π D) d d d d (r) = q ( A a a a a4 R B ) b b b b π R (r) = q ( C c c c D ) d d d R={A,B) i R={C,D} π R Przykład R={A,C) i R={B,C,D} (r) π (r)? r(r) R Przykład 4 R={A,B) i R={A,C,D} Przykład 5 R={A,B,C,D) i R={D} 04

105 Przykład 6 tab( NrSklepu, AdresSklepu, KodTowaru, NazwaTowaru, Sprzedaż ) klucz={nrsklepu, KodTowaru} a) R={NrSklepu, AdresSklepu}, R={NrSklepu,KodTowaru, NazwaTowaru, Sprzedaż} b) R={KodTowaru, NazwaTowaru}, R={NrSklepu,AdresSklepu,KodTowaru, Sprzedaż} c) R={NrSklepu, KodTowaru, AdresSklepu}, R={NrSklepu, KodTowaru, NazwaTowaru} R={NrSklepu, KodTowaru, Sprzedaż} d) R={NrSklepu, AdresSklepu}, R={NrSklepu, NazwaTowaru} R={NrSklepu, Sprzedaż} R4={KodTowaru,Sprzedaż} 05

106 Zależności funkcyjne miedzy danymi Dane są: - tabela r(r), R={A,A,...,An} - zbiory X, Y R 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 06

107 Przykład r (A B C D) a a a a4 c c c c d d d d b b b b Czy {C} {D}? π{c,d}(r) = q Czy {C,D} {A,B}? πr(r) = q b b b b c c c c D) c d c d c d Czy {B,C} {C,D}? (A B C D ) a a a a4 ( C d d d d π{b,c,d}(r) = q ( B C D) b b b b d d d d c c c c 07

108 Przykład tab( NrSklepu, AdresSklepu, KodTowaru, NazwaTowaru, Sprzedaż ) klucz={nrsklepu,kodtowaru} a) czy {NrSklepu, KodTowaru} {AdresSklepu, NazwaTowaru, Sprzedaż}? b) czy {NrSklepu, KodTowaru} {NrSklepu, KodTowaru}? c) czy {NrSklepu} {AdresSklepu}? d) czy {KodTowaru} {NazwaTowaru}? e) czy {KodTowaru} {Sprzedaż}? 08

109 NumerSklepu AdresSklepu SymbolTowaru NazwaTowaru,StanMagaz NumerSklepu,SymbolTowaru,Data IlośćSprzedana 09

110 NumerSklepu,SymbolTowaru,Data AdresSklepu NumerSklepu,SymbolTowaru,Data NazwaTowaru NumerSklepu,SymbolTowaru,Data StanMagaz 0

111 Schemat relacyjny Nagłówek tabeli nie jest prostym zbiorem nazw, lecz zbiorem nazw, między którymi występują zależności funkcyjne. Schematem relacyjnym nazywamy parę R = ( R, F ) gdzie R jest zbiorem nazw atrybutów F jest zbiorem zależności funkcyjnych w R R={A,A,...,An} F={X Y: X,Y R}

112 Przykład R = ( {A,B,C}, { AB C, B C } ) {A B C} Przykład R = ( R, F ) dla tabeli Tabela R={ NumerSklepu, AdresSklepu, SymbolTowaru, NazwaTowaru, StanMagaz, Data, IlośćSprzedana } F={ NumerSklepu AdresSklepu, SymbolTowaru NazwaTowaru,StanMagaz, NumerSklepu,SymbolTowaru,Data IlośćSprzedana }

113 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: ) zwrotność: ) rozszerzenie: ) addytywność: 4) projektywność: 5) przechodniość: 6) pseudoprzechodniość: Schemat relacyjny jeżeli Y X, to X Y jeżeli X Y, to XZ YZ jeżeli X Y i X Z to X YZ jeżeli X YZ to X Y i X Z jeżeli X Y i Y Z, to X Z jeżeli X Y i YZ W, to XZ W Reguły wnioskowania Pozostałe zależności funkcyjne

114 Przykład R R = ( {A,B,C}, { B C } ) = ( {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 ΑB, AB C, 4

115 Domknięcie zbioru zależności funkcyjnych Dany jest schemat relacyjny R = ( R, F ). 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 } 5

116 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 tabeli o danym schemacie 6

117 Określenie klucza tabeli za pomocą zależności funkcyjnych Dany jest schemat relacyjny R = ( R, F ). Kluczem relacji (tabeli) o schemacie R nazywamy zbiór atrybutów K R taki, że: a) b) K określa funkcyjnie wszystkie atrybuty (K R F+) i żaden podzbiór właściwy K nie spełnia (a) (K' K, K' R F+). Wniosek Klucz to taki minimalny zbiór atrybutów R, który funkcyjnie określa wszystkie atrybuty R, każdy atrybut z osobna lub każdy podzbiór R. Przykłady Firmy(Nr, Nazwa, Ulica, KodMjc, Telefon) Towary(Symbol, Nazwa, StawkaVAT, JM) Dokumenty(NrDokumentu, NrSprzedawcy, PD(NrDokumentu, NrSprzedawcy,NrPozycji, NrNabywcy, SmbTow, Data) Ilość, CenaJedn) 7

118 Algorytm określenia klucza tabeli na podstawie zależności funkcyjnych Dany jest schemat relacyjny R = ( R, F ) oraz zbiór X R. Domknięciem zbioru atrybutów X, oznaczanym przez X+, nazywamy zbiór atrybutów z R, które zależą funkcyjnie od X lub pewnych podzbiorów X. Algorytm wyznaczania X+ jako domknięcia X: ) w X+ umieść wszystkie atrybuty X, ) w X+ umieść wszystkie atrybuty z R-X, które zależą funkcyjnie od dowolnych podzbiorów X, ) zakończ, gdy nie będzie możliwe dodawanie atrybutów do X+. 8

119 Przykład R = ( {A,B,C,D,E}, { AB C, D E } ) a) X=AB b) X=ABD ) X+ = ABD, bo X=ABD ) X+ = ABCD, bo AB C ) X+ = ABCDE, bo D E 4) stop ) X+ = AB, bo X=AB ) X+ = ABC, bo AB C ) stop Odpowiedź: X+ = ABC Odpowiedź: X+ = ABCDE Który ze zbiorów X jest kluczem? 9

120 Przykład : R =( {A,B,C,D,E,F,G}, {AB C, C A, BC EF, F G } ) Wyznaczyć klucz Hipoteza X=BC ) X+ = BC ) X+ = BCEF ) X+ = ABCEF 4) X+ = ABCEFG 5) stop Hipoteza X=BCD ) X+ = BCD ) X+ = BCDEF ) X+ = ABCDEF 4) X+ = ABCDEFG 5) stop K=BCD Hipoteza X=AB ) X+ = AB ) X+ = ABC ) X+ = ABCEF 4) X+ = ABCEFG 5) stop Hipoteza4 X=ABD ) X+ = ABD ) X+ = ABCD ) X+ = ABCDEF 4) X+ = ABCDEFG 5) stop K=ABD 0

121 Zależności funkcyjne pełne i niepełne Dane są X,Y R takie, że: X Y = oraz X Y. Pełna zależność funkcyjna Zależność X Y jest pełną zależnością funkcyjną Y od X, wtedy i tylko wtedy, gdy Y nie zależy funkcyjnie od żadnego podzbioru właściwego X. Mówimy wtedy, że Y w pełni zależy od X Niepełna zależność funkcyjna Zależność X Y jest niepełną zależnością funkcyjną Y od X, wtedy i tylko wtedy, gdy Y zależy funkcyjnie od pewnego podzbioru właściwego X.

122 Pełne i niepełne zależności funkcyjne od klucza Atrybut kluczowy Atrubut A R nazywamy atrybutem kluczowym wtedy i tylko wtedy, gdy wchodzi w skład pewnego klucza schematu R = (R,F). Atrybut niekluczowy Atrubut A R nazywamy atrybutem niekluczowym wtedy i tylko wtedy, gdy nie wchodzi w skład żadnego klucza schematu R = (R,F). Pełna zależność atrybutu niekluczowego od klucza Atrubut niekluczowy A R w pełni zależy od klucza K R wtedy i tylko wtedy, gdy nie zależy funkcyjnie od żadnego podzbioru właściwego klucza K. Niepełna zależność atrybutu niekluczowego od klucza Atrubut niekluczowy A R nie w pełni zależy od klucza K R wtedy i tylko wtedy, gdy zależy funkcyjnie od pewnego podzbioru właściwego klucza K.

123 Skutki występowania niepełnych zależności funkcyjnych atrybutów niekluczowych od kluczy - anomalie aktualizacji, - nadmiar danych i czynności.

124 Przykład 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, i i i i kp kp kp kp d d d d ) ocena, nazwa_prz ) c c c c4 np np np np 4

125 R={ NumerSklepu, AdresSklepu,SymbolTowaru,NazwaTowaru, StanMagaz,Data,IlośćSprzedana } F={ NumerSklepu AdresSklepu, SymbolTowaru NazwaTowaru,StanMagaz, NumerSklepu,SymbolTowaru,Data IlośćSprzedana } K = { NumerSklepu,SymbolTowaru,Data } NumerSklepu,SymbolTowaru,Data NumerSklepu,SymbolTowaru,Data NumerSklepu,SymbolTowaru,Data NumerSklepu,SymbolTowaru,Data IlośćSprzedana AdresSklepu NazwaTowaru StanMagaz 5

126 Rozkład schematu relacyjnego Dane są: - schemat relacyjny R = (R, F) - zbiory R, R,...,Rp takie, że R R... Rp = R Rozkładem (dekompozycją) schematu relacyjnego nazywamy zestaw schematów relacyjnych: R = (R, F) na R, R,...,Rp R, R,...,Rp takich, że R = (Ri,Fi), Fi F dla i =,..., p. i 6

127 Rozkład bez straty danych usuwający ze schematu zależności niepełne od klucza R = (R,F) K klucz Z zbiór atrybutów niekluczowych, dla których istnieje podzbiór właściwy K' klucza K taki, że K' Z Utwórz schematy: R = (K' Z,F) r ( indeks, kod_prz, data, r ( kod_prz, nazwa_prz ) R = (R Z,F) ocena, nazwa_prz ) r ( indeks, kod_prz, data, ocena ) 7

128 Przykład : R * = ( {A,B,C,D,E,F}, {AB F, AC F, B DE, C DE, B C, C B} ) K = {A,B} K = {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} 8

129 Wariant R =( {B,D,E}, {B DE} ), K = {B} Atrybuty niekluczowe: D, E R =( {A,B,C,F}, {AB F, AC F, B C, C B } ) K = {A, B}, K = {A, C} Atrybuty niekluczowe: F Wariant R =( {C,D,E}, {C DE} ), K = {C} Atrybuty niekluczowe: D, E R =( {A,B,C,F}, {AB F, AC F, B C, C B } ) K = {A, B}, K = {A, C} Atrybuty niekluczowe: F 9

130 Przykład : 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 R =( {B,C,D}, {BC D} ), K = {B,C} Atrybuty niekluczowe: D R =( {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 R =( {B,E}, {B E} ), K = {B} Atrybuty niekluczowe: E R =( {A,B,C,F}, {ABC F} ), K = {A,B,C} Atrybuty niekluczowe: F 0

131 Pierwsza postać normalna (PN) schematu relacyjnego Schemat relacyjny R = (R,F) jest w pierwszej postaci normalnej, jeżeli dziedzina wartości każdego atrybutu A R zawiera wartości atomowe (niepodzielne). Druga postać normalna (PN) schematu relacyjnego Schemat relacyjny R = (R,F) jest w drugiej postaci normalnej, wtedy i tylko wtedy, gdy jest w pierwszej postaci normalnej i każdy niekluczowy atrybut A R jest w pełni zależny funkcyjnie od każdego klucza tego schematu. R R R =( {A,B,C,D,E,F}, {ABC F, BC D, B E} ) =( {A,B,C,D}, {A Β, A C, A D} ) =( {A,B,C,D,E,F}, {ABC D, D E, D F} )

132 Zależności funkcyjne przechodnie od klucza Atrybut A jest przechodnio zależny od klucza K schematu R = ( R, F ) wtedy i tylko wtedy, gdy istnieje taki zbiór atrybutów X nie będący kluczem, że A X i A zależy funkcyjnie od X. Przykład r( Kod, km km km km4 Nazwa, kodwoj, nm nm nm nm4 kw kw kw kw nazwawoj ) nw nw nw nw

133 Skutki występowania przechodnich zależności funkcyjnych atrybutów niekluczowych od kluczy - anomalie aktualizacji, - nadmiar danych i czynności.

134 Rozkład bez straty danych usuwający ze schematu zależności przechodnie od klucza R = (R,F) A atrybut niekluczowy (A X) X zbiór atrybutów niekluczowych, dla których X A Utwórz schematy: R r( Kod, r( kodwoj, nazwawoj = (X {A},F) R Nazwa, kodwoj, ) = (R {A},F) nazwawoj r( Kod, ) Nazwa, kodwoj ) 4

135 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 D ABC E jest przechodnia od klucza bo ABC F i F D jest niepełna od klucza bo, B E i B jest częścią klucza Usuńmy zależność niepełną: R = ( {B,E}, {B E} ) K = {B} R = ( {A,B,C,D,F}, {ABC F, F D} ) K = {A,B,C} Usuńmy zależność przechodnią: R = ( {D,F}, {F D} ) K = {F} R = ( {A,B,C,F}, {ABC F} ) K = {A,B,C} 5

136 Trzecia postać normalna (PN) schematu relacyjnego Schemat relacyjny R = (R,F) jest w trzeciej postaci normalnej, wtedy i tylko wtedy, gdyjest w pierwszej postaci normalnej i każdy niekluczowy atrybut A R jest nieprzechodnio zależny funkcyjnie od każdego klucza tego schematu. R = ( {A,B,C,D,E,F}, {ABC F, F D, B E} ) R =( {A,B,C,D,E,F}, {ABC F, BC D, B E} ) R = ( {A,B,C,D,E}, { AB C, D E } ) 6

- 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: 517/B4 E-mail: witold.rekuc@pwr.edu.pl Telefon: 71-320-23-35 www: kbo.pwr.edu.pl/pracownik/rekuc dr inż. Witold

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, 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Model relacyjny Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS w. III Jesień 2011 1 / 40 Iloczyn kartezjański Iloczyn kartezjański zbiorów A, B

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 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

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

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

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

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

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

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

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

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

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

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

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

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

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

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

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

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

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Widok Connections po utworzeniu połączenia. Obszar roboczy Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer

Bardziej szczegółowo

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji BAZY DANYCH WYKŁAD 5 Normalizacja relacji. Zapytania zagnieżdżone cd. Wady redundancji Konieczność utrzymania spójności kopii, Marnowanie miejsca, Anomalie. (Wybrane materiały) Dr inż. E. Busłowska Copyright

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

Zależności funkcyjne

Zależności funkcyjne Zależności funkcyjne Plan wykładu Pojęcie zależności funkcyjnej Dopełnienie zbioru zależności funkcyjnych Postać minimalna zbioru zależności funkcyjnych Domknięcie atrybutu relacji względem zależności

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

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Model relacyjny Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk (Wydział Fizyki) BDiUS w. III Jesień 2016 1 / 50 Iloczyn kartezjański Iloczyn kartezjański zbiorów A, B

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 2009/ / Notatki do wykładu "Podstawy baz danych"

PODSTAWY BAZ DANYCH 2009/ / Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 2009/2010 1 Literatura 1. Connolly T., Begg C.: Systemy baz danych. Tom 1 i tom 2. Wydawnictwo RM 2004. 2. R. Elmasri, S. B. Navathe: Wprowadzenie do systemu baz danych, Wydawnictwo

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

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

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

Wprowadzenie do SQL. Instrukcja laboratoryjna

Wprowadzenie do SQL. Instrukcja laboratoryjna Wprowadzenie do SQL Instrukcja laboratoryjna Ludmiła Rekuć, Witold Rekuć Wrocław, 2013-02-11 Spis treści Temat 1. System zarządzania bazą danych, baza danych i jej składowe. Zakładanie tabel - definiowanie

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

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1 Bazy Danych Instrukcja laboratoryjna Temat: Normalizacje 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie. Normalizacja to proces organizacji danych w bazie danych. Polega on na

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

Relacyjny model danych

Relacyjny model danych Model relacyjny Relacyjny model danych Relacyjny model danych jest obecnie najbardziej popularnym modelem używanym w systemach baz danych. Podstawą tego modelu stała się praca opublikowana przez E.F. Codda

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Instytut Mechaniki i Inżynierii Obliczeniowej  fb.com/groups/bazydanychmt/ Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 4 (Asocjacje,

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

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1 Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane

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

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

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

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

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium

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

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1 Rozdział 1 Wprowadzenie do baz danych 1 Model danych 2 Funkcje systemu zarządzania bazą danych Wymagania spójność bazy danych po awarii trwałość danych wielodostęp poufność danych wydajność rozproszenie

Bardziej szczegółowo

Wprowadzenie do SQL. Instrukcja laboratoryjna. Ludmiła Rekuć, Witold Rekuć

Wprowadzenie do SQL. Instrukcja laboratoryjna. Ludmiła Rekuć, Witold Rekuć Wprowadzenie do SQL Instrukcja laboratoryjna Ludmiła Rekuć, Witold Rekuć Wrocław, 18.02.2013 Spis treści Temat 1. System zarządzania bazą danych, baza danych i jej składowe. Zakładanie tabel - definiowanie

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

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

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

Pierwsza postać normalna

Pierwsza postać normalna Normalizacja Pierwsza postać normalna Jedynymi relacjami dozwolonymi w modelu relacyjnym są relacje spełniające następujący warunek: każda wartość w relacji, tj. każda wartość atrybutu w każdej krotce,

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

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017 Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Plan wykładu azy danych Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Dokoczenie SQL Zalenoci wielowartociowe zwarta posta normalna Dekompozycja do 4NF Przykład sprowadzanie do

Bardziej szczegółowo

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji

Bardziej szczegółowo

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

Bardziej szczegółowo

Bazy danych 2. Algebra relacji Zależności funkcyjne

Bazy danych 2. Algebra relacji Zależności funkcyjne Bazy danych 2. Algebra relacji Zależności funkcyjne P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2011/12 Relacyjne systemy baz danych... zdominowały rynek. Systemy nierelacyjne maja status eksperymentalny

Bardziej szczegółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9. Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium

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

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych Bazy danych 2. Zależności funkcyjne Normalizacja baz danych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012/13 Zależności funkcyjne Definicja: Mówimy, że atrybut B jest zależny funkcyjnie od atrybutów

Bardziej szczegółowo