GEGEVENSBANKEN
INTRODUCTIE
DATABASE MANAGEMENT SYSTEM (DBMS):
Speciaal ICT systeem om data op te slaan / op te vragen
Systeem bedoeld voor beheren van data
Gebruiker webbrowser webserver DBMS disk
Processen:
o Definitie (soort data)
o Constructie (opslagmedium)
o Manipulatie (opslaan / aanpassen)
o Delen (toegang gebruikers)
DATABANK:
≠ DBMS
¿ gerelateerde data:
o Behoren tot zelfde stukje v/d wereld
o Vb. Facebook data opgeslagen zoals volgers, hobby’s, interesses
Geregistreerde feiten v/e stukje v/d wereld ( geen werkelijke feiten)
Kunnen op versch. manieren worden opgeslagen (vb. papier)
WENSELIJKE EIGENSCHAPPEN DBMS:
Grote hoeveelheden data opslaan & manipuleren
Veel versch. soorten data opslaan
Efficiënt (vb. lange wachttijd voor opslaan, veranderen & bevragen)
Gemakkelijk te gebruiken
Integriteit: data ordelijk blijft
Meerdere gebruikers tegelijk
Beveiligen de data
Persistentie = behoud van data bij systeem fout
⇒ Hoe complexer het systeem, hoe meer data kunnen opslaan
⇒ Combineren van de eigenschappen ¿ UITDAGING
RELATIONELE DBMS:
Data in tabellen:
Tabelnaam Tabelkop
STUDENT
Tabelkolom
Name Student NR Class Major
Tabelrij
Smith 17 1 CS
Brown 8 2 CS
Hoog niveau abstractie:
1
, o RDBMS maakt tabel met header
o Lage abstractie: manueel bestand maken gevoeliger voor fouten
Hoog gebruikersgemak:
o Gebruik van gemeenschappelijke taal:
Structured Query Language (SQL)
Hoge betrouwbaarheid:
o Goed gedefinieerd gedrag bij:
Hard- & software fouten
vb. programma crasht bij toevoegen informatie
vb. schijf die kapot gaat tijdens schrijven informatie
2 programma’s tegelijk naar database schrijven
Een programma informatie schrijft die in strijd is met de vereisten die door
databaseprogrammeur gespecifieerd zijn
Efficiënt ⇒ eisen gerespecteerd worden
INTRODUCTIE TOT RELATIONELE DATABASES
RELATIONELE DATABASE:
Tabel ¿ Relatie
Kolom ¿ Attribuut
Rij ¿ Tupel
Commando’s = queries Data Queries Language (DQL)
Data Definition Language (DDL):
CREATE TABLE Student (
Tabelnaam Kolomnaam
Naam VARCHAR(20)
Student-Nr INTEGER Geheel getal Type data: max 20
Klas INTEGER karakters
Richting CHAR(2)
);
Data Manipulation Language (DML):
Rij van
INSERT INTO Student VALUES (“Smid”, 17, 1, “CS”); data
Data Query Language (DQL)
SELECT * FROM Student; SELECT Naam FROM Student
CONCEPTUEEL MODEL VS. LOGISCH MODEL:
Relationele database opslaan van tabellen:
Belangrijke implementatie keuzes nodig:
o Vb. Hoe verbanden tss tabellen opslaan?
o Vb. Extra kolommen met identificaties?
Keuze voor tabellen bevat in een logisch data model:
o Specificatie van welke tabellen in DB
2
, o Geen info over fysieke opslag details
NIVEAUS VAN ABSTRACTIE VAN MODELLEN:
Fysieke modellen laag niveau:
o Details van dataopslag en bestandorganisatie van tabellen, specifiek voor een
bepaalde RDBMS
Logische modellen midden niveau:
o Overzicht v/d tabellen i/d database, niet specifiek voor bepaalde RDBMS
Conceptuele modellen hoog niveau:
o Model v/d data die in tabellen moet bevat worden
PRIMAIRE SLEUTEL / PRIMARY KEY:
Speciale eigenschap aan kolom geven:
o Waarden in kolom gebruikt worden om rij te identificeren
Primary key onderstreept weergegeven in tabel
SQLite:
CREATE TABLE Student (
Naam VARCHAR(20)
Student-Nr INTEGER
Klas INTEGER
Richting CHAR(2)
PRIMARY KEY (Nummer) 2 rijen met zelfde waarde voor Nummer
niet geaccepteerd door RDBMS
);
VERWIJSSLEUTEL / FOREIGN KEY:
Speciale eigenschap:
o Voor een attribuut in tabel 1 mogen alleen waarde voorkomen die in tabel 2
voorkomen
SQLite:
CREATE TABLE Student (
Naam VARCHAR(20)
Student-Nr INTEGER
Klas INTEGER
Richting CHAR(2)
FOREIGN KEY (ProfNummer)REFERENCES Professoren(Nummer)
);
In kolom ProfNummer enkel waarden afkomstig van Nummer
CONSTRAINTS:
Randvoorwaarden opgegeven door programmeur v/d database waar de toestanden van
database altijd aan moeten voldoen
Doel randvoorwaarden?: kwaliteit data bewaren
3
, RDBMS zorgt ervoor dat de constrains voldaan zijn commando dat niet mag wordt
geweigerd
Vraagt extra rekenwerk om constrains te checken
EERSTE INTRODUCTIE TOT SQL DQL:
SQL DQL:
Taal die precies beschrijft welke data uit relationele database gehaald moet worden
RDBMS precies uit database halen wat volgens statement opgehaald moet worden (niet
meer, niet minder)
Een statement in SQL DQL = query
Nauw verbonden met Logica: bepalen welke rijen terug gegeven worden condities als
logische expressie geëvalueerd op alle rijen
Uitvoerige notatie voor beschrijven van complexe queries over meerdere tabellen
RDBMS bepaald exact en betrouwbaar welke resultaten moeten w terug gegeven
DDL DQL OP ÉÉN TABEL:
Algemene notatie:
o SELECT Attributen FROM Tabel WHERE voorwaarde;
Voorbeelden:
o Alle attributen:
SELECT * FROM Professoren;
o Eén attribuut:
SELECT Nummer FROM Professoren;
o Voorwaarde op 1 attribuut:
SELECT Nummer FROM Professoren WHERE Voornaam = “Siegfried”;
o Voorwaarde op 2 attributen (EN):
SELECT Nummer FROM Professoren WHERE Voornaam = “Siegfried” AND
Achternaam = “Nijssen”;
o Voorwaarde op 2 attributen (OF):
SELECT Nummer FROM Professoren WHERE Voornaam = “Siegfried” OR
Voornaam = “Tom”;
o Voorwaarde op 1 attribuut (ongelijkheid):
SELECT Nummer FROM Professoren WHERE Voornaam <> “Siegfried”;
NAAR FORMELERE DEFINITIES VAN QUERIES EN DATA MODELLEN:
RELATIONEEL SCHEMA:
Formele notatie: gebruikt in bewijzen en definities
Definitie schema van een relatie: R( A 1 , … , A n )
Relatienaam gevolgd door attributen
Voorbeeld:
o DEPARTEMENT(Dname, Dnumber, Mgr_ssn, Mgr_start_data)
Elk attribuut heeft een domein dom ( Ai ), van een verzameling van waarden
4
INTRODUCTIE
DATABASE MANAGEMENT SYSTEM (DBMS):
Speciaal ICT systeem om data op te slaan / op te vragen
Systeem bedoeld voor beheren van data
Gebruiker webbrowser webserver DBMS disk
Processen:
o Definitie (soort data)
o Constructie (opslagmedium)
o Manipulatie (opslaan / aanpassen)
o Delen (toegang gebruikers)
DATABANK:
≠ DBMS
¿ gerelateerde data:
o Behoren tot zelfde stukje v/d wereld
o Vb. Facebook data opgeslagen zoals volgers, hobby’s, interesses
Geregistreerde feiten v/e stukje v/d wereld ( geen werkelijke feiten)
Kunnen op versch. manieren worden opgeslagen (vb. papier)
WENSELIJKE EIGENSCHAPPEN DBMS:
Grote hoeveelheden data opslaan & manipuleren
Veel versch. soorten data opslaan
Efficiënt (vb. lange wachttijd voor opslaan, veranderen & bevragen)
Gemakkelijk te gebruiken
Integriteit: data ordelijk blijft
Meerdere gebruikers tegelijk
Beveiligen de data
Persistentie = behoud van data bij systeem fout
⇒ Hoe complexer het systeem, hoe meer data kunnen opslaan
⇒ Combineren van de eigenschappen ¿ UITDAGING
RELATIONELE DBMS:
Data in tabellen:
Tabelnaam Tabelkop
STUDENT
Tabelkolom
Name Student NR Class Major
Tabelrij
Smith 17 1 CS
Brown 8 2 CS
Hoog niveau abstractie:
1
, o RDBMS maakt tabel met header
o Lage abstractie: manueel bestand maken gevoeliger voor fouten
Hoog gebruikersgemak:
o Gebruik van gemeenschappelijke taal:
Structured Query Language (SQL)
Hoge betrouwbaarheid:
o Goed gedefinieerd gedrag bij:
Hard- & software fouten
vb. programma crasht bij toevoegen informatie
vb. schijf die kapot gaat tijdens schrijven informatie
2 programma’s tegelijk naar database schrijven
Een programma informatie schrijft die in strijd is met de vereisten die door
databaseprogrammeur gespecifieerd zijn
Efficiënt ⇒ eisen gerespecteerd worden
INTRODUCTIE TOT RELATIONELE DATABASES
RELATIONELE DATABASE:
Tabel ¿ Relatie
Kolom ¿ Attribuut
Rij ¿ Tupel
Commando’s = queries Data Queries Language (DQL)
Data Definition Language (DDL):
CREATE TABLE Student (
Tabelnaam Kolomnaam
Naam VARCHAR(20)
Student-Nr INTEGER Geheel getal Type data: max 20
Klas INTEGER karakters
Richting CHAR(2)
);
Data Manipulation Language (DML):
Rij van
INSERT INTO Student VALUES (“Smid”, 17, 1, “CS”); data
Data Query Language (DQL)
SELECT * FROM Student; SELECT Naam FROM Student
CONCEPTUEEL MODEL VS. LOGISCH MODEL:
Relationele database opslaan van tabellen:
Belangrijke implementatie keuzes nodig:
o Vb. Hoe verbanden tss tabellen opslaan?
o Vb. Extra kolommen met identificaties?
Keuze voor tabellen bevat in een logisch data model:
o Specificatie van welke tabellen in DB
2
, o Geen info over fysieke opslag details
NIVEAUS VAN ABSTRACTIE VAN MODELLEN:
Fysieke modellen laag niveau:
o Details van dataopslag en bestandorganisatie van tabellen, specifiek voor een
bepaalde RDBMS
Logische modellen midden niveau:
o Overzicht v/d tabellen i/d database, niet specifiek voor bepaalde RDBMS
Conceptuele modellen hoog niveau:
o Model v/d data die in tabellen moet bevat worden
PRIMAIRE SLEUTEL / PRIMARY KEY:
Speciale eigenschap aan kolom geven:
o Waarden in kolom gebruikt worden om rij te identificeren
Primary key onderstreept weergegeven in tabel
SQLite:
CREATE TABLE Student (
Naam VARCHAR(20)
Student-Nr INTEGER
Klas INTEGER
Richting CHAR(2)
PRIMARY KEY (Nummer) 2 rijen met zelfde waarde voor Nummer
niet geaccepteerd door RDBMS
);
VERWIJSSLEUTEL / FOREIGN KEY:
Speciale eigenschap:
o Voor een attribuut in tabel 1 mogen alleen waarde voorkomen die in tabel 2
voorkomen
SQLite:
CREATE TABLE Student (
Naam VARCHAR(20)
Student-Nr INTEGER
Klas INTEGER
Richting CHAR(2)
FOREIGN KEY (ProfNummer)REFERENCES Professoren(Nummer)
);
In kolom ProfNummer enkel waarden afkomstig van Nummer
CONSTRAINTS:
Randvoorwaarden opgegeven door programmeur v/d database waar de toestanden van
database altijd aan moeten voldoen
Doel randvoorwaarden?: kwaliteit data bewaren
3
, RDBMS zorgt ervoor dat de constrains voldaan zijn commando dat niet mag wordt
geweigerd
Vraagt extra rekenwerk om constrains te checken
EERSTE INTRODUCTIE TOT SQL DQL:
SQL DQL:
Taal die precies beschrijft welke data uit relationele database gehaald moet worden
RDBMS precies uit database halen wat volgens statement opgehaald moet worden (niet
meer, niet minder)
Een statement in SQL DQL = query
Nauw verbonden met Logica: bepalen welke rijen terug gegeven worden condities als
logische expressie geëvalueerd op alle rijen
Uitvoerige notatie voor beschrijven van complexe queries over meerdere tabellen
RDBMS bepaald exact en betrouwbaar welke resultaten moeten w terug gegeven
DDL DQL OP ÉÉN TABEL:
Algemene notatie:
o SELECT Attributen FROM Tabel WHERE voorwaarde;
Voorbeelden:
o Alle attributen:
SELECT * FROM Professoren;
o Eén attribuut:
SELECT Nummer FROM Professoren;
o Voorwaarde op 1 attribuut:
SELECT Nummer FROM Professoren WHERE Voornaam = “Siegfried”;
o Voorwaarde op 2 attributen (EN):
SELECT Nummer FROM Professoren WHERE Voornaam = “Siegfried” AND
Achternaam = “Nijssen”;
o Voorwaarde op 2 attributen (OF):
SELECT Nummer FROM Professoren WHERE Voornaam = “Siegfried” OR
Voornaam = “Tom”;
o Voorwaarde op 1 attribuut (ongelijkheid):
SELECT Nummer FROM Professoren WHERE Voornaam <> “Siegfried”;
NAAR FORMELERE DEFINITIES VAN QUERIES EN DATA MODELLEN:
RELATIONEEL SCHEMA:
Formele notatie: gebruikt in bewijzen en definities
Definitie schema van een relatie: R( A 1 , … , A n )
Relatienaam gevolgd door attributen
Voorbeeld:
o DEPARTEMENT(Dname, Dnumber, Mgr_ssn, Mgr_start_data)
Elk attribuut heeft een domein dom ( Ai ), van een verzameling van waarden
4