Databases en databasesystemen
description
Transcript of Databases en databasesystemen
Databases en databasesystemenDatabases en databasesystemen
Hoofdstuk 1
Principes van databasesPrincipes van databases
OverzichtOverzicht
• Basisconcepten• Gegevensbeheer door de eeuwen heen• Databasesysteem• Databasemanagementsysteem• Wanneer gebruik je een
databasesysteem?
OverzichtOverzicht
• Basisconcepten• Gegevensbeheer door de eeuwen heen• Databasesysteem• Databasemanagementsysteem• Wanneer gebruik je een
databasesysteem?
BasisconceptenBasisconcepten
• Data = gegeven feitenvoorbeelden‘Rotterdam’, ‘Vissershuis’, ‘Monet’, 1882
• Informatie = data + betekenisvoorbeeld‘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
BasisconceptenBasisconcepten
echte wereld
informatie
bvb. informatie over de inhoud van een wijnkelder
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
… … … … … …
data
BETEKENIS ?
ID Wijn Producent Jaar Flessen Op_dronk
meta-data
OverzichtOverzicht
• Basisconcepten• Gegevensbeheer door de eeuwen heen• Databasesysteem• Databasemanagementsysteem• Wanneer gebruik je een
databasesysteem?
Gegevensbeheer door de eeuwen heenGegevensbeheer 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)
OverzichtOverzicht
• Basisconcepten• Gegevensbeheer door de eeuwen heen• Databasesysteem• Databasemanagementsysteem• Wanneer gebruik je een
databasesysteem?
DatabasesysteemDatabasesysteem
data
DBMS
software
hardware
gebruikers
DatabasesysteemDatabasesysteem
• Hardware– Central Processing Unit (CPU)– Computergeheugen
• Primair geheugen databasebuffers– Volatiel– Kleiner– Sneller
• Secundair geheugen databases– Niet-volatiel– Groter– Trager
DatabasesyteemDatabasesyteem
CPU
primair geheugen
secundair geheugen
databasebuffers
datastromen
databases
Primaire bestandsorganisatie Secundaire bestandsorganisatie
Buffergrootte = grootte van een pagina
DatabasesyteemDatabasesyteem
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
DatabasesysteemDatabasesysteem
• Data– Records– Recordtypes– Bestanden– Data vormen een geïntegreerd geheel
DatabasesysteemDatabasesysteemRECORDTYPE 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))
ID Naam Artiest Periode Waarde Eigenaar
S01 Vissershuis Monet 1882 Boijmans16.000.000S02 De balletles Degas 1872 Louvre8.500.000S03 Mona Lisa Da Vinci 1499 Louvre75.000.000S04 Namiddag te Oostende Ensor 1881 KMSK200.000
Naam Voornaam Geboren
Da Vinci Leonardo 1452Degas Edgar 1834Ensor James 1860Monet Claude 1840
Gestorven
1519191719491926
Naam Plaats Land
Boijmans Rotterdam NederlandLouvre Parijs FrankrijkKMSK Antwerpen België
DatabasesysteemDatabasesysteem
• Software– Databasemanagementsysteem
– Toepassingsprogramma’s– Tools– Communicatiesoftware
Het databasemanagementsysteem is de software-component van een databasesysteem die instaat voor het beheer van de databases
DatabasesysteemDatabasesysteem
DBMS
telecommunicatienetwerk
databaseserver
databaseclient
databaseclient databaseclient
databaseclient
DatabasesysteemDatabasesysteem
– Datawarehousing– Software voor data-analyse– Rapportgeneratoren
DatabasesysteemDatabasesysteem
DatabasesysteemDatabasesysteem
• Gebruikers (en gebruikersprofielen)– Data-administrator– Database-administrator– Toepassingsontwikkelaar– Eindgebruiker
• Gewone eindgebruiker• Geavanceerde eindgebruiker
OverzichtOverzicht
• Basisconcepten• Gegevensbeheer door de eeuwen heen• Databasesysteem• Databasemanagementsysteem• Wanneer gebruik je een databasesysteem?
DatabasemanagementsysteemDatabasemanagementsysteem
• Hoofdfunctionaliteit– Databasedefinitie
• Integriteit– Databasemanipulatie
• Toevoegen• Aanpassen• Verwijderen• Opzoeken
– Databaseconstructie• Opzetten van een database
DatabasemanagementsysteemDatabasemanagementsysteem
• Andere functionaliteit– Delen van dezelfde data– Beveiliging van de data
• Tegen ongeoorloofd gebruik• Tegen falen
– Optimaal systeemgedrag– Administratie en controle
DatabasemanagementsysteemDatabasemanagementsysteem
DBMS
…
Externe laag
Logische laag
Interne laag
10110…00101…
10101…00100…01010…
10011…
View 1 View 2 View 3
O1O2O3
Fysieke opslag
Architectuur
DatabasemanagementsysteemDatabasemanagementsysteem
• 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>)
DatabasemanagementsysteemDatabasemanagementsysteem
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=77STORED_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=60STORED_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
vaste recordlengte
DatabasemanagementsysteemDatabasemanagementsysteem
PREFIX
Naam Voornaam
Geboren
Gestorven
Records met vaste lengte
Records met variabele lengte
V0=A01 V1=Degas V2=Edgar V3=Lezen Reizen V5=1917
V0=PREFIXV1=NaamV2=VoornaamV3=HobbyV4=GeborenV5=Gestorven
= Einde_veld
= Einde_waarde
= Einde_record
1 5737 617
A0 1 D e g a s E d g a r 1 8 3 4 19 1 7
RECORDTYPE Artiest (Naam:CHAR(30); Voornaam:CHAR(20); Geboren:INTEGER; Gestorven:INTEGER)
RECORDTYPE Artiest (Naam:VARCHAR; Voornaam:VARCHAR; Hobby:SET(VARCHAR); OPTIONAL Geboren:INTEGER; OPTIONAL Gestorven:INTEGER)
DatabasemanagementsysteemDatabasemanagementsysteem
– 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))
DatabasemanagementsysteemDatabasemanagementsysteem
– 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( );}
DatabasemanagementsysteemDatabasemanagementsysteem
– Mappings• ‘externe/logische’ mappings• ‘logische/interne mapping• (‘externe/externe’ mappings)
DBMS
…
Externe laag
Logische laag
Interne laag
View 1 View 2 View 3
O1O2O3
DatabasemanagementsysteemDatabasemanagementsysteem
– Data-onafhankelijkheid• Fysieke data-onafhankelijkheid• Logische data-onafhankelijkheid
conceptuelelaag
externe laag
fysische laag
logischedata-onafhankelijkheid
fysiekedata-onafhankelijkheid
OverzichtOverzicht
• 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