Click here to load reader

Vorlesung Datenbanksysteme WS 2.0

  • View
    21

  • Download
    0

Embed Size (px)

DESCRIPTION

Vorlesung Datenbanksysteme WS 2.0. Christoph Koch [email protected] (Subject: „DBVO: ...“. Elmasri / Navathe Ramakrishnan / Gehrke. Architektur eines DBMS. Interactive Abfrage. API/Präcompiler. Verwaltungswerkzeug. DML-Compiler. DDL-Compiler. Abfrageoptimierung. Schemaverwaltung. - PowerPoint PPT Presentation

Text of Vorlesung Datenbanksysteme WS 2.0

  • Vorlesung Datenbanksysteme WS 2.0Christoph [email protected](Subject: DBVO: ...

  • Elmasri / Navathe

    Ramakrishnan / Gehrke

  • Architektur eines DBMSDML-CompilerDDL-CompilerAbfrageoptimierungDatenbankmanagerSchemaverwaltungDateiverwaltungLogdateienIndexeDatenbasisData DictionaryMehrbenutzersynchronisationFehlerbehandlungInteractive AbfrageAPI/PrcompilerVerwaltungswerkzeug

  • Themen

    Physische DatenorganisationAbfrageoptimierungTransaktionsverwaltungFehlerbehandlungMehrbenutzersynchronisationSicherheitVerteilte Datenbanken

  • Buch zur Vorlesung

    Datenbanksysteme Eine Einfhrung Alfons Kemper / Andr Eickler Oldenbourg Verlag 5. Auflage, 2004

    Stoff der Vorlesung:Kapitel 7-12; 16

  • Vorlesung Datenbanksysteme vom 11.10.2004Physische DatenorganisationSpeicherhierarchieHintergrundspeicher / RAIDB-BumeHashingR-Bume

  • berblick: Speicherhierarchie1-10nsRegister10-100nsCache100-1000nsHauptspeicher10 msPlattenspeicher

    secArchivspeicher

    Zugriffslcke105

  • Magnetplattenspeicher

  • Lesen von Daten von der PlatteSeek Time: Arm positionieren 5msLatenzzeit: Plattenumdrehung (im Durchschnitt)10000 Umdrehungen / Minute Ca 3ms Transfer von der Platte zum Hauptspeicher 15 MB/s

  • Random versus Chained IO1000 Blcke 4KB sind zu lesen Random I/OJedesmal Arm positionierenJedesmal Latenzzeit 1000 * (5 ms + 3 ms) + Transferzeit von 4 MB > 8000 ms + 300ms 8sChained IOEinmal positionieren, dann von der Platte kratzen 5 ms + 3ms + Transferzeit von 4 MB 8ms + 300 ms 1/3 s Also ist chained IO ein bis zwei Grenordnungen schneller als random IOin Datenbank-Algorithmen unbedingt beachten !

  • Disk Arrays RAID-Systeme

  • RAID 0: StripingLastbalancierung wenn alle Blcke mit gleicher Hufigkeit gelesen/geschrieben werdenDoppelte Bandbreite beim sequentiellen Lesen der Datei bestehend aus den Blcken ABCD...Aber: Datenverlust wird immer wahrscheinlicher, je mehr Platten man verwendet (Stripingbreite = Anzahl der Platten, hier 2)

    ACBDABCDDatei

  • RAID 1: Spiegelung (mirroring)

    Datensicherheit: durch Redundanz aller Daten (Engl. mirror)Doppelter SpeicherbedarfLastbalancierung beim Lesen: z.B. kann Block A von der linken oder der rechten Platte gelesen werdenAber beim Schreiben mssen beide Kopien geschrieben werdenKann aber parallel geschehenDauert also nicht doppelt so lange wie das Schreiben nur eines BlocksACBDACBD

  • Kombiniert RAID 0 und RAID 1Immer noch doppelter SpeicherbedarfZustzlich zu RAID 1 erzielt man hierbei auch eine hhere Bandbreite beim Lesen der gesamten Datei ABCD....Wird manchmal auch als RAID 10 bezeichnetRAID 0+1: Striping und SpiegelungACACBDBD

  • RAID 2: Striping auf Bit-EbeneAnstatt ganzer Blcke, wie bei RAID 0 und RAID 0+1, wird das Striping auf Bit- (oder Byte-) Ebene durchgefhrt

    Es werden zustzlich auf einer Platte noch Fehlererkennungs- und Korrekturcodes gespeichertIn der Praxis nicht eingesetzt, da Platten sowieso schon Fehlererkennungscodes verwalten

    1010 1101 1011 0110 0011 1100....Datei111001...010101...101110...011010...

  • RAID 3: Striping auf Bit-Ebene,zustzliche Platte fr ParittsinfoDas Striping wird auf Bit- (oder Byte-) Ebene durchgefhrtEs wird auf einer Platte noch die Paritt der anderen Platten gespeichert. Paritt = bit-weise xor Dadurch ist der Ausfall einer Platte zu kompensierenDas Lesen eines Blocks erfordert den Zugriff auf alle PlattenVerschwendung von Schreib/LesekpfenAlle marschieren synchron1010 1101 1011 0110 0011 1100....Datei111001...010101...101110...011010...011000...Paritt

  • RAID 3: Plattenausfall

    1010 1101 1011 0110 0011 1100....Datei111001...010101...101110...011010...011000...Paritt011010...Reparatur

  • RAID 4: Striping von Blcken

    Bessere Lastbalancierung als bei RAID 3Flaschenhals bildet die ParittsplatteBei jedem Schreiben muss darauf zugegriffen werdenBei Modifikation von Block A zu A wird die Paritt PA-D wie folgt neu berechnet:PA-D := PA-D A AD.h. bei einer nderung von Block A muss der alte Zustand von A und der alte Parittsblock gelesen werden und der neue Parittsblock und der neue Block A geschrieben werden

    AEBFCGDHPA-DPE-H

  • RAID 4: Striping von Blcken

    Flaschenhals bildet die ParittsplatteBei jedem Schreiben muss darauf zugegriffen werdenBei Modifikation von Block A zu A wird die Paritt PA-D wie folgt neu berechnet:PA-D := PA-D A AD.h. bei einer nderung von Block A muss der alte Zustand von A und der alte Parittsblock gelesen werden und der neue Parittsblock und der neue Block A geschrieben werden

    1010 1101 1011 0110 0011 1100....Datei1010......1101.......1011......0110......1010.......Parittsblock

  • RAID 5: Striping von Blcken, Verteilung der ParittsblckeBessere Lastbalancierung als bei RAID 4die Parittsplatte bildet jetzt keinen Flaschenhals mehrWird in der Praxis hufig eingesetztGuter Ausgleich zwischen Platzbedarf und Leistungsfhigkeit

    AEBFCGDHPA-DPE-HIMJOLNKPPI-LPM-P

  • Parallelitt bei Lese/Schreib-Auftrgen

  • verdrngenHauptspeichereinlagernPlatte ~ persistente DBSystempuffer-Verwaltung

  • Ein- und Auslagern von SeitenSystempuffer ist in Seitenrahmen gleicher Gre aufgeteiltEin Rahmen kann eine Seite aufnehmenberzhlige Seiten werden auf die Platte ausgelagert Platte(swap device)Hauptspeicher04K8K12K28K44K60K40K48K24K20K16K32K36K56K52KP480P123SeitenrahmenSeite

  • B-BumeBalancierte Mehrwege-Suchbume Fr den Hintergrundspeicher

  • S.. SuchschlsselD.. Weitere DatenV.. Verweise (SeitenNr)

  • Einfgen eines neuen Objekts (Datensatz) in einen B-Baum

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21013197

  • Sukzessiver Aufbau eines B-Baums vom Grad k=271013193

  • Sukzessiver Aufbau eines B-Baums vom Grad k=271013193?

  • Sukzessiver Aufbau eines B-Baums vom Grad k=271031319?

  • Sukzessiver Aufbau eines B-Baums vom Grad k=23731319?10

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2371319?10

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2371319?101

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2371319?101

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2371319?101

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21371319?101

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21371319?102

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21371319?1022

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212371319?1022

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212371319?104

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212371319?1044

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212371319?1044

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212371319?1044

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212371319?31044

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121319?31047

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121319?3101147

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212111319?31047

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212111319?3102147

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212111319?3102147

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21211131921?3101247

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21211131921?310124712

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21211131921?310124712

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21211131921?310124712

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21211131921?31013124712

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212111921?3101312471112

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121921?3101312471112

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121921?3101314471112

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212141921?3101314471112

  • Sukzessiver Aufbau eines B-Baums vom Grad k=212141921?3101315471112

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21214151921?3101320471112

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21214151921?310132047111220

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21214151921?310132047111220

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21214151921?31013192047111220

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?3101319204711122021

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?310131954711122021

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?310131954711122021

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?3101319545711122021

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?3101319645711122021

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?31013196456711122021

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?31013194567111220218

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?310131945671112202188

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?310131945671112202188

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?310131945671112202188

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?310131967111220218845

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?310131978111220216645

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?31013197811122021645

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?31013197811122021645

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?31013197811122021645

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?3101319781112202164536

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?13197811122021104536

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?13197811122021453610

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?1319781112202145361010

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?13197811122021453610B-Baum mit MinimalerSpeicherplatz-ausnutzung

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?13197811122021453610B-Baum mit MinimalerSpeicherplatz-ausnutzung

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?1319781112202145361023

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?1319781112202123453610

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?131978111220212345361014

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121415?131978111220212345361014Unterlauf

  • Sukzessiver Aufbau eines B-Baums vom Grad k=21215?1319781112202123453610Unterlauf

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?13207811122123453610

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?132078111221234536105

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?132078111221234536105Unterlauf

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?132078111221234

    3610merge

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?1320781112212343610merge

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?1320111221234678310Unterlauf

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?1320111221234678310merge

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?1320111221234678310merge

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?1112212346783101320

  • Sukzessiver Aufbau eines B-Baums vom Grad k=2121519?1112212346783101320Schrumpfung,Freie Knoten

  • Speicherstruktur eines B-Baums auf dem Hintergrundspeicher4SpeicherblockNr 4

  • Speicherstruktur eines B-Baums auf dem Hintergrundspeicher3 0Datei8 KB-Blcke0*8KB1*8KB2*8KB3*8KB110100110Freispeicher-Verwaltung4*8KBBlock-Nummer

  • Zusammenspiel:Hintergrundspeicher -- HauptspeicherHintergrundspeicher

    44Hauptspeicher-PufferZugriffslcke 105

  • B+-BaumReferenz-schlsselSuch-schlssel

  • Mehrere Indexe auf denselben ObjektenB-BaumMit(PersNr, Daten)EintrgenName, Alter, Gehalt ...B-BaumMit(Alter, ???)EintrgenAlter, PersNr

  • Mehrere Indexe auf denselben ObjektenB-BaumMit(PersNr, Daten)EintrgenName, Alter, Gehalt ...B-BaumMit(Alter, ???)EintrgenAlter, PersNrWer ist 20 ?20, 007

  • Mehrere Indexe auf denselben ObjektenB-BaumMit(PersNr, Daten)EintrgenName, Alter, Gehalt ...B-BaumMit(Alter, ???)EintrgenAlter, PersNrWer ist 20 ?20, 007007,Bond,20,...

  • Eine andere Mglichkeit: Referenzierung ber SpeicheradressenPersNr

    Alter

    007,...20,...007, Bond, 20, ...

  • Verschiebung von einer Seite auf eine andereForward

  • Verschiebung von einer Seite auf eine andereBei der nchsten Verschiebung wird der Forward auf Seite 4711 gendert(kein Forward auf Seite 4812)

  • Statische Hashtabellen priori Allokation des SpeichersNachtrgliche Vergrerung der Hashtabelle ist teuerHashfunktion h(...) = ... mod N Rehashing der Eintrge h(...) = ... mod MIn Datenbankanwendungen viele GBErweiterbares HashingZustzliche Indirektion ber ein DirectoryEin zustzlicher Zugriff auf ein Directory, das den Zeiger (Verweis, BlockNr) des Hash-Bucket enthltDynamisches Wachsen (und Schrumpfen) ist mglichDer Zugriff auf das Directory erfolgt ber einen binren Hashcode

  • Statisches Hashing

  • Hashfunktion fr erweiterbares Hashingh: Schlsselmenge {0,1}*Der Bitstring muss lang genug sein, um alle Objekte auf ihre Buckets abbilden zu knnenAnfangs wird nur ein (kurzer) Prfix des Hashwertes (Bitstrings) bentigtWenn die Hashtabelle wchst wird aber sukzessive ein lngerer Prfix bentigtBeispiel-Hashfunktion: gespiegelte binre PersNr h(004) = 001000000... (4=0..0100)h(006) = 011000000... (6=0..0110)h(007) = 111000000... (7 =0..0111)h(013) = 101100000... (13 =0..01101)h(018) = 0100100000... (18 =0..010010)h(032) = 000001000... (32 =0..0100000)H(048) = 000011000... (48 =0..0110000)

  • Mehrdimensionale DatenstrukturenWertbasierter Zugriff auf der Grundlage mehrerer Attribute, dies einzeln oder in beliebigen Kombinationen.Typische Anforderungen aus CAD, VLSI-Entwurf, Kartographie,...Anfragen decken den Bereich ab zwischenmehrdimensionalem Punktzugriff (EMQ) undmehrdimensionalen Bereichsanfragen (RQ)Lsung mit eindimensionalen Indexen erfordert konjunktive Zerlegung der Anfrage in Einattributanfragen und Schnittmengenbildungbedingt hohe SpeicherredundanzProblemstellung:Mehrdimensionale Nachbarschaftsverhltnisse

  • Grundlagen mehrdimensionaler DatenstrukturenWertebereiche D0,..., Dk-1: alle Di sind endlich, linear geordnet und besitzen kleinstes (-i) und grtes (i) ElementDatenraum D = D0... Dk-1k-dimensionaler Schlssel entspricht Punkt im Datenraum p D

  • Grundlagen mehrdimensionaler Datenstrukturen1. Exact Match Query spezifiziert Suchwert fr jede Dimension Di2. Partial Match Query spezifiziert Suchwert fr einen Teil der Dimensionen3. Range Query spezifiziert ein Suchintervall [ugi, ogi ] fr alle Dimensionen 4. Partial Range Query spezifiziert ein Suchintervall fr einen Teil der Dimensionen

  • Charakterisierung mehrdimensionaler DatenstrukturenMehrdimensionale Zugriffsstrukturen knnen gem der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden:1. nur atomare Gebiete (beschreibbar durch ein Rechteck)2. vollstndig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum)3. disjunkt (die Gebiete berlappen nicht)R-Baum: atomar

  • R-Baum: Urvater der baum-strukturierten mehrdimensionalen Zugriffsstrukturen

  • Gute versus schlechte Partitionierung

  • Nchste Phase in der Entstehungsgeschichte des R-Baums

  • Nchste Phase

  • Datenraum

  • Wachsen des Baums:nach oben wie im B-Baum

  • Datenraum

  • Datenraum und Speicherstruktur berblick

  • Bereichsanfragen auf dem R-Baum

  • Objektballung / Clustering logisch verwandter Daten

  • Clustering von Professoren mit ihren Vorlesungen

  • Untersttzung eines AnwendungsverhaltensSelect NameFrom Professoren Where PersNr = 2136Select NameFrom Professoren Where Gehalt >= 90000 and Gehalt
  • Indexe in SQLCreate index SemsterInd on Studenten(Semester)drop index SemsterInd