Rozdział 14: Struktury danych
description
Transcript of Rozdział 14: Struktury danych
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Rozdział 14: Struktury danychRozdział 14: Struktury danych
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja przestrzeni danychOrganizacja przestrzeni danych
• struktury logiczne - przestrzenie tabel (ang. struktury logiczne - przestrzenie tabel (ang. tablespacestablespaces), ), schematy, obiekty (relacje, indeksy, klastry, klastry schematy, obiekty (relacje, indeksy, klastry, klastry haszowe (ang. haszowe (ang. hash clusterhash cluster), perspektywy, sekwencery, ), perspektywy, sekwencery, synonimy, moduły PL/SQL);synonimy, moduły PL/SQL);
• struktury pośrednie - odzworowujące struktury logiczne w struktury pośrednie - odzworowujące struktury logiczne w fizyczne; bloki, rozszerzenia (ang. fizyczne; bloki, rozszerzenia (ang. extentsextents), segmenty; ), segmenty;
• struktury fizyczne - zależne od własności systemu struktury fizyczne - zależne od własności systemu operacyjnego (systemy plikowe, urządzenia surowe (ang. operacyjnego (systemy plikowe, urządzenia surowe (ang. raw devicesraw devices)), trzy kategorie struktur: pliki danych, )), trzy kategorie struktur: pliki danych, dzienniki (ang. dzienniki (ang. redo logredo log), pliki kontrolne; ), pliki kontrolne;
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja przestrzeni danych (cd.)Organizacja przestrzeni danych (cd.)
baza danychbaza danych
przestrzeń tabelprzestrzeń tabelsystemsystem
przestrzeń tabelprzestrzeń tabeldanedane
plik 1plik 1 plik 2plik 2 plik 3plik 3
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Przestrzenie tabelPrzestrzenie tabel• przeznaczenie:przeznaczenie:
– zarządzanie przestrzenią dyskową,zarządzanie przestrzenią dyskową,– określanie limitów zasobów dla użytkowników (ang. określanie limitów zasobów dla użytkowników (ang.
quotaquota),),– zarządzanie dostępnością danych, stany: zarządzanie dostępnością danych, stany: online online i i offline,offline,– wykonywanie częściowej kopii bezpieczeństwa (ang. wykonywanie częściowej kopii bezpieczeństwa (ang.
backupbackup) lub częściowego odtwarzanie (ang. ) lub częściowego odtwarzanie (ang. recoveryrecovery),),• przestrzeń tabel przestrzeń tabel SYSTEMSYSTEM;;• powiększanie przestrzeni tabel:powiększanie przestrzeni tabel:
ALTER TABLESPACE system ADD DATAFILE 'data3.ora' ALTER TABLESPACE system ADD DATAFILE 'data3.ora' SIZE 10MSIZE 10M
ALTER TABLESPACE system ADD DATAFILE 'data3.ora' ALTER TABLESPACE system ADD DATAFILE 'data3.ora' SIZE 10MSIZE 10M
CREATE TABLESPACE kadry DATAFILE 'data4.ora' SIZE 4MCREATE TABLESPACE kadry DATAFILE 'data4.ora' SIZE 4MCREATE TABLESPACE kadry DATAFILE 'data4.ora' SIZE 4MCREATE TABLESPACE kadry DATAFILE 'data4.ora' SIZE 4M
•powiększanie bazy danych:powiększanie bazy danych:
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie przestrzeniami tabelManipulowanie przestrzeniami tabel• tworzenie przestrzeni tabeltworzenie przestrzeni tabel
CREATE TABLESPACE CREATE TABLESPACE nazwa nazwa DATAFILE ’DATAFILE ’ plik plik’ SIZE ’ SIZE int int [K|M][K|M]
AUTOEXTEND OFF AUTOEXTEND OFF ON ON
NEXT NEXT intint [K|M] [K|M] MAXSIZE MAXSIZE UNLIMITEDUNLIMITED
intint [K|M] [K|M]
• usunięcie przestrzeni tabelusunięcie przestrzeni tabel
DROP TABLESPACE DROP TABLESPACE nazwanazwa
INCLUDING CONTENTSINCLUDING CONTENTS CASCADE CONSTRAINTSCASCADE CONSTRAINTS
DEFAULT STORAGE opis składowaniaDEFAULT STORAGE opis składowaniaTEMPORARYTEMPORARY
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
ALTER TABLESPACE ALTER TABLESPACE nazwa nazwa ADD DATAFILE ’ADD DATAFILE ’ plik plik’ SIZE ’ SIZE int int [K|M][K|M]
AUTOEXTEND OFF AUTOEXTEND OFF ON ON
NEXT NEXT intint [K|M] [K|M] MAXSIZE MAXSIZE UNLIMITEDUNLIMITED
intint [K|M] [K|M]DEFAULT STORAGE opis składowaniaDEFAULT STORAGE opis składowania
Manipulowanie przestrzeniami tabelManipulowanie przestrzeniami tabel• dodanie pliku, zmiana domyślnego składowaniadodanie pliku, zmiana domyślnego składowania
,,
• włączanie i wyłączanie przestrzeni tabelwłączanie i wyłączanie przestrzeni tabel
ALTER TABLESPACE ALTER TABLESPACE nazwa nazwa ONLINEONLINE OFFLINEOFFLINE NORMALNORMAL
IMMEDIATEIMMEDIATETEMPORARYTEMPORARY
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
SchematySchematy
• schematy - zbiorniki opisów obiektów (opisy relacji, schematy - zbiorniki opisów obiektów (opisy relacji, perspektyw, synonimów, etc.); posiadają rozłączne perspektyw, synonimów, etc.); posiadają rozłączne przestrzenie identyfikatorów obiektówprzestrzenie identyfikatorów obiektów
schemat schemat kowalskikowalski schemat schemat nowaknowak
CREATE USER malinowski IDENTIFIED BY alfa13 CREATE USER malinowski IDENTIFIED BY alfa13 CREATE USER malinowski IDENTIFIED BY alfa13 CREATE USER malinowski IDENTIFIED BY alfa13
• tworzenie schematutworzenie schematu
tabelatabelapracownicypracownicy
synonimsynonimpłacepłace
tabelatabelapracownicypracownicy
tabelatabelazespolyzespoly
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
ObiektyObiekty
• relacje,relacje,• perspektywy,perspektywy,• sekwencery,sekwencery,• synonimy,synonimy,• indeksy - B* - drzewa, bitmapowe,indeksy - B* - drzewa, bitmapowe,• klastry,klastry,• klastry haszoweklastry haszowe
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Morzy PawlakMorzy PawlakMorzy PawlakMorzy Pawlak
IndeksyIndeksy
MatysiakMatysiakMatysiakMatysiak
Czyżak Grzybowski Czyżak Grzybowski Czyżak Grzybowski Czyżak Grzybowski Morzy Stefanowski Morzy Stefanowski Morzy Stefanowski Morzy Stefanowski
Biały Błażewicz Biały Błażewicz Biały Błażewicz Biały Błażewicz
Czyżak Frankowski Czyżak Frankowski Czyżak Frankowski Czyżak Frankowski
Grzybowski JezierskiGrzybowski JezierskiGrzybowski JezierskiGrzybowski Jezierski Matysiak Mizgajski Matysiak Mizgajski Matysiak Mizgajski Matysiak Mizgajski
danedane
Stefanowski Wożniak Stefanowski Wożniak Stefanowski Wożniak Stefanowski Wożniak
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulacje indeksamiManipulacje indeksami
• tworzenie indeksówtworzenie indeksów
• usuwanie indeksówusuwanie indeksów
DROP INDEX DROP INDEX nazwanazwa
CREATECREATE INDEX INDEX nazwanazwa ON ON tabelatabela ( ( atrybut atrybut )) UNIQUEUNIQUE CLUSTER klasterCLUSTER klaster
,,
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
KlastryKlastry
• klastry - grupa relacji współdzieląca te same dane, klastry - grupa relacji współdzieląca te same dane, alternatywny sposób składowanie relacjialternatywny sposób składowanie relacji
120 Jezierski120 Jezierski 1010130 Matysiak130 Matysiak 1010220 Słowiński220 Słowiński 1111140 Koszlajda140 Koszlajda 1010330 Czyżak330 Czyżak 1111440 Stefanowski 11440 Stefanowski 11......................................................................
120 Jezierski120 Jezierski 1010130 Matysiak130 Matysiak 1010220 Słowiński220 Słowiński 1111140 Koszlajda140 Koszlajda 1010330 Czyżak330 Czyżak 1111440 Stefanowski 11440 Stefanowski 11......................................................................
10 BD10 BD Piotrowo3a Piotrowo3a11 KSWD Piotrowo3b11 KSWD Piotrowo3b........................................................................
10 BD10 BD Piotrowo3a Piotrowo3a11 KSWD Piotrowo3b11 KSWD Piotrowo3b........................................................................
tabela pracownicytabela pracownicy
tabela zespołytabela zespoły
10 BD10 BD PiotrowoPiotrowo 120 Jezierski120 Jezierski 130 Matysiak130 Matysiak 140 Koszlajda140 Koszlajda11 KSWD Piotrowo3b11 KSWD Piotrowo3b 220 Słowiński220 Słowiński 330 Czyżak330 Czyżak 440 Stefanowski440 Stefanowski......................................................................
10 BD10 BD PiotrowoPiotrowo 120 Jezierski120 Jezierski 130 Matysiak130 Matysiak 140 Koszlajda140 Koszlajda11 KSWD Piotrowo3b11 KSWD Piotrowo3b 220 Słowiński220 Słowiński 330 Czyżak330 Czyżak 440 Stefanowski440 Stefanowski......................................................................
klaster klaster zesp_praczesp_prac
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Klastry haszoweKlastry haszowe
• klastry haszowe - grupa relacji współdzieląca te same dane, klastry haszowe - grupa relacji współdzieląca te same dane, dodatkowo dostęp przez funkcję haszowądodatkowo dostęp przez funkcję haszową
10 BD10 BD PiotrowoPiotrowo 120 Jezierski120 Jezierski 130 Matysiak130 Matysiak 140 Koszlajda140 Koszlajda11 KSWD Piotrowo3b11 KSWD Piotrowo3b 220 Słowiński220 Słowiński 330 Czyżak330 Czyżak 440 Stefanowski440 Stefanowski......................................................................
10 BD10 BD PiotrowoPiotrowo 120 Jezierski120 Jezierski 130 Matysiak130 Matysiak 140 Koszlajda140 Koszlajda11 KSWD Piotrowo3b11 KSWD Piotrowo3b 220 Słowiński220 Słowiński 330 Czyżak330 Czyżak 440 Stefanowski440 Stefanowski......................................................................
klaster klaster zesp_praczesp_prac
fm(id_zesp)=fm(id_zesp)=id_zesp mod 10id_zesp mod 10
funkcja haszowafunkcja haszowa blok 0blok 0
blok 1blok 1
id_zesp=10id_zesp=10fm=0fm=0
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie klastramiManipulowanie klastrami• tworzenie klastrówtworzenie klastrów
CREATE CLUSTER CREATE CLUSTER nazwa nazwa ( ( atrybyt typatrybyt typ ) ) INDEXINDEX
,,
HASHKEYS HASHKEYS integerinteger
• przypisanie tabeli do klastraprzypisanie tabeli do klastra
CREATE TABLE CREATE TABLE nazwa_tabeli. . .nazwa_tabeli. . .CLUSTER CLUSTER nazwa_klastranazwa_klastra ( ( atrybut atrybut ) )
,,
• usuwanie klastrausuwanie klastra
CASCADE CONSTRAINTSCASCADE CONSTRAINTS
DROP CLUSTER DROP CLUSTER nazwa_klastranazwa_klastra
INCLUDING TABLESINCLUDING TABLES
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Struktury pośrednieStruktury pośrednie
• blok danych - najmniejsza jednostka dyskowa używana blok danych - najmniejsza jednostka dyskowa używana przez bazę danych, odpowiada określonej liczbie bajtów;przez bazę danych, odpowiada określonej liczbie bajtów;
• rozszerzenie - ciągły zbiór bloków danych, przydzielany rozszerzenie - ciągły zbiór bloków danych, przydzielany jednorazowo przez system dla danych pojedynczego jednorazowo przez system dla danych pojedynczego obiektu;obiektu;
• segment - zbiór rozszerzeń przydzielony obiektowi; segment - zbiór rozszerzeń przydzielony obiektowi; segment danych, segment indeksów, segment wycofania segment danych, segment indeksów, segment wycofania transakcji (ang. transakcji (ang. rollback segmentrollback segment), segment tymczasowy.), segment tymczasowy.
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Struktury pośrednie (cd.)Struktury pośrednie (cd.)
2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB
2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB
2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB
2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB
bloki bazy danychbloki bazy danych
2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB2KB
rozszerzenierozszerzenie64KB64KB
rozszerzenierozszerzenie16 KB16 KB
segmentsegment80 KB80 KB
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Zarządzanie blokami danychZarządzanie blokami danych
PCTUSED=40%PCTUSED=40%0%0% 100%100%
100-PCTFREE=90%100-PCTFREE=90%
PCTUSED=40%PCTUSED=40%
PCTFREE=10%PCTFREE=10%
wypełnianiewypełnianie
brakbrakwypełnianiawypełniania
CREATE TABLE CREATE TABLE nazwa_tabeli. . .nazwa_tabeli. . .PCTFREEPCTFREE integer integer PCTUSED PCTUSED integer integer
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Zarządzanie rozszerzeniamiZarządzanie rozszerzeniami
• INITIAL = 100INITIAL = 100• NEXT = 10NEXT = 10• PCTINCREASE = 20PCTINCREASE = 20
pierwszepierwszerozszerzenierozszerzenie
100KB100KB 10KB10KB
drugiedrugierozszerzenierozszerzenie
trzecitrzecirozszerzenierozszerzenie
12KB12KB
segmentsegment
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Opis składowaniaOpis składowania
STORAGE(STORAGE( INITIALINITIAL int int [K|M] [K|M] ))NEXT NEXT intint [K|M] [K|M]OPTIMAL int [K|M]OPTIMAL int [K|M]MINEXTENTS MINEXTENTS intintMAXEXTENTS MAXEXTENTS intintPCTINCREASE PCTINCREASE intintFREELISTFREELIST int int
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
SegmentySegmenty
• segmenty danych - przechowują dane użytkowe tablic oraz segmenty danych - przechowują dane użytkowe tablic oraz klastrów;klastrów;
• segmenty indeksów - przechowują indeksy;segmenty indeksów - przechowują indeksy;• segmenty tymczasowe - zawierają dane tymczasowe, np. segmenty tymczasowe - zawierają dane tymczasowe, np.
wyniki pośrednie zapytań;wyniki pośrednie zapytań;• segmenty wycofania - zawierają dane zmodyfikowane przez segmenty wycofania - zawierają dane zmodyfikowane przez
aktywne transakcje; służą do:aktywne transakcje; służą do:– zagwarantowania spójności odczytu dla transakcji typu zagwarantowania spójności odczytu dla transakcji typu
read-onlyread-only,,– wycofywania transakcji,wycofywania transakcji,– do odtworzenie systemu po awarii;do odtworzenie systemu po awarii;– jedyne segmenty jawnie tworzone przez administratora jedyne segmenty jawnie tworzone przez administratora
bazy bazy
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie segmentami wycofaniaManipulowanie segmentami wycofania
• tworzenie segmentu wycofania (parametr ROLLBACK_SEGMENT)tworzenie segmentu wycofania (parametr ROLLBACK_SEGMENT)
TABLESPACE TABLESPACE przestrzeń tabelprzestrzeń tabelSTORAGE STORAGE opis składowaniaopis składowaniaOPTIMALOPTIMAL NULLNULL
int int [K|M][K|M]
CREATE ROLLBACK SEGMENT CREATE ROLLBACK SEGMENT nazwa nazwa
• usuwanie segmentu wycofania usuwanie segmentu wycofania
DROP ROLLBACK SEGMENT DROP ROLLBACK SEGMENT nazwa nazwa
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Manipulowanie segmentami wycofaniaManipulowanie segmentami wycofania
• modyfikacja segmentu wycofaniamodyfikacja segmentu wycofania
TABLESPACE TABLESPACE przestrzeń tabelprzestrzeń tabelSTORAGE STORAGE opis składowaniaopis składowaniaOPTIMALOPTIMAL NULLNULL
TO TO int int [K|M][K|M]ONLINEONLINEOFFLINEOFFLINESHRINKSHRINK
TO TO int int [K|M][K|M]
ALTER ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT nazwa nazwa
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Struktury fizyczneStruktury fizyczne
• pliki danych - zawierają wszystkie dane użytkowe bazy pliki danych - zawierają wszystkie dane użytkowe bazy danych, jeden plik może należeć tylko do jednej bazy danych, jeden plik może należeć tylko do jednej bazy danych,danych,
• dzienniki (ang. dzienniki (ang. redo logredo log) - przechowują wszystkie zmiany ) - przechowują wszystkie zmiany zachodzące w bazie danych, informacja niezbędna do zachodzące w bazie danych, informacja niezbędna do odtworzenia stanu spójnego po awarii;odtworzenia stanu spójnego po awarii;
• pliki kontrolne - przechowują informacje o fizycznej pliki kontrolne - przechowują informacje o fizycznej strukturze bazy danych, przykładowo:strukturze bazy danych, przykładowo:– nazwa bazy danych,nazwa bazy danych,– nazwy i lokalizacje plików danych oraz dzienników,nazwy i lokalizacje plików danych oraz dzienników,– etykietę czasową utworzenia bazy danych.etykietę czasową utworzenia bazy danych.
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Tworzenie bazy danychTworzenie bazy danych
CREATE DATABASECREATE DATABASEnazwanazwa
LOGFILELOGFILE ’’ plik plik’ SIZE ’ SIZE int int [K|M][K|M]GROUP GROUP intint
DATAFILE ’DATAFILE ’ plik plik’ SIZE ’ SIZE int int [K|M][K|M]AUTOEXTEND...AUTOEXTEND...REUSEREUSE
REUSEREUSE
ARCHIVELOGARCHIVELOGNOARCHIVELOGNOARCHIVELOGCHARACTER SET CHARACTER SET zestaw_znakówzestaw_znakówCONTROLFILE REUSECONTROLFILE REUSE
,,