1 [email protected][email protected]Projektowanie Projektowanie struktury danych struktury danych Jaros Jarosł aw Kuchta aw Kuchta Projektowanie Aplikacji Rozproszonych Projektowanie Aplikacji Rozproszonych Projektowanie Aplikacji Rozproszonych 2/30 Projektowanie struktury danych Zagadnienia Zagadnienia Sposoby zapisu danych zewn Sposoby zapisu danych zewnętrznych trznych Odwzorowanie dziedziny problemu w dziedzin Odwzorowanie dziedziny problemu w dziedzinę danych danych Normalizacja relacyjnej bazy danych Normalizacja relacyjnej bazy danych Optymalizacja relacyjnej bazy danych dla Optymalizacja relacyjnej bazy danych dla przechowywania obiekt przechowywania obiektów Wykorzystanie indeks Wykorzystanie indeksów w relacyjnej bazie danych w w relacyjnej bazie danych Szacowanie rozmiaru relacyjnej bazy danych Szacowanie rozmiaru relacyjnej bazy danych Problemy synchronizacji w rozproszonej bazie danych Problemy synchronizacji w rozproszonej bazie danych Projektowanie Aplikacji Rozproszonych 3/30 Projektowanie struktury danych Sposoby zapisu danych Sposoby zapisu danych Pliki Pliki Pliki sekwencyjne Pliki sekwencyjne Nieuporz Nieuporządkowane dkowane Uporz Uporządkowane dkowane Pliki swobodnego dost Pliki swobodnego dostępu pu Bazy danych Bazy danych Relacyjne Relacyjne Relacyjno Relacyjno-Obiektowe Obiektowe Obiektowe Obiektowe
10
Embed
07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
�� Brak koniecznoBrak koniecznośści zakupu ci zakupu systemu bazy danychsystemu bazy danych
WadyWady
�� Redundancja danychRedundancja danych
�� Brak zewnBrak zewnęętrznego trznego mechanizmu modyfikacji mechanizmu modyfikacji struktury danych struktury danych (konieczno(koniecznośćść pisania pisania specjalnych programspecjalnych programóów)w)
�� Brak mechanizmu kontroli Brak mechanizmu kontroli dostdostęępu do danychpu do danych
Projektowanie Aplikacji Rozproszonych 5/30Projektowanie struktury danych
do danych (SQL)do danych (SQL)�� Kontrola spKontrola spóójnojnośści danychci danych�� ŁŁatwoatwośćść modyfikacji modyfikacji
struktury danychstruktury danych�� Dobrze sprawdzone systemy Dobrze sprawdzone systemy
na rynkuna rynku�� Kontrola dostKontrola dostęępu do danychpu do danych�� ŁŁatwoatwośćść wspwspóółłdzielenia dzielenia
struktury danychstruktury danych
WadyWady
�� Brak moBrak moŜŜliwoliwośści obsci obsłługi ugi zzłłooŜŜonych typonych typóów danych w danych (dodawane w niekt(dodawane w niektóórych rych RDBMS)RDBMS)
�� NiecaNiecałłkowita zgodnokowita zgodnośćśćpodstawowych typpodstawowych typóów danych w danych z OOPLz OOPL
�� Brak wsparcia dla zapisu Brak wsparcia dla zapisu danych obiektowychdanych obiektowych
Projektowanie Aplikacji Rozproszonych 9/30Projektowanie struktury danych
Zalety i wady ORDBMSZalety i wady ORDBMS
ZaletyZalety
�� MoMoŜŜliwoliwośści obsci obsłługi ugi zzłłooŜŜonych typonych typóów danychw danych
�� Zbudowane na SQLZbudowane na SQL
�� Kontrola spKontrola spóójnojnośści danychci danych
�� ŁŁatwoatwośćść modyfikacji modyfikacji struktury danychstruktury danych
�� Kontrola dostKontrola dostęępu do danychpu do danych
�� ŁŁatwoatwośćść wspwspóółłdzielenia dzielenia struktury danychstruktury danych
WadyWady
�� NiecaNiecałłkowita zgodnokowita zgodnośćśćpodstawowych typpodstawowych typóów danych w danych z OOPLz OOPL
�� Ograniczone wsparcie dla Ograniczone wsparcie dla zapisu danych obiektowychzapisu danych obiektowych
4
Projektowanie Aplikacji Rozproszonych 10/30Projektowanie struktury danych
Zalety i wady OODBMSZalety i wady OODBMS
ZaletyZalety
�� MoMoŜŜliwoliwośści obsci obsłługi ugi zzłłooŜŜonych typonych typóów danychw danych
�� BezpoBezpośśrednie wsparcie dla rednie wsparcie dla zapisu danych obiektowychzapisu danych obiektowych
�� Kontrola spKontrola spóójnojnośści danychci danych�� ŁŁatwoatwośćść modyfikacji modyfikacji
struktury danychstruktury danych�� Kontrola dostKontrola dostęępu do danychpu do danych�� ŁŁatwoatwośćść wspwspóółłdzielenia dzielenia
struktury danychstruktury danych
WadyWady
�� Brak uznanego standarduBrak uznanego standardu�� KoniecznoKoniecznośćść dopasowania dopasowania
OODBMS do OOPLOODBMS do OOPL�� NiedojrzaNiedojrzałłoośćść narznarzęędzidzi
Projektowanie Aplikacji Rozproszonych 11/30Projektowanie struktury danych
Odwzorowanie klas PD w DM Odwzorowanie klas PD w DM
w OODBMSw OODBMSWarstwa PD
Warstwa DM
Klient Zamówienie
DMKlient DMZamówienie
Projektowanie Aplikacji Rozproszonych 12/30Projektowanie struktury danych
Problem dziedziczenia Problem dziedziczenia
wielokrotnegowielokrotnegoNadklasaA
-atrybutA1-atrybutA2
NadklasaB
-atrybutB1-atrybutB2
KlasaC
-atrybutC1-atrybutC2
5
Projektowanie Aplikacji Rozproszonych 13/30Projektowanie struktury danych
RozwiRozwiąązanie a)zanie a)NadklasaA
-atrybutA1-atrybutA2
NadklasaB-atrybutB1-atrybutB2
KlasaC-atrybutC1-atrybutC2-NadklasaB
1 1
UtworzyUtworzyćć instancjinstancjęędodatkowej nadklasy w dodatkowej nadklasy w warstwie DM i dodawarstwie DM i dodaććatrybut, ktatrybut, któóry pory połąłączy czy instancjinstancjęę nadklasy z instancjnadklasy z instancjąąpodklasy.podklasy.
Projektowanie Aplikacji Rozproszonych 14/30Projektowanie struktury danych
RozwiRozwiąązanie b)zanie b)
NadklasaA
-atrybutA1-atrybutA2
KlasaC-atrybutB1-atrybutB2-atrybutC1-atrybutC2
SpSpłłaszczyaszczyćć hierarchihierarchięę dziedziczenia w dziedziczenia w warstwie DM przez skopiowanie atrybutwarstwie DM przez skopiowanie atrybutóów w i metod nadklas do podklas.i metod nadklas do podklas.
Projektowanie Aplikacji Rozproszonych 15/30Projektowanie struktury danych
Odwzorowanie klas PD w DM Odwzorowanie klas PD w DM
w ORDBMS (zaw ORDBMS (załłooŜŜenia)enia)
�� ORDBMS obsORDBMS obsłługuje:uguje:�� identyfikator obiektu (OID)identyfikator obiektu (OID)
�� kolumny wielowartokolumny wielowartośściowe (np. ciowe (np. teltel[*]: [*]: stringstring))
�� procedury przechowywaneprocedury przechowywane
�� ORDBMS nie obsORDBMS nie obsłługuje:uguje:�� ŜŜadnego rodzaju dziedziczeniaadnego rodzaju dziedziczenia
�� kolumn zkolumn złłooŜŜonychonych
6
Projektowanie Aplikacji Rozproszonych 16/30Projektowanie struktury danych
Odwzorowanie klas PD w DM Odwzorowanie klas PD w DM
w ORDBMSw ORDBMS
kolumna typu OIDkolumna typu OIDmetody dostmetody dostęępupu��asocjacja pojedynczaasocjacja pojedyncza
Projektowanie Aplikacji Rozproszonych 17/30Projektowanie struktury danych
RozwiRozwiąązanie problemu zanie problemu
dziedziczenia dziedziczenia
w ORDBMSw ORDBMS
�� Kolumna zawierajKolumna zawierająąca OID instancji ca OID instancji przechowywanej w tablicy reprezentujprzechowywanej w tablicy reprezentująącej cej nadklasnadklasęę..
Projektowanie Aplikacji Rozproszonych 19/30Projektowanie struktury danych
Struktura klas DM Struktura klas DM
w ORDBMS w ORDBMS -- przykprzykłładad
«table»DTKlient
Adres: OIDTel[*]: stringNIP: stringOsoba: OID
DMKlient
Get Klient()Set Klient()
«table»DTOsoba
Imię: stringNazwisko: string
DMOsoba
Get Osoba()Set Osoba()
«table»DTAdres
Kod: stringMiejscowość: stringUlica: string
Osoba Adres
*
Projektowanie Aplikacji Rozproszonych 20/30Projektowanie struktury danych
Odwzorowanie klas PD w DM Odwzorowanie klas PD w DM
w RDBMS (zaw RDBMS (załłooŜŜenia)enia)�� RDBMS obsRDBMS obsłługuje:uguje:
�� automatyczny identyfikator rekordu (ID) automatyczny identyfikator rekordu (ID) �� procedury przechowywaneprocedury przechowywane
�� RDBMS nie obsRDBMS nie obsłługuje:uguje:�� ŜŜadnego rodzaju dziedziczeniaadnego rodzaju dziedziczenia�� kolumn wielowartokolumn wielowartośściowychciowych�� kolumn zkolumn złłooŜŜonychonych
�� ZaZałłooŜŜenia dodatkowe:enia dodatkowe:�� kolumny kolumny -- klucze sklucze sąą typu typu integerinteger (32(32--bitowe)bitowe)�� kolumna automatycznie ustawiana przez RDBMS jest oznaczana kolumna automatycznie ustawiana przez RDBMS jest oznaczana
zastrzezastrzeŜŜeniem {eniem {autosetautoset}}�� kolumna z kluczem wkolumna z kluczem włłasnym jest oznaczana zastrzeasnym jest oznaczana zastrzeŜŜeniem {PK}eniem {PK}�� kolumna z kluczem obcym jest oznaczana zastrzekolumna z kluczem obcym jest oznaczana zastrzeŜŜeniem {FK}eniem {FK}
Projektowanie Aplikacji Rozproszonych 21/30Projektowanie struktury danych
Odwzorowanie klas PD w DM Odwzorowanie klas PD w DM
w RDBMSw RDBMS
kolumna typu kolumna typu integerinteger {FK} + {FK} + relacja jedenrelacja jeden--jedenjeden
metody dostmetody dostęępupu��asocjacja pojedynczaasocjacja pojedyncza
Projektowanie Aplikacji Rozproszonych 24/30Projektowanie struktury danych
NormalizacjaNormalizacja
Usuń powtarzające się lub nadmiarowe pola. Stwórz nową tablicę, która będzie przechowywała usunięte dane. Skopiuj PK nowej tablicy do poprzedniej tablicy jako FK
Czy któraś tablica zawiera powtarzające się pola? Czy pewne rekordy mają róŜną liczbę kolumn od innych rekordów?
0NF
Usuń częściową zaleŜność. Dodaj nową tablicę, która będzie zawierała pola, które były częściowo zaleŜne. Skopiuj PK nowej tablicy do poprzedniej tablicy jako FK.
Czy PK jest tworzony z więcej niŜ jednego pola? Jeśli tak, to czy są pola zaleŜne tylko od części PK?
1NF
2NF
Usuń zaleŜnośc przechodnią Dodaj nową tablicę, która będzie zawierała usunięte pola. Skopiuj PK nowej tablicy do poprzedniej tablicy jako FK
Czy są pola zaleŜne od innego drugoplanowego pola kluczowego?
3NF
9
Projektowanie Aplikacji Rozproszonych 25/30Projektowanie struktury danych
Projektowanie Aplikacji Rozproszonych 26/30Projektowanie struktury danych
Indeksowanie Indeksowanie -- zasadyzasady
�� Dla kaDla kaŜŜdej tablicy tworzy sidej tablicy tworzy sięę indeks unikalny w oparciu o PK.indeks unikalny w oparciu o PK.
�� Dla kaDla kaŜŜdej tablicy tworzy sidej tablicy tworzy sięę indeksy w oparciu o FK.indeksy w oparciu o FK.
�� Dodatkowe indeksy tworzy siDodatkowe indeksy tworzy sięę dla pdla póól czl częęsto wykorzystywanych sto wykorzystywanych przy grupowaniu, sortowaniu lub wyszukiwaniu rekordprzy grupowaniu, sortowaniu lub wyszukiwaniu rekordóów.w.
�� W systemie transakcyjnym rzadko stosuje siW systemie transakcyjnym rzadko stosuje sięę dodatkowe indeksy.dodatkowe indeksy.
�� W systemach decyzyjnych tworzy siW systemach decyzyjnych tworzy sięę wiele indekswiele indeksóów.w.
Projektowanie Aplikacji Rozproszonych 27/30Projektowanie struktury danych