Rozdział 14: Struktury danych (c) 2000, Instytut Informatyki Politechniki Poznańskiej 7-1
Organizacja przestrzeni danych struktury logiczne - przestrzenie tabel (ang. tablespaces), schematy, obiekty (relacje, indeksy, klastry, klastry haszowe (ang. hash cluster), perspektywy, sekwencery, synonimy, moduły PL/SQL); struktury pośrednie - odzworowujące struktury logiczne w fizyczne; bloki, rozszerzenia (ang. extents), segmenty; struktury fizyczne - zależne od własności systemu operacyjnego (systemy plikowe, urządzenia surowe (ang. raw devices)), trzy kategorie struktur: pliki danych, dzienniki (ang. redo log), pliki kontrolne; (c) 2000, Instytut Informatyki Politechniki Poznańskiej 7-2
Organizacja przestrzeni danych (cd.) baza danych przestrzeń tabel system przestrzeń tabel dane plik 1 plik 2 plik 3 (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Przestrzenie tabel przeznaczenie: zarządzanie przestrzenią dyskową, określanie limitów zasobów dla użytkowników (ang. quota), zarządzanie dostępnością danych, stany: online i offline, wykonywanie częściowej kopii bezpieczeństwa (ang. backup) lub częściowego odtwarzanie (ang. recovery), przestrzeń tabel SYSTEM; powiększanie przestrzeni tabel: ALTER TABLESPACE system ADD DATAFILE 'data3.ora' SIZE 10M powiększanie bazy danych: CREATE TABLESPACE kadry DATAFILE 'data4.ora' SIZE 4M (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie przestrzeniami tabel tworzenie przestrzeni tabel CREATE TABLESPACE nazwa DATAFILE ’ plik’ SIZE int [K|M] AUTOEXTEND OFF ON NEXT int [K|M] MAXSIZE UNLIMITED int [K|M] DEFAULT STORAGE opis składowania TEMPORARY usunięcie przestrzeni tabel DROP TABLESPACE nazwa INCLUDING CONTENTS CASCADE CONSTRAINTS (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie przestrzeniami tabel dodanie pliku, zmiana domyślnego składowania , ALTER TABLESPACE nazwa ADD DATAFILE ’ plik’ SIZE int [K|M] AUTOEXTEND OFF ON NEXT int [K|M] MAXSIZE UNLIMITED int [K|M] DEFAULT STORAGE opis składowania włączanie i wyłączanie przestrzeni tabel ALTER TABLESPACE nazwa ONLINE OFFLINE NORMAL IMMEDIATE TEMPORARY (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Schematy schematy - zbiorniki opisów obiektów (opisy relacji, perspektyw, synonimów, etc.); posiadają rozłączne przestrzenie identyfikatorów obiektów schemat kowalski schemat nowak tabela pracownicy tabela pracownicy tabela zespoly synonim płace tworzenie schematu CREATE USER malinowski IDENTIFIED BY alfa13 (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Obiekty relacje, perspektywy, sekwencery, synonimy, indeksy - B* - drzewa, bitmapowe, klastry, klastry haszowe (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Indeksy dane Matysiak Morzy Stefanowski Czyżak Grzybowski Biały Błażewicz Grzybowski Jezierski Matysiak Mizgajski Stefanowski Wożniak Morzy Pawlak Czyżak Frankowski dane (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulacje indeksami tworzenie indeksów , CREATE INDEX nazwa ON tabela ( atrybut ) UNIQUE CLUSTER klaster usuwanie indeksów DROP INDEX nazwa (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Klastry klastry - grupa relacji współdzieląca te same dane, alternatywny sposób składowanie relacji tabela pracownicy klaster zesp_prac 120 Jezierski 10 130 Matysiak 10 220 Słowiński 11 140 Koszlajda 10 330 Czyżak 11 440 Stefanowski 11 ................................... 10 BD Piotrowo 120 Jezierski 130 Matysiak 140 Koszlajda 11 KSWD Piotrowo3b 220 Słowiński 330 Czyżak 440 Stefanowski ................................... tabela zespoły 10 BD Piotrowo3a 11 KSWD Piotrowo3b .................................... (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Klastry haszowe klastry haszowe - grupa relacji współdzieląca te same dane, dodatkowo dostęp przez funkcję haszową klaster zesp_prac 10 BD Piotrowo 120 Jezierski 130 Matysiak 140 Koszlajda 11 KSWD Piotrowo3b 220 Słowiński 330 Czyżak 440 Stefanowski ................................... funkcja haszowa fm=0 blok 0 id_zesp=10 fm(id_zesp)= id_zesp mod 10 blok 1 (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie klastrami tworzenie klastrów , CREATE CLUSTER nazwa ( atrybyt typ ) INDEX HASHKEYS integer przypisanie tabeli do klastra , CREATE TABLE nazwa_tabeli. . . CLUSTER nazwa_klastra ( atrybut ) usuwanie klastra DROP CLUSTER nazwa_klastra INCLUDING TABLES CASCADE CONSTRAINTS (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Struktury pośrednie blok danych - najmniejsza jednostka dyskowa używana przez bazę danych, odpowiada określonej liczbie bajtów; rozszerzenie - ciągły zbiór bloków danych, przydzielany jednorazowo przez system dla danych pojedynczego obiektu; segment - zbiór rozszerzeń przydzielony obiektowi; segment danych, segment indeksów, segment wycofania transakcji (ang. rollback segment), segment tymczasowy. (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Struktury pośrednie (cd.) segment 80 KB 2KB 2KB 2KB 2KB 2KB rozszerzenie 64KB rozszerzenie 16 KB bloki bazy danych (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Zarządzanie blokami danych PCTUSED=40% brak wypełniania PCTFREE=10% wypełnianie 100-PCTFREE=90% 0% PCTUSED=40% 100% CREATE TABLE nazwa_tabeli. . . PCTFREE integer PCTUSED integer (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Zarządzanie rozszerzeniami INITIAL = 100 NEXT = 10 PCTINCREASE = 20 pierwsze rozszerzenie drugie rozszerzenie trzeci rozszerzenie 100KB 10KB 12KB segment (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Opis składowania STORAGE( INITIAL int [K|M] ) NEXT int [K|M] OPTIMAL int [K|M] MINEXTENTS int MAXEXTENTS int PCTINCREASE int FREELIST int (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Segmenty segmenty danych - przechowują dane użytkowe tablic oraz klastrów; segmenty indeksów - przechowują indeksy; segmenty tymczasowe - zawierają dane tymczasowe, np. wyniki pośrednie zapytań; segmenty wycofania - zawierają dane zmodyfikowane przez aktywne transakcje; służą do: zagwarantowania spójności odczytu dla transakcji typu read-only, wycofywania transakcji, do odtworzenie systemu po awarii; jedyne segmenty jawnie tworzone przez administratora bazy (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie segmentami wycofania tworzenie segmentu wycofania (parametr ROLLBACK_SEGMENT) CREATE ROLLBACK SEGMENT nazwa TABLESPACE przestrzeń tabel STORAGE opis składowania OPTIMAL NULL int [K|M] usuwanie segmentu wycofania DROP ROLLBACK SEGMENT nazwa (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie segmentami wycofania modyfikacja segmentu wycofania ALTER ROLLBACK SEGMENT nazwa TABLESPACE przestrzeń tabel STORAGE opis składowania OPTIMAL NULL TO int [K|M] ONLINE OFFLINE SHRINK (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Struktury fizyczne pliki danych - zawierają wszystkie dane użytkowe bazy danych, jeden plik może należeć tylko do jednej bazy danych, dzienniki (ang. redo log) - przechowują wszystkie zmiany zachodzące w bazie danych, informacja niezbędna do odtworzenia stanu spójnego po awarii; pliki kontrolne - przechowują informacje o fizycznej strukturze bazy danych, przykładowo: nazwa bazy danych, nazwy i lokalizacje plików danych oraz dzienników, etykietę czasową utworzenia bazy danych. (c) 2000, Instytut Informatyki Politechniki Poznańskiej
Tworzenie bazy danych CREATE DATABASE nazwa , LOGFILE ’ plik’ SIZE int [K|M] GROUP int REUSE DATAFILE ’ plik’ SIZE int [K|M] REUSE AUTOEXTEND... ARCHIVELOG NOARCHIVELOG CHARACTER SET zestaw_znaków CONTROLFILE REUSE (c) 2000, Instytut Informatyki Politechniki Poznańskiej