Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Oryginał: Hector Garcia-Molina2. Układ danych na dysku1 Systemy zarządzania bazami danych 2. Układ danych na dysku.

Podobne prezentacje


Prezentacja na temat: "Oryginał: Hector Garcia-Molina2. Układ danych na dysku1 Systemy zarządzania bazami danych 2. Układ danych na dysku."— Zapis prezentacji:

1 Oryginał: Hector Garcia-Molina2. Układ danych na dysku1 Systemy zarządzania bazami danych 2. Układ danych na dysku

2 Oryginał: Hector Garcia-Molina2. Układ danych na dysku2 Jak ułożyć dane na dysku? Jak odwzorować je w pamięci RAM? Zagadnienia

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

4 Oryginał: Hector Garcia-Molina2. Układ danych na dysku4 Reprezentacja: Integer (short): 2 bajty np., 35 to Real (zmiennopozycyjnie) n bitów na mantysę, m na cechę Real (stałopozycyjnie) księgowi lubią Często dziesiętnie jako ciągi cyfr

5 Oryginał: Hector Garcia-Molina2. Układ danych na dysku5 Znaki rozmaite kodowanie, kiedyś: ASCII, teraz coraz częściej Unicode (UTF-8) Reprezentacja: Przykłady (ASCII): A: a: : LF:

6 Oryginał: Hector Garcia-Molina2. Układ danych na dysku6 Boolean np., TRUE FALSE Reprezentacja: Typy wyliczeniowe np., RED 1GREEN 3 BLUE 2 YELLOW 4 … Czy można użyć mniej niż 1 bajt? Owszem, ale dyski są takie tanie...

7 Oryginał: Hector Garcia-Molina2. Układ danych na dysku7 Daty np.: - Integer, liczba dni od 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 Reprezentacja:

8 Oryginał: Hector Garcia-Molina2. Układ danych na dysku8 Napisy –Zakończone zerem, np. –Z podaną długością, np. -O ustalonej długości (w słowniku danych) ctacta 3 Reprezentacja: cta

9 Oryginał: Hector Garcia-Molina2. Układ danych na dysku9 Zasadnicze rozróżnienie Elementy stałego rozmiaru Elementy zmiennego rozmiaru - rozmiar zwykle jest podawany na początku elementu

10 Oryginał: Hector Garcia-Molina2. Układ danych na dysku10 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 Na początku elementu także:

11 Oryginał: Hector Garcia-Molina2. Układ danych na dysku11 Elementy danych Rekordy Bloki Pliki Pamięć RAM Składanie

12 Oryginał: Hector Garcia-Molina2. Układ danych na dysku12 Rekord Kolekcja powiązanych elementów danych (zwanych polami) Np. Rekord Employee: pole name, pole salary, pole hire date, pole previous jobs (wielokrotne)...

13 Oryginał: Hector Garcia-Molina2. Układ danych na dysku13 Rodzaje rekordów Główny podział : –Rozmiar: stały vs. zmienny –Format:stały vs. zmienny

14 Oryginał: Hector Garcia-Molina2. Układ danych na dysku14 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 Format stały

15 Oryginał: Hector Garcia-Molina2. Układ danych na dysku15 Przykład: stały format i rozmiar Employee (1) E#, dwubajtowy integer (2) Ename, napis 10-znakowySchemat (3) Dept, dwubajtowy kod 55 s m i t h j o n e s 01 Rekordy

16 Oryginał: Hector Garcia-Molina2. Układ danych na dysku16 Rekord musi zawierać opis formatu Jest więc mniej lub bardziej samoopisowy Różne warianty informacji schematowych w takim wypadku Format zmienny

17 Oryginał: Hector Garcia-Molina2. Układ danych na dysku17 Przykład: zmienny format i rozmiar 4I524SDROF46 Nazwy pól mogą być niekodowane, np. znaczniki XML Liczba pól Kod pola E# Kod typu Integer Kod pola Ename Kod typu String Rozmiar pola String

