De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "2 maart 2004 Niet-relationele databases & intern management & gedistribueerde db systemen Literatuur: Rolland, “The Essence of Databases”, Hfdst 6, 7,"— Transcript van de presentatie:

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

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

3 2 maart 2004 Geschiedenis van datamodellen

4 2 maart 2004 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

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

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

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

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

9 2 maart 2004 Hfst 7: OODBMS

10 2 maart 2004 “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.

11 2 maart 2004 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.

12 2 maart 2004 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.

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

14 2 maart 2004 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

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

16 2 maart 2004 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).

17 2 maart 2004 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).

18 2 maart 2004 (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?”)

19 2 maart 2004 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).

20 2 maart 2004 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...

21 2 maart 2004 Voorbeeld klasse en instanties

22 2 maart 2004 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.

23 2 maart 2004 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.

24 2 maart 2004 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.

25 2 maart 2004 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

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

27 2 maart 2004 Voorbeeld 1:1 relatie

28 2 maart 2004 Voorbeeld 1:M relatie

29 2 maart 2004 Voorbeeld M:N relatie

30 2 maart 2004 M:N relatie: alternatief

31 2 maart 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.

32 2 maart 2004 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)

33 2 maart 2004 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)

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

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

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

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

38 2 maart 2004 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.

39 2 maart 2004 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.

40 2 maart 2004 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.

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

42 2 maart 2004 SQL3 (3) Nieuwe statements voor programmeren –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.

43 2 maart 2004 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.

44 2 maart 2004 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......

45 2 maart 2004 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.

46 2 maart 2004 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 …

47 2 maart 2004 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...

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

49 2 maart 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.

50 2 maart Samenloop (concurrency) Problemen : –Twee updates tegelijk: 2 e update overschrijft resultaat van de 1 e 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

51 2 maart Samenloop (2) Locking van objecten: –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.

52 2 maart Vraag-optimalisatie Er bestaan uitkomst-invariante transformaties. bijvoorbeeld: –de volgorde van JOIN s 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.

53 2 maart 2004 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.

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

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

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

57 2 maart 2004 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

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

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

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

61 2 maart 2004 Two-Tier Client-Server Architecture

62 2 maart 2004 Three-Tier Client-Server Architecture

63 2 maart 2004 CGI - Environment

64 2 maart 2004 ODBC - JDBC


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

Verwante presentaties


Ads door Google