1 2. Modelowanie baz danychBazy danych 2. Modelowanie baz danych P. F. Góra semestr letni 2004/05
2 Zanim zaczniemy modelowaćAnaliza danych rzeczywistych To jest trudne! z uwagi na problemy w komunikacji z użytkownikiem Bazy danych - wykład 2
3 Ignacy Janowski 17.03.1936 Stanisław M nazwa klasy Karol Janowski Ignacy M Osoba Imię Nazwisko DataUr. Imię ojca Ludwik Janowski Karol M atrybuty Płeć Patrycja Janowska K Ludwik Bazy danych - wykład 2
4 Encja (entity): Imię Nazwisko Osoba DataUr Płeć Bazy danych - wykład 2
5 Klasy ODL (Objects Definition Language)interface
6 Typy atomowe w ODL Całkowity integer Zmiennoprzecinkowy realZnakowy character Tekstowy string Wyliczeniowy enum Bazy danych - wykład 2
7 Typy strukturalne w ODLZbiór Set
8 attribute string tytuł; attribute integer rok; interface Filmy { attribute string tytuł; attribute integer rok; attribute integer długość; attribute enum Taśma {kolor, czarno-biała} TypTaśmy; }; Interface Gwiazda { attribute string nazwisko; attribute Struct Adr {string ulica, string miasto} adres; Interface Studio { attribute string nazwa; attribute string adres; Ta sama nazwa atrybutu, ale różne klasy! Bazy danych - wykład 2
9 Związki między obiektamijedna żona jeden mąż jeden ojciec jedna matka niekoniecznie jeden syn syn dwu osób … mąż żona matka ojciec syn brat Anna Janowska K Karol Janowski M Nie ma gwarancji, że związek „matka” wskaże na kobietę Ludwik Janowski M Jerzy Janowski M Mnóstwo relacji, straszny bałagan! Bazy danych - wykład 2
10 Przykład z życia, niestety…Bazy danych - wykład 2
11 Nazwa relacji odwrotnejinterface Filmy { attribute string tytuł; attribute integer rok; attribute integer długość; attribute enum Taśma {kolor, czarno-biała} TypTaśmy; relationship Set
12 W języku ODL zawsze trzeba określać związki odwrotneW języku ODL dopuszczalne są tylko związki dwuargumentowe, to jest między dwoma klasami Bazy danych - wykład 2
13 attribute string tytuł; attribute integer rok; interface Filmy { attribute string tytuł; attribute integer rok; attribute integer długość; attribute enum Taśma {kolor, czarno-biała} TypTaśmy; relationship Set
14 Jeden małżonek, dwoje rodziców, dowolna ilość potomkówinterface Osoba { attribute string Imię; attribute string Nazwisko; attribute Struct Data (integer DD, integer MM, integer YY} DataUr; attribute enum Płcie {K,M} Płeć; relationship Osoba małżonek inverse małżonek; relationship Array
15 Liczebność (multiplicity) związkówWiele do wielu Jeden do wielu Wiele do jednego Jeden do jednego Bazy danych - wykład 2
16 Związek jeden do jednegoA = {x1,x2,x3,x4} B={y1,y2,y3,y4,y5} Elementy w żadnej kolumnie nie powtarzają się Nie wszystkie elementy muszą występować Ale gdyby element x3 wystąpił, mógły się łączyć tylko z elementem y nie pojawiającym się gdzie indziej Bazy danych - wykład 2
17 Związek jeden do wielu Związek wiele do jednegoA = {x1,x2,x3,x4} B={y1,y2,y3,y4,y5} AB Związek jeden do wielu Interface A{ … relationship Set R1 inverse B::R2; }; Interface B{ relationship A R2 inverse A::R1; BA Związek wiele do jednego Związek odwrotny do AB Bazy danych - wykład 2
18 Związek wiele do wielu A = {x1,x2,x3,x4} B={y1,y2,y3,y4,y5}Interface A{ … relationship Set R1 inverse B::R2; }; Interface B{ relationship Set R2 inverse A::R1; Bazy danych - wykład 2
19 Diagramy związków encji (E/R)tytuł rok nazwisko adres Atrybuty Gwiazdy-w Filmy Gwiazdy Encje Posiada Związki długość TypTaśmy nazwa Studia Strzałka pokazuje kierunek związku wiele do jednego (wiele filmów jest własnością jednego studia, ale jeden film może być własnością tylko jednego studia adres Bazy danych - wykład 2
20 Jeden pracownik może używać różnych zestawów narzędzi. Interface Pracownik{ … relationship Set
21 Jeden pracownik może używać różnych zestawów narzędzi. Interface Pracownik{ … relationship Set
22 Jeden pracownik może używać tylko jednego zestawu narzędzi. Interface Pracownik{ … relationship Narzędzia Używa inverse Narzędzia::JestUżywane; }; Interface Narzędzia{ relationship Set
23 Jeden pracownik może używać tylko jednego zestawu narzędzi. Interface Pracownik{ … relationship Narzędzia Używa inverse Narzędzia::JestUżywane; }; Interface Narzędzia{ relationship Pracownik JestUżywane inverse Pracownik::Używa; Używa Pracownik Narzędzia Jeden pracownik może używać tylko jednego zestawu narzędzi. Jeden zestaw narzędzi może być używany tylko przez jednego pracownika. Bazy danych - wykład 2
24 Związek jeden do jeden Kieruje Studia Prezesi Bazy danych - wykład 2
25 Osoba — diagram E/R matka ojciec Osoba potomstwo małżonekBazy danych - wykład 2
26 Caveat emptor! Bazy danych są cenne i trzeba je chronić.Bazy danych wymagają konserwacji i administracji. DBMS jest potencjalnym kanałem, przez który cracker może włamać się do systemu. Bazy danych wymagają regularnego sporządzania kopii zapasowych (backup). Bazy danych - wykład 2