Databases en databasesystemen Principes van databases Databases en databasesystemen Hoofdstuk 1
Gegevensbeheer door de eeuwen heen Databasesysteem Overzicht Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Gegevensbeheer door de eeuwen heen Databasesysteem Overzicht Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Basisconcepten Data = gegeven feiten voorbeelden ‘Rotterdam’, ‘Vissershuis’, ‘Monet’, 1882 Informatie = data + betekenis voorbeeld ‘In het museum Boijmans van Beuningen te Rotterdam bevindt zich het schilderij ‘Vissershuis’ dat in 1882 door Monet werd geschilderd.’ Een database is een collectie van persistente data Een databasesysteem is een computersysteem dat is opgezet voor het beheer van databases
Basisconcepten echte wereld bvb. informatie over de inhoud van een wijnkelder informatie meta-data data ID Wijn Producent Jaar Flessen Op_dronk BETEKENIS ?
Gegevensbeheer door de eeuwen heen Databasesysteem Overzicht Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Gegevensbeheer door de eeuwen heen Codex van Hammoerabi (2000 voor Christus) eerste registratie van data ‘Fysice akroasis’ van Aristoteles (384-322 voor Christus) ordening van data ‘Analytical engine’ van Charles Babbage (1830) geautomatiseerde registratie van data Magneetband- en magneetschijfgeheugens (1960-1970) eerste databasesystemen: ‘tweelagen’-systeemarchitectuur ‘Drielagen’-systeemarchitectuur (1970-1980) eerste ‘moderne’ databasesystemen Het relationeel databasemodel (Codd, 1970) DB2, eerste relationeel databasesysteem (IBM, 1983)
Gegevensbeheer door de eeuwen heen Databasesysteem Overzicht Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Databasesysteem data DBMS software hardware gebruikers
Central Processing Unit (CPU) Computergeheugen Databasesysteem Hardware Central Processing Unit (CPU) Computergeheugen Primair geheugen databasebuffers Volatiel Kleiner Sneller Secundair geheugen databases Niet-volatiel Groter Trager
Buffergrootte = grootte van een pagina Databasesyteem CPU primair geheugen secundair geheugen databasebuffers datastromen databases Buffergrootte = grootte van een pagina Primaire bestandsorganisatie Secundaire bestandsorganisatie
Databasesyteem databases in hoofdgeheugen traditionele databases Primair geheugen Secundair geheugen Tertiair geheugen statisch ram-geheugen dynamisch ram-geheugen flash-geheugen magneetschijfgeheugen cd-rom en dvd magneetbandgeheugen databases in hoofdgeheugen traditionele databases archieven en back-up
Data vormen een geïntegreerd geheel Databasesysteem Data Records Recordtypes Bestanden Data vormen een geïntegreerd geheel
Databasesysteem RECORDTYPE Schilderij (ID:CHAR(3); Naam:CHAR(30); Artiest:CHAR(30); Periode:INTEGER; Waarde:REAL; Eigenaar:CHAR(30)) ID Naam Artiest Periode Waarde Eigenaar S01 Vissershuis Monet 1882 16.000.000 Boijmans S02 De balletles Degas 1872 8.500.000 Louvre S03 Mona Lisa Da Vinci 1499 75.000.000 Louvre S04 Namiddag te Oostende Ensor 1881 200.000 KMSK RECORDTYPE Artiest (Naam:CHAR(30); Voornaam:CHAR(20); Geboren:INTEGER; Gestorven:INTEGER) Naam Voornaam Geboren Gestorven Da Vinci Leonardo 1452 1519 Degas Edgar 1834 1917 Ensor James 1860 1949 Monet Claude 1840 1926 RECORDTYPE Eigenaar (Naam:CHAR(30); Plaats:CHAR(20); Land:CHAR(20)) Naam Plaats Land Boijmans Rotterdam Nederland Louvre Parijs Frankrijk KMSK Antwerpen België
Databasemanagementsysteem Databasesysteem Software Databasemanagementsysteem Toepassingsprogramma’s Tools Communicatiesoftware Het databasemanagementsysteem is de software- component van een databasesysteem die instaat voor het beheer van de databases
telecommunicatienetwerk Databasesysteem DBMS telecommunicatienetwerk databaseserver databaseclient
Software voor data-analyse Rapportgeneratoren Databasesysteem Datawarehousing Software voor data-analyse Rapportgeneratoren
Databasesysteem
Gebruikers (en gebruikersprofielen) Data-administrator Databasesysteem Gebruikers (en gebruikersprofielen) Data-administrator Database-administrator Toepassingsontwikkelaar Eindgebruiker Gewone eindgebruiker Geavanceerde eindgebruiker
Gegevensbeheer door de eeuwen heen Databasesysteem Overzicht Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Databasemanagementsysteem Hoofdfunctionaliteit Databasedefinitie Integriteit Databasemanipulatie Toevoegen Aanpassen Verwijderen Opzoeken Databaseconstructie Opzetten van een database
Databasemanagementsysteem Andere functionaliteit Delen van dezelfde data Beveiliging van de data Tegen ongeoorloofd gebruik Tegen falen Optimaal systeemgedrag Administratie en controle
Databasemanagementsysteem DBMS … Externe laag Logische laag Interne laag 10110… 00101… 10101… 00100… 01010… 10011… View 1 View 2 View 3 O1 O2 O3 Fysieke opslag Architectuur
Databasemanagementsysteem Architectuur (‘drielagen’-architectuur) Interne laag Beschrijving van recordtypes Vaste lengte Variabele lengte Domeinwaarden van variabele lengte (varchar) Meerwaardige recordvelden (set(varchar)) Optionele recordvelden File header Recordtype-indicator Indexen (<veldwaarde, referentie>)
Databasemanagementsysteem STORED_Schilderij BYTES=107; PREFIX BYTES=6,OFFSET=0 ID BYTES=3,OFFSET=6 Naam BYTES=30,OFFSET=9,INDEX=Schilderij_Naam Artiest BYTES=30,OFFSET=39 Periode BYTES=4,OFFSET=69 Waarde BYTES=4,OFFSET=73 Eigenaar BYTES=30,OFFSET=77 STORED_Artiest BYTES=64; Naam BYTES=30,OFFSET=6,INDEX=Artiest_Naam Voornaam BYTES=20,OFFSET=36 Geboren BYTES=4,OFFSET=56 Gestorven BYTES=4,OFFSET=60 STORED_Eigenaar BYTES=76; Naam BYTES=30,OFFSET=6,INDEX=Eigenaar_Naam Plaats BYTES=20,OFFSET=36 Land BYTES=20,OFFSET=56 vaste recordlengte
Databasemanagementsysteem PREFIX Geboren 1 57 37 61 7 Naam Voornaam Gestorven A 1 D e g a s E d g a r 1 8 3 4 1 9 1 7 RECORDTYPE Artiest (Naam:CHAR(30); Voornaam:CHAR(20); Geboren:INTEGER; Gestorven:INTEGER) Records met vaste lengte V0=A01 V1=Degas V2=Edgar V3=Lezen Reizen V5=1917 V0=PREFIX = Einde_veld V1=Naam V2=Voornaam = Einde_waarde V3=Hobby V4=Geboren = Einde_record V5=Gestorven RECORDTYPE Artiest (Naam:VARCHAR; Voornaam:VARCHAR; Hobby:SET(VARCHAR); OPTIONAL Geboren:INTEGER; OPTIONAL Gestorven:INTEGER) Records met variabele lengte
Databasemanagementsysteem Logische laag Volgens voorschriften van databasemodel Databaseschema RECORDTYPE Schilderij (ID:CHAR(3); Naam:CHAR(30); Artiest:CHAR(30); Periode:INTEGER; Waarde:REAL; Eigenaar:CHAR(30)) RECORDTYPE Artiest (Naam:CHAR(30); Voornaam:CHAR(20); Geboren:INTEGER; Gestorven:INTEGER) RECORDTYPE Eigenaar (Naam:CHAR(30); Plaats:CHAR(20); Land:CHAR(20))
Databasemanagementsysteem Externe laag View In COBOL-code: 01 Tentoonstellingsitem. 02 ItemNaam PIC X(30). 02 Schilder PIC X(30). In Java-code: class Schilderij { String Naam; String Schilder;} class Schilder { String Voornaam; int LeeftijdBijSterfte( );}
Databasemanagementsysteem Mappings ‘externe/logische’ mappings ‘logische/interne mapping (‘externe/externe’ mappings) DBMS Externe laag View 1 View 2 View 3 … Logische laag Interne laag O1 O2 O3
Databasemanagementsysteem Data-onafhankelijkheid Fysieke data-onafhankelijkheid Logische data-onafhankelijkheid conceptuele laag externe laag fysische laag logische data-onafhankelijkheid fysieke data-onafhankelijkheid
Gegevensbeheer door de eeuwen heen Databasesysteem Overzicht Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Wanneer gebruik je een databasesysteem? Voordelen van een databasesysteem Implementatie dbms-faciliteiten Nadelen van een databasesysteem Overhead van overbodige dbms-faciliteiten Aandachtspunten Toepassingen kunnen evolueren Kostprijs