• Nie Znaleziono Wyników

Wykład 5 Fizyczne projektowanie bazy danych

N/A
N/A
Protected

Academic year: 2021

Share "Wykład 5 Fizyczne projektowanie bazy danych"

Copied!
1
0
0

Pełen tekst

(1)

Wykład 5

Fizyczne projektowanie bazy danych

(Paul Beynon-Davies, Systemy baz danych )

1.Logiczne projektowanie bazy danych - niezależnie od implementacji

 Konstruowanie modelu reguł działalności stosowanych w pewnej organizacji w postaci relacji czyli tabel

2. Fizyczne projektowanie bazy danych - zależnie od implementacji

 Analiza wyników logicznego projektu

 Uwzględnienie wymagań wydajnościowych

 Uwzględnienie wymagań pamięciowych

 Implementacja przy użyciu mechanizmów wybranego Systemu Zarządzania Bazą Danych

Produkty wejściowe projektowania fizycznego

1. Model logiczny typu relacyjnego (diagramy związków encji, tabele jako odwzorowanie diagramu związków encji)

2. Przybliżone oszacowanie liczby wierszy w tabelach – analiza ilości 3. Szacunkowa analiza sposobów użycia tabel za pomocą rodzaju i

częstości występowania operacji, które będą prawdopodobnie oddziaływać na tabele w naszej bazie danych – analiza użycia 4. Lista więzów integralności

5. Lista najczęściej wykonywanych raportów

Produkty wyjściowe projektowania fizycznego

1. Struktury plików zadeklarowane w wybranym języku definiowania danych (Data Definition Language - DDL)

2. Indeksy na strukturach plików 3. Klastry plików

4. Zbiór powiązań wewnętrznych wyrażony w DDL i dodatkowych więzów integralności wyrażony w wybranym języku integralności danych (Data Integrity Language - DIL)

5. Zbiór zapytań zoptymalizowany do działania w konkretnej bazie danych (zapytanie zoptymalizowane – taka forma zapytania, która podaje odpowiedź w możliwie najkrótszym czasie)

(2)

Przykład projektowania wydajnej relacyjnej bazy danych 1) Produkty wejściowe

1.1. Modele relacyjny (pominięto etap analizy czyli tworzenia diagramu związków encji i odwzorowania w tabele)

Katalog książek:

Tytul (Id_tytulu, tytul, autor, ISBN, typ_ksiazki) Ksiazka (Id_ksiazki, numer_ksiazki, Id_tytulu) Rezerwacje(Id_rezerwacji, Id_ksiazki)

Uwaga: atrybut typ_ksiazki umożliwia klasyfikację książek na książki techniczne i beletrystyczne

1.2. Analiza ilości

 Oszacowanie maksymalnej liczby krotek (danych) pozwala oszacować rozmiar pamięci dyskowej

 Oszacowanie średniej liczby krotek, które mogą być zapisane w bazie danych daje możliwość oceny modelu dostępu do danych Tabela Maksymalna

liczba wierszy

a

Średnia liczba wierszy

b

Rozmiar kolumn (krotki)

c

Maksymalny rozmiar

tabeli a*c

Średni rozmiar

tabeli b*c Tytul 5 000 3 000 49 245 000 147 000 Ksiazka 100 000 30 000 9 900 000 270 000 Rezerwacj

e 100 000 50 000 8 800 000 400 000

Suma 1 945 000 817 000

1.3. Analiza użycia

 Identyfikacja podstawowych zapytań, wymaganych w bazie danych jako ciągi operacji: wstawiania, modyfikowania, wyszukiwania i usuwania,

 Zmienność pliku w ciągu roku

w tym samym czasie usuwa się 50 tytułów i dodaje 50 nowych, czyli 50/5000=1%

w tym samym czasie 1000 książek usuwa się i 1000 dodaje się, czyli 1000/100000=1%

