07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie...

10
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

Transcript of 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie...

Page 1: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

1

[email protected]

[email protected]

Projektowanie Projektowanie

struktury danychstruktury danych

JarosJarosłław Kuchtaaw Kuchta

Projektowanie Aplikacji RozproszonychProjektowanie Aplikacji Rozproszonych

Projektowanie Aplikacji Rozproszonych 2/30Projektowanie struktury danych

ZagadnieniaZagadnienia

�� Sposoby zapisu danych zewnSposoby zapisu danych zewnęętrznychtrznych

�� Odwzorowanie dziedziny problemu w dziedzinOdwzorowanie dziedziny problemu w dziedzinęędanychdanych

�� Normalizacja relacyjnej bazy danychNormalizacja relacyjnej bazy danych

�� Optymalizacja relacyjnej bazy danych dla Optymalizacja relacyjnej bazy danych dla przechowywania obiektprzechowywania obiektóóww

�� Wykorzystanie indeksWykorzystanie indeksóów w relacyjnej bazie danychw w relacyjnej bazie danych

�� Szacowanie rozmiaru relacyjnej bazy danychSzacowanie rozmiaru relacyjnej bazy danych

�� Problemy synchronizacji w rozproszonej bazie danychProblemy synchronizacji w rozproszonej bazie danych

Projektowanie Aplikacji Rozproszonych 3/30Projektowanie struktury danych

Sposoby zapisu danychSposoby zapisu danych

�� PlikiPliki�� Pliki sekwencyjnePliki sekwencyjne

�� NieuporzNieuporząądkowanedkowane�� UporzUporząądkowanedkowane

�� Pliki swobodnego dostPliki swobodnego dostęępupu

�� Bazy danychBazy danych�� RelacyjneRelacyjne�� RelacyjnoRelacyjno--ObiektoweObiektowe�� ObiektoweObiektowe

Page 2: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

2

Projektowanie Aplikacji Rozproszonych 4/30Projektowanie struktury danych

Zalety i wady zapisu w plikachZalety i wady zapisu w plikach

ZaletyZalety

�� ElastycznoElastycznośćść zwizwiąązana z zana z zastosowaniem obiektowego zastosowaniem obiektowego jjęęzyka programowaniazyka programowania

�� DowolnoDowolnośćść typtypóów i w i formatformatóów danychw danych

�� DuDuŜŜa wydajnoa wydajnośćśćodczytu/zapisuodczytu/zapisu

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

Zastosowanie plikZastosowanie plikóóww

�� Pliki gPliki głłóówne (wne (master master filesfiles))

�� Pliki przeglPliki przegląądowe (dowe (looklook--upup filesfiles))

�� Pliki transakcyjnePliki transakcyjne

�� Pliki kontrolne (Pliki kontrolne (audit audit filesfiles))

�� Pliki archiwalne (Pliki archiwalne (historyhistory filesfiles, , archivearchive filesfiles))

Projektowanie Aplikacji Rozproszonych 6/30Projektowanie struktury danych

Zastosowanie systemu bazy Zastosowanie systemu bazy

danych (DBMS)danych (DBMS)

�� Systemy transakcyjneSystemy transakcyjne

�� Systemy wspierania decyzjiSystemy wspierania decyzji

�� Systemy informowania kierownictwaSystemy informowania kierownictwa

�� Systemy eksperckieSystemy eksperckie

Page 3: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

3

Projektowanie Aplikacji Rozproszonych 7/30Projektowanie struktury danych

Rodzaje systemRodzaje systemóów baz danychw baz danych

�� RDBMS RDBMS -- RelationalRelational DatabaseDatabase ManagementManagementSystemSystem

�� ORDBMS ORDBMS -- ObjectObject--relationalrelational DatabaseDatabaseManagementManagement SystemSystem

�� OODBMS OODBMS -- Object Object OrientedOriented DatabaseDatabaseManagemendManagemend SystemSystem

