Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt http://people.cs.kuleuven.be/~bettina.berendt/

Slides:



Advertisements
Verwante presentaties
Stilstaan bij parkeren Dat houdt ons in beweging
Advertisements

De elektronische verzamelaanvraag Ruben Fontaine Markt- en Inkomensbeheer – dienst Aangiftes.
‘SMS’ Studeren met Succes deel 1
Paulus' eerste brief aan Korinthe (20) 23 januari 2013 Bodegraven.
28 juni 2009 Paëllanamiddag 1 Paëllanamiddag 28 juni 2009 Voorbereiding vrijdagavond (Loopt automatisch - 7 seconden)
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
WAAROM? Onderzoek naar het meest geschikte traject voor de verlenging tot in Sint-Niklaas van het bestaande fietspad naast de Stekense Vaart en de Molenbeek.
BRIDGE Vervolgcursus Vervolg op starterscursus Bridgeclub Schiedam ‘59 info: Maandagavond: 19: – of
1 Resultaten marktonderzoek RPM Zeist, 16 januari 2002 Door: Olga van Veenendaal, medew. Rothkrans Projectmanagement.
November 2013 Opinieonderzoek Vlaanderen – oktober 2013 Opiniepeiling Vlaanderen uitgevoerd op het iVOXpanel.
Uitgaven aan zorg per financieringsbron / /Hoofdstuk 2 Zorg in perspectief /pagina 1.
1 COVER: Selecteer het grijze vlak hiernaast met rechtsklik & kies ‘change picture’ voor een ander beeld of verwijder deze slide & kies in de menubalk.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
ADOBE PRESENTER Willem vanden Berg Dienst Onderwijsondersteuning en –ontwikkeling KaHo Sint-Lieven 1.
 Deel 1: Introductie / presentatie  DVD  Presentatie enquête  Ervaringen gemeente  Pauze  Deel 2 Discussie in kleinere groepen  Discussies in lokalen.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
STAPPENPLAN GRAMMATICUS.
Ronde (Sport & Spel) Quiz Night !
Natuurlijke Werkloosheid en de Phillipscurve
Een Concert van het Nederlands Philharmonisch Orkest LES 4 1.
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
Een optimale benutting van vierkante meters Breda, 6 juni 2007.
Kb.1 Ik leer op een goede manier optellen en aftrekken
© BeSite B.V www.besite.nl Feit: In 2007 is 58% van de organisaties goed vindbaar op internet, terwijl in 2006 slechts 32% goed vindbaar.
9 januari 2013 Bodegraven 1. 1Korinthe 11 1 Wordt mijn navolgers, gelijk ook ik Christus navolg. 2.
Nooit meer onnodig groen? Luuk Misdom, IT&T
Hoofdstuk 6: Controle structuren
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
 Ongeveer auto’s in Nederland  Query: zoek op kenteken  Aannames ◦ Een tuple (record) kost ongeveer 400 bytes ◦ Een disk block bevat 8.
