De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Inleiding Informatica, 2000-2001 College10, H 9, sheet nr 119-mrt-2001 - 14:36 Basiscursus Informatica 98/991 Inleiding Informatica College 10, Brookshear.

Verwante presentaties


Presentatie over: "Inleiding Informatica, 2000-2001 College10, H 9, sheet nr 119-mrt-2001 - 14:36 Basiscursus Informatica 98/991 Inleiding Informatica College 10, Brookshear."— Transcript van de presentatie:

1 Inleiding Informatica, College10, H 9, sheet nr 119-mrt :36 Basiscursus Informatica 98/991 Inleiding Informatica College 10, Brookshear hoofdstuk 9: Database Structures

2 Inleiding Informatica, College10, H 9, sheet nr 219-mrt :36 Basiscursus Informatica 98/992 Overzicht college 10 n 1. Inleiding n 2. Gelaagde benadering n 3. Relationele databases ä Query talen n 4. WEL: Object-georienteerde databases n 5. WEL: Integriteit van databases n 6. Sociale invloed

3 Inleiding Informatica, College10, H 9, sheet nr 319-mrt :36 Basiscursus Informatica 98/993 Geschiedenis databases n Toenemende informatisering leidde tot veel stand-alone toepassingen ä binnen een organisatie: –salaris administratie –inkoop afdeling –personeelszaken –etc. n Elke toepassing met eigen retrieval en opslag n Variaties per bedrijfstak: pré ERP tijdperk

4 Inleiding Informatica, College10, H 9, sheet nr 419-mrt :36 Basiscursus Informatica 98/994 Nieuw model n Beperkingen flat file systeem: ééndimensioneel, ä meer flexibiliteit door indexen n Database: meerdimensioneel, modellen met hiërarchie, netwerk, relaties, ä gecombineerde indexen mogelijk n fig 9.1: gegevensintegratie

5 Inleiding Informatica, College10, H 9, sheet nr 519-mrt :36 Basiscursus Informatica 98/995 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 …..

6 Inleiding Informatica, College10, H 9, sheet nr 619-mrt :36 Basiscursus Informatica 98/996 Database-oriented system Consolidated database Customer service dept. Payroll dept. Personnel dept. Purchasing dept.

7 Inleiding Informatica, College10, H 9, sheet nr 719-mrt :36 Basiscursus Informatica 98/997 Voordelen database n ‘Information sharing’ voor alle afdelingen ä verminderen van data-redundancy ä meer integriteit door controle op updates n meer controle op bedrijfsgegevens door bedrijfsleiding ä DBA = DataBase Administrator, nieuwe hoge positie binnen bedrijf ä centraal beleid beter uitvoerbaar

8 Inleiding Informatica, College10, H 9, sheet nr 819-mrt :36 Basiscursus Informatica 98/998 Nadelen database n Ingewikkelde toegangsregelingen nodig: ä access privileges in schema’s en subschema’s n ‘increase in misinformation’ n ‘increase in misapplication of information’ n Wie heeft welke rechten op informatie? ä Zie par 9.7.

9 Inleiding Informatica, College10, H 9, sheet nr 919-mrt :36 Basiscursus Informatica 98/999 Database beschrijving n Schema ä beschrijving van DB structuur: entiteiten, attributen, typen, relaties, indexen, toegang ä 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

10 Inleiding Informatica, College10, H 9, sheet nr 1019-mrt :36 Basiscursus Informatica 98/9910 Voorbeeld name address phone academic record adviser... Student name address employment history salary advices student... Faculty member Subschema: studiezaken salarisadministratie

11 Inleiding Informatica, College10, H 9, sheet nr 1119-mrt :36 Basiscursus Informatica 98/9911 Overzicht college 10 n 1. Inleiding n 2. Gelaagde benadering n 3. Relationele databases ä Query talen n 4. WEL: Object-georienteerde databases n 5. WEL: Integriteit van databases n 6. Sociale invloed

12 Inleiding Informatica, College10, H 9, sheet nr 1219-mrt :36 Basiscursus Informatica 98/9912 Gelaagde implementatie n 1. Toplaag: gebruikers van DBs ä zijn geen computerdeskundigen ä communiceren met DB in applicatie-termen en niet in DB terminologie n 2. Applicatie software n 3. Database management systeem (DBMS) n 4. Feitelijke DB