w tym samym czasie usuwa się 10000 rezerwacji i zakłada nowych 10000 rezerwacji, czyli 10000/10000=100%.

(3)

Rozmiar i zmienność pliku mają wpływ na dostęp do bazy danych:

 Im większy plik, tym większa konieczność zastosowania specjalnych struktur dostępu do baz danych

 Im bardziej zmienny plik, tym bardziej konieczne są jak najmniej czasochłonne struktury dostępu do baz danych

Zapytanie Częstotliwość

wykonywania Konieczność

zapewnienia najkrótszego czasu wykonania zapytania

Podaj tytuły książek Raz na rok -

Podaj autorów książek Raz na rok - Podaj tytuły książek technicznych Raz na miesiąc - Podaj numery książek

technicznych Raz dziennie -

Podaj liczbę zarezerwowanych

tytułów technicznych Wiele razy

dziennie +

1.4. Analiza integralności

Trzy typy więzów integralności wewnętrznej:

 klucza głównego (nie może być równy null)

 klucza obcego (zazwyczaj nie może być równy null)

 dziedziny wartości np. typ_tytulu {Techniczna, Beletrystyczna}

Typy więzów integralności dodatkowej:

 więzy przejścia np. jeśli żadna książka o danym tytule nie była

wypożyczona przez rok, należy te książki wraz tytułem usunąć z bazy danych

 więzy statyczne: liczba rezerwacji danego tytułu nie może przekroczyć podwójnej liczby książek o tym tytule

Obsługa więzów integralności jest czasochłonna.

(4)

2) Zdefiniowanie wydajności

Wydajność jest wyrażana za pomocą:

czasów reakcji systemu (czas oczekiwania na wykonanie operacji oraz czas wykonania operacji)

przepustowości (średnia liczba żądań obsłużonych przez system w określonym czasie) itp

Wydajność zależy od:

liczby operacji oczekujących na wykonanie

złożoności obliczeniowej i algorytmicznej

parametrów czasowych sprzętu

zapotrzebowania na zasoby (pamięć operacyjną, dyski)

algorytmów szeregowania operacji (np. zapytań)

Aby zdefiniować wydajność systemu, trzeba zdefiniować misję aplikacji:

 analiza ilości – maksymalna i średnia liczba instancji, zmienność instancji

 analiza użycia- priorytetowa lista najważniejszych transakcji, bo najczęściej wykonywanych – należy określić oczekiwaną minimalną częstotliwość tych transakcji

 analiza integralności – sposób obsługi więzów integralności Decyzje dotyczące dostrajania bazy danych pod względem wydajności

1. tworzenie mechanizmów dostępu związanych z przechowywaniem 2. dodawanie indeksów

3. denormalizacja 4. więzy integralności 5. wykorzystanie SZBD

Ad. 1)

 sekwencyjność (małe tabele, średnie i duże tabele, gdy należy udostępnić ponad 20% wierszy, dla dowolnych tabel w przypadku zapytań o niskim priorytecie)

 haszowanie (jako główna ścieżka dostępu do pliku, zbudowana na kluczach głównych)

(5)

Ad. 2)

Kompromis między czasem wykonywania zapytań oraz czasem modyfikowania, wstawiania i usuwania danych

 indeksy na kluczach głównych (obowiązkowe)

 indeksy na kluczach obcych

 indeksy wtórne Ad 3)

Stosowanie denormalizacji jest stosowane, gdy inne metody zawiodą Np. Wprowadzenie tablicy łączącej tablicę tytul i tablice ksiazka

Ksiazka_i_tytul (Id_ksiazka_tytul, tytul, autor, ISBN, cena, numer) Ad 4)

Implementowanie więzów integralności:

 a) wewnętrznie: określa się więzy integralność encji (ze względu na klucz główny), więzy integralność referencyjnej (klucze obce w zasadzie nie powinny być równe null), więzy integralności dziedziny (np.

wartości typ_tytulu muszą pochodzić z dziedziny {Techniczna, Beletrystyczna}

 proceduralnie: np. procedury wyzwalane

 nieproceduralnie: zastosowanie centralnych słowników danych, co umożliwia utrzymywanie więzów integralności niezależnie od programów użytkowych

Ad5)

