23
(c) 2000, Instytut Informatyki Politechniki Poznańskiej Rozdział 14: Struktury danych Rozdział 14: Struktury danych

Rozdział 14: Struktury danych

  • Upload
    varuna

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

Rozdział 14: Struktury danych. (c) 2000, Instytut Informatyki Politechniki Poznańskiej. Organizacja przestrzeni danych. - PowerPoint PPT Presentation

Citation preview

Page 1: Rozdział 14: Struktury danych

(c) 2000, Instytut Informatyki Politechniki Poznańskiej

Rozdział 14: Struktury danychRozdział 14: Struktury danych

Page 2: Rozdział 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;

Page 3: Rozdział 14: Struktury danych

(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

Page 4: Rozdział 14: Struktury danych

(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:

Page 5: Rozdział 14: Struktury 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

Page 6: Rozdział 14: Struktury danych

(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

Page 7: Rozdział 14: Struktury danych

(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

Page 8: Rozdział 14: Struktury danych

(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

Page 9: Rozdział 14: Struktury danych

(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

Page 10: Rozdział 14: Struktury danych

(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

,,

Page 11: Rozdział 14: Struktury danych

(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

Page 12: Rozdział 14: Struktury danych

(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

Page 13: Rozdział 14: Struktury danych

(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

Page 14: Rozdział 14: Struktury danych

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

Page 15: Rozdział 14: Struktury danych

(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

Page 16: Rozdział 14: Struktury danych

(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

Page 17: Rozdział 14: Struktury danych

(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

Page 18: Rozdział 14: Struktury danych

(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

Page 19: Rozdział 14: Struktury danych

(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

Page 20: Rozdział 14: Struktury danych

(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

Page 21: Rozdział 14: Struktury danych

(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

Page 22: Rozdział 14: Struktury danych

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

Page 23: Rozdział 14: Struktury 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

,,