13 Inleiding Informatica, College10, H 9, sheet nr 1319-mrt :36 Basiscursus Informatica 98/9913 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

14 Inleiding Informatica, College10, H 9, sheet nr 1419-mrt :36 Basiscursus Informatica 98/9914 DBMS n Schermt applicatie-software af van implementatie details van DB ä gedistribueerde DB: meerdere machines ä data independence (data onafhankelijkheid) –wijziging in gegevensstructuur zonder gevolgen voor bestaande applicaties (vgl. encapsulation) –wel aanpassing DB schema en betrokken subschema’s voor nieuwe applicaties n Bv. toevoegen: student heeft bijbaantje?

15 Inleiding Informatica, College10, H 9, sheet nr 1519-mrt :36 Basiscursus Informatica 98/9915 [DBMS transparency] n Parsaye: 4 vormen van transparency in gedistribueerde databases: ä location: systeem verbergt spreiding over lokaties ä fragmentation: systeem verbergt opdeling ä transaction: gebruiker merkt niets van andere transacties ä failure: down gaan van sites mag geen gevolgen hebben voor andere sites

16 Inleiding Informatica, College10, H 9, sheet nr 1619-mrt :36 Basiscursus Informatica 98/9916 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.

17 Inleiding Informatica, College10, H 9, sheet nr 1719-mrt :36 Basiscursus Informatica 98/9917 Scheiding DBMS - applicatie n Alle applikaties consulteren dezelfde DBMS, DBMS organiseert alle beschikbare gegevens n DBMS regelt ook toegang tot alle informatie ä elk subschema heeft eigen permissies n Applicatie-software kan geïmplementeerd worden in conceptuele DB termen ä data aanvraag in: host language (SQL)

18 Inleiding Informatica, College10, H 9, sheet nr 1819-mrt :36 Basiscursus Informatica 98/9918 Scheiding DBMS - applicatie n DBMS komt met abstract tools (routines) n Queries van applicaties gebaseerd op het abstracte datamodel ä vigerend model: relationele datamodel ä aansluiting bij OOP: OODBMS (par. 9.4)

19 Inleiding Informatica, College10, H 9, sheet nr 1919-mrt :36 Basiscursus Informatica 98/9919 Overzicht college 10 n 1. Inleiding n 2. Gelaagde benadering n 3. Relationele databases ä Query talen n 4. WEL: Object-georienteerde databases n 5. WEL: Integriteit van databases n 6. Sociale invloed

20 Inleiding Informatica, College10, H 9, sheet nr 2019-mrt :36 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 Inleiding Informatica, College10, H 9, sheet nr 2119-mrt :36 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 Inleiding Informatica, College10, H 9, sheet nr 2219-mrt :36 Basiscursus Informatica 98/9922 Uitbreiden bestaande tabel n Figuur 9.3 (blz. 404) ä ID-werknemer, naam, adres, ziekenfondsno. n Uitbreiden met info: ä funktie-id, funktienaam, moeilijkheid, afdeling, begindatum, einddatum n Mogelijkheid is Figuur 9.4 (blz. 406) ä voordeel: alles in een tabel ä nadeel: duplikate gegevens (rood)

23 Inleiding Informatica, College10, H 9, sheet nr 2319-mrt :36 Basiscursus Informatica 98/9923 Relationeel ontwerp n Beslissing: ä uitbreiden van bestaande tabel ä maken van een nieuwe tabel ä welke tabel sleutel n Belangrijk criterium: redundancy n Streven: ä reductie van redundancy ä voorkom update anomalie

24 Inleiding Informatica, College10, H 9, sheet nr 2419-mrt :36 Basiscursus Informatica 98/9924 Problemen met uitbreiden n Inefficiëntie door redundancy ä 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 verhuist --> verander op meerdere plekken

25 Inleiding Informatica, College10, H 9, sheet nr 2519-mrt :36 Basiscursus Informatica 98/9925 Reden voor problemen n Meer dan 1 concept gecombineerd in een relatie ä mix van info over: –werknemer –functies –relatie tussen beide Werknemer Functie Toewijzing