18 Oryginał: Hector Garcia-Molina2. Układ danych na dysku18 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...

19 Oryginał: Hector Garcia-Molina2. Układ danych na dysku19 Pracownik może mieć dowolnie wiele dzieci Employee 1:N Child 3E_name: FredChild: SallyChild: Tom Format zmienny z polem wielokrotnym

20 Oryginał: Hector Garcia-Molina2. Układ danych na dysku20 Pola wielokrotne wcale nie muszą oznaczać ani - ani formatu zmiennego - ani rozmiaru zmiennego JohnSailingChess-- Trzeba tylko określić maksymalną liczebność –i w razie czego wypełnić NULLowym gruzem

21 Oryginał: Hector Garcia-Molina2. Układ danych na dysku21 Wiele pośrednich opcji między formatem stałym i zmiennym Przykład 1: Typ rekordu w rekordzie typ rekordu rozmiar rekordu (wyjaśniony w schemacie) Niezbędne w gronach tabel (cluster)

22 Oryginał: Hector Garcia-Molina2. Układ danych na dysku22 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.

23 Oryginał: Hector Garcia-Molina2. Układ danych na dysku23 Przykład 2: Format pośredni stało-zmienny Format mieszany –Jedna część jest stała, a druga zmienna Wszyscy pracownicy mają E#, name, dept Inne pola są zmienne. 25SmithToy2retiredHobby:chess # liczba pól w części zmiennej

24 Oryginał: Hector Garcia-Molina2. Układ danych na dysku24 Wiele możliwości wewnętrznej organizacji rekordu długość pola 3F310F15F212 * * * F1F2F3 rozmiar całości offsety

25 Oryginał: Hector Garcia-Molina2. Układ danych na dysku25 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?

26 Oryginał: Hector Garcia-Molina2. Układ danych na dysku26 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

27 Oryginał: Hector Garcia-Molina2. Układ danych na dysku27 Układanie rekordów w blokach bloki... plik Zakładamy bloki stałego rozmiaru Zakładamy, że jest jeden plik (na razie)