Projektowanie Aplikacji Rozproszonych 8/30Projektowanie struktury danych

Zalety i wady RDBMSZalety i wady RDBMS

ZaletyZalety

�� Szybkie wyszukiwanie danychSzybkie wyszukiwanie danych�� Standardowy jStandardowy jęęzyk dostzyk dostęępu pu

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

Page 4: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

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

Page 5: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

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

Page 6: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

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

kolumna wielowartokolumna wielowartośściowaciowametody dostmetody dostęępupu��atrybut wielowartoatrybut wielowartośściowyciowy

nowa tabela + relacja jedennowa tabela + relacja jeden--wielewiele

metody dostmetody dostęępupu��atrybut zatrybut złłooŜŜonyony

kolumna wielowartokolumna wielowartośściowa ciowa typu OID po katypu OID po kaŜŜdej ze strondej ze stron

metody dostmetody dostęępupu��asocjacja wielostronnaasocjacja wielostronna

kolumna wielowartokolumna wielowartośściowa ciowa typu OIDtypu OID

metody dostmetody dostęępupu��asocjacja jedenasocjacja jeden--wielewiele

procedura przechowywanaprocedura przechowywanametoda dostmetoda dostęępupu��atrybut pochodnyatrybut pochodny

kolumnakolumnametody dostmetody dostęępupu��atrybut jednowartoatrybut jednowartośściowyciowy

tabelatabelaklasaklasa��klasaklasa

ORDBMSORDBMSDMDMPDPD

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

�� SpSpłłaszczenie hierarchii dziedziczeniaaszczenie hierarchii dziedziczenia

Projektowanie Aplikacji Rozproszonych 18/30Projektowanie struktury danych

Odwzorowanie klas PD w DM Odwzorowanie klas PD w DM

w ORDBMS przykw ORDBMS przykłładadWarstwa PD

Warstwa DM

KlientAdres: (Kod, Miejscowość, Ulica)Tel[*]: stringNIP: string

«table»DTKlient

«table»DTAdres

DMKlient

OsobaImię: stringNazwisko: string

«table»DTOsoba

DMOsoba

Page 7: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

7

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

nowa tabela + relacja jedennowa tabela + relacja jeden--wielewielemetody dostmetody dostęępupu��atrybut wielowartoatrybut wielowartośściowyciowy

nowa tabela + relacja jedennowa tabela + relacja jeden--wielewielemetody dostmetody dostęępupu��atrybut zatrybut złłooŜŜonyony

nowa tabela z kolumnami typu nowa tabela z kolumnami typu integerinteger {FK} + relacje jeden{FK} + relacje jeden--wielewiele

metody dostmetody dostęępupu��asocjacja wielostronnaasocjacja wielostronna

kolumna typu kolumna typu integerinteger {FK} + {FK} + relacja jedenrelacja jeden--wielewiele

metody dostmetody dostęępupu��asocjacja jedenasocjacja jeden--wielewiele

procedura przechowywanaprocedura przechowywanametoda dostmetoda dostęępupu��atrybut pochodnyatrybut pochodny

kolumnakolumnametody dostmetody dostęępupu��atrybut jednowartoatrybut jednowartośściowyciowy

tabela + kolumna tabela + kolumna ID: ID: integerinteger {{autosetautoset, PK}, PK}

klasaklasa��klasaklasa

RDBMSRDBMSDMDMPDPD

Page 8: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

8

Projektowanie Aplikacji Rozproszonych 22/30Projektowanie struktury danych

Struktura klas DM Struktura klas DM

w RDBMS w RDBMS -- przykprzykłładad

«table»DTKlient

ID: integer {autoset, PK}NIP: stringOsoba: integer {FK}

DMKlient

Get Klient()Set Klient()

«table»DTOsoba

ID: integer {autoset, PK}Imię: stringNazwisko: string

DMOsoba

Get Osoba()Set Osoba()

«table»DTAdres

ID: integer {autoset, PK}Klient: integer {FK}Kod: stringMiejscowość: stringUlica: string