Softwarepakket voor het catalogeren en determineren van fruitsoorten
Centrummaten gemiddelde
Regelmaat in getallen (1).
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Oefeningen F-toetsen ANOVA.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
Bewegen Hoofdstuk 3 Beweging Ing. J. van de Worp.
Wie het kleine niet eert ... (quarks, leptonen,….)
1 WIJZIGINGEN UNIEK VERSLAG. 2 Agenda Verbeteringen Veranderingen formulieren Praktische herinneringen Nieuwe formulieren Sociale en culturele participatie.
13 maart 2014 Bodegraven 1. 1Korinthe Want gelijk het lichaam één is en vele leden heeft, en al de leden van het lichaam, hoe vele ook, een lichaam.
Optuigen van datastructuren
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
SIP File Recovery Tool. Agenda 18/10/2006Maken agenda + onderzoeken van verschillende filetypes 25/10/2006Uitzoeken hoe er effecient gelezen en geschreven.
Geometrie en topologie Rob Kromwijk, 26 juli 2012.
Afrika: Topo nakijken en leren.
User management voor ondernemingen en organisaties
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
ribwis1 Toegepaste wiskunde Lesweek 01 – Deel B
ribwis1 Toegepaste wiskunde – Differentieren Lesweek 7
Workshop Informatievaardigheden
Statistiekbegrippen en hoe je ze berekent!!
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Gegevensbanken 2012 Query-verwerking en optimalisatie Bettina Berendt
Gegevensbanken 2010 Indexstructuren Bettina Berendt
Van Vensoc tot Biztax Vennootschapsbelasting Aj 2011.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
Fractale en Wavelet Beeldcompressie
Fractale en Wavelet Beeldcompressie
Middeleeuwen De antwoorden in deze powerpoint komen van (naam en klas invullen a.u.b.)
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
12 sept 2013 Bodegraven 1. 2  vooraf lezen: 1Kor.7:12 t/m 24  indeling 1Korinthe 7  1 t/m 9: over het huwelijk  10 t/m 16: over echtscheiding  16.
13 november 2014 Bodegraven 1. 2 de vorige keer: 1Kor.15:29-34 indien er geen doden opgewekt worden...  vs 29: waarom dopen?  vs.30-32: waarom doodsgevaren.
1 Week /03/ is gestart in mineur De voorspellingen van alle groten der aarden dat de beurzen zouden stijgen is omgekeerd uitgedraaid.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
23 mei 2013 Bodegraven vanaf hoofdstuk 6: hoofdst.1: de wijsheid van de wereld hoofdst.2: de wijsheid van God hoofdst.3: Gods akker en Gods bouwwerk.
SQL Les February 2019.
Transcript van de presentatie:

Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt http://people.cs.kuleuven.be/~bettina.berendt/

Fundamenten van geheugen; Bestandsorganisatie; Hashing: Motivatie & Samenvatting

Waar zijn we? Les # wie wat 1 ED intro, ER 2 ED EER, (E)ER naar relationeel schema 2 ED relationeel model 3 KV Relationele algebra & relationeel calculus 4,5 KV SQL 6 KV Programma's verbinden met gegevensbanken 7 KV Functionele afhankelijkheden & normalisatie 8 KV PHP 9 BB Beveiliging van gegevensbanken 10 BB Geheugen en bestandsorganisatie 11 BB Externe hashing 12 BB Indexstructuren 13 BB Queryverwerking 14,15 BB Transactieverwerking en concurrentiecontrole 16 BB Data mining en data warehousing 17 ED XML, NoSQL Fysisch model / vragen Efficientie en veiligheid zijn niet-functionele vereisten (HOE doet een systeem iets) vs. Functionele vereisten (WAT doet een systeem)

 Is nu alles meteen overal? Hoe ver moet je lopen?  Is nu alles meteen overal? http://www.computersciencelab.com/ComputerHistory/HtmlHelp/Images2/IBM7094.jpg http://3.bp.blogspot.com/-b_mPlM6G5fE/TaFgYcuo6iI/AAAAAAAAGwk/IPBvOMMsG5s/s1600/a+voice+search.jpg 127 km L <-> K

Hedendagse archiven: Alles kan per Internet met 1 click …

… maar achter het scherm … http://www.bnf.fr/en/professionals/preservation_spar.html

... en daarachter … Bv. Project Système de Préservation et d'Archivage Réparti (Bibliothèque Nationale de France): http://www.bnf.fr/en/professionals/preservation_spar.html Verwacht: 200 Terabyte (toegangsgeheugen), 8 Petabyte (hoofd-archief-geheugen) Schijven, banden, banden-robots: Internet Archive: http://www.archive.org/about/about.php#storage

 Hoe ver moet je lopen? (2) http://www.computersciencelab.com/ComputerHistory/HtmlHelp/Images2/IBM7094.jpg http://3.bp.blogspot.com/-b_mPlM6G5fE/TaFgYcuo6iI/AAAAAAAAGwk/IPBvOMMsG5s/s1600/a+voice+search.jpg 127 km L <-> K

Waarom? 3 principes voor database design Ruimtelijke organisatie is belangrijk, of: We kunnen niet aan de fysica ontsnappen Wat nodig is, is afhankelijk van wat je ermee wilt doen Omgaan met beperkingen: “... Ik weet op dit moment niet waar het is, maar ik heb dat thuis opgeschreven ...”

Agenda Geheugens Bestandsorganisatie: blokken en records Toegang tot en bewerkingen op bestanden Soorten bestanden Hashing – basisidee

Agenda Geheugens Bestandsorganisatie: blokken en records Toegang tot en bewerkingen op bestanden Soorten bestanden Hashing – basisidee

Geheugenhiërarchieën ge- heugen niveau kost volati- liteit snel- heid capa- citeit Wat gebeurt hier? Primair Cache memory / static RAM Verwerking Hoofdgeheugen / dynamic RAM Flash memory Secun- dair Magnetische schijven Opslag Backup; Archie- veren Tertiair Optisch (CD, DVD) Magnetische banden

Meest belangrijk voor gegevensbanken …

Schijf, cilinder, spoor schijven- pakket

Spoor en blok Blok : onderdeel van een spoor (“track“) gefixeerd tijdens initialisatie Spoor : gefixeerd in de hardware

Hoe een gege-ven vinden? 3. Blok 2. Spoor 1. Cilinder

Verwerking & opslag: het knelpunt Buffer adres in het hoofdgeheugen lezen Hardware adres op schijf: Cilinder#, spoor#, blok# schrijven localiseren Fysische locatie op de schijf Processorgeheugenknelpunt: Jaarlijks worden processoren gemiddeld 60% sneller, terwijl de toegangstijd tot het geheugen maar daalt met een 7% per jaar. Deze kloof wordt dus steeds groter en steeds knellender.  Hoofdknelpunt voor database toepassingen: gegevens op schijven localiseren ! TODO: check the numbers! Terugvinden ist mehr „recovery“ Cijfers uit: http://nl.wikipedia.org/wiki/Geheugenhi%C3%ABrarchie, 27 maart 2012

Parameters m.b.t. performantie Relevante tijden: juiste cilinder zoeken : seek time (vb.: 4-10 msec) kop mechanisch bewegen : traag juiste blok zoeken: rotational delay ("latency") (vb.: 3 msec) schijf moet doordraaien tot blok onder leeskop staat gegevenstransport : block transfer rate (vb.: 50 Mbytes/sec) gegevens in blok lezen en naar buffer kopiëren Deze tijden >> verwerkingstijd van gegevens Bestanden zo structureren dat deze tijden geminimaliseerd worden! bv. opeenvolgende blokken lezen : slechts één keer seek time & latency

Buffering Bij lezen / schrijven van opeenvolgende blokken: gebruik van meerdere ("alternerende") buffers bv. bij lezen: info in een buffer verwerken terwijl andere buffer gevuld wordt verwerking meestal klaar voor volgende buffer vol is blok 1 blok 2 blok 3 blok 4 vul A vul B vul A vul B blok 1 blok 2 blok 3 blok 4 Meestal: book: it IS the case; reality: can be different ( Ruckeln im Video) verwerk A verwerk B verwerk A verwerk B tijd

Organisatie en toegang – voorbeeld/vraag Waar kunnen we hoe snel beantwoorden: Wie kwam laatst? Is Victor Konen hier? http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2010/3/23/1269369053586/People-queueing-001.jpg http://www.bahai-studies.ca/files/images/Registration%20Desk.jpg

Gegevens & verwerking: organisatie vs. toegang Onderscheid: Bestandsorganisatie file organization organisatie van bestand in records, blokken, toegangsstructuren + verdeling van de records over het hulpgeheugen (= sec./tert. geheugen) Toegangsmethode access method groep operaties / programma’s die toelaten om het bestand te bewerken Niet elke toegangsmethode mogelijk voor eender welke bestandsorganisatie Naargelang van organisatie ook verschil in efficiëntie Stack photo!

Agenda Geheugens Bestandsorganisatie: blokken en records Toegang tot en bewerkingen op bestanden Soorten bestanden Hashing – basisidee

Formaat van records Record = bij elkaar horende groep gegevens "eenheid" van informatie Recordlengte: vast : alle records zelfde lengte variabel : verschillende records kunnen verschillende lengtes hebben mogelijke redenen: veld(en) van variabele lengte velden(en) met meerdere waarden ("repeating groups") optionele velden verschillende recordtypes (gemengd bestand) vereist: scheidingstekens tussen velden indicatie van type veld

Formaat: voor-beelden

Records in blokken plaatsen (1) Waarom? Blok: blok is de entiteit voor plaatsgebruik op schijf gegevenstransport tussen schijf en geheugen Hoe? Plaatsing van records: "unspanned" : 1 record steeds volledig binnen 1 blok overschot aan einde van blok gaat verloren vooral nuttig voor korte records met vaste lengte weinig verloren ruimte records beginnen op vaste posities in blok "spanned" - overspannend: record kan over meerdere blokken uitgespreid zijn noodzakelijk indien een record langer dan een blok kan zijn minder verloren ruimte ingewikkelder organisatie

Records in blokken plaatsen (2)

Hoeveel blokken zijn nodig voor een bestand van records? Karakteristieken van records en blokken bloklengte: B (bytes) recordlengte: R (bytes) Unspanned als B > R : blocking factor bfr : # records / blok =  B / R  als B geen veelvoud van R is: aan het einde van een blok B - ( bfr * R ) vrije bytes Spanned (bij variable lengte) bfr : gemiddelde nr. van records/blok Gewoon geen vrije bytes aan het einde van een blok Overal nodig: r : # records in bestand b =  (r / bfr)  blokken Ginge interaktiv, ist aber so‘n bisschen pillepalle

Taak Een bestand heeft r = 40 000 EMPLOYEE records van vaste lengte. Elk record heeft de volgende velden: Name (30 bytes), Ssn (9 bytes), Department_code (9 bytes), Address (40 bytes), Phone (9 bytes), Birth_date (8 bytes), Gender (1 byte), Job_code (4 bytes), Salary (4 bytes). Een extra byte wordt gebruikt als deletion marker (markering voor het wissen). De gegevens worden opgeslaan op een schijf met bloklengte B = 512 bytes, blokwijzerlengte P = 6 bytes en recordwijzerlengte PR = 7 bytes. Veronderstel een unspanned recordorganisatie, en bereken de recordlengte R in bytes = 115 de blocking factor bfr = 4 het aantal van blokken b = 10 000 het aantal van schijftoegangen (= hoeveel blokken worden gelezen) bij het zoeken bij Ssn = 5000 (gemiddeld) / gesorteerd log_2 10000 = 14

+ - + - Plaatsing van logisch opeenvolgende blokken (1) Aaneensluitend Opeenvolgende blokken fysisch aaneensluitend = "contiguous allocation" bestand overlopen (bv. meerdere blokken lezen) gaat snel (met 2 buffers) tussenvoegen van blokken is moeilijk Geketend "linked allocation" elk blok bevat wijzer naar volgend blok uitbreiden van bestand gaat gemakkelijker gehele bestand overlopen gaat trager + - + Overlopen = scan -

Plaatsing van logisch opeenvolgende blokken (2) Combinatie: Clusters van aaneensluitende blokken ook wel "file segments" genoemd Elke cluster bevat wijzer naar volgende cluster Indexering: "indexed allocation" een of meer indexblokken : bevatten enkel wijzers naar de blokken met de echte gegevens Combinaties mogelijk

Agenda Geheugens Bestandsorganisatie: blokken en records Toegang tot en bewerkingen op bestanden Soorten bestanden Hashing – basisidee

Bewerkingen op bestanden 2 groepen bewerkingen: Opvragen van gegevens (zonder aanpassing) enkel lezen Aanpassen van gegevens lezen + schrijven nodig Selectie van records selectiecriterium aangeboden door besturingssysteem meestal zeer eenvoudig  DBMS moet ingewikkeld criterium omzetten naar meerdere eenvoudige criteria SELECT * UPDATE EMP FROM EMP SET SALARY = 100000 WHERE (NAME LIKE “%BART%“ OR AGE > 30) SELECT * FROM EMP WHERE (NAME LIKE “%BART%“ OR AGE > 30)

Typische operaties die een besturingssysteeem aanbiedt (1) OPEN: maakt bestand klaar voor verwerking kent buffers toe, ... RESET: zet bestandswijzer naar begin bestand FIND (LOCATE): zoek eerste record dat aan criterium voldoet kopieer het blok dat dat record bevat naar de buffer zet bestandswijzer naar dat record (= "huidig" record) READ (GET): ken huidig record aan programmavariabele toe (soms) verplaats bestandswijzer evt. nieuw blok inlezen

Typische operaties die een besturingssysteeem aanbiedt (2) FINDNEXT: zoek volgende record dat aan criterium voldoet, maak het het huidige record DELETE: wis huidig record (eerst in buffer, dan in bestand) MODIFY: wijzig huidig record (eerst in buffer, daarna naar bestand geschreven) INSERT: lees juiste blok in buffer in, voeg record aan dat blok toe (eerst in buffer, later in bestand) CLOSE: ruim buffers op, ... Soms gecombineerde bewerkingen SCAN : FIND of FINDNEXT + READ Set-at-a-time operaties, bv.: FINDORDERED

Belangrijke parameters m.b.t. bestandsverwerking Bestandsactiviteit (file activity) # records dat gebruikt wordt door een toepassing / totaal # records van het bestand Bestandsveranderingsgraad (file volatility) # records dat in een bepaalde periode een verandering ondergaat / totaal # records van het bestand Bestandsverloop of vervangingsgraad (file turnover) # records dat in een bepaalde periode vervangen wordt door nieuwe records / totaal # records van het bestand Bestandsgroei (file growth) toename van # records gedurende een bepaalde periode / het oorspronkelijk totaal # records Mbt = met betrekking tot; ivm = in verband met; verhouding = relation; t.o.v. = ten opzichte van verhouding van # records dat gebruikt wordt door een toepassing t.o.v. totaal # records van het bestand Het totaal nummer

Agenda Geheugens Bestandsorganisatie: blokken en records Toegang tot en bewerkingen op bestanden Soorten bestanden Hashing – basisidee Step 4.2 Choose file organizations To determine an efficient file organization for each base table. File organizations include Heap, Hash, Indexed Sequential Access Method (ISAM), B+-Tree, and Clusters. Some DBMSs (particularly PC-based DBMS) have fixed file organization that you cannot alter. Example of what can be configured + how: http://docs.oracle.com/cd/E19065-01/servers.15k/816-5327-11/adminvsamfile.html

3 soorten bestanden Ongeordend Geordend Hashed NB: Deze informatie staat in de file header, samen met: Informatie om schijfadressen van blokken te bepalen Formaatinformatie (veldlengtes, -volgorde, scheidingstekens, …) Recordorganisatie (spanned/unspanned)…

Ongeordende bestanden: idee

+ - - Ongeordende bestanden: operaties Toevoegen: Opzoeken: Weglaten: achteraan in laatste blok Opzoeken: volledig bestand lineair doorzoeken Weglaten: record zoeken ( blok) record weglaten in buffer (evt. markeren zonder te wissen), buffer in blok terugschrijven na veel weglatingen veel verloren ruimte  reorganisatie Gebruik: Meestal slechts als voorlopig bestand op een gegeven moment : “extern sorteren”  geordend bestand - -

Omwille van de nadelen bij opzoeken en weglaten ... na veel weglatingen veel verloren ruimte  reorganisatie Gebruik van ongeordende bestanden: Meestal slechts als voorlopig bestand op een gegeven moment : “extern sorteren”  geordend bestand

Geordende bestanden: idee http://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Frankfurt- Kitchen%2C_Drawers_%283%29.jpg/180px-Frankfurt- Kitchen%2C_Drawers_%283%29.jpg

+ + + Geordende bestanden: eigenschappen en operaties (1) Geordend volgens sleutelveld Voordelen: lezen van records in sleutelvolgorde : zeer efficiënt binair zoeken mogelijk aanpassen in sleutelvolgorde gaat snel + + +

Geordende bestanden: voorbeeld  Geordend volgens sleutelveld

Geordende bestanden: binair zoeken Alfred, Bob ? l := 1; u := b; {b = aantal blokken} verderzoeken := true; gevonden := false; zolang u >= l en verderzoeken : i := (l+u) div 2; lees blok i in buffer; als k < sleutel van eerste record in buffer dan u := i-1 anders als k > sleutel laatste record in buffer dan l := i+1 anders als record met sleutel k in buffer dan verderzoeken := false; gevonden := true; anders verderzoeken := false .

Zoeken

- - - - Geordende bestanden: operaties (2) zoeken op een ander veld dan sleutel blijft tijdrovend toevoegen vereist verplaatsing van records weglaten vereist ook verplaatsing van records, behalve met markering aanpassen van records traag indien die niet in sleutelvolgorde worden aangeboden - - -

Hashed bestanden: idee De rode? De rode!

Hashing-bestandsorganisatie Methode om uit recordsleutel meteen recordadres in bestand te vinden: hashing Principe van hashing: hash-functie beeldt waarde k (getal, string, ...) af op adres f(k) goede hashfunctie "spreidt" waarden zoveel mogelijk over verschillende adressen botsing ("collision") : f(k1) = f(k2) met k1  k2 Interne hashing: gegevens en hashfunctie zijn in centraal geheugen voorgesteld Externe hashing: gegevens (evt. ook hashfunctie zelf) opgeslagen in een bestand

Hashing: idee http://upload.wikimedia.org/wikipedia/commons/thumb/9/90/HASHTB12.svg/362p x-HASHTB12.svg.png

Voor- en nadelen van de bestandssoorten (tabel nog niet volledig afgewerkt!) toevoegen Opzoeken weglaten doorlopen en/of aanpassen sleutelVO Zoeken en/of aanpassen niet- sleutelVO INSERT FIND DELETE FINDOR- DERED s DERED ns Ongeordend + - - (afhank. v. blokken- plaatsing, aanwezig- heid van wismarkers) Geordend - (opschuiven!) - (zie toevoegen) + (als er geen verandering van recordlengte is) - (elke keer zoeken!!) hashed

Vooruitblik Geheugens Bestandsorganisatie: blokken en records Toegang tot en bewerkingen op bestanden Soorten bestanden Hashing – basisidee Meer over hashing, indexstructuren

Bronnen Deze slides zijn gebaseerd op Henk Olivié‘s slides voor Gegevensbanken 2009 en op Elmasri & Navathe, Fundamentals of Database Systems, Addison Wesley / Pearson, 5e editie 2007. De voorbeelden voor hashing komen uit andere presentaties, zie notities op slides Alle kopieën zonder bronspecificatie: Elmasri & Navathe, Fundamentals of Database Systems, Addison Wesley / Pearson, 5e editie 2007. Verdere figuren: bronnen zie “Powerpoint comments field” Alle overige fouten zijn de mijne ;-) Bedankt iedereen!