Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdDirk Hendrickx Laatst gewijzigd meer dan 10 jaar geleden
1
Basiscursus Informatica, 98-99 College 9, H 9 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 9, Database Structures Brookshear H9 Richard Benjamins
2
Basiscursus Informatica, 98-99 College 9, H 9 2 Basiscursus Informatica 98/992 Rooster n 16 maart herkansing DT 1, 15:00-17:00, zaal A-E (hoofdstuk 1-5) n 23 maart DT 2, 15:00-17:00, zaal A-E (hoofdstuk 6-9) (evaluaties) n 30 maart herkansing DT 2, 15:00-17:00, zaal A-E (hoofdstuk 6-9), Machiel Jansen n Vandaag laatste college!
3
Basiscursus Informatica, 98-99 College 9, H 9 3 Basiscursus Informatica 98/993 Overzicht college 9 n Inleiding n Gelaagde benadering n Relationele databases ä Query talen n (Object-georienteerde databases NIET) n Integriteit van databases
4
Basiscursus Informatica, 98-99 College 9, H 9 4 Basiscursus Informatica 98/994 Database? n Willekeurige verzameling data in massaopslag n Dataverzameling die verschillende verschijningsvormen kan hebben ä direct access en sequentiele toegang ä retrieval en salarisbetaling n Geintegreerde combinatie van verschillende bestaande datacollecties
5
Basiscursus Informatica, 98-99 College 9, H 9 5 Basiscursus Informatica 98/995 Geschiedenis databases n Toenemende informatisering leidde tot veel stand-alone toepassingen ä zelfs binnen een organisatie –salaris administratie –inkoop afdeling –personeelszaken –etc. n Elke toepassing met eigen retrieval en opslag manier ä verbetering wb handmatige verwerking ä snel opgezet
6
Basiscursus Informatica, 98-99 College 9, H 9 6 Basiscursus Informatica 98/996 File-oriented info system Customer records Customer service dept. Payroll dept. Personnel dept. Purchasing dept. Payroll records Inventory records Employee records direct accesssequentieel direct access sequentieel …..
7
Basiscursus Informatica, 98-99 College 9, H 9 7 Basiscursus Informatica 98/997 Nadelen n Redundantie (zelfde data op verschillende plekken aanwezig) ä een personeelslid verhuist van afdeling ä zelfde verandering op verschillende plekken n Niet delen (sharing) van informatie waar mogelijk n Centraal beleid moeilijk uitvoerbaar
8
Basiscursus Informatica, 98-99 College 9, H 9 8 Basiscursus Informatica 98/998 Database-oriented system Consolidated database Customer service dept. Payroll dept. Personnel dept. Purchasing dept.
9
Basiscursus Informatica, 98-99 College 9, H 9 9 Basiscursus Informatica 98/999 Voordelen n Data komt maar op een plek voor ä updates maar een keer voor alle applicaties n Delen van informatie (share) n Centrale controle ä database administrator (DBA) –afdeling of persoon
10
Basiscursus Informatica, 98-99 College 9, H 9 10 Basiscursus Informatica 98/9910 Nieuwe problemen n Toegang tot vertrouwelijke informatie ä gebruiker van customer service app. mag wel naam verkoper weten, maar niet salaris ä door centrale DB is alles met alles “gelinkt” n Grootschaligheid van huidige DBs: ä fouten hebben verstrekkende gevolgen n Welke gegevens mogen uberhaupt opgeslagen worden? Privacy! ä Autobezit -- wegenbelasting; APK ä Inkomstingbelasting -- studiefinaciering
11
Basiscursus Informatica, 98-99 College 9, H 9 11 Basiscursus Informatica 98/9911 Database schema n Beschrijving van DB structuur ä gebruikt door software voor DB onderhoud n Subschema ä beschrijving van deel van DB voor een bepaalde gebruiker (inkoopafd.) ä hier wordt bepaald tot welke data toegang
12
Basiscursus Informatica, 98-99 College 9, H 9 12 Basiscursus Informatica 98/9912 Voorbeeld name address phone academic record adviser... Student name address employment history salary advices student... Faculty member Subschema: studiezaken salarisadministratie
13
Basiscursus Informatica, 98-99 College 9, H 9 13 Basiscursus Informatica 98/9913 Overzicht college 9 n Inleiding n Gelaagde benadering n Relationele databases ä Query talen n Integriteit van databases
14
Basiscursus Informatica, 98-99 College 9, H 9 14 Basiscursus Informatica 98/9914 Gelaagde implementatie n Gebruikers van DBs zijn geen computerdeskundigen ä communiceren met DB in applicatie-termen ä niet in DB terminologie n DB georganiseerd met 2 tussenlagen ä applicatie software ä database management systeem (DBMS) n Schermt gebruiker af van DB implementatie ä sequentieel, geindexeerd, hashed
15
Basiscursus Informatica, 98-99 College 9, H 9 15 Basiscursus Informatica 98/9915 Lagen in DB End user Application software Database management system Actual database Data seen in terms of the application Data seen in terms of a database model Data seen in its actual organization
16
Basiscursus Informatica, 98-99 College 9, H 9 16 Basiscursus Informatica 98/9916 DBMS n Schermt applicatie-software af van implementatie details van DB ä gedistribueerde DB ä data independence (data onafhankelijkheid) –veranderingen in DB structuur hebben alleen consequenties voor betrokken applicatie-software en voor –DB schema en betrokken subschema’s n Bv. toevoegen: student heeft bijbaantje?
17
Basiscursus Informatica, 98-99 College 9, H 9 17 Basiscursus Informatica 98/9917 Verandering gedeelte name address phone academic record adviser Student name address employment history salary advices student... Faculty member Subschema: studiezaken salarisadministratie bijbaantje Geen update van applicatie-software voor salarisadmin.
18
Basiscursus Informatica, 98-99 College 9, H 9 18 Basiscursus Informatica 98/9918 Meer voordelen DBMS n Kan toegang tot informatie regelen ä elk subschema heeft eigen permissies n Applicatie-software kan geimplementeerd worden in conceptuele DB termen ä ingebouwde routines vertalen conceptueel gezichtspunt op DB naar opslag in massaopslag ä database model n DBMS komt met abstract tools (routines)
19
Basiscursus Informatica, 98-99 College 9, H 9 19 Basiscursus Informatica 98/9919 Overzicht college 9 n Inleiding n Gelaagde benadering n Relationele databases ä Query talen n Integriteit van databases
20
Basiscursus Informatica, 98-99 College 9, H 9 20 Basiscursus Informatica 98/9920 Relationele DBs n Conceptuele structuur van een DB n Waarom relationele DBs? ä simpel ä is de standaard ä erg populair n Data georganiseerd in tabellen ä worden relaties genoemd ä rij in tabel heet tuple ä kolom heet attribuut
21
Basiscursus Informatica, 98-99 College 9, H 9 21 Basiscursus Informatica 98/9921 Tabel student number address name academic record 986156 Adema Amsterdam A:8.5;B:6.5; …. 980245 Brouwer Amsterdam A:4.5;B:5; …. 981214 de Vries Utrecht A:8;B:6; …. tuple (rij) attribuut relatie
22
Basiscursus Informatica, 98-99 College 9, H 9 22 Basiscursus Informatica 98/9922 Uitbreiden relatie n Figuur 9.3 (blz. 334) ä ID-werknemer, naam, adres, ziekenfondsno. n Uitbreiden met info over eerdere loopbanen ä functie-id, functie-naam, moeilijkheid-functie, periode uitvoering functie n Mogelijkheid is Figuure 9.4 (blz. 335) ä alles in een tabel ä “Baker”, “Smith” twee keer in tabel –meerdere functies
23
Basiscursus Informatica, 98-99 College 9, H 9 23 Basiscursus Informatica 98/9923 Problemen met uitbreiden n Inefficientie ä niet meer 1 tuple per werknemer ä informatie wordt gedupliceerd (naam, adres, etc.) n Verlies van informatie bij verwijderen tuple ä Joe Baker gaat weg --> verlies: ‘skillcode’ van D7 n Veel updates nodig ä Joe Baker verhuisd --> verander op meerdere plekken
24
Basiscursus Informatica, 98-99 College 9, H 9 24 Basiscursus Informatica 98/9924 Reden voor problemen n Meer dan 1 concept gecombineerd in een relatie ä mix van info over: –werknemer –functies –relatie tussen beide Werknemer Functie Toewijzing
25
Basiscursus Informatica, 98-99 College 9, H 9 25 Basiscursus Informatica 98/9925 Oplossing n Drie verschillende relaties (vgl ER-diagram) ä werknemer ä functie ä toewijzing n Figuur 9.5 (blz. 336) n In welk dept. heeft bep. employee gewerkt? ä Vind alle functies die employee heeft gedaan (assignment) ä vind dept. die bij functie horen (job)
26
Basiscursus Informatica, 98-99 College 9, H 9 26 Basiscursus Informatica 98/9926 Opdelen van relaties n Soms zonder verlies van informatie ä nonloss decomposition n Soms met verlies van informatie ä vind afd. waar bep. werknemer werkt Empl-ID JobTitle Dept. Empl-ID JobTitleJobTitle Dept.
27
Basiscursus Informatica, 98-99 College 9, H 9 27 Basiscursus Informatica 98/9927 Overzicht college 9 n Inleiding n Gelaagde benadering n Relationele databases ä Query talen n Integriteit van databases
28
Basiscursus Informatica, 98-99 College 9, H 9 28 Basiscursus Informatica 98/9928 Relationele operaties n SELECT, PROJECT, JOIN ä select: selecteer rijen/tuples van relatie ä project: selecteer kolommen van relatie ä join: combineer verschillende relaties in 1 nieuwe n Toepassen operatie creeert nieuwe tabel n Nieuwe relatie operatie op relatie(s) n NEW SELECT from EMPL where ID=98
29
Basiscursus Informatica, 98-99 College 9, H 9 29 Basiscursus Informatica 98/9929 SELECT, PROJECT n Select: Figuur 9.8 (blz. 338) n Project: Figuur 9.9 (blz. 339)
30
Basiscursus Informatica, 98-99 College 9, H 9 30 Basiscursus Informatica 98/9930 JOIN n Join van 2 relaties ä nieuwe relatie wiens attributen/kolommen de combinatie is van oorspronkelijke n Naam van kolom: prefix van oorspronkelijke relatie ä garandeert unieke namen n Tuples/rijen van nieuwe relatie is de concatenatie n Join is vaak conditioneel ä C JOIN A and B where A.W = B.X
31
Basiscursus Informatica, 98-99 College 9, H 9 31 Basiscursus Informatica 98/9931 JOIN n Figuur 9.10 (blz. 340) ä C JOIN A and B where A.W = B.X n Figuur 9.11 (blz. 341) ä C JOIN A and B where A.W < B.X n Figuur 9.5 (blz. 336) ä Lijst van alle werknemer-Ids met op welke afdeling ze werken
32
Basiscursus Informatica, 98-99 College 9, H 9 32 Basiscursus Informatica 98/9932 Wie werkt waar? n Figuur 9.5 (blz. 336) ä NEW1 JOIN ASSIGNEMT and JOB where ASSIGNMENT.JobID = JOB.JobID NEW2 SELECT from NEW1 where ASSIGNMENT.TermDate = “*” LIST PROJECT ASSIGNMENT.EmplID, JOB.Dept from NEW2 n Figuur 9.12 (blz. 342)
33
Basiscursus Informatica, 98-99 College 9, H 9 33 Basiscursus Informatica 98/9933 Vergeet niet... n SELECT, PROJECT, JOIN zijn conceptuele operaties ä gebruikt door applicatie software (abstract tools) ä DBMS vertaalt die in termen van massaopslag (file structures) n Huidige DBMS werken vaak met SQL ä structured query language ä 1 SQL query kan meerdere operaties uitvoeren
34
Basiscursus Informatica, 98-99 College 9, H 9 34 Basiscursus Informatica 98/9934 SQL ä NEW1 JOIN ASSIGNEMT and JOB where ASSIGNMENT.JobID = JOB.JobID NEW2 SELECT from NEW1 where ASSIGNMENT.TermDate = “*” LIST PROJECT ASSIGNMENT.EmplID, JOB.Dept from NEW2 ä Select EmplID, Dept from ASSIGNMENT, JOB where ASSIGNMENT.JobID = JOB.JobID and ASSIGNMENT.TermDate = “*” ä Figuur 9.5 (blz. 336)
35
Basiscursus Informatica, 98-99 College 9, H 9 35 Basiscursus Informatica 98/9935 SQL examples (Fig. 9.5) n Select Name, Address from EMPLOYEE ä lijst van alle werknemers met naam en adres (PROJECT) n Select EmplID, Name, Address, SSNum from EMPLOYEE where Name = ‘Cheryl H. Clark’ ä alle (genoemde) informatie over Clark (SELECT)
36
Basiscursus Informatica, 98-99 College 9, H 9 36 Basiscursus Informatica 98/9936 SQL vervolgd n Insert into EMPLOYEE values (‘42Z12’, ‘Lloyd A. Burt’, ….) ä voegt tuple toe aan bepaalde relatie n Delete from EMPLOYEE where Name = ‘G. Jerry Smith’ ä verwijdert tuple van bepaalde relatie n Update EMPLOYEE set Address = ‘1812 Napoleon Ave.’ where Name = ‘Joe E. Baker’
37
Basiscursus Informatica, 98-99 College 9, H 9 37 Basiscursus Informatica 98/9937 Overzicht college 9 n Inleiding n Gelaagde benadering n Relationele databases ä Query talen n (Object-georienteerde databases NIET) n Integriteit van databases
38
Basiscursus Informatica, 98-99 College 9, H 9 38 Basiscursus Informatica 98/9938 Database integriteit n In grote databases die door veel gebruikers tegelijkertijd worden benaderd ä als verschillende personen op zelfde tijdstip iets willen veranderen, etc. ä kosten van foute data kan heel hoog zijn ä fouten kunnen verstrekkende consequenties hebben n Verantwoordelijkheid van DBMS dat alles goed gaat
39
Basiscursus Informatica, 98-99 College 9, H 9 39 Basiscursus Informatica 98/9939 Transacties op DB n 1 transactie kan verschillende stappen op database nivo betekenen ä bankoverschrijving –eerst bijschrijven, dan afboeken of andersom ä vluchtreservering veranderen ä inschrijving van student veranderen n Tijdens transactie kan DB inconsistent zijn n Bij grote DB met veel gebruikers komt dat vaker wel voor dan niet
40
Basiscursus Informatica, 98-99 College 9, H 9 40 Basiscursus Informatica 98/9940 n Als systeem plat gaat tijdens transactie? ä in inconsistente toestand n Bewaar record van alle stappen van een transactie op disk (niet in centraalgeheugen) ä log-file ä deferred update protocol –voordat transactie uitgevoerd wordt, worden de te maken verandering gelogd n Commit point: ä alle stappen van transactie zijn gelogd
41
Basiscursus Informatica, 98-99 College 9, H 9 41 Basiscursus Informatica 98/9941 n Als na dit punt apparatuur fout optreedt ä DBMS weet uit log file welke transacties na laatste backup uitgevoerd zijn n Als fout optreedt voor commit point ä halverwege transactie die niet afgemaakt kan worden ä gebruik log-file om terug te gaan naar begin transactie (rollback) n Cascading rollback ä loop afhankelijkheden af
42
Basiscursus Informatica, 98-99 College 9, H 9 42 Basiscursus Informatica 98/9942 Interacterende transacties n Transacties kunnen interacteren ä transactie A verandert iets, waardoor B fout gaat –incorrect summary problem –lost update problem n Mogelijke oplossing: one-at-a-time ä 1 transactie per keer ä Maar: erg traag door wachttijden (op disks) ä DMBS hebben vaak schedulers –Time-sharing (vgl OS)
43
Basiscursus Informatica, 98-99 College 9, H 9 43 Basiscursus Informatica 98/9943 Locking n Schedulers gebruiken locking protocollen ä items die in gebruik zijn, worden gemarkeerd ä shared locks: lees-permissie ä exclusive locks: schrijf-permissie –pas als transactie klaar is, lock weg n Voordat een transactie plaatsvindt, vraagt het aan DBMS om toegang tot bepaald item
44
Basiscursus Informatica, 98-99 College 9, H 9 44 Basiscursus Informatica 98/9944 Algoritmes voor toegang n Transactie moet wachten tot item weer vrij is ä probleem: deadlock n Wound-wait protocol ä oudste transactie krijgt voorrang ä jongere transactie “rolled back” en wordt ouder
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.