Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWładysława Olesiejuk Został zmieniony 10 lat temu
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 0000000000100011 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: 1000001 a: 1100001 5: 0110101 LF: 0001010
6
Oryginał: Hector Garcia-Molina2. Układ danych na dysku6 Boolean np., TRUE FALSE 1111 0000 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 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 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 02 83 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) 527....
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 * * * 33251520F1F2F3 rozmiar całości offsety 0 1 2 3 4 5 15 20
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 2 2050 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. 3-77 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:
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.