De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Literatuur: Rolland, “The Essence of Databases”, Hfdst 6, 7, 9, 10

Verwante presentaties


Presentatie over: "Literatuur: Rolland, “The Essence of Databases”, Hfdst 6, 7, 9, 10"— Transcript van de presentatie:

1 Literatuur: Rolland, “The Essence of Databases”, Hfdst 6, 7, 9, 10
Niet-relationele databases & intern management & gedistribueerde db systemen Literatuur: Rolland, “The Essence of Databases”, Hfdst 6, 7, 9, 10 2 maart 2004

2 De laatste hoofdstukken:
6: traditionele datamodellen 7: object-georiënteerde databases 8: NIET 9: intern management (2) 10: gedistribueerde databases 2 maart 2004

3 Geschiedenis van datamodellen
2 maart 2004

4 Traditioneel Hierarchic databases Network databases
Inferior to relational databases handling one record at a time only, difficult to design, difficult to maintain and use (‘programmer needs to know a lot about the design’). But … still widely in use in “legacy” systems 2 maart 2004

5 Hierarchic databases Eén root. Alléén 1-M relaties.
Faculteit Cursus Docent Student Eén root. Alléén 1-M relaties. Elk record moet precies één ouder hebben. … zeer veel redundantie. 2 maart 2004

6 Voorbeeld Cursus weg … student weg
UvA FMG FNWI c#123 CIM c#789 Kennis repr c#456 Robotica s# pim persoon s# jaap jansen s#33245 hans hanson s# pim persoon s# pim persoon s#33245 hans hanson Cursus weg … student weg SELECT en UPDATE: eindeloos pointers volgen 2 maart 2004

7 Netwerk databases Geen root.
Faculteit Cursus Docent Student Geen root. Aantal en richting van de links is niet beperkt. M..N relaties mogelijk Reductie van redundancy. 2 maart 2004

8 Voorbeeld Cursus weg … student weg?
FMG FNWI c#123 CIM c#789 Kennis repr c#456 Robotica s# pim persoon s# jaap jansen s#33245 hans hanson Cursus weg … student weg? SELECT en UPDATE: nog meer pointers volgen 2 maart 2004

9 Hfst 7: OODBMS 2 maart 2004

10 “Gewone” RDBMSs Goed in opslag van grote aantallen van instanties van niet al te complexe gegevens. Goed in opslag van gegevens van een eenvoudig type (getallen, strings, booleans). Goed in gegevens die min of meer statisch zijn. 2 maart 2004

11 Relationele Databases: beperkingen
Semantiek van de gegevens is beperkt: Het relationele model heeft slechts één construct (de relationele tabel) voor entiteiten en voor relaties M.a.w. het relationele model is “semantically overloaded” Slechts beperkte ondersteuning van integriteits-bewaking: entiteit-integriteit referentiële integriteit organisatorische constraints Er is slechts een beperkte verzameling voor-gedefinieerde operaties. 2 maart 2004

12 Beperkingen van “gewone” RDBMSs (2)
Homogene datastructuur: horizontaal (de attributen liggen vast) verticaal (de waarden zijn van een bepaald type) … maar … BLOBs (Binary Large Objects) als datatype is een (povere) ontsnappingsmogelijkheid. Geen voorziening voor recursieve datastructuren en recursieve vragen. ‘Impedance mismatch’ Meeste DMLs zijn niet “computationeel compleet”, daarom inbedding van SQL in een “echte” programmeertaal, maar die heeft “eigen” datastructuren en datatypen:  voortdurende conversie van gegevens. 2 maart 2004

13 Voorbeeld recursieve datastructr.
(b) bevat de “impliciete” gegevens 2 maart 2004

14 RDBMS vaak niet “voldoende”
Computer-Aided Design (CAD) Computer-Aided Manufacturing (CAM) Computer-Aided Software Engineering (CASE) Multimedia Systems Digitaal publiceren Geografische Informatie Systemen (GIS) Kennisintensieve systemen 2 maart 2004

15 Complexe gegevens De gegevens hebben een complexe en vaak speciale structuur. Vaak juist weinig instanties maar grote variëteit Soms zijn de gegevens procedureel. 2 maart 2004

16 Beperkingen van “gewone” RDBMSs (3)
Alleen geschikt voor “snelle” transacties (o.m. controle op samenloop m.b.v. een “locking” mechanisme). De database-schema's zijn maar moeilijk aanpasbaar. Vraag voor vraag afhandeling, geen of beperkte navigatie mogelijkheden (i.e. van record naar record). 2 maart 2004