26 Inleiding Informatica, College10, H 9, sheet nr 2619-mrt :36 Basiscursus Informatica 98/9926 Oplossing n Drie verschillende relaties in figuur 9.5 (blz. 407) (vgl ER-diagram) ä werknemer ä functie ä funktie toewijzing n Nu in twee stappen: in welk afdelingen heeft een bepaalde employee gewerkt? ä 1. Zoek alle functies die employee heeft gedaan ä 2. Zoek afdeling die bij de functies horen

27 Inleiding Informatica, College10, H 9, sheet nr 2719-mrt :36 Basiscursus Informatica 98/9927 Opdelen van relaties n Ideaal: zonder verlies van informatie ä nonloss decomposition n Fout: met verlies van informatie ä werknemer - afdeling problematisch, waarom? Empl-ID JobTitle Dept. Empl-ID JobTitleJobTitle Dept.

28 Inleiding Informatica, College10, H 9, sheet nr 2819-mrt :36 Basiscursus Informatica 98/9928 Relationeel modelleren n ‘Normaliseren van relaties’ ä eerste normaal vorm ä tweede normaal vorm ä derde normaal vorm n Normalisaties worden behandeld in de SWI cursus Gegevensbanken

29 Inleiding Informatica, College10, H 9, sheet nr 2919-mrt :36 Basiscursus Informatica 98/9929 Overzicht college 10 n 1. Inleiding n 2. Gelaagde benadering n 3. Relationele databases ä Query talen n 4. WEL: Object-georienteerde databases n 5. WEL: Integriteit van databases n 6. Sociale invloed

30 Inleiding Informatica, College10, H 9, sheet nr 3019-mrt :36 Basiscursus Informatica 98/9930 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 levert nieuwe tabel n Nieuwe relatie operatie op relatie(s) n NEW SELECT from EMPL where ID=98

31 Inleiding Informatica, College10, H 9, sheet nr 3119-mrt :36 Basiscursus Informatica 98/9931 SELECT, PROJECT n Select: Figuur 9.8 (blz. 410) n Project: Figuur 9.9 (blz. 411)

32 Inleiding Informatica, College10, H 9, sheet nr 3219-mrt :36 Basiscursus Informatica 98/9932 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

33 Inleiding Informatica, College10, H 9, sheet nr 3319-mrt :36 Basiscursus Informatica 98/9933 JOIN n Figuur 9.10 (blz. 412) ä C JOIN A and B where A.W = B.X n Figuur 9.11 (blz. 413) ä C JOIN A and B where A.W < B.X n Figuur 9.5 (blz. 407) ä Lijst van alle werknemer-Ids met op welke afdeling ze werken

34 Inleiding Informatica, College10, H 9, sheet nr 3419-mrt :36 Basiscursus Informatica 98/9934 Getrapt: wie werkt waar? n Figuur 9.5 (blz. 407) ä NEW1 JOIN ASSIGNMENT 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. 414)

35 Inleiding Informatica, College10, H 9, sheet nr 3519-mrt :36 Basiscursus Informatica 98/9935 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 conceptuele operaties uitvoeren

36 Inleiding Informatica, College10, H 9, sheet nr 3619-mrt :36 Basiscursus Informatica 98/9936 SQL in één keer ä 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 = “*”

37 Inleiding Informatica, College10, H 9, sheet nr 3719-mrt :36 Basiscursus Informatica 98/9937 SQL - vervolg 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)

38 Inleiding Informatica, College10, H 9, sheet nr 3819-mrt :36 Basiscursus Informatica 98/9938 SQL - vervolg 2 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’

39 Inleiding Informatica, College10, H 9, sheet nr 3919-mrt :36 Basiscursus Informatica 98/9939 Overzicht college 10 n 1. Inleiding n 2. Gelaagde benadering n 3. Relationele databases ä Query talen n 4. WEL: Object-georiënteerde databases n 5. WEL: Integriteit van databases n 6. Sociale invloed

40 Inleiding Informatica, College10, H 9, sheet nr 4019-mrt :36 Basiscursus Informatica 98/9940 OOP - databases n Ideaal: externe data aanspreken als objecten ä database met ‘first class objects’ ä geen conversie OO - DBMS meer nodig ä 1 paradigma voor modellering ä multimedia uitbreidingen eenvoudig n Probleem: ä vasthouden object-status: ‘object persistency’ ä normaal: objecten run-time ‘transient’

