Principes van databases Databases en databasesystemen Hoofdstuk 1 Overzicht • • • • • Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een 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 BETEKENIS ? ID Wijn Producent Jaar 21 Fumé Blanc Ch. St. Jean 1998 42 1999 2 Chardonnay Buena Vista 1997 1 1999 3 Chardonnay Geyser Peak 1997 5 1999 50 Pinot Noir Gary Farrell 1996 20 2000 72 Zinfandel Rafanelli 1995 12 2002 … … … … … … Flessen Op_dronk 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) Overzicht • • • • • Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem? Databasesysteem DBMS data software hardware gebruikers Databasesysteem • Hardware – Central Processing Unit (CPU) – Computergeheugen • Primair geheugen databasebuffers – Volatiel – Kleiner – Sneller • Secundair geheugen databases – Niet-volatiel – Groter – Trager Databasesyteem CPU databasebuffers primair geheugen datastromen Buffergrootte = grootte van een pagina Primaire bestandsorganisatie Secundaire bestandsorganisatie databases secundair geheugen Databasesyteem Primair geheugen • statisch ram-geheugen • dynamisch ram-geheugen • flash-geheugen databases in hoofdgeheugen Secundair geheugen • magneetschijfgeheugen • cd-rom en dvd traditionele databases Tertiair geheugen • magneetbandgeheugen archieven en back-up 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 S02 S03 S04 Vissershuis De balletles Mona Lisa Namiddag te Oostende Monet Degas Da Vinci Ensor 1882 1872 1499 1881 16.000.000 8.500.000 75.000.000 200.000 Boijmans Louvre Louvre KMSK RECORDTYPE Artiest (Naam:CHAR(30); Voornaam:CHAR(20); Geboren:INTEGER; Gestorven:INTEGER) Naam Voornaam Geboren Gestorven Da Vinci Degas Ensor Monet Leonardo Edgar James Claude 1452 1834 1860 1840 1519 1917 1949 1926 RECORDTYPE Eigenaar (Naam:CHAR(30); Plaats:CHAR(20); Land:CHAR(20)) Naam Plaats Land Boijmans Louvre KMSK Rotterdam Parijs Antwerpen Nederland Frankrijk België Databasesysteem • Software – Databasemanagementsysteem Het databasemanagementsysteem is de softwarecomponent van een databasesysteem die instaat voor het beheer van de databases – Toepassingsprogramma’s – Tools – Communicatiesoftware Databasesysteem databaseclient databaseclient databaseclient databaseclient telecommunicatienetwerk DBMS databaseserver Databasesysteem – Datawarehousing – Software voor data-analyse – Rapportgeneratoren Databasesysteem Databasesysteem • Gebruikers (en gebruikersprofielen) – Data-administrator – Database-administrator – Toepassingsontwikkelaar – Eindgebruiker • Gewone eindgebruiker • Geavanceerde eindgebruiker 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 Architectuur Externe laag View 1 View 2 View 3 … Logische laag Interne laag O1 O2 O3 10110… 10101… 00101… 01010…00100… 10011… Fysieke opslag 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 vaste recordlengte 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; PREFIX BYTES=6,OFFSET=0 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; PREFIX BYTES=6,OFFSET=0 Naam BYTES=30,OFFSET=6,INDEX=Eigenaar_Naam Plaats BYTES=20,OFFSET=36 Land BYTES=20,OFFSET=56 Databasemanagementsysteem Geboren PREFIX Voornaam Naam A0 1 Deg as 1 7 Gestorven Edga r 1 8 3 4 19 1 7 37 57 61 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 V1=Naam V2=Voornaam V3=Hobby V4=Geboren = Einde_veld = Einde_waarde = 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 Naam; 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 externe laag conceptuele laag fysische laag logische data-onafhankelijkheid fysieke data-onafhankelijkheid 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