15_Struktury_danych - Instytut Informatyki Politechniki Poznańskiej

Download Report

Transcript 15_Struktury_danych - Instytut Informatyki Politechniki Poznańskiej

Rozdział 14: Struktury danych
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
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
Organizacja przestrzeni danych (cd.)
baza danych
przestrzeń tabel
system
plik 1
plik 2
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
przestrzeń tabel
dane
plik 3
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
DEFAULT STORAGE opis składowania
TEMPORARY
UNLIMITED
int [K|M]
• usunięcie przestrzeni tabel
DROP TABLESPACE nazwa
INCLUDING CONTENTS
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
CASCADE CONSTRAINTS
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
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
UNLIMITED
int [K|M]
Schematy
• schematy - zbiorniki opisów obiektów (opisy relacji,
perspektyw, synonimów, etc.); posiadają rozłączne
przestrzenie identyfikatorów obiektów
schemat kowalski
tabela
pracownicy
tabela
zespoly
schemat nowak
tabela
pracownicy
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
Matysiak
Morzy Stefanowski
Czyżak Grzybowski
Biały Błażewicz
Grzybowski Jezierski
Matysiak Mizgajski
Morzy Pawlak
Czyżak Frankowski
dane
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Stefanowski Wożniak
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
120 Jezierski
10
130 Matysiak
10
220 Słowiński
11
140 Koszlajda
10
330 Czyżak
11
440 Stefanowski 11
...................................
klaster zesp_prac
tabela zespoły
10 BD
Piotrowo3a
11 KSWD Piotrowo3b
....................................
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
10 BD Piotrowo
120 Jezierski
130 Matysiak
140 Koszlajda
11 KSWD Piotrowo3b
220 Słowiński
330 Czyżak
440 Stefanowski
...................................
Klastry haszowe
• klastry haszowe - grupa relacji współdzieląca te same
dane, dodatkowo dostęp przez funkcję haszową
klaster zesp_prac
10
funkcja haszowa
id_zesp=10
fm=0
fm(id_zesp)=
id_zesp mod 10
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
BD Piotrowo
120 Jezierski
130 Matysiak
140 Koszlajda
11 KSWD Piotrowo3b
220 Słowiński
330 Czyżak
440 Stefanowski
...................................
blok 0
blok 1
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
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
CASCADE CONSTRAINTS
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
rozszerzenie
16 KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
rozszerzenie
2KB64KB2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
bloki bazy danych
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
2KB
2KB
2KB
2KB
2KB
2KB
2KB
2KB
Zarządzanie blokami danych
PCTUSED=40%
brak
wypełniania
PCTFREE=10%
wypełnianie
100-PCTFREE=90%
0%
PCTUSED=40%
CREATE TABLE nazwa_tabeli. . .
PCTFREE integer PCTUSED integer
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
100%
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
TO int [K|M]
(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
,
LOGFILE
GROUP int
nazwa
’ plik’ SIZE int [K|M]
DATAFILE ’ plik’ SIZE int [K|M]
REUSE
ARCHIVELOG
NOARCHIVELOG
CHARACTER SET zestaw_znaków
CONTROLFILE REUSE
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
REUSE
AUTOEXTEND...