17 Derde generatie DBMSs Twee min of meer gescheiden ontwikkelingen:
1. Overname van technieken uit de Object-oriëntatie: Object-oriënted DBMSs (OODBMSs). 2. Upgrading van het relationele model: Object-Relational DBMSs (ORDBMSs). 2 maart 2004

18 (7.2) Object-oriëntatie Elk object heeft een eigen unieke en gegarandeerde identiteit. Definitie van klassen van objecten. klasse-hiërarchie (sub-klassen en super-klassen), overerving (langs IS A-relatie naar sub-klassen, langs AKO-relatie naar instanties). Het object sluit “gegevens” en “gedrag” (methoden) in zich op [encapsulation]. Communicatie tussen objecten door “messages” (bijv: naar het “branch” object “is er een instantie in Glasgow?”) 2 maart 2004

19 Object-oriëntatie (2) Overloading: hergebruik van een en dezelfde methode-naam binnen verschillende objecten. Polymorfisme en dynamische (late) binding van variabelen (de juiste methode wordt pas gekozen als de klasse bekend is. bijv: list[i].print). Het runtime systeem beslist welke print methode gebruikt moet worden. Complexe objecten mogelijk; bijvoorbeeld een object “bestaande uit” veel onderdelen (PART-OF). 2 maart 2004

20 Objecten Uniek identificeerbare entiteit.
Een object representeert de essentie (wat het object IS en wat het object DOET). beschrijft (in geval van klasse) / bevat (in geval van instantie) de gegevens van een “real-world” object. beschrijft OOK de bijbehorende methodes (gedrag). Interne details, zoals hoe de gegevens opgeslagen zijn, zijn afgeschermd voor buitenwereld (vgl. ANSI/SPARC-architectuur). vergelijk relationele entiteiten die alleen de gegevens bevatten of beschrijven ... 2 maart 2004

21 Voorbeeld klasse en instanties
2 maart 2004

22 Object-identity (OID)
Systeem gegenereerd, uniek en onveranderbaar. Onafhankelijk van de attribuutwaarden. Onzichtbaar voor de gebruiker (in het ideale geval). Vergelijk “primary keys” in relationele model …. De identiteit is afhankelijk van de waarde en de identiteit kan veranderen. Voordelen OID: Efficiënt (compact) en snelle toegang (direct of indirect via een mapping). Onafhankelijk van de inhoud van het object. 2 maart 2004

23 Objecten attributen De attributen van een object krijgen als waarde een object, waaronder: basis-objecten (simpel/ primitief) (char, string, integer). verzamelingen van objecten (set, tuple, list). referenties naar andere objecten (middels OID). De laatste twee maken willekeurig complexe objecten mogelijk. 2 maart 2004

24 Object-georiënteerde DBs
Elke entiteits-instantie (tupel) is een object-instantie met een uniek OID. Is instantie van een klasse-object (ook met uniek OID). Het klasse-object definieert methodes (bijvoorbeeld integriteitsregels, ‘insert into’): m.a.w. de methoden zijn ingekapseld. 2 maart 2004

25 Nodig voor realisatie OODBMSs
Uitbreiding van Object-georiënteerde Programmeertaal met een “persistent datastore”. persistent datastore: de gegevens “overleven” de executie van een programma. Definitie van een eenvoudige vraag-taal. Ontwikkelen van beveiligingsmechanismen identificatie van gebruiker en autorisatie “views” mechanismen 2 maart 2004

26 Bronnen van Object-georiënteerd Datamodel
2 maart 2004

27 Voorbeeld 1:1 relatie 2 maart 2004

28 Voorbeeld 1:M relatie 2 maart 2004

29 Voorbeeld M:N relatie 2 maart 2004

30 M:N relatie: alternatief
2 maart 2004

31 3 soorten van methoden Constructors en destructors:
nieuwe instantie bij een klasse (ofwel tupel toevoegen) en weggooien van instanties. Bevragingsmethoden: waarde van een attribuut / set van attributen, eventueel methode voor een afgeleid attribuut (e.g. leeftijd), of methode voor een attribuut van de klasse (e.g. aantal personeelsleden, gemiddelde salaris). Transformatiemethoden: bijvoorbeeld een update van een (set van) attribuutwaarden. 2 maart 2004

32 Ontwerp van OODB ER-diagrammen ondersteunen niet de modellering van methodes; gebruik hiervoor bijvoorbeeld UML. Top-down: vanuit de benodigde functionaliteit Bottum-up: vanuit de belangrijke objecten/entiteiten Publieke methoden (zichtbaar voor de “andere” objecten) Private methoden (alleen zichtbaar binnen de klasse) 2 maart 2004

