relacyjny model bazy danych.doc

(41 KB) Pobierz
Relacyjny model bazy danych

Relacyjny model bazy danych

1.     Podstawowe pojęcia

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:

  1. Zarówno schemat relacji, jak i wystąpienie relacji bywa nazywane relacją – zazwyczaj wówczas, gdy nie budzi wątpliwości, o które z tych pojęć chodzi.
  2. Kolejność atrybutów w schemacie relacji nie jest istotna (w przeciwieństwie do zwykłego iloczynu kartezjańskiego), ponieważ atrybuty są identyfikowane przez nazwę, a nie przez pozycję.
  3. Nazwy atrybutów muszą być unikalne w ramach jednej relacji.

 

Baza danych – zbiór relacji;

Schemat bazy danych – zbiór schematów relacji tworzących bazę.

Krotka t wystąpienia r relacji R(A1,A2,...Ak) – element zbioru r;

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 ]

 

2.     Definiowanie relacyjnej bazy danych

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

3.     Definiowanie relacyjnej bazy danych na podstawie modelu konceptualnego (diagramu E-R)

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

 

Uwagi:

  1. Redundancja (powtarzalność danych) – przy relacjach zbyt dużych;
  2. Nadmierne rozproszenie danych – konieczność przeglądania wielu relacji przy odzyskiwaniu danych,
  3. Wartości pustych.
  4. Relacja uniwersalna.

 

4. Algebra relacji - język zapytań relacyjnej bazy danych.

 

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

Zgłoś jeśli naruszono regulamin