Wybór Systemu Zarządzania Bazą Danych może mieć różny wpływ na wydajność bazy danych

typ optymalizacji

praca wielowątkowa

zapytania interpretowane podczas wykonywania zapytania są wolniejsze- jednak poprawia się ich wydajność, gdy baza jest zmienna lub dostęp do danych ma charakter losowy

zapytania skompilowane są szybsze od interpretowanych

(6)

Przykład 1

Zastosowania różnych metod dostępu do danych poprawiające wydajności bazy danych – projektowanie tabel i użycie indeksów

1.1. Pytanie zawierające selekcję na tabeli Tytul a) liczba krotek w tabeli Tytul jest równa n,

b) 0.9 n to krotki zawierające wartość atrybutu typ_tytulu=’Techniczna’

c) 0.1 n to krotki zawierające wartość atrybutu typ_tytulu=’Beletrystyczna’

Pytanie

Select * From Tytul

Where typ_tytulu=’Techniczna’

1.1.1. Czasochłonność w technice sekwencyjnej Do i:= 1 to n

if Tytul[i].typ_ksiazki=’Techniczna’

Dodaj krotkę Tytul[i] do wynikowej tabeli T1=t1+t2

t1= n - czasochłonność czytania krotek z tabeli Tytul t2=0.9n - czasochłonność zapisu krotek z tabeli Tytul o

typ_Tytulu=’Techniczna’

T1=1.9n

1.1.2. Czasochłonność po dodaniu indeksu na atrybucie typ_tytulu w tabeli Tytul

T1’’=t1’’+t2’’

t1’’= 0.9n - czasochłonność czytania krotek z tabeli Tytul

t3’’= k - czasochłonność zapisu krotek z tabeli Tytul jako wyniku selekcji T1’’=0.9n+k=0.9n+k=0.9n+k

T1’’=0.9n

1.2.3. Czasochłonność po podziale tabeli Tytul – poziomy (podział na tytuly techniczne i beletrystyczne) i pionowy (odrzucenie atrybutu typ_tytulu)

Tytul_Techniczny(Id_tytulu, tytul, autor, ISBN) Tytul_Beletrystyczny(Id_tytulu, tytul, autor, ISBN) T1’’’=t1’’’+t2’’’

t1’’’= 0.9n - czasochłonność czytania krotek z tabeli Tytul_Techniczny

(7)

Ksiazka (Id_ksiazki, numer, id_tytulu_) Np. Pytanie:

Select * From tabela, ksiazka Where typ_ksiazka=’Techniczna’

And Id_tytulu=id_tytulu_;

d) liczba krotek w tabeli Tytul jest równa n, gdzie 0.9 n to krotki zawierające wartość atrybutu typ_tytulu=’Techniczna’

e) liczba krotek w tabeli Ksiazka odpowiadająca tytułom o wartości atrybutu typ_tytulu równym „Techniczna’ jest równa k

f) liczba krotek w tabeli Ksiazka jest równa m

g) na stronie pliku przechowuje się p krotek, stąd mamy m/p oraz n/p. Zakłada się najgorszy wariant, w którym każda krotka jest na innej stronie

1.2.1. Czasochłonność w technice sekwencyjnej

Do i:= 1 to n

if Tytul[i].typ_ksiazki=’Techniczna’

Do j|:= 1 to m do

if Ksiazka[j].id_tytulu_=Tytul[i].Id_tytulu

Dodaj krotkę Ksiazka[j] * Tytul[i] do wynikowej tabeli T1=t1+t2+t3

t1= n - czasochłonność czytania krotek z tabeli Tytul

t2=0.9nm - czasochłonność czytania krotek z tabeli Ksiazka i testowań

