Relacja – podstawowy (i jedyny) sposób reprezentowania danych w modelu relacyjnym;
Atrybut – nazwa;
Dziedzina atrybutu – skończony zbiór wartości typu prostego, tj. liczby, znaki, słowa, daty;
Schemat relacji – nazwa relacji i lista atrybutów:
<nazwa rel.> ( <atrybut 1>, <atrybut 2>,...)
Relacja o schemacie R(A1,A2,...Ak) - rodzina podzbiorów D1´D2´...´Dk, gdzie Di jest dziedziną atrybutu Ai;
Wystąpienie(stan) r relacji R(A1,A2,...Ak) – podzbiór D1´D2´...´Dk, gdzie Di jest dziedziną atrybutu Ai;
Uwagi:
Baza danych – zbiór relacji;
Schemat bazy danych – zbiór schematów relacji tworzących bazę.
i-ta składowa krotki t z relacji R(A1,A2,...Ak) – t. Ai;
Składowa Ai krotki t – j.w.
Nadklucz relacji R(A1,A2,...Ak) – podzbiór KÍ {A1,A2,...Ak} taki, że dla dowolnego wystąpienia r relacji R zachodzi:
[ (t,sÎ r) Ù"AiÎ K(t.Ai=s.Ai) ] Þ [ "Ai Î { A1,A2,...Ak} t.Ai =s.Ai ]
Klucz relacji R - minimalny (w sensie inkluzji - Í ) nadklucz R.
Klucz pierwotny R – wybrany klucz R.
Zależność funkcyjna A®B dla relacji R(A1,A2,...Ak), gdzie A,B Í { A1,A2,...Ak}:
[ (t,sÎ r) Ù"AiÎ A(t.Ai=s.Ai) ] Þ [ "AiÎ B t.Ai =s.Ai ]
Schematy relacji,
Dziedziny atrybutów,
Klucze pierwotne relacji,
Więzy integralności (pozostałe klucze, tożsamość atrybutów z różnych relacji, zależności funkcyjne)
Przykład 1: STUDENT(indeks:string[6], dow_osob:string[10], nazwisko:string[20], data_ur:date),
ADRES(miejscowość:string[20], ulica:string[20], nr:integer, kod:integer),
INSTYTUT(nazwa:string[30]);
PRZEDMIOT(nazwa, rodzaj, wymiar)
STUDENT.dow_osob®STUDENT.nazwisko,STUDENT.indeks, STUDENT.data_ur
· Zbiór encji E (nie słaby) ® relacja o atrybutach odpowiadających atrybutom E; kluczem relacji jest klucz E;
· Związek Z pomiędzy (nie słabymi) zbiorami encji E1, E2,... ® relacja o atrybutach odpowiadających atrybutom kluczowym E1, E2, ...i atrybutach własnych Z; kluczem relacji jest suma kluczy E1, E2, ...;
· Związek funkcyjny Z pomiędzy zbiorami encji E1 i E2 ® relacja dla E1 może zawierać dodatkowo atrybuty związku Z i atrybuty kluczowe E2; nie jest wówczas konieczna odrębna relacja dla Z; kluczem relacji dla E1 jest wówczas klucz zbioru encji E1; krotki relacji E1 nie będące w związku z żadną encją z E2 mają puste wartości (NULL) w miejscu atrybutów Z i E2.
· Związek wzajemnie jednoznaczny Z pomiędzy zbiorami encji E1 i E2 ® relacja dla E1 może zawierać dodatkowo atrybuty związku Z i atrybuty kluczowe E2 lub odwrotnie: relacja dla E2 może zawierać dodatkowo atrybuty związku Z i atrybuty kluczowe E1; kluczem relacji jest klucz E1 w pierwszym przypadku lub klucz E2 w drugim;
Przykład 1(cd.): MOŻE_PROW(nazwa, rodzaj, id)
UCZĘSZCZA(indeks, nazwa, id),
INSTYTUT(nazwa, id_dyr),
MIESZKA(indeks, miejscowość, ulica, nr),
OPIEKA(indeks_pod, indeks_op)
OPIEKA.indeks_pod º STUDENT.indeks i OPIEKA.indeks_op º STUDENT.indeks
· Związek typu „isa” pomiędzy zbiorami encji E1i E2 (E1 isa E2) ®
· odrębna relacja dla E2 zawierająca atrybuty własne E2 i atrybuty kluczowe E1; kluczem tej relacji jest klucz E1;
· poszerzenie relacji dla E1 o atrybuty encji E2 – krotki należące do E1-E2 mają w miejscu atrubutów E2 wartość pustą (NULL)
Przykład 1 (cd.): DOKTORANT(indeks);
GOŚĆ(indeks, uczelnia_macierzysta);
· Słaby zbiór encji E o nadrzednych zbiorach encji E1, E2,... powiązanych z E związkami Z1, Z2,... ® relacja o atrubutach odpowiadających atrybutom własnym E oraz atrybutom kluczowym E1, E2, ...; dla związków Z1, Z2,... nie tworzymy odrębnych relacji; kluczem relacji jest suma kluczy E i E1, E2, ...;
Przykład 1 (cd.): PUBLIKACJA(tytuł, data, indeks)
<wyrażenie atomowe> ::= <nazwa relacji> | (<lista stałych>)
<wyrażenie> ::= <wyrażenie atomowe> | (<wyrażenie>) |
<wyrażenie> È <wyrażenie> | <wyrażenie> Ç <wyrażenie> | <wyrażenie> - <wyrażenie> | <wyrażenie> ´ <wyrażenie> | <wyrażenie> ¸ <wyrażenie> | <wyrażenie> ´ <wyrażenie> |
<wyrażenie> ´ <warunek selekcji> <wyrażenie>
p<lista atrybutów>(<wyrażenie>) | s<warunek selekcji> (<wyrażenie>) | r<nazwa> (<wyrażenie>) | r<nazwa>(<lista atrybutów>) (<wyrażenie>)
<warunek selekcji> ::= <atrybut> <op porównania> <stała> | <atrybut> <op porównania> <atrybut> | <warunek selekcji> and <warunek selekcji>
<op porównania> ::= < | > | = | ¹
Suma, iloczyn, różnica: dla wyrażeń R1 i R2 o zgodnych (takich samych) schematach: R1ÈR2, R1ÇR2, R1-R2 są odpowiednio sumą, przekrojem i różnicą zbiorów R1 i R2.
Iloczyn kartezjański: dla wyrażeń R1 i R2 o schematach odpowiednio A1A2...Ak i B1B2...Bl ({A1,A2,...,Ak}Ç{ B1,B2,...,Bl}=Æ) R1´R2 jest relacją o schemacie A1A2...AkB1B2...Bl i R1´R2={rs | rÎR1 i sÎR2}.
Złączenie naturalne: dla wyrażeń R1 i R2 o schematach odpowiednio A1A2...AkB1B2...Bl i B1B2...BlC1C2...Cn ({A1,A2,...,Ak}Ç{C1C2,...,Cn}=Æ) R1´R2 jest relacją o schemacie A1A2...AkB1B2...BlC1C2...Cn i i R1´R2={rst | rsÎR1 i stÎR2}.
Theta złączenie (q-złączenie): dla wyrażeń R1 i R2 o schematach odpowiednio A1A2...A...
rafulus