33 ODMG standaard Object Database Management Group (ODMG). Standaard; versie ODMG 3.0, 1999). een Object Model (OM) een Object Definitie Taal (ODL) een Object Query Taal (OQL) een Object Request Broker (ORB) een COmmon Request Broker Architecture (CORBA) 2 maart 2004

34 Object-Relational DBMSs
Uitbreidingen van het “relationele model” Ook wel genoemd: Extended Relational DBMS (ERDBMS) Universal Server Universal DBMS (UDBMS) 2 maart 2004

35 ORDBMS & OODBMS ‘evolution’ ‘revolution’ 2 maart 2004

36 ORDBMS: features The 3rd-generation Database System Manifesto:
van het “Committee for Advanced DBMS Function” (CADF) The 3rd Manifesto: van: Darwin & Date (1995, 1998) 2 maart 2004

37 CADF wensen een rijk data-type systeem met enige notie van ‘object’,
specificatie van ‘collections’, graag overerving, SQL gebaseerd. 2 maart 2004

38 Darwin & Date wensen OO-features zijn leuk, maar ze staan haaks op het relationele model. Het relationele datamodel verdraagt “no extension, no correction, no subsumption and above all, no perversion”. Verbetering gezocht in betere definitie van DOMEIN. Maar SQL is al een grote zonde. Voorstel voor de taal D. 2 maart 2004

39 SQL3 (iso-standaard, 1999) Type constructors voor “rij-typen” en voor “referentie-typen”. Een record van veldnaam/datatype paren die het “type” van een gehele rij vastleggen. Maakt het mogelijk dat rijen: opgeslagen worden in één variabele als parameter worden doorgegeven teruggegeven kunnen worden door functies Maakt het mogelijk dat een kolom van een tabel waarden van zo’n rij-type bevat. 2 maart 2004

40 SQL3 (2) Door de gebruiker definieerbare datatypen die opgenomen kunnen worden in een supertype/subtype hiërarchie. i.e. hiërarchieën van rijen en tabellen Door de gebruiker definieerbare procedures, functies en operatoren. 2 maart 2004

41 Voorbeeld UDT CREATE TABLE branch (bno VARCHAR(3),
address ROW(street VARCHAR(25), area VARCHAR(15), city VARCHAR(15), pcode ROW(city_identifier VARCHAR(4), subpart VARCHAR(4)))); INSERT INTO branch VALUES (‘B5’, (’22 Deer Rd’, ‘Sidcup’, ‘London’, (‘SW1’, ‘4EH’))); 2 maart 2004

42 SQL3 (3) Nieuwe statements voor programmeren Triggers assignment
condities (if, then, else) case iteratie (for, while, repeat) Triggers automatische executie van stukje code als bij-effect van een of andere operatie op tabel. 2 maart 2004

43 Voordelen van OODBMSs Heeft een rijke semantiek voor de representatie van gegevens. Is uitbreidbaar met nieuwe datatypen. Geen “impedance mismatch”, alles in OOPL. Rijkere bevragingsmogelijkheden. Uitbreiding van dataschema's mogelijk. Ondersteuning van langdurige transacties. Ondersteunt complexe applicaties (CAD/CAM, GIS etc.). Verbeterde performance. 2 maart 2004

44 Nadelen OODBMS benadering (1)
Complex (en dus duur in aanschaf en gebruik). Geen onderliggende theorie. Geen universeel datamodel. Geen formeel gedefinieerde ontwerpmethode (zoals normalisatie voor relationele databases). Ad hoc bevraging. Vraag-optimalisatie doorbreekt vaak de gegevens-inkapseling: niet erg want wordt afgehandeld door DBMS … wel erg want doorbreekt object-oriëntatie filosofie 2 maart 2004

45 Nadelen OODBMS benadering (2)
Locking is inefficiënt (komt door overervingstructuur). Geen ondersteuning van “views”. Weinig ondersteuning van beveiligingmechanismen. Ad hoc integriteitsbewaking. Weinig ervaring. Weinig standaarden. 2 maart 2004

46 Nadelen ORDBMS benadering
Complex. Duurder en slechts nodig voor een kleine subset van toepassingen. Aan de eenvoud en zuiverheid van relationele model wordt afbreuk gedaan. OO-aanhangers zijn er ook al niet van gecharmeerd … … SQL is niet langer een eenvoudige taal … 2 maart 2004