Osoba Klient

«table»DTTel

ID: integer {autoset, PK}Klient: integer {FK}Tel: string

Klient

*

1

1

1

1

1

Projektowanie Aplikacji Rozproszonych 23/30Projektowanie struktury danych

Optymalizacja obiektu w RDBMSOptymalizacja obiektu w RDBMS

�� Optymalizacja wydajnoOptymalizacja wydajnośści (normalizacja)ci (normalizacja)

�� Optymalizacja szybkoOptymalizacja szybkośści (ci (denormalizacjadenormalizacja, , indeksowanie)indeksowanie)

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

Page 9: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

9

Projektowanie Aplikacji Rozproszonych 25/30Projektowanie struktury danych

DenormalizacjaDenormalizacja

�� Tablice przeglTablice przegląądowe (dowe (looklook--upup tablestables))

�� Relacje jedenRelacje jeden--jedenjeden

�� Relacje jedenRelacje jeden--wielewiele

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

Indeksowanie Indeksowanie -- prezentacjaprezentacja

�� ZastrzeZastrzeŜŜeniaenia�� {{indexindex} } –– indeks nie zapewniajindeks nie zapewniająący unikatowocy unikatowośścici

�� {{uniqueunique} } –– indeks zapewniajindeks zapewniająący unikatowocy unikatowośćść

�� {not {not nullnull} } –– kolumna nie dopuszcza wartokolumna nie dopuszcza wartośści pustejci pustej

�� PrzedziaPrzedziałł indexesindexes�� nazwiskonazwisko--ii--imiimięę = nazwisko + imi= nazwisko + imięę {{uniqueunique, not , not nullnull}}

Page 10: 07 Projektowanie bazy danych - freeshell.demaciek/studia/7/par/wyklady/07...Indeksowanie -prezentacja Zastrze Ŝenia {index } – indeks nie zapewniaj ący unikatowo ści {unique }

10

Projektowanie Aplikacji Rozproszonych 28/30Projektowanie struktury danych

Szacowanie rozmiaru bazy Szacowanie rozmiaru bazy

danychdanych

�� ŚŚredni rozmiar rekordu = Suma redni rozmiar rekordu = Suma śśredniego redniego rozmiaru prozmiaru póól.l.�� ŚŚredni rozmiar predni rozmiar póól tekstowych l tekstowych -- szacowanieszacowanie

�� Szacowanie liczby rekordSzacowanie liczby rekordóóww

�� Narzut DBMSNarzut DBMS

�� Przyrost miesiPrzyrost miesięęczny/rocznyczny/roczny

Projektowanie Aplikacji Rozproszonych 29/30Projektowanie struktury danych

Problemy z rozproszonProblemy z rozproszonąą bazbaząą

danychdanych

�� Centralna baza danych Centralna baza danych –– lokalne repliki bazy danychlokalne repliki bazy danych

�� Synchronizacja okresowaSynchronizacja okresowa

�� Konflikty synchronizacji:Konflikty synchronizacji:�� konflikt blokowaniakonflikt blokowania

�� konflikt klucza unikatowegokonflikt klucza unikatowego

�� konflikt klucza obcegokonflikt klucza obcego

�� konflikt poprawnokonflikt poprawnośści na poziomie tabelici na poziomie tabeli

�� konflikt naruszenia wikonflikt naruszenia więęzzóów integralnow integralnośścici

�� konflikt wielkokonflikt wielkośści liter i porzci liter i porząądkdkóów sortowaniaw sortowania

Projektowanie Aplikacji Rozproszonych 30/30Projektowanie struktury danych

LiteraturaLiteratura

�� DennisDennis A., A., WixomWixom B.H., B.H., TegardenTegarden D., D., SystemsSystems

AnalysisAnalysis & Design. & Design. AnAn ObjectObject--OrientedOriented ApproachApproach

withwith UMLUML, John , John WileyWiley andand SonsSons, USA, 2002, USA, 2002