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

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Katarzyna Szafrańska kl. II ti
INDEKSY I SORTOWANIE ZEWNĘTRZNE
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
PROGRAMOWANIE STRUKTURALNE
Elementarne struktury danych Piotr Prokopowicz
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
WPROWADZENIE DO BAZ DANYCH
ZŁOŻONOŚĆ OBLICZENIOWA
Zapis danych.
Systemy plików FAT12, FAT16, FAT32, NTFS.
Tablice.
Procesor tekstu Word część 2
Wykład 2 struktura programu elementy języka typy zmienne
Fizyczna organizacja danych w bazie danych Wykład 7
Projektowanie fizycznej bazy danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Modele baz danych - spojrzenie na poziom fizyczny
Hibernate relacje.
Typy wskaźnikowe, dynamiczne struktury danych
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Język SQL (Structured Query Language) DDL (Data Definition Language)
Systemy plików.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Systemy plików FAT12, FAT16, FAT32, NTFS.
Podstawy programowania II
ADRESOWANIE WZGLĘDNE I BEZWZGLĘDNE Ćwiczenia
Zbiór do posortowania mieści się w pamięci
Podstawy programowania II
Bazy danych.
Linux - polecenia.
Podstawy programowania
ANNA BANIEWSKA SYLWIA FILUŚ
Bazy danych podstawowe pojęcia
Budowanie tabel i relacji
Architektura komputerów
SQL - Structured Query Language
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Zarządzanie informacją
Wybrane zagadnienia relacyjnych baz danych
WPROWADZENIE DO BAZ DANYCH
Wprowadzenie do CSS Okiełznać style.
PL/SQL – dalsza wędrówka
Systemy plików Bibliografia: Windows XP. Komendy i polecenia. Praktyczne przykłady, P. Czarny Windows XP. Naprawa i optymalizacja, B. Danowski Windows.
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
Podstawowe informacje
Programowanie strukturalne i obiektowe C++
System plików.
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Opracowanie mgr Karol Adamczyk
Komendy SQL do pracy z danymi
Iga Lewandowska I EMII MU
Projektowanie postaci formularza:
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Filtrowanie, Funkcje bazodanowe
„Filtry i funkcje bazodanowe w EXCELU”
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Prezentacja programu PowerPoint
Temat: Tworzenie bazy danych
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Typy wyliczeniowe, kolekcje
Listy.
Podstawy Informatyki.
Indeksy.
Fizyczna organizacja danych w bazie danych Wykład 7
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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

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

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

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

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:

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...

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:

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

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

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:

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

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)...

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

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

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

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

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

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...

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

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

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)

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.

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

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

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?

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

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)

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

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

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)

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:

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

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%)

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

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

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

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

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

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

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?

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

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)

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

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

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

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

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

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

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

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

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

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

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

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?

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

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

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

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

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

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?

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

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

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

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

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

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

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: