![Page 1: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/1.jpg)
Gegevensbanken 2012
Fundamenten van geheugen;Bestandsorganisatie;Hashing
Bettina Berendthttp://people.cs.kuleuven.be/~bettina.berendt/
![Page 2: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/2.jpg)
2
Fundamenten van geheugen;Bestandsorganisatie;Hashing:
Motivatie & Samenvatting
![Page 3: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/3.jpg)
3
Waar zijn we?
Les # wie wat1 ED intro, ER2 ED EER, (E)ER naar relationeel schema2 ED relationeel model3 KV Relationele algebra & relationeel calculus4,5 KV SQL6 KV Programma's verbinden met gegevensbanken7 KV Functionele afhankelijkheden & normalisatie8 KV PHP9 BB Beveiliging van gegevensbanken10 BB Geheugen en bestandsorganisatie11 BB Externe hashing12 BB Indexstructuren13 BB Queryverwerking14,15 BB Transactieverwerking en concurrentiecontrole16 BB Data mining en data warehousing17 ED XML, NoSQL
Fysisch model / vragen
![Page 4: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/4.jpg)
4
Hoe ver moet je lopen?
Is nu alles
meteen overal?
![Page 5: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/5.jpg)
5
Hedendagse archiven:Alles kan per Internet met 1 click …
![Page 6: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/6.jpg)
6
… maar achter het scherm …
![Page 7: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/7.jpg)
7
... 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
![Page 8: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/8.jpg)
8
Hoe ver moet je lopen? (2)
![Page 9: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/9.jpg)
9
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 ...”
![Page 10: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/10.jpg)
10
Agenda
Geheugens
Bestandsorganisatie: blokken en records
Toegang tot en bewerkingen op bestanden
Soorten bestanden
Hashing – basisidee
![Page 11: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/11.jpg)
11
Agenda
Geheugens
Bestandsorganisatie: blokken en records
Toegang tot en bewerkingen op bestanden
Soorten bestanden
Hashing – basisidee
![Page 12: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/12.jpg)
12
Geheugenhiërarchieën
ge-heugen niveau kost
volati-liteit
snel-heid
capa-citeit
Wat gebeurt hier?
Primair Cache memory / static RAM Verwerk
ingHoofdgeheugen / dynamic RAM
Flash memory
Secun-dair
Magnetische schijven Opslag
Backup;Archie-veren
Tertiair Optisch (CD, DVD)
Magnetische banden
![Page 13: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/13.jpg)
13
Meest belangrijk voor gegevensbanken …
![Page 14: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/14.jpg)
14
Schijf, cilinder, spoor
schijven-pakket
![Page 15: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/15.jpg)
15
Blok : onderdeel van een spoor (“track“)gefixeerd tijdens initialisatie
Spoor :gefixeerd in de hardware
Spoor en blok
![Page 16: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/16.jpg)
16
Hoe een gege-ven vinden?
1. Cilinder
3. Blok
2. Spoor
![Page 17: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/17.jpg)
17
Verwerking & opslag: het knelpunt
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 !
lezen Hardware adres op schijf:Cilinder#, spoor#, blok#
Buffer adres in het hoofdgeheugen
Fysische locatie op de schijf
localiseren
schrijven
Cijfers uit: http://nl.wikipedia.org/wiki/Geheugenhi%C3%ABrarchie, 27 maart 2012
![Page 18: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/18.jpg)
18
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
![Page 19: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/19.jpg)
19
vul A
vul B vul A
vul B
verwerk A verwerk B verwerk A verwerk B
blok 1 blok 2 blok 3 blok 4
tijd
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
![Page 20: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/20.jpg)
20
Organisatie en toegang – voorbeeld/vraag
Waar kunnen we hoe snel beantwoorden:
• Wie kwam laatst?
• Is Victor Konen hier?
![Page 21: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/21.jpg)
21
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
![Page 22: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/22.jpg)
22
Agenda
Geheugens
Bestandsorganisatie: blokken en records
Toegang tot en bewerkingen op bestanden
Soorten bestanden
Hashing – basisidee
![Page 23: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/23.jpg)
23
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
![Page 24: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/24.jpg)
24
Formaat: voor-beelden
![Page 25: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/25.jpg)
25
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
![Page 26: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/26.jpg)
26
Records in blokken plaatsen (2)
![Page 27: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/27.jpg)
27
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
![Page 28: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/28.jpg)
28
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
![Page 29: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/29.jpg)
29
-
-
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
![Page 30: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/30.jpg)
30
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
![Page 31: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/31.jpg)
31
Agenda
Geheugens
Bestandsorganisatie: blokken en records
Toegang tot en bewerkingen op bestanden
Soorten bestanden
Hashing – basisidee
![Page 32: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/32.jpg)
32
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 *FROM EMPWHERE (NAME LIKE “%BART%“ OR AGE > 30)
SELECT * UPDATE EMPFROM EMP SET SALARY = 100000WHERE (NAME LIKE “%BART%“ OR AGE > 30)
![Page 33: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/33.jpg)
33
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
![Page 34: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/34.jpg)
34
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
![Page 35: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/35.jpg)
35
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
![Page 36: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/36.jpg)
36
Agenda
Geheugens
Bestandsorganisatie: blokken en records
Toegang tot en bewerkingen op bestanden
Soorten bestanden
Hashing – basisidee
![Page 37: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/37.jpg)
37
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)…
![Page 38: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/38.jpg)
38
Ongeordende bestanden: idee
![Page 39: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/39.jpg)
40
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
![Page 40: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/40.jpg)
41
Geordende bestanden: idee
![Page 41: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/41.jpg)
43
Geordende bestanden: voorbeeld
Geordend volgenssleutelveld
![Page 42: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/42.jpg)
44
Geordende bestanden: binair zoeken
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-1anders als k > sleutel laatste record in buffer dan
l := i+1anders als record met sleutel k in buffer dan
verderzoeken := false; gevonden := true;anders verderzoeken := false
Alfred, Bob ?
.
![Page 43: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/43.jpg)
45
Zoeken
![Page 44: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/44.jpg)
47
Hashed bestanden: idee
De rode?De rode!
![Page 45: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/45.jpg)
48
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
![Page 46: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/46.jpg)
49
Hashing: idee
![Page 47: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/47.jpg)
50
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
FINDOR-
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
![Page 48: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/48.jpg)
51
Vooruitblik
Geheugens
Bestandsorganisatie: blokken en records
Toegang tot en bewerkingen op bestanden
Soorten bestanden
Hashing – basisidee
Meer over hashing, indexstructuren
![Page 49: Gegevensbanken 2012 Fundamenten van geheugen; Bestandsorganisatie; Hashing Bettina Berendt bettina.berendt](https://reader035.vdocuments.site/reader035/viewer/2022062703/5551a0ef4979591f3c8b9c68/html5/thumbnails/49.jpg)
52
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!