130 likes | 286 Views
Modelowanie logiczne (dla relacyjnych SZBD). Etapy procesu projektowania BD (przypomnienie). Określenie celów... Sprecyzowanie zakresu ... Modelowanie konceptualne (bez odniesienia do SZBD);
E N D
Etapy procesu projektowania BD (przypomnienie) • Określenie celów... • Sprecyzowanie zakresu ... • Modelowanie • konceptualne (bez odniesienia do SZBD); • logiczne (dla SZBD konkretnego typu, np. relacyjnego lub obiektowego) – przedstawienie danych w postaci struktur dostępnych w SZBD. • fizyczne (dla konkretnego SZBD) – zdefiniowanie dziedzin, relacji, indeksów, perspektyw, użytkowników z uprawnieniami itp.
Relacyjny SZBD – dostępne struktury • Relacja R=A1A2...Ak lub R(A1,A2,...,Ak) • Atrybuty proste A1,A2,...,Ak • Klucze relacji • Tożsamość atrybutów z różnych relacji (klucze obce) • Wymaganie wartości niepustej
nrRej marka SAMOCHÓD rokPr Encja relacja • Tworzymy relację dla zbioru encji SAMOCHÓD klucz: nrRej
Atrybuty złożone, wielokrotne, wyliczane • Złożone – rozkładamy na proste lub łączymy w jeden; Adres(kod,miasto,ulica,dom,nr) encji Osoba w relacji Osoba jako: • (...,aKod,aMisto,aUlica,aDom,aNr,...) lub • (...,adres,...) • Wielokrotne – definiujemy kilka „kopii” atrybutu lub oddzielną relację; Tel[1..3] encji Osoba jako: • (...,tel1,tel2,tel3,...) w relacji Osoba lub • Telefon(<klucz relacji Osoba>,tel) • Wyliczane – nie umieszczamy ich w relacji;
Związki • Dla związku Z pomiędzy encjami E(A1,A2,...Ar) i F(B1,B2,...,Bs) o atrybutach C1,C2,...,Ct możemy zdefiniować: • Relację EZF(A1,A2,...Ar, B1,B2,...,Bs, C1,C2,...,Ct) • Relacje EZ(A1,A2,...Ar,C1,C2,...,Ct,<klucz F>) i F(B1,B2,...,Bs) lub analogicznie FZ i E; • Relacje E(A1,A2,...Ar), F(B1,B2,...,Bs) i Z(<klucz E>, <klucz F>, C1,C2,...,Ct)
Związki jednoznaczne EZF • Dla związków jednoznacznych może być odpowiednie każde z czterech rozwiązań w zależności od tego, na ile projekt pomaga unikać: wartości pustych i niepotrzebnych złączeń, np.: Osoba jestDyrektorem Dział; przedstawienie Osoba, Dział-jestDyrektorem powoduje powstanie niewielu wartości pustych (mało działów nie ma dyrektora) i pozwala uniknąć jednego złączenia w celu poszukiwania dyrektora działu. Złączenie dalej z relacją Osoba spowoduje powstanie wielu wartości pustych (wiele osób nie jest dyrektorami)
Związki funkcyjne E – ZF • Przedstawienie w postaci relacji EZ i F jest często najbardziej odpowiednie; pozwala uniknąć wartości pustych, dodatkowych złączeń i redundancji, jak w przykładzie: Przedmiot->jestWykładanyPrzez->Pracownik • Przedstawienie w postaci odrębnych relacji E, Z i F, jest odpowiednie, gdy informacje są rzadko wykorzystywane łącznie i wiele encji z E nie pozostaje w związku Z: Student->maPromotora->Pracownik • Przedstawienie w postaci jednej relacji EZF naraża nas na redundancję i rodzi groźbę niespójności danych w przypadku modyfikacji: Samochód -> jestWłasnością->Osoba
Związki wieloznaczne E – Z – F • Wymagają zazwyczaj przedstawienia w postaci trzech relacji: E, Z i F, np. Student – Zaliczył – Przedmiot • Połączenie związku (Z) z jedną lub obiema enacjami (E i/lub F) powoduje często redundancję, jak w przykładzie: Student-ocenaZPrzedmiotu,Przedmiot lub Student, Przedmiot-ocenaStudenta
Związki – wymuszanie • Jeżeli związek E<-Z<-F zapiszemy jako E i FZ=(<atrybuty F>, <atrybuty Z>, <klucz E>), to wymuszenie związku zapisujemy jako zastrzeżenie wartości niepustej atrybutów <klucz E> w relacji FZ. OSOBA SAMOCH. ma
Słabe zbiory encji E – ZF • E musimy przedstawić jako EZ lub EZF. Pierwsze rozwiązanie zazwyczaj pomaga uniknąć redundancji
Związki hierarchiczne ISA • Dla E ISA E1,E2,...,Ek możliwe jest: • Stworzenie odrębnych relacji dla E, E1,E2,...,Ek. W relacjach E1,E2,...,Ek encja E jest reprezentowana przez swój klucz i jej wspólne atrybuty nie są powtarzane w E1,...,Ek. Rozwiązanie to może wymagać wielu złączeń i kontroli integralności danych z różnych relacji (w przypadku warunków Mandatory, Or) • Stworzenie jednej relacji obejmującej wszystkie atrybuty E i E1,...,Ek. Rozwiązanie to może prowadzić do powstawania wartości pustych (Optional,Or)
Użytkownicy i perspektywy • Perspektywa użytkownika może być zbiorem relacji zdefiniowanych na bazie dostępnych relacji bazowych za pomocą operacji algebry relacji, tworzenia atrybutów wyliczanych itp. • Oceny (ImięNazwisko, Indeks, nazwaPrzedmiotu, Ocena) • Średnie (ImięNazwisko, Indeks, nazwaPrzedmiotu, Średnia)