Principes van databases Datamodellen en databasemodellen Hoofdstuk 2 1 Overzicht • • • • • • 2 Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer gebruik je welk databasemodel? Overzicht • • • • • • 3 Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer gebruik je welk databasemodel? Basisconcepten Een datamodel is een verzameling van voorschriften en regels die het mogelijk maken om de structuur en het gedrag te beschrijven van data die in bepaalde software voorkomen Een databasemodel is een verzameling van voorschriften en regels die het mogelijk maken om zowel de structuur, de beperkingen voor integriteit en beveiliging, als het gedrag van een database te beschrijven op het niveau van de logische laag uit een ‘drielagen’-architectuur voor databasemanagementsystemen. 4 Basisconcepten operationele modellen traditionele modellen structurele modellen semantische modellen verdere ontwikkelingen 5 • • • • “inverted list”-model hiërarchisch model netwerkmodel andere operationele modellen • semi-relationeel model • relationeel model • andere structurele modellen • • • • RM/T model object-relationeel model objectgeoriënteerde modellen andere semantische modellen • • • • deductieve modellen spatio-temporele modellen “vage en onzekere” modellen andere “intelligente” modellen Overzicht • • • • • • 6 Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer gebruik je welk databasemodel? De operationele modellen • Zorg voor: – Efficiënte opslag – Efficiënte bevraging • Het hiërarchisch databasemodel – Structurele aspecten • Databaseschema = collectie van boomstructuren – Knopen = recordtypes – Takken = verwantschappen tussen recordtypes • Database = collectie van bomen – Knopen = records – Takken = 1:N-relaties tussen records • `Virtuele ‘ouder-kind’-relaties 7 De operationele modellen root Niveau 1 Niveau 2 Niveau 3 bladknoop Niveau 4 8 De operationele modellen Databaseschema “Schilderijen” r1 Artiest Naam Voornaam Geboren Gestorven r3 Eigenaar Plaats Naam Land r2 Schilderij ID Naam Artiest Periode Waarde Eigenaar Database “Schilderijen” Da Vinci r1 S03 r2 Degas S02 r2 r1 S05 S04 9 Ensor r1 Monet r2 r2 S06 r2 S07 r2 r3 Louvre r3 KMSK r3 r1 r2 S01 Boijmans De operationele modellen • Interne opslag: hiërarchische recordsequenties r1 Da Vinci r2 S03 r1 Degas r2 S02 r2 S05 r1 Ensor r2 S04 r2 S06 r2 S07 r1 Monet r2 S01 r3 Boijmans r3 Louvre r3 KMSK – Gedragsaspecten • Principe van logische nabijheid • Databasemanipulatie – Operatoren die opgeroepen worden vanuit een hosttaal – Hostvariabelen 10 Overzicht • • • • • • 11 Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer gebruik je welk databasemodel? 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 • Databaseschema = collectie van relatieschema’s • Database = collectie van relaties 12 De structurele modellen Tabel Schilderij vreemde sleutels = {Artiest} en {Eigenaar} S_ID: Naam: char(3) varchar Artiest: char(3) S01 Vissershuis A04 1882 16.000.000 Boijmans 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 13 kandidaatsleutel = {S_ID} Periode: integer Waarde: real Eigenaar: varchar kandidaatsleutels = {A_ID} en {Naam, Voornaam, Geboren} A_ID: Naam: char(3) 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 14 kandidaatsleutel = {Naam} Naam: varchar Plaats: varchar Land: varchar Boijmans 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’ 15 Overzicht • • • • • • 16 Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer gebruik je welk databasemodel? 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 17 De semantische modellen Kunstwerk Schilderij 18 bezit is_van is_geschilderd_door schilderde Eigenaar Artiest De semantische modellen – Gedragsaspecten • OQL SELECT a.schilderde.Naam FROM a in Artiest WHERE a.Naam=‘Ensor’ 19 Overzicht • • • • • • 20 Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer welk databasemodel gebruiken? Verdere ontwikkelingen • Impedance mismatch 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). – Semantische rijkere databasemodellen • Deductieve databases • “Vage” databases 21 Overzicht • • • • • • 22 Basisconcepten De operationele modellen De structurele modellen De semantische modellen Verdere ontwikkelingen Wanneer gebruik je welk databasemodel? Wanneer gebruik je welk databasemodel? • Afhankelijk van: – De toepassing • De vereiste performantie • Andere technische vereisten – – – – – – 23 Aanwezige kennis en technologie Aanleercurve voor de gebruikers Duurzaamheid van de oplossing Standaardisatie Schaalbaarheid Technische support en ondersteuning