47 OQL versus SQL3 Er zijn overeenkomsten,
Er wordt gewerkt aan compatibiliteit, ODMG probeert OQL volledig compatibel met SQL SELECT te maken, Met name verschillen in Object Identity (OID), die is bij ORDBMSs gerelateerd aan plaats van rij in tabel, dus kan veranderen ... 2 maart 2004

48 Hoofdstuk 9: Internal management (2)
4 onderwerpen: 1. Management van transacties 2. Concurrency 3. Optimalisatie van zoekvragen 4. Database administratie taken 2 maart 2004

49 1. Internal management Complexe transacties bestaan uit meerdere deel-transacties. transacties worden uitgevoerd op een ‘image’ van de database, veranderingen pas vastleggen met een COMMIT, daarvoor ‘undoable’ met een ROLLBACK. 2 maart 2004

50 2. Samenloop (concurrency)
Problemen: Twee updates tegelijk: 2e update overschrijft resultaat van de 1e update. Afhankelijkheid tussen transactie A en nog niet gecommitteerde complexe transactie B. Inconsistente analyse: transactie A is aan het tellen, terwijl transcatie B aan het wijzigen is. Oplossing: locks Serialisatie principe 2 maart 2004

51 2. Samenloop (2) Locking van objecten: 2-fase locking:
S-locks (read-only: e.g. SELECT) meerdere mogelijk. X-locks (change: e.g. INSERT / UPDATE) kan alleen geplaatst als er geen S- of X-lock op zit. 2-fase locking: een lock is verboden als je in dezelfde transactie zojuist een lock op hetzelfde object hebt vrijgegeven. 2 maart 2004

52 3. Vraag-optimalisatie Er bestaan uitkomst-invariante transformaties. bijvoorbeeld: de volgorde van JOINs heeft geen invloed. een JOIN van 2 tabellen, gevolgd door een RESTRICT kan efficiënter als: eerst RESTRICT op de relevante tabel. een JOIN van 2 tabellen, gevolgd door een PROJECT kan efficiënter als: eerst PROJECT op alle relevante tabellen, daarna JOIN. een RESTRICT en vervolgens een PROJECT is equivalent aan een PROJECT (met mogelijk extra attribuut) en vervolgens een RESTRICT. 2 maart 2004

53 Vraag-optimalisatie (2)
Query equivalentie Probleem: runtime uitvinden wat efficiënte volgorde is. Daarvoor is statistiek nodig: lengte van tabellen (aantal tuples), formaat van tuples (aantal attributen, datatypen), proportie van foreign key matches tussen tabellen. Meestal alleen simpele heuristiek: doe alle joins laatst. 2 maart 2004

54 4. Database administratie
Onderwerpen: 1. Recovery 2. Security 3. Performance 4. Administratie 2 maart 2004

55 Hoofdstuk 10: Gedistribueerde databases
Onderwerpen: 1. Doel van data distributie 2. Implementatie 3. Multi-user db in andere vormen 2 maart 2004

56 traditioneel Databases in grote organisaties: Nadelen:
1 centraal dbms systeem Vele remote terminals Nadelen: Veel I/O over het netwerk Grote CPU belasting Kwetsbaarheid Afstandelijkheid 2 maart 2004

57 Gedistribueerde databases
Gegevens op de plaats waar ze nodig zijn. Minder communicatie. Contrôle van gegevens bij de bron. Betere peformance. Minder afhankelijkheid van één centraal systeem. Maar … meer problemen met: Efficiënt omgaan met data-fragmentatie (e.g. queries over gedistribueerd opgeslagen gegevens). Data replicatie / redundantie. Update propagatie. Systeembrede lockings-mechanismen. Onderhoud van Globale data dictionary 2 maart 2004

58 Gedistribueerde databases (2)
Nadelen van distributie oplossen met: Data transparancy Location independence ….. [ maar ook: transaction transparancy ] [ en: failure transparancy ] 2 maart 2004

59 Typen gedistribueerde db systemen
Homogeen Heterogeen Gateway Federated 2 maart 2004

60 Client-server architectuur
Centrale database-server. Applicaties draaien op clients. Communicatie bijv. via TCP/IP protocol. 2-lagen / 3-lagen / n-laags architecturen. 2 maart 2004

61 Two-Tier Client-Server Architecture
2 maart 2004

62 Three-Tier Client-Server Architecture
2 maart 2004

63 CGI - Environment 2 maart 2004

64 ODBC - JDBC 2 maart 2004


Download ppt "Literatuur: Rolland, “The Essence of Databases”, Hfdst 6, 7, 9, 10"

Verwante presentaties


Ads door Google