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

Slides:



Advertisements
Verwante presentaties
SQL deel 2: datamodel ontwerp
Advertisements

Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Programmeren in Java met BlueJ
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Advies databankarchivering COP Documentbeheer en archivering III 25 november 2008.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Databases Informatica Ga verder met een muisklik. SQL FCO DBMS NE FA
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Leerlijn: Programmeertechnieken, Databanken, Algoritmen Gent, 7 januari 2013 met dank aan: Annemie Vorstermans, Joost Vennekens, Koen Pelsmaekers, Jeroen.
Normaliseren Datamodellering 2006.
Databases.
Opleiding AI cursus Databases
49e adlib gebruikersgroep vergadering Brabants Museum 7 december 2004 Bert Degenhart Drenth.
LauwersCollege Buitenpost Informatica
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
SQL & datamodelleren.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Opleiding AI cursus Databases
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam
Databases I (H. 1) Wiebren de Jonge Vrije Universiteit, Amsterdam Voorlopige versie 2003.
Besturings- systeem A Computer A Besturings- systeem B Computer B Netwerk Handmatige taak I Applicatie 2Applicatie 1 Handmatige taak II Applicatie 3 Gebruiker.
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
Spatial subgroup mining
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
Looking at Code Size and Performance Kevin Muys.  Hoe efficiënt is C++ vergeleken met C  Hoe beïnvloed C++ het benodigde geheugen  Oplossingen voor.
Databases.
CSA, week 31 CSA week 3. CSA, week 32 Terugblik opdracht (client)  Stub creëren uitgaande van IOR ( string_to_object ) of stub creëren uitgaande van.
Inhoudstafel 1.Inleiding 2.Ontwerp: 2.1 Prioriteiten 2.2 Structuur 2.3 Soorten functie 2.4 UseCases 2.5 UML-diagram & uitwerking 3. Implementatie.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
PADS4 maakt het eenvoudig om informatie te verspreiden naar een specifiek publiek op de juiste plaats en het juiste moment PADS4 is een professionele oplossing.
SQL ( SERVER ) Les #02: T-SQL. A GENDA Herhaling les 4 Views SELECT…INTO Beheren van tabellen: CREATE ALTER DROP Opdracht voor de volgende les.
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Join Indices … as a tool for Spatial Datamining. Inhoud Inleiding Spatial Relations (Spatial) Join Index Implementatie Conclusie.
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
BIMAIV03 Les A1 BIMAIV03 Les A1 Databases. De gegevens in een database vormen de grondstof voor informatie De informatie wordt opgevraagd in de taal met.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 6 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Subqueries met correlaties ▸ Subqueries zonder correlaties ▸ Views ▸
1 KPN Mobiel – Introductie Repository Object Browser & Designer 10 Designer 10g & Repository Object Browser Maandag 28 februari 2005 Lucas Jellema (AMIS)
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
Databases.
Objectgeoriënteerd Programmeren
LauwersCollege Buitenpost Informatica
Moving objects in a geo-DBMS
Databases.
SQL Les February 2019.
SQL Les 3 17 February 2019.
SQL Les 7 24 February 2019.
SQL Les 1 5 April 2019.
SQL Les 6 14 April 2019.
Software Development fundamentals
SQL Les 9 12 May 2019.
SQL Les May 2019.
Transcript van de presentatie:

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

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

Geschiedenis van datamodellen 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 2 maart 2004

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

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

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

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

Hfst 7: OODBMS 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. 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. 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. 2 maart 2004

Voorbeeld recursieve datastructr. (b) bevat de “impliciete” gegevens 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 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. 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). 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). 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?”) 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). 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 ... 2 maart 2004

Voorbeeld klasse en instanties 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. 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. 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. 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 2 maart 2004

Bronnen van Object-georiënteerd Datamodel 2 maart 2004

Voorbeeld 1:1 relatie 2 maart 2004

Voorbeeld 1:M relatie 2 maart 2004

Voorbeeld M:N relatie 2 maart 2004

M:N relatie: alternatief 2 maart 2004

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

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

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) www.odmg.org 2 maart 2004

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

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

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

CADF wensen een rijk data-type systeem met enige notie van ‘object’, specificatie van ‘collections’, graag overerving, SQL gebaseerd. 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. 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. 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. 2 maart 2004

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Typen gedistribueerde db systemen Homogeen Heterogeen Gateway Federated 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. 2 maart 2004

Two-Tier Client-Server Architecture 2 maart 2004

Three-Tier Client-Server Architecture 2 maart 2004

CGI - Environment 2 maart 2004

ODBC - JDBC 2 maart 2004