Datamodellen en databasemodellen Database, Document and Content Management Datamodellen en databasemodellen Hoofdstuk 2
De operationele modellen De structurele modellen Overzicht Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken?
De operationele modellen De structurele modellen Overzicht Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken?
Basisconcepten Een datamodel is een verzameling van voorschriften en regels die het toelaten om de structuur en het gedrag van de in een bepaalde software voorkomende data te beschrijven Een databasemodel is een verzameling van voorschriften en regels die het toelaten om zowel de structuur, de restricties voor integriteit en beveiliging, als het gedrag van een database te beschrijven
Basisconcepten operationele modellen structurele traditionele “inverted list”-model hiërarchisch model netwerkmodel andere operationele modellen semi-relationeel model relationeel model andere structurele modellen deductieve modellen spatio-temporele modellen “vage en onzekere” modellen andere “intelligente” modellen RM/T model object-relationeel model objectgeoriënteerde modellen andere semantische modellen traditionele structurele semantische verdere ontwikkelingen
De operationele modellen De structurele modellen Overzicht Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken?
De operationele modellen Zorg voor: Efficiënte opslag Efficiënte bevraging Het hiërarchisch databasemodel Structurele aspecten Records en recordtypes Logisch databaseschema = collectie van boomstructuren Knopen = recordtypes Takken = verwantschappen tussen recordtypes Database = collectie van bomen Knopen = records Takken = 1:N-relaties tussen records
De operationele modellen Virtuele ‘ouder-kind’-relaties Modelleren van M:N-relaties Modelleren van kindknopen met meerdere ouderknopen
De operationele modellen root Niveau 1 Niveau 2 Niveau 3 Niveau 4 bladknoop
De operationele modellen Databaseschema “Schilderijen” r1 r3 Artiest Eigenaar Naam Voornaam Geboren Gestorven Naam Plaats Land r2 Schilderij ID Naam Artiest Periode Waarde Eigenaar Database “Schilderijen” r3 Boymans r1 r1 r1 r1 Da Vinci Degas Ensor Monet r3 Louvre r2 r2 r2 r3 r2 KMSK S03 S02 S05 S01 r2 r2 r2 S04 S06 S07
De operationele modellen Interne opslag: hiërarchische recordsequenties Gedragsaspecten Principe van logische nabijheid Databasemanipulatie Commando’s die opgeroepen worden vanuit een hosttaal Hostvariabelen r1 Da Vinci r2 S03 r1 Degas r2 S02 r2 S05 r1 Ensor r2 S04 r2 S06 r2 S07 r1 Monet r2 S01 r3 Boymans r3 Louvre r3 KMSK
De operationele modellen $GET FIRST Schilderij WHERE Artiest=‘Ensor’; WHILE db_status=0 DO BEGIN writeln(p_Schilderij.Naam); $GET NEXT Schilderij WHERE Artiest=‘Ensor’ END;
De operationele modellen Het netwerkmodel Structurele aspecten Records en recordtypes Logisch databaseschema = collectie van gerichte graafstructuren Knopen = recordtypes Takken = 1:N-relaties tussen recordtypes Toegangspunten Database = collectie van grafen Knopen = records Alle records die deeluitmaken van eenzelfde 1:N-relatie worden in een lus met elkaar verbonden
De operationele modellen
De operationele modellen Databaseschema “Schilderijen” ID Naam Artiest Periode Waarde Eigenaar Schilderij Naam Voornaam Geboren Gestorven Artiest Naam Plaats Land Eigenaar r1 r2 r3
De operationele modellen Database “Schilderijen” Da Vinci r1 S03 r2 Boymans r3 Louvre KMSK Degas S02 S05 S04 S06 S07 Ensor Monet S01 Entry 1 system Entry 2
De operationele modellen Gedragsaspecten Principe van logische nabijheid geldt NIET! Databasemanipulatie Commando’s die opgeroepen worden vanuit een hosttaal Hostvariabelen p_Schilderij.Artiest:=‘Ensor’; $FIND ANY Schilderij USING Artiest; WHILE db_status=0 DO BEGIN $GET Schilderij; writeln(p_Schilderij.Naam); $FIND DUPLICATE Schilderij USING Artiest END;
De operationele modellen De structurele modellen Overzicht Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken?
De structurele modellen Zorg voor: Abstracte structuur Operaties op het niveau van abstracte structuur Het relationeel databasemodel Structurele aspecten Relaties (voorgesteld als tabellen) Atomaire waarden Kandidaatsleutels Uniciteit irreducibiliteit Vreemde sleutels Logisch databaseschema = collectie van relatieschema’s Database = collectie van (extenties van) relaties
De structurele modellen Tabel Schilderij kandidaatsleutel = {S_ID} vreemde sleutels = {Artiest} en {Eigenaar} S_ID: char(3) Naam: varchar Artiest: char(3) Periode: integer Waarde: real Eigenaar: varchar S01 Vissershuis A04 1882 16.000.000 Boymans S02 De balletles A02 1872 8.500.000 Louvre S03 Mona Lisa A01 1499 75.000.000 Louvre S04 Namiddag te Oostende A03 1881 200.000 KMSK Tabel Artiest kandidaatsleutels = {A_ID} en {Naam, Voornaam, Geboren} A_ID: char(3) Naam: varchar Voornaam: varchar Geboren: integer Gestorven: integer A01 Da Vinci Leonardo 1452 1519 A02 Degas Edgar 1834 1917 A03 Ensor James 1860 1949 A04 Monet Claude 1840 1926
De structurele modellen Tabel Eigenaar kandidaatsleutel = {Naam} Naam: varchar Plaats: varchar Land: varchar Boymans Rotterdam Nederland Louvre Parijs Frankrijk KMSK Antwerpen België
De structurele modellen gedragsaspecten SQL DDL DML SELECT Schilderij.Naam FROM Schilderij, Artiest WHERE Schilderij.Artiest=Artiest.A_ID AND Artiest.Naam=‘Ensor’
De operationele modellen De structurele modellen Overzicht Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken?
De semantische modellen Zorg voor: Modelleren van de betekenis van de gegevens De objectgeoriënteerde databasemodellen ODMG-objectmodel Structurele aspecten Klassen Structuur Gedrag Overerving Binaire verwantschappen Objecten
De semantische modellen Artiest Kunstwerk Schilderij is_geschilderd_door Eigenaar schilderde is_van bezit
De semantische modellen Gedragsaspecten OQL SELECT a.schilderde.Naam FROM a in Artiest WHERE a.Naam=‘Ensor’
De semantische modellen Het objectrelationeel databasemodel SQL3 Structurele aspecten Complexe datatypes Gestructureerde types Collectietypes Geassocieerde operatoren Overerving voor relaties Ongestructureerde complexe datatypes Gedragsaspecten Uitgebreide SQL
De semantische modellen Hybride databasemodellen DBMS … Externe laag Interne laag View 1 View 2 View 3 O1 O2 O3 Relationeel OO Logische laag
De operationele modellen De structurele modellen Overzicht Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken?
Verdere ontwikkelingen Impedance mismatch Semantische rijkere databasemodellen Deductieve databases “Vage” databases Het nadelig informatieverlies dat kan optreden wanneer gegevens die gemodelleerd zijn volgens een gegeven databasemodel worden omzet naar de datastructuren van de programmeertalen waarin de databasetoepassing zijn geschreven (en omgekeerd).
De operationele modellen De structurele modellen Overzicht Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken?
Wanneer welk databasemodel gebruiken? Afhankelijk van: De toepassing De verwachte performantie Aanwezige kennis en technologie Aanleercurve voor de gebruikers Duurzaamheid van de oplossing Flexibiliteit Schaalbaarheid Technische support en ondersteuning