Principes van databases Databases en databasesystemen Hoofdstuk 1
Principes van databases Databases en databasesystemen Hoofdstuk 1 1
Overzicht • • • 2 Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Overzicht • • • 3 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 4
Basisconcepten echte wereld bvb. informatie over de inhoud van een wijnkelder informatie meta-data BETEKENIS ? 5 ID Wijn Producent Jaar Flessen Op_dronk
Overzicht • • • 6 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) – DB 2, eerste relationeel databasesysteem (IBM, 1983) 7
Overzicht • • • 8 Basisconcepten Gegevensbeheer door de eeuwen heen Databasesysteem Databasemanagementsysteem Wanneer gebruik je een databasesysteem?
Databasesysteem DBMS data software hardware gebruikers 9
Databasesysteem • Hardware – Central Processing Unit (CPU) – Computergeheugen • Primair geheugen databasebuffers – Volatiel – Kleiner – Sneller • Secundair geheugen databases – Niet-volatiel – Groter – Trager 10
Databasesyteem CPU databasebuffers primair geheugen datastromen Buffergrootte = grootte van een pagina Primaire bestandsorganisatie Secundaire bestandsorganisatie databases secundair geheugen 11
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 12 archieven en back-up
Databasesysteem • Data – Records – Recordtypes – Bestanden – Data vormen een geïntegreerd geheel 13
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 S 01 S 02 S 03 S 04 Vissershuis De balletles Mona Lisa Namiddag te Oostende Monet Degas Da Vinci Ensor 1882 1872 1499 1881 16. 000 8. 500. 000 75. 000 200. 000 Boijmans 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)) 14 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 15
Databasesysteem databaseclient telecommunicatienetwerk DBMS databaseserver 16
Databasesysteem – Datawarehousing – Software voor data-analyse – Rapportgeneratoren 17
Databasesysteem 18
Databasesysteem • Gebruikers (en gebruikersprofielen) – Data-administrator – Database-administrator – Toepassingsontwikkelaar – Eindgebruiker • Gewone eindgebruiker • Geavanceerde eindgebruiker 19
Overzicht • • • 20 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 21
Databasemanagementsysteem • Andere functionaliteit – Delen van dezelfde data – Beveiliging van de data • Tegen ongeoorloofd gebruik • Tegen falen – Optimaal systeemgedrag – Administratie en controle 22
Databasemanagementsysteem DBMS Architectuur Externe laag View 1 View 2 View 3 … Logische laag Interne laag O 1 O 2 O 3 10110… 10101… 01010… 00100… 10011… Fysieke opslag 23
Databasemanagementsysteem • Architectuur (‘drielagen’-architectuur) – Interne laag • Beschrijving van recordtypes – Vaste lengte – Variabele lengte » Domeinwaarden variabele lengte (varchar) » Meerwaardige recordvelden (set(varchar)) » Optionele recordvelden – File header – Recordtype-indicator – Indexen (<veldwaarde, referentie>) 24
Databasemanagementsysteem vaste recordlengte 25 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 A 0 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 V 0=A 01 V 1=Degas V 2=Edgar V 3=Lezen Reizen V 5=1917 V 0=PREFIX V 1=Naam V 2=Voornaam V 3=Hobby V 4=Geboren V 5=Gestorven = Einde_veld = Einde_waarde = Einde_record RECORDTYPE Artiest (Naam: VARCHAR; Voornaam: VARCHAR; Hobby: SET(VARCHAR); OPTIONAL Geboren: INTEGER; OPTIONAL Gestorven: INTEGER) Records met variabele lengte 26
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)) 27
Databasemanagementsysteem – Externe laag • View In COBOL-code: 01 Tentoonstellingsitem. 02 Item. Naam PIC X(30). 02 Schilder PIC X(30). In Java-code: class Schilderij { String Naam; String Schilder; } class Schilder { String Naam; String Voornaam; int Leeftijd. Bij. Sterfte( ); } 28
Databasemanagementsysteem – Mappings • ‘externe/logische’ mappings • ‘logische/interne mapping • (‘externe/externe’ mappings) DBMS Externe laag View 1 View 2 View 3 … Logische laag Interne laag O 1 O 2 O 3 29
Databasemanagementsysteem – Data-onafhankelijkheid • Fysieke data-onafhankelijkheid • Logische data-onafhankelijkheid externe laag conceptuele laag fysische laag 30 logische data-onafhankelijkheid fysieke data-onafhankelijkheid
Overzicht • • • 31 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 32
- Slides: 32