28 Oryginał: Hector Garcia-Molina2. Układ danych na dysku28 (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 Opcje składowania rekordów w blokach

29 Oryginał: Hector Garcia-Molina2. Układ danych na dysku29 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 (?) (1) Oddzielanie rekordów R2R1R3

30 Oryginał: Hector Garcia-Molina2. Układ danych na dysku30 Niełańcuchowane: rekord musi mieścić się w jednym bloku blok 1 blok 2... Łańcuchowane blok 1 blok 2... (2) Łańcuchowane vs. niełańcuchowane R1R2 R1 R3R4R5 R2 R3 (a) R3 (b) R6R5R4 R7 (a)

31 Oryginał: Hector Garcia-Molina2. Układ danych na dysku31 należy wskazaćnależy wskazać że to jest częśćże to kontynuacja (+ wskaźnik na resztę)(+ ew. wskaźnik zwrotny) R1R2 R3 (a) R3 (b) R6R5R4 R7 (a) Przy łańcuchowaniu rekordów:

32 Oryginał: Hector Garcia-Molina2. Układ danych na dysku32 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 Łańcuchowane vs. niełańcuchowane

33 Oryginał: Hector Garcia-Molina2. Układ danych na dysku33 Przykład marnowania przestrzeni 10 6 rekordów Każdy o stałym rozmiarze 2,050 bajtów Rozmiar bloku = 4096 bajtów blok 1 blok bajtów 2046 pustych 2050 bajtów 2046 pustych R1R2 Zmarnowanych bajtów = 2 x 10 9 Rozmiar pliku = 4 x 10 9 (wykorzystanie 50%)

34 Oryginał: Hector Garcia-Molina2. Układ danych na dysku34 Mieszany – w tym samym bloku są rekordy różnych typów (np. EMPLOYEE, DEPT) np., taki blok (3) Mieszanie różnych typów rekordów EMP e1 DEPT d1 DEPT d2

35 Oryginał: Hector Garcia-Molina2. Układ danych na dysku35 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

36 Oryginał: Hector Garcia-Molina2. Układ danych na dysku36 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

37 Oryginał: Hector Garcia-Molina2. Układ danych na dysku37 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

38 Oryginał: Hector Garcia-Molina2. Układ danych na dysku38 Część o formacie stałym jest w jednym bloku Zwykle przy takim formacie Część o formacie zmiennym jest w innym bloku (4) Rekordy wieloczęściowe

39 Oryginał: Hector Garcia-Molina2. Układ danych na dysku39 Blok z częścią stałą R1 (a) R1 (b) Blok z częścią zmienną R2 (a) R2 (b) R2 (c) Taki blok może mieć rekordy stałego formatu

40 Oryginał: Hector Garcia-Molina2. Układ danych na dysku40 Pytanie Jaka jest różnica między –rekordami wieloczęściowymi a –po użyciem dwóch zwykłych typów rekordów?

41 Oryginał: Hector Garcia-Molina2. Układ danych na dysku41 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. (5) Porządkowanie (sortowanie) rekordów

42 Oryginał: Hector Garcia-Molina2. Układ danych na dysku42 Możliwości porządkowania (a) Kolejne rekordy są fizycznie sąsiednie... (b) Powiązane wskaźnikami Next (R1)R1 Next (R1)

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

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

45 Oryginał: Hector Garcia-Molina2. Układ danych na dysku45 Czysto fizyczne ID urządzenia Np., AdresNr cylindra rekordu=Nr ścieżki lub IDNr sektora Offset w bloku ID bloku

46 Oryginał: Hector Garcia-Molina2. Układ danych na dysku46 Czysto logiczne Np. ID rekordu to dowolny ciąg bitów odwzorowanie ID rekordu r Adres a Adres fizyczny ID rekordu

47 Oryginał: Hector Garcia-Molina2. Układ danych na dysku47 Kompromis Elastyczność Koszt przenoszenia rekordówpośredniości –przy usuwaniu –przy modyfikacji –przy porządkach

48 Oryginał: Hector Garcia-Molina2. Układ danych na dysku48 Przykład 1 Pośredniość w bloku Nagłówek Blok:Wolny obszar R3 R4 R1R2

49 Oryginał: Hector Garcia-Molina2. Układ danych na dysku49 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

50 Oryginał: Hector Garcia-Molina2. Układ danych na dysku50 Przykład 2 Użycie identyfikatora bloku znanego systemowi operacyjnemu Id rekordu Id pliku Nr bloku Nr rekordu lub Offset Id pliku,Fizyczne Nr blokuid bloku Odwzorowanie OS

51 Oryginał: Hector Garcia-Molina2. Układ danych na dysku51 Blok Usuwanie Rx

52 Oryginał: Hector Garcia-Molina2. Układ danych na dysku52 Możliwości (a) Natychmiast odzyskaj miejsce (b) Oznacz jako usunięty –Można prowadzić listę usuniętych rekordów (by ponownie użyć przestrzeń) –Potrzebny sposób oznaczania Specjalna sekwencja znaków Pole usunięcia W tablicy odzworowania identyfikatórów logicznych

53 Oryginał: Hector Garcia-Molina2. Układ danych na dysku53 Jak zwykle wiele kompromisów Jak bardzo kosztowne jest przeniesienie nieskasowanego rekordu w wolne miejsce, aby odzyskać je natychmiast? Jak dużo miejsca się marnuje? –Usunięte rekordy –Pola usunięcia –Listy wolnego miejsca

54 Oryginał: Hector Garcia-Molina2. Układ danych na dysku54 Rozwiązanie 1: Dont worry, be happy Prawa Murphiego wykluczają tę opcję Problem z usuwaniem: wiszące wskaźniki R1?

55 Oryginał: Hector Garcia-Molina2. Układ danych na dysku55 Pozostaw marker w fizycznej lokacji lub odwzorowaniu Adresy fizyczne: Rozwiązanie 2: Nagrobki BlokTo miejsce będzie niedostępne dostępne

56 Oryginał: Hector Garcia-Molina2. Układ danych na dysku56 Adresy logiczne IDlokacja 7788 odwzorowanie ID 7788 nie będzie już nigdy użyte Miejsce w tablicy też Rozwiązanie 2: Nagrobki logiczne

57 Oryginał: Hector Garcia-Molina2. Układ danych na dysku57 Umieść ID rekordu w każdym rekordzie Przechodząc po wskaźniku, sprawdź, czy doszedłeś do tego samego rekordu Rozwiązanie 3 (?): Czy to może działać? Jeśli to miejsce będzie ponownie użyte, czy nowy rekord będzie miał to samo id? wsk id rek: 3-77

58 Oryginał: Hector Garcia-Molina2. Układ danych na dysku58 Budując wskaźnik użyj pary (wskaźnik + hasz) lub (wskaźnik + klucz)? Rozwiązanie 4 (?): A co gdy rekord zostanie zmieniony? wsk.+ hasz klucz

59 Oryginał: Hector Garcia-Molina2. Układ danych na dysku59 Łatwo: rekordy nie są uporządkowane Wstaw nowy rekord na końcu pliku lub w miejsce jakiegoś usuniętego rekordu Gdy rekordy są rozmiaru zmiennego, nie tak łatwo... Trudno: rekordy są uporządkowane Jeśli jest luz między rekordami, super! Jeśli nie ma, stwórz obszar nadmiarowy Wstawianie

60 Oryginał: Hector Garcia-Molina2. Układ danych na dysku60 Interesujące pytania Ile zostawić luzu (wolnego miejsca) w każdym bloku, ścieżce, cylindrze? Jak często reorganizować plik w celu pozbycia się stron nadmiarowych?

61 Oryginał: Hector Garcia-Molina2. Układ danych na dysku61 Wolne miejsce

62 Oryginał: Hector Garcia-Molina2. Układ danych na dysku62 Wymiana wskaźników Pamięć Dysk Rek A blok 1 Rek A blok 2 blok 1

63 Oryginał: Hector Garcia-Molina2. Układ danych na dysku63 Tablica translacji Adres dyskowy Adres pamięciowy Rek-A Rek-A-RAM Możliwość 1

64 Oryginał: Hector Garcia-Molina2. Układ danych na dysku64 Wskaźniki pamięciowe (podwójne) + bit rodzaju do dysku do pamięci M Możliwość 2

65 Oryginał: Hector Garcia-Molina2. Układ danych na dysku65 Wymiana wskaźników Automatyczna Na żądanie Brak wymiany: aplikacja dba o to

66 Oryginał: Hector Garcia-Molina2. Układ danych na dysku66 Są miliony sposobów ułożenia danych na dysku. Który wybrać? ElastycznośćUżycie przestrzeni ZłożonośćWydajność Porównanie

67 Oryginał: Hector Garcia-Molina2. Układ danych na dysku67 Przestrzeń potrzebną na spodziewane dane Spodziewany czas –pobrania rekordu o zadanym kluczu –pobrania następnego rekordu –wstawienia rekordu –dopisania rekordu –usunięcia rekordu –modyfikacji rekordu –odczytania całego pliku –reorganizacji pliku By ocenić konkretny wybór oszacuj następujące parametry:


Pobierz ppt "Oryginał: Hector Garcia-Molina2. Układ danych na dysku1 Systemy zarządzania bazami danych 2. Układ danych na dysku."

Podobne prezentacje


Reklamy Google