De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Basiscursus Informatica, 98-99 College 9, H 9 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 9, Database Structures Brookshear H9 Richard.

Verwante presentaties


Presentatie over: "Basiscursus Informatica, 98-99 College 9, H 9 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 9, Database Structures Brookshear H9 Richard."— Transcript van de presentatie:

1 Basiscursus Informatica, College 9, H 9 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 9, Database Structures Brookshear H9 Richard Benjamins

2 Basiscursus Informatica, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, College 9, H 9 21 Basiscursus Informatica 98/9921 Tabel student number address name academic record Adema Amsterdam A:8.5;B:6.5; … Brouwer Amsterdam A:4.5;B:5; … de Vries Utrecht A:8;B:6; …. tuple (rij) attribuut relatie

22 Basiscursus Informatica, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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


Download ppt "Basiscursus Informatica, 98-99 College 9, H 9 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 9, Database Structures Brookshear H9 Richard."

Verwante presentaties


Ads door Google