-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium
|
|
- Magdalena Kucharska
- 6 lat temu
- Przeglądów:
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
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ę
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 = Ø) Θ {>, =,
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
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ć
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.
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
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
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
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,
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
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ść
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
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
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
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
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ść
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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ść.
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
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
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
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
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
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
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
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
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
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,
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,
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
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
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
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
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,
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,
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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,
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
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ę,
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
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
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.
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
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
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
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
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
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ł
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
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.
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
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
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
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)
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
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
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,
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
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
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
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
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
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
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
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
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
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
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