Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
2. Modelowanie baz danych
Bazy 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 <nazwa> { <lista właściwości> }; interface 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ć; }; Bazy danych - wykład 2
6
Typy atomowe w ODL Całkowity integer Zmiennoprzecinkowy real
Znakowy character Tekstowy string Wyliczeniowy enum Bazy danych - wykład 2
7
Typy strukturalne w ODL
Zbiór Set<T> Wielozbiór Bag<T> Lista List<T> Tablica Array<T,i> Struktura (rekord) Struct X {T1 F1,…,Tn Fn} {A,B,B,C} Element „B” powtarza się typ, długość typ nazwa pola, typ nazwa pola, … Bazy danych - wykład 2
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 obiektami
jedna ż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 odwrotnej
interface Filmy { attribute string tytuł; attribute integer rok; attribute integer długość; attribute enum Taśma {kolor, czarno-biała} TypTaśmy; relationship Set<Gwiazda> gwiazdy inverse Gwiazda::występujeW; }; Interface Gwiazda { attribute string nazwisko; attribute Struct Adr {string ulica, string miasto} adres; relationship Set<Filmy> występujeW inverse Filmy::gwiazdy; Nazwa relacji Nazwa relacji odwrotnej Bazy danych - wykład 2
12
W języku ODL zawsze trzeba określać związki odwrotne
W 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<Gwiazda> gwiazdy inverse Gwiazda::występujeW; relationship Studio należyDo inverse Studio::posiada; }; Interface Studio { attribute string nazwa; attribute string adres; relationship Set<Filmy> posiada inverse Filmy::należyDo; Bazy danych - wykład 2
14
Jeden małżonek, dwoje rodziców, dowolna ilość potomków
interface 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<Osoba,2> rodzic inverse potomek; relationship Set<Osoba> potomek inverse rodzic; }; Jeden małżonek, dwoje rodziców, dowolna ilość potomków Ale trochę to niezręczne… Bazy danych - wykład 2
15
Liczebność (multiplicity) związków
Wiele do wielu Jeden do wielu Wiele do jednego Jeden do jednego Bazy danych - wykład 2
16
Związek jeden do jednego
A = {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 jednego
A = {x1,x2,x3,x4} B={y1,y2,y3,y4,y5} AB Związek jeden do wielu Interface A{ … relationship Set<B> 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<B> R1 inverse B::R2; }; Interface B{ relationship Set<A> 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<Narzędzia> Używa inverse Narzędzia::JestUżywane; }; Interface Narzędzia{ relationship Set<Pracownik> JestUżywane inverse Pracownik::Używa; Używa Pracownik Narzędzia Jeden pracownik może używać różnych zestawów narzędzi. Jeden zestaw narzędzi może być używany przez różnych pracowników. Bazy danych - wykład 2
21
Jeden pracownik może używać różnych zestawów narzędzi.
Interface Pracownik{ … relationship Set<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ć różnych zestawów narzędzi. Jeden zestaw narzędzi może być używany tylko przez jednego pracownika. Bazy danych - wykład 2
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<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 przez wielu pracowników. Bazy danych - wykład 2
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łżonek
Bazy 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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.