warunków (drugi argument to testowanie zaindeksowanych kluczy głównych dla k krotek z tabeli Ksiazka)

t3= k - czasochłonność zapisu złączonych krotek z tabel Ksiazka i Tytul T1=n+0.9nm+k

(8)

1.2.2. Czasochłonność po dodaniu indeksu na atrybucie typ_tytulu w tabeli Tytul

Do i:= 1 to n

if Tytul[i].typ_ksiazki=’Techniczna’

//mamy 0.9n indeksow w tabeli Tytul dla atrybutu typ_tytulu Do j|:= 1 to 0.9n do

Ksiazka[j].id_tytulu_=Tytul[i].Id_tytulu

Dodaj krotkę Ksiazka[j] * Tytul[i] do wynikowej tabeli T1’’=t1’’+t2’’+t3’’

t1’’= 0.9n - czasochłonność czytania krotek z tabeli Tytul

t2’’=0.9n*0.9n - czasochłonność czytania krotek z tabeli Ksiazka i testowań warunków (drugi argument to testowanie zaindeksowanych kluczy głównych dla k krotek z tabeli Ksiazka)

t3’’= k - czasochłonność zapisu złączonych krotek z tabel Ksiazka i Tytul T1’’=0.9n+0.9n*0.9n+k+k=0.9n+0.81n+2k=1.71n+k

T1’’=1.71n+k

1.2.3. Czasochłonność po podziale tabeli Tytul – poziomy (podział na tytuly techniczne i beletrystyczne) i pionowy (odrzucenie atrybutu typ_tytulu)

Tytul_Techniczny(Id_tytulu, tytul, autor, ISBN) Tytul_Beletrystyczny(Id_tytulu, tytul, autor, ISBN) Ksiazka(Id_ksiazki, numer, id_tytulu_)

Do i:= 1 to 0.9n //mamy 0.9n krotek w tabeli Tytul_Techniczny Do j|:= 1 to 0.9n do

Ksiazka[j].id_tytulu_=Tytul[i].Id_tytulu

Dodaj krotkę Ksiazka[j] * Tytul[i] do wynikowej tabeli T1’’’=t1’’’+t2’’’+t3’’’

t1’’’= 0.9n - czasochłonność czytania krotek z tabeli Tytul

t2’’’=0.9n*0.9n +k - czasochłonność czytania krotek z tabeli Ksiazka i testowań warunków (drugi argument to testowanie

zaindeksowanych kluczy głównych dla k krotek z tabeli Ksiazka)

t3’’’= k - czasochłonność zapisu złączonych krotek z tabel Ksiazka i Tytul T1’’’=0.9n+0.9n*0.9n+k=0.9n+0.81n+2k=1.71n+k

Cytaty

Powiązane dokumenty

Jeśli natomiast szereg jest zbieżny, ale nie bezwzględnie, to permutując jego wyrazy możemy uzyskać szereg zbieżny o dowolnej sumie albo szereg rozbieżny 181.. 180 Używam

[r]

Wybór zadań: Grzegorz Graczyk 483033 Copyright © Gdańskie

Zestaw zada« z Geometrii z algebr¡ liniow¡.. dla kierunku Informatyka,

Krawędzi, które łączą wierzchołki należące do różnych kawałków, jest dokładnie n k − 1, a ponieważ poddrzewa połączone takimi krawędziami składają się z

Morela Pomarańczowy Średnia Słodki Średnia Nie.. a) Wiedząc, że użytkownicy tego systemu najczęściej pytają o owoce będące w promocji oraz posiadające

a) Pole działki pana Zbyszka jest równe ……… m 2. b) Długość boku działki pana Zbyszka jest równa ……….. c) Obwód działki pana Jana jest równy: ………m. ). Za pomocą cyfr

………. c) Ile czasu będzie trwało napełnianie pustej cysterny, jeśli będzie otwarty pierwszy kran, który napełnia cysternę i kran w dnie