1 / 67

Systemy zarządzania bazami danych 2. Układ danych na dysku

Systemy zarządzania bazami danych 2. Układ danych na dysku. Zagadnienia. Jak ułożyć dane na dysku? Jak odwzorować je w pamięci RAM?. Co mamy do dyspozycji? : Bajty. 8 bit ów. Jakie dane się składuje ?. Wynagrodzenie (netto, brutto) Nazwisko (aktualne, rodowe)

baby
Download Presentation

Systemy zarządzania bazami danych 2. Układ danych na dysku

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy zarządzania bazami danych2. Układ danych na dysku 2. Układ danych na dysku

  2. Zagadnienia • Jak ułożyć dane na dysku? • Jak odwzorować je w pamięci RAM? 2. Układ danych na dysku

  3. Co mamy do dyspozycji?: Bajty 8 bitów Jakie dane się składuje? • Wynagrodzenie (netto, brutto) • Nazwisko (aktualne, rodowe) • Data (urodzenia, zatrudnienia) • Zdjęcie (z ostatniej wycieczki na grzyby) 2. Układ danych na dysku

  4. Reprezentacja: • Integer (short): 2 bajty np., 35 to 00000000 00100011 • Real (zmiennopozycyjnie) • n bitów na mantysę, mna cechę • Real (stałopozycyjnie) księgowi lubią • Często dziesiętnie jako ciągi cyfr 2. Układ danych na dysku

  5. Reprezentacja: • Znaki  rozmaite kodowanie, kiedyś: ASCII, teraz coraz częściej Unicode (UTF-8) Przykłady (ASCII): A: 1000001 a: 1100001 5: 0110101 LF: 0001010 2. Układ danych na dysku

  6. Czy można użyć mniej niż 1 bajt? Owszem, ale dyski są takie tanie... Reprezentacja: 1111 1111 • Boolean np., TRUE FALSE 00000000 • Typy wyliczeniowe • np., RED  1GREEN  3 • BLUE  2 YELLOW  4 … 2. Układ danych na dysku

  7. Reprezentacja: • Daty np.: - Integer, liczba dni od 01-01-1900 - 8 znaków, YYYYMMDD - 7 znaków, YYYYDDD (Teraz już raczej nie YYMMDD. A może właśnie tak!) • Czas np. - Integer, liczba sekund od północy - 8 znaków, HHMMSSFF 2. Układ danych na dysku

  8. c c a a t t c a t Reprezentacja: • Napisy • Zakończone zerem, np. • Z podaną długością, np. • O ustalonej długości (w słowniku danych) 3 2. Układ danych na dysku

  9. Zasadnicze rozróżnienie • Elementy stałego rozmiaru • Elementy zmiennego rozmiaru • - rozmiar zwykle jest podawany na początku elementu 2. Układ danych na dysku

  10. Na początku elementu także: • Typ elementu: Sposób jego interpretacji (określa także rozmiar, gdy jest on stały) • Uwzględnienie w reprezentacji danych typu elementu to krok w kierunku danych samoopisowych 2. Układ danych na dysku

  11. Składanie Elementy danych Rekordy Bloki Pliki Pamięć RAM 2. Układ danych na dysku

  12. Rekord • Kolekcja powiązanych elementów danych (zwanych polami) • Np.Rekord Employee: pole name, pole salary, pole hire date, pole previous jobs (wielokrotne) ... 2. Układ danych na dysku

  13. Rodzaje rekordów • Główny podział : • Rozmiar: stały vs. zmienny • Format: stały vs. zmienny 2. Układ danych na dysku

  14. Format stały • Schemat (nie rekord) zawiera następujące informacje • liczba pól • typy poszczególnych pól • porządek pól w rekordzie • nazwa każdego pola • Z zupełnie innej beczki. Także: • informacje statystyczne: liczba wystąpień, histogram wartości 2. Układ danych na dysku

  15. Przykład:stały format i rozmiar Employee (1) E#,dwubajtowy integer (2) Ename, napis 10-znakowy Schemat (3) Dept, dwubajtowy kod 55 s m i t h 02 Rekordy 83 j o n e s 01 2. Układ danych na dysku

  16. Format zmienny • Rekord musi zawierać opis formatu • Jest więc mniej lub bardziej samoopisowy • Różne warianty informacji schematowych w takim wypadku 2. Układ danych na dysku

  17. 2 5 I 46 4 S 4 F O R D Przykład:zmienny format i rozmiar Liczba pól Kod pola E# Kod typu Integer Kod pola Ename Kod typu String Rozmiar pola String Nazwy pól mogą być niekodowane, np. znaczniki XML 2. Układ danych na dysku

  18. Przydatność zmiennego formatu • Rekordy „rzadkie” (pola opcjonalne) • Pola wielokrotnych • Ewolucja schematu • Możemy modyfikować tylko schemat i nie musimy ruszać danych Oznacza jednak marnowanie (?) przestrzeni... 2. Układ danych na dysku

  19. Format zmienny z polem wielokrotnym • Pracownik może mieć dowolnie wiele dzieci • Employee 1:NChild 3 E_name: Fred Child: Sally Child: Tom 2. Układ danych na dysku

  20. Pola wielokrotne wcale nie muszą oznaczać ani - ani formatu zmiennego - ani rozmiaru zmiennego John Sailing Chess -- • Trzeba tylko określić maksymalną liczebność • i w razie czego wypełnić NULLowym gruzem 2. Układ danych na dysku

  21. Wiele pośrednich opcjimiędzy formatem stałym i zmiennym Przykład 1:Typ rekordu w rekordzie typ rekordurozmiar rekordu (wyjaśniony w schemacie) • Niezbędne w gronach tabel (cluster) 5 27 . . . . 2. Układ danych na dysku

  22. Nagłówek rekordu • Dane opisowe na początku rekordu • Może zawierać • typ rekordu • rozmiar rekordu • stempel czasowy • nagłówki pól • zamki transakcyjne • itd. 2. Układ danych na dysku

  23. Wszyscy pracownicy mają E#, name, dept Inne pola są zmienne. 25 Smith Toy 2 Hobby:chess retired # liczba pól w części zmiennej Przykład 2:Format pośredni stało-zmienny • Format mieszany • Jedna część jest stała, a druga zmienna 2. Układ danych na dysku

  24. Wiele możliwości wewnętrznej organizacji rekordu długość pola * * * 3 10 F1 5 F2 12 F3 rozmiar całości 3 32 5 15 20 F1 F2 F3 0 1 2 3 4 5 15 20 offsety 2. Układ danych na dysku

  25. Pytanka • Widzieliśmy przykłady • Rekordów stałego formatu i rozmiaru • Rekordów zmiennego formatu i rozmiaru • Czy ma sens format stały i rozmiar zmienny? • Czy ma sens format zmienny i rozmiar stały? 2. Układ danych na dysku

  26. Inne interesujące kwestie • Kompresja • W ramach rekordu, np. kodowanie • W ramach zbioru rekordów (np. w bloku), np. wyszukiwanie wspólnych fragmentów • Szyfrowanie 2. Układ danych na dysku

  27. Zakładamy bloki stałego rozmiaru Zakładamy, że jest jeden plik (na razie) Układanie rekordów w blokach bloki... plik 2. Układ danych na dysku

  28. Opcje składowania rekordów w blokach (1) Oddzielanie rekordów (2) Łańcuchowane albo niełańcuchowane (3) Mieszanie różnych typów rekordów (grono) (4) Rekordy wieloczęściowe (5) Porządkowanie (sortowanie) rekordów (6) Adresowanie, wskaźniki 2. Układ danych na dysku

  29. (1) Oddzielanie rekordów R1 R2 R3 Blok (a) Rozmiar stały: nie ma potrzeby oddzielania (b) Specjalny znacznik (c) Zapisywanie rozmiarów rekordów (lub offsetów) - w rekordach - w nagłówku bloku - w tablicy translacji adresów rekordów (?) 2. Układ danych na dysku

  30. (2) Łańcuchowane vs. niełańcuchowane • Niełańcuchowane: rekord musi mieścić się w jednym bloku blok 1 blok 2 ... • Łańcuchowane blok 1 blok 2 ... R1 R2 R3 R4 R5 R1 R2 R3 (a) R3 (b) R4 R5 R6 R7 (a) 2. Układ danych na dysku

  31. R1 R2 R3 (a) R3 (b) R4 R5 R6 R7 (a) Przy łańcuchowaniu rekordów: należywskazaćnależywskazać że to jest częśćże to kontynuacja (+ wskaźnik na resztę) (+ ew. wskaźnik zwrotny) 2. Układ danych na dysku

  32. Łańcuchowane vs. niełańcuchowane • Niełańcuchowanie jest znacznie prostsze, ale może oznaczać marnowanie przestrzeni • Łańcuchowanie jest konieczne, gdy: • rozmiar rekordu > rozmiar bloku • Łańcuchowania w praktyce się unika, bo zmniejsza efektywność OLTP • Odczyt rekordu wymaga bowiem odczytu więcej niż jednego bloku 2. Układ danych na dysku

  33. blok 1 blok 2 2050 bajtów 2046 pustych 2050 bajtów2046 pustych R1 R2 Przykład marnowania przestrzeni • 106rekordów • Każdy o stałym rozmiarze 2,050 bajtów • Rozmiar bloku = 4096 bajtów • Zmarnowanychbajtów = 2 x 109 • Rozmiar pliku = 4 x 109(wykorzystanie 50%) 2. Układ danych na dysku

  34. (3) Mieszanie różnych typów rekordów • Mieszany – w tym samym bloku są rekordy różnych typów (np. EMPLOYEE, DEPT) np., taki blok EMP e1 DEPT d1 DEPT d2 2. Układ danych na dysku

  35. Dlaczego chcemy mieszać?Odpowiedź: GRONA (clusters) • Rekordy, które są zwykle pobierane łącznie, powinny znajdować się w tym samym bloku • Inna możliwość: bez mieszania, ale trzymamy powiązane w rekordy w tym samym cylindrze 2. Układ danych na dysku

  36. Przykład Q1: select A#, C_NAME, C_CITY, … from DEPOSIT, CUSTOMER where DEPOSIT.C_NAME = CUSTOMER.C.NAME blok CUSTOMER,NAME=SMITH DEPOSIT,NAME=SMITH DEPOSIT,NAME=SMITH 2. Układ danych na dysku

  37. Jeśli Q1 jest często zadawanie, grono podnosi efektywność • Ale jeśli poniższe zapytanie Q2 jest częste Q2: SELECT * FROM CUSTOMER To grono wręcz obniża efektywność • Są też problemy z gronami na maszynach wieloprocesorowych. Przeplot instrukcji może wtedy powodować problemy 2. Układ danych na dysku

  38. (4) Rekordy wieloczęściowe Część o formacie stałym jest w jednym bloku Zwykle przy takim formacie Część o formacie zmiennym jest w innym bloku 2. Układ danych na dysku

  39. R2 (a) Taki blok może mieć rekordy stałego formatu R2 (b) R2 (c) Blok z częścią zmienną Blok z częścią stałą R1 (a) R1 (b) 2. Układ danych na dysku

  40. Pytanie • Jaka jest różnica między • rekordami wieloczęściowymi a • po użyciem dwóch zwykłych typów rekordów? 2. Układ danych na dysku

  41. (5) Porządkowanie (sortowanie) rekordów • Posortowanie rekordów w pliku (bloku) wg wartości pewnego klucza • Plik uporządkowany (  posortowany) • Po co to robić? • Przyspieszenie odczytu rekordów w zadanym porządku • Wykonanie złączenia przez scalanie (merge-join). Odpada wtedy kosztowne sortowanie. 2. Układ danych na dysku

  42. Możliwości porządkowania (a) Kolejne rekordy są fizycznie sąsiednie ... (b) Powiązane wskaźnikami R1 Next (R1) R1 Next (R1) 2. Układ danych na dysku

  43. nagłówek R2.1 R1.3 R4.7 W praktyce trzeba obie opcje połączyć: (c) Obszar nadmiarowy Rekordy posortowane R1 R2 R3 R4 R5 2. Układ danych na dysku

  44. Wiele możliwości na skali: Fizyczne Logiczne (6) Adresowanie, wskaźniki • Jak się odwoływać do rekordów? Rx 2. Układ danych na dysku

  45. Czysto fizyczne ID urządzenia Np., AdresNr cylindra rekordu = Nr ścieżki lub ID Nr sektora Offset w bloku ID bloku 2. Układ danych na dysku

  46. Czysto logiczne • Np. ID rekordu to dowolny ciąg bitów odwzorowanie ID rekordu r Adres a ID rekordu Adres fizyczny 2. Układ danych na dysku

  47. Kompromis Elastyczność Koszt przenoszenia rekordów pośredniości • przy usuwaniu • przy modyfikacji • przy porządkach 2. Układ danych na dysku

  48. Przykład 1Pośredniość w bloku Nagłówek Blok: Wolny obszar R3 R4 R1 R2 2. Układ danych na dysku

  49. Nagłówek bloku • Dane opisowe na początku (końcu) bloku • Mogą zawierać: • Identyfikator pliku (relacji, bazy danych) • Identyfikator tego bloku • Katalog rekordów • Wskaźnik na wolny obszar • Typ bloku (np. zawiera rekordy typu 4 lub jest blokiem nadmiarowym) • Wskaźnik do innych podobnych bloków (powiązanie w listę lub inną strukturę) • Stempel czasowy 2. Układ danych na dysku

  50. Odwzorowanie OS Id pliku, Fizyczne Nr bloku id bloku Przykład 2Użycie identyfikatora bloku znanego systemowi operacyjnemu Id rekordu Id pliku Nr bloku Nr rekordu lub Offset 2. Układ danych na dysku

More Related