41 Inleiding Informatica, College10, H 9, sheet nr 4119-mrt :36 Basiscursus Informatica 98/9941 Overzicht college 10 n 1. Inleiding n 2. Gelaagde benadering n 3. Relationele databases ä Query talen n 4. WEL: Object-georienteerde databases n 5. WEL: Integriteit van databases n 6. Sociale invloed

42 Inleiding Informatica, College10, H 9, sheet nr 4219-mrt :36 Basiscursus Informatica 98/9942 Database integriteit n Integriteit = zijn gegevens altijd correct, compleet en valide. n Integriteit van belang in grote databases ä concurrency: verschillende personen die op zelfde tijdstip iets willen veranderen ä fouten kunnen verstrekkende consequenties hebben ä fouten herstellen in werkend systeem

43 Inleiding Informatica, College10, H 9, sheet nr 4319-mrt :36 Basiscursus Informatica 98/9943 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

44 Inleiding Informatica, College10, H 9, sheet nr 4419-mrt :36 Basiscursus Informatica 98/9944 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 definitief uitgevoerd wordt, worden de te maken verandering gelogd n Commit point: ä alle stappen van transactie zijn gelogd

45 Inleiding Informatica, College10, H 9, sheet nr 4519-mrt :36 Basiscursus Informatica 98/9945 n Als na dit punt apparatuur fout optreedt ä DBMS weet uit log file welke transacties na laatste back-up uitgevoerd zijn n Als fout optreedt vóór commit point ä halverwege transactie die niet afgemaakt kan worden ä gebruik log-file om terug te gaan naar begin transactie (rollback) n Cascading rollback ä ook andere transacties terugdraaien nodig

46 Inleiding Informatica, College10, H 9, sheet nr 4619-mrt :36 Basiscursus Informatica 98/9946 Interacterende transacties n Transacties kunnen interacteren ä transactie A verandert iets, waardoor B fout gaat –incorrect summary problem: halve transactie –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)

47 Inleiding Informatica, College10, H 9, sheet nr 4719-mrt :36 Basiscursus Informatica 98/9947 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 n Transactie moet wachten tot bezet item vrij is

48 Inleiding Informatica, College10, H 9, sheet nr 4819-mrt :36 Basiscursus Informatica 98/9948 Deadlock n Deadlock: transacties wachten op vrijkomen van elkaars items n Oplossing: ä signaalfunktie in DBMS bouwen ä oudste transactie krijgt voorrang ä jongere transactie gedwongen tot “roll back”, wordt ouder en komt tenslotte ook aan de beurt: wound-wait protocol

49 Inleiding Informatica, College10, H 9, sheet nr 4919-mrt :36 Basiscursus Informatica 98/9949 Overzicht college 10 n 1. Inleiding n 2. Gelaagde benadering n 3. Relationele databases ä Query talen n 4. WEL: Object-georienteerde databases n 5. WEL: Integriteit van databases n 6. Sociale invloed

50 Inleiding Informatica, College10, H 9, sheet nr 5019-mrt :36 Basiscursus Informatica 98/9950 Sociale invloed databases n Ongemerkt: ä koppelen van allerlei bestanden ä loggen en doorgeven van gebruikersgedrag n Vragen: ä is de verzamelaar tevens eigenaar van gegevens? ä ben je eigenaar van je eigen gegevens? ä kunnen anderen gegevens van jou bezitten?

51 Inleiding Informatica, College10, H 9, sheet nr 5119-mrt :36 Basiscursus Informatica 98/9951 Maatregelen (VS) n Privacy Act 1974 ä gehinderd door bureaucratie n publieke opinie mobiliseren kan helpen n Privacy problemen neveneffect ICT ä van belang bij correcte gegevens ä nog veel belangrijker bij foutieve gegevens, rechtzetten niet eenvoudig


Download ppt "Inleiding Informatica, 2000-2001 College10, H 9, sheet nr 119-mrt-2001 - 14:36 Basiscursus Informatica 98/991 Inleiding Informatica College 10, Brookshear."

Verwante presentaties


Ads door Google