Powtórzenie wykładu 10 Fizyczna organizacja danych w bazie danych. Indeksy. Model fizyczny bazy danych: pliki i rekordy. v v v v Plik składa się z rekordów w tym samym formacie. Format rekordu - lista nazw pól. Rekord składa się z wartości poszczególnych pól. Niektóre pola wyróżnione jako klucz rekordu – ich wartości jednoznacznie identyfikują cały rekord. Operacje: v Wstawianie - wstaw rekord do pliku. v Usuwanie - usuń rekord z pliku. v Modyfikacja - zmodyfikuj zawartość pól w rekordzie w pliku. v Wyszukiwanie - znajdź w pliku rekord z podaną wartością w danym polu. Pamięci bazy danych v Dyski i RAM - dostęp swobodny (random access) v Taśmy - dostęp sekwencyjny v v Dane są przechowywane i przekazywane stronami (blokami dyskowymi). Inaczej niż w przypadku RAM, czas dostępu do danych na dysku zależy od ich położenia na dysku. – 3 Wzajemne rozmieszczenie stron na dysku ma zasadniczy wpływ na szybkość działania SZBD! Najlepiej operować ciągami sąsiadujących ze sobą stron. Organizacje pliku rekordów – Plik nieuporządkowany (heap) – Plik posortowany – Plik haszowany 4 Indeksy v v Plik nieuporządkowany umożliwia wyszukanie rekordu: – mając dany identyfikator rekordu rid, lub – przeglądając sekwencyjnie wszystkie rekordy w pliku. Często wyszukiwanie na podstawie wartości jednego lub więcej pól, np. v – Wyznacz wszystkich studentów specjalizacji “BD”. – Wyznacz wszystkich studentów mających < 20 lat. Indeksy to struktury danych pomagające szybko znajdować odpowiedzi na takiego rodzaju zapytania. Indeks pogrupowany i niepogrupowany NIEPOGRUPOWANY POGRUPOWANY Pozycje indeksu kierują wyszukiwaniem pozycji danych Pozycje danych Pozycje danych (Plik indeksowy) (Plik danych) Rekordy z danymi Rekordy z danymi Pozycja indeksu Strona indeksu P 0 K 1 P 1 K 2 K < K …. < K 1 2 m P K m 2 Pm Statyczne drzewo ISAM (indexed sequential access method) Węzły wewnętrzne Liści e Strony nadmiarowe Strony główne B+ drzewo - dynamiczne, bez stron nadmiarowych Indeks haszowany v v Ustalona alokacja stron głównych; alokowane dodatkowe strony nadmiarowe w razie potrzeby. h(k)= k mod M = “segment” do którego należy pozycja danych o kluczu k (M = # segmentów). 0 1 h(klucz) klucz h M-1 Strony główne Strony nadmiarowe