E-Shop Expo: Hoe Wijnvoordeel haar conversie verhoogt dmv personalisatie van web en e-mail
TRAINING & CONSULTING Basisopleiding informatica - … · 3 ____ERD diagram ... Dmv een massa...
Transcript of TRAINING & CONSULTING Basisopleiding informatica - … · 3 ____ERD diagram ... Dmv een massa...
TRAINING & CONSULTING Basisopleiding informatica - module 4ABIS Training & [email protected]
ABIS 2013, 2014
Document nummer: 1660_02n.fm19 augustus 2014
Commentaren over deze publicatie kan u sturen naar:ABIS Training & Consulting, Postbus 220, B-3000 Leuven, BelgiëTel.: (+32)-16-245610, Fax: (+32)-16-245639
© Copyright ABIS N.V.
B iii
I
V
V
1
2
3
R
1
2
3
4
27
an een relationele data structuur________________________ 2829
twerp 30satie 31
en tabellen: sleutels _________________________________ 35
_________________________________________________ 38
41
e: Overzicht ________________________________________ 42
ie ________________________________________________ 4343
e 43aarden 44rdwaarden 45
ngen opleggen 46
__________________________________________________ 47
49
uery? _____________________________________________ 50
ecteren: FROM______________________________________ 51
ergeven: SELECT___________________________________ 52olommen tonen in het resultaat? 52
asisopleiding informatica - module 4
NHOUDSTAFEL
OORWOORD V
AN BESTAND NAAR TABEL 1
____Van bestand naar tabel___________________________________________2
____Definitie Database_______________________________________________3
____Hoe data structureren ____________________________________________43.1 Hiërarchische structuur 53.2 Netwerk-structuur 73.3 Relationele structuur 93.4 NoSQL 12
ELATIONAL DATABASE MANAGEMENT SYSTEMS 15
____Wat is een Database Management System (DBMS) ___________________16
____Taken van het RDBMS (relationele DBMS) __________________________17
____Overzicht van RDBMS produkten __________________________________183.1 DB2 193.2 Oracle 203.3 MySQL 213.4 SQL Server / MS SQL 223.5 Access 23
____SQL - Structured Query Language _________________________________24
NORMALISATIE
1 ____Ontwerpen v1.1 Analyse1.2 Basison1.3 Normali
2 ____Relaties tuss
3 ____ERD diagram
TABELLEN
1 ____Tabeldefiniti
2 ____Kolomdefinit2.1 Naam2.2 Datatyp2.3 NULL w2.4 Standaa2.5 Beperki
3 ____Integriteit __
SQL
1 ____Wat is een q
2 ____Tabellen sel
3 ____Resultaat we3.1 Welke k
B iv
4
5
6
7
AT
1
2
3
O
1
2
_________________________________________________ 102
_________________________________________________ 104
_________________________________________________ 105 - FROM 106 - Basiscondities 107 - Logische operatoren 108 - IN en BETWEEN 109 - LIKE 110 - IS NULL 111 BY 112de opdrachten 113
114
asisopleiding informatica - module 4
3.2 Berekende waarden weergeven 533.3 Aliassen 543.4 DISTINCT 55
____Gegevens Filteren: WHERE ______________________________________564.1 Basiscondities 574.2 Logische operatoren 604.3 IN 644.4 BETWEEN 664.5 LIKE 684.6 IS NULL 71
____Sorteren: ORDER BY ___________________________________________74
____Tabellen koppelen: JOIN_________________________________________786.1 INNER JOIN 796.2 LEFT en RIGHT OUTER JOIN 816.3 FULL OUTER JOIN 83
____Samenvatting _________________________________________________84
PPENDIX A:RAINING DATABASE 85
____ERD - Diagram ________________________________________________86
____Tabeldefinities_________________________________________________872.1 Companies 882.2 Persons 892.3 Courses 902.4 Sessions 912.5 Enrolments 92
____Inhoud van de tabellen __________________________________________93
PDRACHTEN 99
____Van bestand naar tabel_________________________________________100
____Database Management Systemen ________________________________101
3 ____Normalisatie
4 ____Tabellen___
5 ____SQL ______5.1 SELECT5.2 WHERE5.3 WHERE5.4 WHERE5.5 WHERE5.6 WHERE5.7 ORDER5.8 Gemeng5.9 Joins
B v
V
Insede
Inop
Q
DzouilozuS
asisopleiding informatica - module 4
OORWOORD
deze module bespreken we hoe data opgeslagen en beheerd kan worden in databa-s. We overlopen enkele manieren waarop data gestructureerd kan worden, waarbij focus vooral zal liggen op relationele databases.
een 2de deel van de cursus maken we kennis met SQL om gegevens uit de database te halen. Dmv een massa oefeningen maken we ons deze taal eigen.
ua oefenomgeving zal er vooral met MS-ACCESS gewerkt worden.
atabase Management Systemen hebben niet enkel als taak om gegevens op te slaandat we ze gemakkelijk kunnen opzoeken of manipuleren. Ook beheerstaken worden
tgevoerd. In deze module introduceren we enkele concepten, zoals performantie,cking, versioning, database herstel, auditing en monitoring. In de volgende modulellen enkele van deze zaker dieper worden bekeken in het kader van Oracle en SQL
erver.
ABIS Training & 1
Van b
Consulting
estand naar tabel
Objectieven :
• Waarom een database?
• Definitie database
• Hoe data structureren
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 2
Van bestand naar tabel 1
Gegevens kunnen op verscheidene manieren bewaard worden:
• Bestand
• Spreadsheet
•
V nsistentie, r
asisopleiding informatica - module 4
Database
oor- en nadelen (zoeken, filteren, beheer, beveiliging, coedundantie, formattering, gebruik door applicaties,...)?
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 3
Definitie Database 2
“ Een database is een georganiseerde collectie van onderling gerelateerde data elementen die gemakkelijk te verwerken is
asisopleiding informatica - module 4
door één of meerdere applicaties voor het terugvinden en beheren van informatie ”
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 4
Hoe data structureren 3
Meerdere manieren om data in een database te structureren
• Hiërarchisch
• Netwerk
•
•
•
V egd worden e
asisopleiding informatica - module 4
Relationeel
NoSQL
...
erschil zit in de manier waarop de links tussen de data geln deze data ondervraagd kan worden.
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 5
Hiërarchische structuur 3.1
Oudste vorm van database
Boomstructuur: Ouder-kind relatie
E -aantal a
Im (b.v. FAT)
asisopleiding informatica - module 4
lk record in een database kan weer verwijzen naar een nndere records
plementaties: IMS, Windows Registry, bestandssysteem
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 6
Hiërarchische structuur: voor- en nadelen
Voordelen:
• gemakkelijk te ontwerpen
• goedkoop om te onderhouden
•
•
• en als de
N
•
• samenhang
•
•
•
asisopleiding informatica - module 4
gemakkelijk te beveiligen
gelijkaardig aan niet-elektronische data-opslag
gemakkelijk doorzoeken, maar enkel indien gesorteerd zoekactie compatibel is met de sortering
adelen:
kind kan maar 1 ouder hebben
één boom per database, takken hebben onderling geen
niet flexibel voor meer complexe verwijzingen
niet alle data is intrinsiek hiërarchisch
navigatie is moeilijk (niet-lineair)
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 7
Netwerk-structuur 3.2
Geïntroduceerd midden jaren ‘60
Gelijkaardig aan de hiërarchische structuur
V mogelijk
C
Im
asisopleiding informatica - module 4
erschil: meerdere ouders per kind en links tussen takken
reëert many-to-many relaties
plementaties: IDMS, WAN en LAN systemen
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 8
Netwerk-structuur: voor- en nadelen
Voordelen:
• meerdere relatie-types kunnen gebruikt worden
• gemakkelijke datatoegang
•
•
• del
N
•
• t model
•
asisopleiding informatica - module 4
data-integriteit verzekerd
data onafhankelijk van het achterliggende systeem
efficiënter dan het corresponderende hiërarchische mo
adelen:
complex systeem (achter de schermen)
moeilijk om structurele wijzigingen door te voeren in he
onoverzichtelijk
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 9
Relationele structuur 3.3
Edgar Codd, begin jaren ‘70
Gebaseerd op relationele algebra (“verzamelingenleer”)
G ur”
E elateerd zijn
T (“keys”)
O
Im ...
asisopleiding informatica - module 4
een echte hiërarchie meer tussen de data: “platte structu
lke rij van een tabel bevat gegevens die samenhoren, ger
abellen kunnen aan mekaar gelinkt zijn via zgn. sleutels
ne-to-many relaties
plementaties: Oracle, Sql Server, Access, DB2, MySQL,
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 10
Relationele structuur - Voorbeeld
H
id titel duur dagprijs
1 SQL 1 375
2 JAVA 4 400
asisopleiding informatica - module 4
oe personen en sessies linken?
id datum locatie cursusnr
1 04-11-2013 Abis Leuven 1
2 23-09-2013 Abis Leuven 2
3 18-11-2013 Min Financiën 2
id voornaam familienaam
1 Mark Stessens
2 Jef Goris
3 An Smets
4 Mieke Schoofs
5 Jos Van Hoof
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 11
Relationele structuur: voor- en nadelen
Voordelen:
• eenvoudige concepten, met theoretische basis
• geen redundante data
•
•
N
•
•
•
•
• igenschap
asisopleiding informatica - module 4
niet navigationeel
goede security (gebaseerd op inhoud van de data)
adelen:
verlies in performantie door doorgedreven normalisatie
kolom kan enkel gelijkaardige data bevatten
moeilijk om structuur van tabel te wijzigen achteraf
(bv kolom middenin toevoegen)
bewaren van complexere gegevensstructuren?
gebruik van NULL “waarden” bij afwezigheid van een e
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 12
NoSQL 3.4
“Not only SQL”
Beweging gestart in 2009
B
V
Z data
Im
asisopleiding informatica - module 4
edoeling: moderne web-scale database, Big Data
rijer gestructureerd, open-source, gedistribueerd
owel gebruikt voor het opslaan van “gewone” relationele
als van documenten en andere structuren (b.v. JSON)
plementaties: Hadoop/Hbase, MongoDB,...
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 13
NoSQL: voor- en nadelen
Voordelen:
• dynamisch bijvoegen van nieuwe attributen
• ook niet-atomaire data kan makkelijk opgeslagen worden
•
•
•
•
N
•
• ls,...
•
asisopleiding informatica - module 4
eenvoudige query-interface
directere “vertaling” tussen data en applicatie
snel
efficiënter gebruik van geheugen
adelen:
“TE” vrij?
geen standaardisatie: heel veel verschillende types, too
geen garanties van data-consistentie
Van bestand naar tabel
1. Van bestand naar tabel2. Definitie Database3. Hoe data structureren
B ABIS 14
asisopleiding informatica - module 4ABIS Training & 15
RelatiManag
MS
Consulting
onal Database ement Systems
Objectieven :
• Verschil tussen database en DB
• Taken van het DBMS
• Overzicht van produkten
• Wat is SQL?
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 16
Wat is een Database Management System (DBMS) 1
Vorig hoofdstuk: LOGISCH zicht op data-opslag
Fysiek zit data nog steeds in bestanden
“ er, en een b
D lijk” maken
asisopleiding informatica - module 4
Database Management System is een tool voor databeheuffer tussen data en programma’s / gebruikers”
BMS neemt ook andere taken op zich dan data “toeganke
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 17
Taken van het RDBMS (relationele DBMS) 2
Logische datastructuur toegankelijk maken, onafhankelijk van de fysieke opslag / toegangsmethode
Integriteit (= consistentie) van de data bewaken
G
P
B
D
asisopleiding informatica - module 4
elijktijdige toegang maximaliseren
erformantie verhogen door optimalisatie
eveiliging van data (autorisaties)
ataverlies vermijden door o.a. backup / recovery
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 18
Overzicht van RDBMS produkten 3
• IBM: DB2 (z/OS, LUW), Informix
• Oracle: Oracle, MySQL
• Microsoft: Access, SQL Server (MS SQL)
•
•
•
V
•
•
•
•
•
G
asisopleiding informatica - module 4
Ingres, PostGreSQL
Sybase (SAP): Adaptive Server Enterprise, IQ
Teradata
erschillen op basis van
OS waarop de database draait
waar zitten de files - geheugengebruik
soort / hoeveelheid data - concurrency - optimalisatie
beheerstaken
tools
elijkenissen: gebruiken gelijkaardige interface (SQL)
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 19
DB2 3.1
Eerste versie 1983, nieuwste versie (11) oktober 2013
Drie verschillende “produkten” op basis van het OS
•
• s
•
M ysteem)
D
E nt
V
T
asisopleiding informatica - module 4
DB2 for z/OS: Mainframe
DB2 for LUW: Linux, Unix (AIX, Solaris, HP-UX), Window
DB2 for iSeries: AS400
aximale tabelgrootte: quasi onbeperkt (afh. v. bestandss
uur qua licenties - gratis versie voor “thuis”
xtreem krachtig bij complexere systemen, zeer performa
ooral gebruikt door grote (financiële) bedrijven
ools: SPUFI, QMF, Data Studio, ...
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 20
Oracle 3.2
Eerste versie 1979, nieuwste versie (12c) juni 2013
OS: Windows, Linux, Solaris, AIX, HP-UX
M
D
E nt
V
T
asisopleiding informatica - module 4
aximale tabelgrootte: ongelimiteerd
uur qua licenties - gratis versie voor “thuis”
xtreem krachtig bij complexere systemen, zeer performa
ooral populair bij grotere bedrijven
ools: SQL Developer, Apex, SQL*Plus, Oracle Reports,...
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 21
MySQL 3.3
Eerste versie 1995, nieuwste versie (5.6) juli 2013
OS: alle (ook b.v. Symbian, BSD, MacOS, ...)
O
M ysteem)
E
V
T ...
asisopleiding informatica - module 4
pen source - goedkoop (of zelfs gratis)
ax tabelgrootte: ongelimiteerd (limiet van het bestandss
envoudige set-up voor kleinere databases
ooral populair bij kleinere bedrijven, startups,
bedrijven die web applicaties ontwikkelen
ools: MySQL Workbench, PHPmyadmin, commandolijn,
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 22
SQL Server / MS SQL 3.4
Eerste versie 1984 (Sybase), 1992 (Microsoft),
nieuwste versie “SQL Server 2012” (april 2012)
O
M
G , s
G
T
asisopleiding informatica - module 4
S: Windows
aximale tabelgrootte: 16 TB
oedkoper dan Oracle of DB2, maar beperkter qua groottechaalbaarheid, ...
ebruikers: Windows / Microsoft-minded bedrijven, ...
ools: SQL Server Management Studio, Visual Studio,
Reporting Services,...
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 23
Access 3.5
Eerste versie 1992, nieuwste versie “MS Access 2013” (januari 2013)
OS: Windows
T
E
•
•
•
•
E
asisopleiding informatica - module 4
ool + DBMS in één product
(goede geïntegreerde grafische gebruikersinterface)
en echt DBMS?
maximale bestands-grootte: 2GB
geen triggers, functies, procedures,...
beperkt aantal gelijktijdige gebruikers
niet client-server gebaseerd, maar file-server
erder te gebruiken voor kleine toepassingen
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 24
SQL - Structured Query Language 4
Taal waarmee relationele data “aangesproken” wordt
Oorspronkelijk SEQUEL: “Structured English QUEry Language”
4
IS
D
U finitie
asisopleiding informatica - module 4
GL - descriptief en declaratief -> gemakkelijk te schrijven
O standaard voor alle RDBMS produkten
ialecten!
niforme taal voor zowel data manipulatie als structuurde
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 25
SQL - onderdelen
DQL: Data Query Language
• select
D
•
•
•
•
•
D
•
•
•
•
asisopleiding informatica - module 4
ML: Data Manipulation Language
insert
update
delete
merge
truncate
DL: Data Definition Language
create
alter
drop
rename
Relational Database Management Systems
1. Wat is een Database Ma-nagement System (DBMS)
2. Taken van het RDBMS (rela-tionele DBMS)
3. Overzicht van RDBMS pro-dukten
4. SQL - Structured Query Lan-guage
B ABIS 26
SQL - onderdelen (vervolgd)
DCL: Data Control Language
• grant
• revoke
T
•
•
•
•
C
•
•
•
asisopleiding informatica - module 4
CL: Transaction Control Language
commit
rollback
savepoint
lock
LIENT - SERVER
connect
call
prepare
ABIS Training & 27
Norm
atabase structuur
len
Consulting
alisatie
Objectieven :
• Ontwerpen van een relationele d
• ERD diagrammen
• Hoe relaties leggen tussen tabel
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 28
Ontwerpen van een relationele data structuur 1
Data verspreid over meerdere tabellen
Tabel:
•
•
•
T
•
•
•
•
• enis wel!)
asisopleiding informatica - module 4
vast aantal kolommen
variabel aantal rijen
één relatie tussen de gegevens (= vaste betekenis)
abel:
alle gegevens worden voorgesteld door waarden
“atomaire” waarden (geen lijsten)
geen dubbele rijen
volgorde van rijen niet belangrijk
volgorde van kolommen niet belangrijk (maar hun betek
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 29
Analyse 1.1
Welke gegevens moeten er allemaal in de tabellen komen? Vb.:
asisopleiding informatica - module 4
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 30
Basisontwerp 1.2
Zet alle gegevens in één grote tabel op basis van de betekenis
W -problemen g
titel duur datum locatie persoon persoons-gegevens
bedrijf bedrijfsgegevens
D unstlaan
D achecolaan
D angerbruggestraat
S unstlaan
O achecolaan
J angerbruggestraat
asisopleiding informatica - module 4
ijzigingen (insert, update, delete, ...) kunnen consistentieeven in deze vorm --> NORMALISEREN
B2 3 02/03/2013 Abis Leuven Stessens Nieuwstraat MinFinanciën K
B2 3 02/03/2013 Abis Leuven Smets Bondgenotenlaan Belfius P
B2 3 05/05/2013 AbisWoerden Goris Lippenslaan Honda L
QL 1 15/08/2013 Min Financiën Schoofs Lippenslaan MinFinanciën K
racle 3 05/11/2013 Abis Leuven Smets Bondgenotenlaan Belfius P
ava 4 05/11/2013 Abis Leuven Van Hoof Steenstraat Honda L
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 31
Normalisatie 1.3
Stap 1: Cursussen - Inschrijvingen (versie 1)
titel duur
DB2 3
edrijfsgegevens
D unstlaan
D achecolaan
D ngerbruggestraat
S unstlaan
O achecolaan
J ngerbruggestraat
asisopleiding informatica - module 4
Oracle 3
SQL 1
Java 4
titel datum locatie persoon persoonsgegevens bedrijf b
B2 02/03/2013 Abis Leuven Stessens Nieuwstraat MinFinanciën K
B2 02/03/2013 Abis Leuven Smets Bondgenotenlaan Belfius P
B2 05/05/2013 AbisWoerden Goris Lippenslaan Honda La
QL 15/08/2013 Min Financiën Schoofs Lippenslaan MinFinanciën K
racle 05/11/2013 Abis Leuven Smets Bondgenotenlaan Belfius P
ava 05/11/2013 Abis Leuven Van Hoof Steenstraat Honda La
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 32
Normalisatie
Stap 2: Personen (versie 1) - inschrijvingen (versie 2)
persoon persoonsgegevens bedrijf bedrijfsgegevens
Stessens Nieuwstraat Min Financiën Kunstlaan
S
G
S
V
D
D
D
S
O
J
asisopleiding informatica - module 4
mets Bondgenotenlaan Belfius Pachecolaan
oris Lippenslaan Honda Langerbruggestraat
choofs Lippenslaan Min Financiën Kunstlaan
an Hoof Steenstraat Honda Langerbruggestraat
titel datum locatie persoon
B2 02/03/2013 Abis Leuven Stessens
B2 02/03/2013 Abis Leuven Smets
B2 05/05/2013 Abis Woerden Goris
QL 15/08/2013 Min Financiën Schoofs
racle 05/11/2013 Abis Leuven Smets
ava 05/11/2013 Abis Leuven Van Hoof
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 33
Normalisatie
Stap 3: Sessies - Inschrijvingen (finale versie)
titel datum locatie titel datum persoon
DB2 02/03/2013 Abis Leuven DB2 02/03/2013 Stessens
D
S
O
J
asisopleiding informatica - module 4
B2 05/05/2013 Abis Woerden DB2 02/03/2013 Smets
QL 15/08/2013 Min Financiën DB2 05/05/2013 Goris
racle 05/11/2013 Abis Leuven SQL 15/08/2013 Schoofs
ava 05/11/2013 Abis Leuven Oracle 05/11/2013 Smets
Java 05/11/2013 Van Hoof
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 34
Normalisatie
Stap 4: Personen (finale versie) - Bedrijven
persoon persoonsgegevens bedrijf bedrijf bedrijfsgegevens
Stessens Nieuwstraat Min Financiën Min Financiën Kunstlaan
S an
G ggestraat
S steenweg
V
asisopleiding informatica - module 4
mets Bondgenotenlaan Belfius Belfius Pachecola
oris Lippenslaan Honda Honda Langerbru
choofs Lippenslaan Min Financiën KBC Brusselse
an Hoof Steenstraat Honda
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 35
Relaties tussen tabellen: sleutels 2
Primaire sleutel (primary key, PK) = kolom die elke rij in de tabel op een unieke wijze identificeert
• elke waarde is verschillend
•
•
•
• elfs
R die verwijst n
• e PK
•
A egriteit van d
asisopleiding informatica - module 4
waarde mag niet leeg (NULL) zijn
(max) 1 PK per tabel
gedefinieerd op 1 of meerdere kolommen
vaak een artificieel identificatienummer, dat eventueel zautomatisch verhoogd wordt
efererende sleutel (foreign key, FK) = kolom in een tabel aar een primaire sleutel in een andere (of dezelfde) tabel
moet dezelfde definitie (behalve de naam) hebben als dwaarnaar hij verwijst
tabel kan meerdere FKs bevatten
ls deze sleutels gedefinieerd zijn, houdt het DBMS de inte gegevens en hun samenhang in de gaten!
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 36
Relaties tussen tabellen
M
persoon persoonsgegevens bedrijf bedrijf bedrijfsgegevens
Stessens Nieuwstraat Min Financiën Min Financiën Kunstlaan
Smets Bondgenotenlaan Belfius Belfius Pachecolaan
Goris Lippenslaan Honda Honda Langerbruggestraat
esteenweg
drijfsgegevens
nstlaan
checolaan
ngerbruggestraat
sselsesteenweg
asisopleiding informatica - module 4
et een artificiële sleutel:
Schoofs Lippenslaan Min Financiën KBC Brussels
Van Hoof Steenstraat Honda PK
FK
persoon persoonsgegevens bedrijfsnr bedrijfsnr bedrijf be
Stessens Nieuwstraat 1 1 Min Financiën Ku
Smets Bondgenotenlaan 2 2 Belfius Pa
Goris Lippenslaan 3 3 Honda La
Schoofs Lippenslaan 1 4 KBC Bru
Van Hoof Steenstraat 3 PK
Janssens Kerskstraat NULL
FK
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 37
Relaties - JOINS
JOIN = samenvoegen van 2 of meerdere tabellen op basis van hun refererende en primaire sleutels
M e FK en/of n
persoon persoonsgegevens bedrijfnr bedrijf bedrijfsgegevens
asisopleiding informatica - module 4
eerdere types JOINs, in verband met NULL waarden in diet voorkomende waarden van de PK in de FK
Stessens Nieuwstraat 1 Min Financiën Kunstlaan
Smets Bondgenotenlaan 2 Belfius Pachecolaan
Goris Lippenslaan 3 Honda Langerbruggestraat
Schoofs Lippenslaan 1 Min Financien Kunstlaan
Van Hoof Steenstraat 3 Honda Langerbruggestraat
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 38
ERD diagram 3
ERD = Entiteit - Relatie Diagram
Documenteert de relatie tussen de tabellen op een grafische manier
O
T keerd
V
asisopleiding informatica - module 4
ok gebruikt tijdens de ontwerpfase van de database
ools bestaan om ERDs te vertalen naar tabellen en omge
erschillende tekenmanieren: UML, Chen, Bachmann, ...
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 39
ERD - UML
UML = Unified Modeling Language
Kent verschillende diagrammen, waaronder het klasse diagram
M
asisopleiding informatica - module 4
S-Access gebruikt een soortgelijk type diagram
Normalisatie
1. Ontwerpen van een relatio-nele data structuur
2. Relaties tussen tabellen: sleutels
3. ERD diagram
B ABIS 40
asisopleiding informatica - module 4ABIS Training & 41
Tabel
men
Consulting
len
Objectieven :
• Tabellen definiëren
• Wat zijn NULL-waarden
• Data-integriteit - sleutels
• Beperkingen opleggen op kolom
Tabellen
1. Tabeldefinitie: Overzicht2. Kolomdefinitie3. Integriteit
B ABIS 42
Tabeldefinitie: Overzicht 1
Tabel bestaat uit meerdere kolommen
Elke kolom gedefinieerd door:
•
•
•
•
•
S
H lete
asisopleiding informatica - module 4
naam
datatype
NULLs toegelaten?
standaardwaarde (optioneel)
beperkingen (optioneel)
leutels (PK en FK) zijn een speciale vorm van beperking
oe integriteit bewaren -> wat te doen bij insert/update/de
Tabellen
1. Tabeldefinitie: Overzicht2. Kolomdefinitie3. Integriteit
B ABIS 43
Kolomdefinitie 2
Naam 2.1
• 1 “woord”
• beginnend met een letter
•
• !
D 2.2
•
•
•
• k zijn!
asisopleiding informatica - module 4
maximum lengte hangt af van het DBMS
kies een kolomnaam die duidelijk zegt wat de inhoud is
atatype
elke kolom gekarakteriseerd door datatype en lengte
3 basistypes:
- tekst: vaste lengte (char), variabele lengte (varchar)
- numeriek: geheel, decimaal, ...
- chronologisch: datum, tijd, tijdsduur, ...
binair, LOB, XML, ...
exacte benaming + implementatie kan DBMS afhankelij
Tabellen
1. Tabeldefinitie: Overzicht2. Kolomdefinitie3. Integriteit
B ABIS 44
NULL waarden 2.3
Is het invullen van een waarde in de kolom verplicht?
• ja
• nee -> NULL toegestaan (default)
N
N
C
•
•
•
•
• egrip NULL
asisopleiding informatica - module 4
ULL betekent: onbekende / ontbrekende / zinloze waarde
ULL is niet hetzelfde als blanco (lege waarde) !
ontroverse rond het gebruik van NULLs:
logica gebaseerd op 3 waarden (waar / fout / onbekend)
meerdere types joins nodig
worden genegeerd bij kolomfuncties
fysiek geheugen?
“vertaling” nodig indien gelinkt aan applicaties die het bniet of slechts beperkt kennen
Tabellen
1. Tabeldefinitie: Overzicht2. Kolomdefinitie3. Integriteit
B ABIS 45
Standaardwaarden 2.4
Als een veld verplicht is, kan een standaardwaarde (default) worden gedefinieerd
Deze wordt automatisch ingevuld als het veld niet opgegeven werd
K
S an het d
•
•
•
asisopleiding informatica - module 4
an expliciet opgegeven worden
oms ook een “standaard” standaardwaarde gekoppeld aatatype:
blanco’s voor tekst
0 voor numeriek
“nu” voor datum/tijd
Tabellen
1. Tabeldefinitie: Overzicht2. Kolomdefinitie3. Integriteit
B ABIS 46
Beperkingen opleggen 2.5
Mogelijk om validatieregels toe te voegen
Gekoppeld aan een kolom of aan de tabeldefinitie
W
V
•
•
•
G
V
asisopleiding informatica - module 4
aarden worden bepaald door een logische expressie
oorbeelden:
geslacht in (‘V’, ‘M’)
cursusprijs > 0
accessoireprijs < totale_prijs
een echte businessregels!
alidatieregels moeten beperkt zijn tot een tabelrij
==> kunnen b.v. niet de grootte van een tabel beperken
==> kunnen meerdere tabellen niet koppelen(wel mogelijk m.b.v. triggers, en m.b.v. FKs)
Tabellen
1. Tabeldefinitie: Overzicht2. Kolomdefinitie3. Integriteit
B ABIS 47
Integriteit 3
DBMS checkt integriteit van de data wanneer sleutels gedefinieerd zijn
Entity integriteit:
bevatten
R
waarde uit
W inieerd:
• arnaar nog
• eggehaald / rd/gewijzigd
•
D n betekenis v
asisopleiding informatica - module 4
primaire sleutel moet uniek zijn en mag geen NULLs
eferentiële integriteit:
refererende sleutel moet verwijzen naar een correcteeen primaire sleutel, of gelijk zijn aan NULL
at bij insert/update/delete? -> ook hiervoor regels gedef
restrict: foutmelding indien rij weggehaald/gewijzigd waverwijzingen zijn
cascade (trapsgewijs bijwerken/verwijderen) -> als rij wgewijzigd wordt, worden ook verwijzende rijen verwijde
set null: verwijzende velden worden op NULL gezet
efault gedrag hangt af van DBMS, juiste keuze hangt af vaan de relatie
Tabellen
1. Tabeldefinitie: Overzicht2. Kolomdefinitie3. Integriteit
B ABIS 48
asisopleiding informatica - module 4ABIS Training & 49
SQL
n
Consulting
Objectieven :
• Gegevens zoeken in een tabel
• Filteren
• Eenvoudige berekeningen make
• Sorteren
• Tabellen koppelen
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 50
Wat is een query? 1
SELECT haalt data op van 1 of meer tabellen
Resultaat is “tabel”
M , (
6
ens
In
asisopleiding informatica - module 4
ogelijkheid om gegevens te filteren, groeperen, sortereneenvoudige) berekeningen te maken
statements:
5 SELECT -> welke kolommen tonen
1 FROM -> uit welke tabel(len) komen de gegev
2 WHERE -> filteren (condities)
3 GROUP BY -> groeperen
4 HAVING -> condities op kolomfuncties
6 ORDER BY -> sorteren
deze cursus: SELECT, FROM, WHERE, ORDER BY
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 51
Tabellen selecteren: FROM 2
tabel/view specificeren waaruit de data komtselect *from persons
k escheiden v
s e tabel
asisopleiding informatica - module 4
an ook vooraf gegaan worden door een schema naam, gan de tabelnaam d.m.v. een punt
select *from tbaccad.tutpersons
chema naam is vaak naam van de eigenaar/creator van d
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 52
Resultaat weergeven: SELECT 3
Welke kolommen tonen in het resultaat? 3.1
•
•
Courses
cid cstitle cdur caprice
asisopleiding informatica - module 4
* toont ALLE kolommen select * -> geeft de volledige tabel weerfrom courses
kolommen kiezen, gescheiden door een kommaselect cstitle , cdurfrom courses
1000 DB2, An overview 5 550.00
2000 IMS/DB 5 600.00
3000 SAS_ADV 3 550.00
cstitle cdur
DB2, An overview 5
IMS/DB 5
SAS_ADV 3
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 53
Berekende waarden weergeven 3.2
Nieuwe kolommen bijvoegen in het resultaat, gebaseerd op berekeningen op bestaande kolommen
Operatoren: + , - , * , /
G
O 5)(sdate), ...
Vsfr
asisopleiding informatica - module 4
ebruik decimale punten, geen komma’s
ok scalaire functies kunnen gebruikt worden (zie Moduleb.v. LOWER(cstitle), SUBSTR(pfname, 1, 1), MONTH
oorbeeld:elect cstitle, caprice * cdur * 1.15om courses
cstitle
DB2, An overview 3162.5
IMS/DB 2070
SAS_ADV 3162.5
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 54
Aliassen 3.3
(Andere) naam geven aan een kolom uit de resultaat-tabel
Keyword: AS
“ )
In evoegen
sfr
B d van de o
A BY
asisopleiding informatica - module 4
AS” kan meestal weggelaten worden (niet in MS-ACCESS
dien meerdere woorden -> dubbele aanhalingstekens to
elect cstitle AS titel , caprice*cdur*1.15 AS "totale prijs"om courses
erekeningen en aliassen in SELECT veranderen de inhouriginele tabel NIET
lias ENKEL te gebruiken in SELECT (definitie) en ORDER
titel totale prijs
DB2, An overview 3162.5
IMS/DB 2070
SAS_ADV 3162.5
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 55
DISTINCT 3.4
Unieke rijen selecteren op basis van (combinatie) van kolommen
DISTINCT = “verschillend”
sfr
sfr
asisopleiding informatica - module 4
elect distinct cdurom courses
elect distinct cdur, capriceom courses
cdur
5
3
cdur caprice
5 550.00
5 600.00
3 550.00
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 56
Gegevens Filteren: WHERE 4
Limiteren van het aantal rijen in het resultaat
Specificeert een conditie die waar, vals of onbekend (NULL) is
S
C en NOT
asisopleiding informatica - module 4
yntax: kolomnaam - OPERATOR - expressie
ondities kunnen gecombineerd worden d.m.v. AND, OR
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 57
Basiscondities 4.1
Vergelijkingsoperatoren:
• = : gelijk aan
• <> : verschillend van (in sommige DBMS ook != of ^=)
•
•
•
•
In en enkele a
T
S)
N
asisopleiding informatica - module 4
< : strikt kleiner dan
<= : kleiner of gelijk aan
> : strikt groter dan
>= : groter of gelijk aan
dien vergeleken wordt met een tekstwaarde -> deze tussanhalingstekens zetten!
ekstwaarden zijn in principe hoofdlettergevoelig
tenzij datatype dit anders specifeert (standaard bij M
umerieke waarden: nooit tussen aanhalingstekens
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 58
Basiscondities - Voorbeelden
sfrw
sfrw
companies
cono coname cotown cotownno cocountr
1 ABIS N.V. LEUVEN 3000 B
2 ASCO OXFORD RG211RY GB
tr
asisopleiding informatica - module 4
elect *om companieshere cono = 2
elect coname , cotown, cocountrom companieshere cocountr <> 'GB'
3 COVERDAT NAARDEN 1411 AR NL
4 EDUCA Ltd. LONDON EC2A 2EN GB
cono coname cotown cotownno cocoun
2 ASCO OXFORD RG211RY GB
coname cotown cocountr
ABIS N.V. LEUVEN B
COVERDAT NAARDEN NL
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 59
Basiscondities - Voorbeelden (vervolg)
select *from companieswhere cono <= 3
sfrw
cono coname cotown cotownno cocountr
1 ABIS N.V. LEUVEN 3000 B
tr
asisopleiding informatica - module 4
elect *om companieshere cotown > 'N'
2 ASCO OXFORD RG211RY GB
3 COVERDAT NAARDEN 1411 AR NL
cono coname cotown cotownno cocoun
2 ASCO OXFORD RG211RY GB
3 COVERDAT NAARDEN 1411 AR NL
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 60
Logische operatoren 4.2
3 operatoren voor het samenvoegen van condities
• AND: beide condities moeten voldaan zijn
• OR: minstens 1 van de condities moet voldaan zijn
• .)
E am!)
P
•
• n!
•
asisopleiding informatica - module 4
NOT: negatie (meestal pas gebruikt bij IN, BETWEEN, ..
lk deel is een volledige conditie zoals hiervoor (kolomna
rioriteitsregels:
eerst NOT, dan AND, dan OR
indien andere volgorde gewenst -> HAAKJES gebruike
zelfde prioriteit -> van links naar rechts uitgevoerd
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 61
Logische operatoren - Voorbeelden
sfrw
sfrw
companies
cono coname cotown cotownno cocountr
1 ABIS N.V. LEUVEN 3000 B
2 ASCO OXFORD RG211RY GB
tr
tr
asisopleiding informatica - module 4
elect *om companieshere cocountr='GB' AND cono>2
elect *om companieshere cocountr='GB' OR cono>2
3 COVERDAT NAARDEN 1411 AR NL
4 EDUCA Ltd. LONDON EC2A 2EN GB
cono coname cotown cotownno cocoun
4 EDUCA Ltd. LONDON EC2A 2EN GB
cono coname cotown cotownno cocoun
2 ASCO OXFORD RG211RY GB
3 COVERDAT NAARDEN 1411 AR NL
4 EDUCA Ltd. LONDON EC2A 2EN GB
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 62
Logische operatoren - Voorbeelden (vervolg)
select coname, cocountrfrom companieswhere cocountr='NL' OR cocountr='B'
sfrw
coname cocountr
ABIS N.V. B
asisopleiding informatica - module 4
elect coname, cocountrom companieshere cocountr='NL' AND cocountr='B'
COVERDAT NL
coname cocountr
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 63
Logische operatoren - Voorbeelden (vervolg)
select *from companieswhere cocountr='NL' OR cocountr='B' AND cono < 3
sfrw
cono coname cotown cotownno cocountr
1 ABIS N.V. LEUVEN 3000 B
tr
asisopleiding informatica - module 4
elect *om companieshere (cocountr='NL' OR cocountr='B') AND cono < 3
3 COVERDAT NAARDEN 1411 AR NL
cono coname cotown cotownno cocoun
1 ABIS N.V. LEUVEN 3000 B
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 64
IN 4.3
Verzameling van waarden opsommen
Waarden tussen haakjes, gescheiden door komma’s
V
S
N
asisopleiding informatica - module 4
ervangt een gecombineerde OR op dezelfde kolom
yntax: kolomnaam IN (waarde1 , waarde2 , waarde3)
egatie: NOT IN
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 65
IN - Voorbeelden
sfrw
sfrw
companies
cono coname cotown cotownno cocountr
1 ABIS N.V. LEUVEN 3000 B
2 ASCO OXFORD RG211RY GB
tr
tr
asisopleiding informatica - module 4
elect *om companieshere cotown IN ('LEUVEN','LONDON')
elect *om companieshere cono NOT IN (1,3,4)
3 COVERDAT NAARDEN 1411 AR NL
4 EDUCA Ltd. LONDON EC2A 2EN GB
cono coname cotown cotownno cocoun
1 ABIS N.V. LEUVEN 3000 B
4 EDUCA Ltd. LONDON EC2A 2EN GB
cono coname cotown cotownno cocoun
2 ASCO OXFORD RG211RY GB
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 66
BETWEEN 4.4
“Tussen”
Syntax: kolomnaam BETWEEN waarde1 AND waarde2
G
N
V r kan ook v
asisopleiding informatica - module 4
renswaarden inbegrepen
egatie: NOT BETWEEN
ooral gebruikt voor numerieke waarden en datums (maaoor tekst)
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 67
BETWEEN - Voorbeelden
sfrw
sfrw
Courses
cid cstitle cdur caprice
1000 DB2, An overview 5 550.00
2000 IMS/DB 5 300.00
asisopleiding informatica - module 4
elect cstitle , capriceom courseshere caprice BETWEEN 300 AND 550
elect *om courseshere cdur NOT BETWEEN 4 AND 5
3000 SAS_ADV 3 600.00
4000 ORACLE, An overview 5 550.00
cstitle caprice
DB2, An overview 550.00
IMS/DB 300.00
ORACLE, An overview 550.00
cid cstitle cdur caprice
3000 SAS_ADV 3 600.00
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 68
LIKE 4.5
Zoeken op tekstwaarden met een bepaald patroon
• begint met
• bevat
•
W
• * )
•
S
N
L ge DBMSen in
G
asisopleiding informatica - module 4
eindigt op
ildcards (jokers) gebruikt
% : 0 of meer karakters (LET OP: MS-ACCESS gebruikt
_ : exact 1 karakter (LET OP: MS-ACCESS gebruikt ? )
yntax: kolomnaam LIKE '%waarde'
egatie: NOT LIKE
et op bij het gebruik van like '%n' (eindigt op n) in sommidien de kolom als vaste breedte (char) gedefinieerd is
ebruik STEEDS een wildcard bij LIKE, NOOIT bij IN !!!
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 69
LIKE - Voorbeelden (MS-ACCESS syntax)
sfrw
sfrw
companies
cono coname cotown cotownno cocountr
1 ABIS N.V. LEUVEN 3000 B
2 ASCO OXFORD RG211RY GB
tr
tr
asisopleiding informatica - module 4
elect *om companieshere cotown LIKE 'N*'
elect *om companieshere cotown LIKE '*N*'
3 COVERDAT NAARDEN 1411 AR NL
4 EDUCA Ltd. LONDON EC2A 2EN GB
cono coname cotown cotownno cocoun
3 COVERDAT NAARDEN 1411 AR NL
cono coname cotown cotownno cocoun
1 ABIS N.V. LEUVEN 3000 B
3 COVERDAT NAARDEN 1411 AR NL
4 EDUCA Ltd. LONDON EC2A 2EN GB
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 70
LIKE - Voorbeelden (vervolg)
select *from companieswhere coname LIKE '?O*'
sfrw
sfrw
cono coname cotown cotownno cocountr
3 COVERDAT NAARDEN 1411 AR NL
tr
tr
asisopleiding informatica - module 4
elect *om companieshere coname NOT LIKE 'A*'
elect *om companieshere coname NOT LIKE '*A*'
cono coname cotown cotownno cocoun
3 COVERDAT NAARDEN 1411 AR NL
4 EDUCA Ltd. LONDON EC2A 2EN GB
cono coname cotown cotownno cocoun
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 71
IS NULL 4.6
Test of een waarde NULL is (“onbekend”)
Niet hetzelfde als blanco! Kan b.v. ook voor numeriek of datum
S
N
O
K
N
tool)
•
•
•
asisopleiding informatica - module 4
yntax: kolomnaam IS NULL
egatie: IS NOT NULL -> waarde is gekend
pgelet: gebruik nooit kolomnaam = NULL !!!
eywoord “IS” enkel gebruiken in combinatie met NULL
ULL kan op verschillende manieren voorgesteld worden
(afhankelijk van het DBMS en zelfs van de gebruikte
NULL of null of (null) of \N
---
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 72
IS NULL - Voorbeelden
sfrw
sfrw
persons
pno plname pfname pfunc
1 Smith John programmer
2 Johnson Paul analyst
asisopleiding informatica - module 4
elect *om personshere pfunc IS NULL
elect *om personshere pfunc IS NOT NULL
3 Jones Mary NULL
pno plname pfname pfunc
3 Jones Mary NULL
pno plname pfname pfunc
1 Smith John programmer
2 Johnson Paul analyst
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 73
IS NULL - Voorbeelden (vervolg)
Let op: “<>” geeft geen rijen terug waarvoor die kolom NULL is!!!select *from personswhere pfunc <> ‘PROGRAMMER’
sfrw
asisopleiding informatica - module 4
elect *om personshere pfunc <> ‘PROGRAMMER’ OR pfunc IS NULL
pno plname pfname pfunc
2 Johnson Paul analyst
pno plname pfname pfunc
2 Johnson Paul analyst
3 Jones Mary NULL
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 74
Sorteren: ORDER BY 5
Sorteren op basis van 1 of meerdere kolommen
Indien meerdere kolommen: volgorde maakt uit
O
S
A
asisopleiding informatica - module 4
plopend (ASC: default) of aflopend (DESC)
yntax : ORDER BY kolomnaam1 DESC, kolomnaam2
liassen of kolomnummers kunnen gebruikt worden
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 75
ORDER BY - Voorbeelden
sfro
sfro
cid cstitle cdur caprice
1000 DB2, An overview 5 550.00
2000 IMS/DB 3 550.00
3000 SAS_ADV 3 600.00
asisopleiding informatica - module 4
elect *om coursesrder by cdur
elect * om coursesrder by cstitle DESC
cid cstitle cdur caprice
2000 IMS/DB 3 550.00
3000 SAS_ADV 3 600.00
1000 DB2, An overview 5 550.00
cid cstitle cdur caprice
3000 SAS_ADV 3 600.00
2000 IMS/DB 3 550.00
1000 DB2, An overview 5 550.00
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 76
ORDER BY - Voorbeelden (vervolg)
select * from coursesorder by cdur, caprice
sfro
cid cstitle cdur caprice
2000 IMS/DB 3 550.00
asisopleiding informatica - module 4
elect * om coursesrder by caprice, cdur
3000 SAS_ADV 3 600.00
1000 DB2, An overview 5 550.00
cid cstitle cdur caprice
2000 IMS/DB 3 550.00
1000 DB2, An overview 5 550.00
3000 SAS_ADV 3 600.00
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 77
ORDER BY - Voorbeelden (vervolg)
select * from coursesorder by cdur DESC,caprice
sfro
cid cstitle cdur caprice
1000 DB2, An overview 5 550.00
asisopleiding informatica - module 4
elect cstitle, cdur, caprice om coursesrder by 3
2000 IMS/DB 3 550.00
3000 SAS_ADV 3 600.00
cstitle cdur caprice
IMS/DB 3 550.00
DB2, An overview 5 550.00
SAS_ADV 3 600.00
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 78
Tabellen koppelen: JOIN 6
Combineren van meerdere tabellen op basis van PK en FK (JOIN-conditie)
In het FROM statement
M
•
•
•
•
A orden in de s
T en nA
asisopleiding informatica - module 4
eerdere types JOINs ( ivm NULL waarden)
INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
lle kolommen uit de gejoinde tabellen kunnen gebruikt welect
abellen kunnen een aliasnaam krijgen (ivm leesbaarheidaamconflicten)lias verplicht in Access
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 79
INNER JOIN 6.1
Bevat enkel die rijen die in beide tabellen een matchende PK - FK combinatie hebben
JOIN-conditie in FROM
S
asisopleiding informatica - module 4
yntax:
SELECT *FROM tabel1 t1 INNER JOIN tabel2 t2 ON t1.PK=t2.FK
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 80
INNER JOIN - Voorbeeld
Gsfr
R
Companies
cono coname cotownno cotown cocountr
1 ABIS 3000 LEUVEN B
2 ESCON 8200 GENT B
3 FLYGT 1200 TERNAT B
asisopleiding informatica - module 4
eef voornaam en bedrijfsnaam van elke persoonelect pfname, conameom persons p inner join companies c on p.pa_cono=c.cono
esultaat:
Persons
pno pfname pa_cono
1 MARGOT 2
2 CHARLES 3
4 JOHN 2
5 PAUL (null)
pfname coname
MARGOT ESCON
CHARLES FLYGT
JOHN ESCON
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 81
LEFT en RIGHT OUTER JOIN 6.2
LEFT OUTER JOIN: ook rijen uit LINKSE tabel die geen match hebben in rechtse tabel worden meegenomen
RIGHT OUTER JOIN: ook rijen uit RECHTSE tabel die geen match h
ntr
)
asisopleiding informatica - module 4
ebben in linkse tabel worden meegenomen
Persons Companies
pno pfname pa_cono cono coname cocou
1 MARGOT 1 1 ABIS B
2 CHARLES 2 2 XEROX (null
4 JOHN 5 5 IBM NL
5 PAUL (null) 6 APPLE B
PAUL,----MARGOT,ABIS
CHARLES,XEROX----,APPLE
LEFTINNER
RIGHT
JOHN,IBM
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 82
LEFT en RIGHT OUTER JOIN - Voorbeelden
select pfname, conamefrom persons left outer join companies on pa_cono=cono
Resultaat
sfr
R
pfname coname
asisopleiding informatica - module 4
elect pfname, conameom persons right outer join companies on pa_cono=cono
esultaat
MARGOT ABIS
CHARLES XEROX
JOHN IBM
PAUL (null)
pfname coname
MARGOT ABIS
CHARLES XEROX
JOHN IBM
(null) APPLE
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 83
FULL OUTER JOIN 6.3
Ook alle niet matchende rijen worden meegenomen
Combinatie van LEFT en RIGHT outer joinVoorbeeldsfr
R
F
asisopleiding informatica - module 4
elect pfname, conameom persons full outer join companies on pa_cono=cono
esultaat
ULL OUTER JOIN wordt niet ondersteund in Access
pfname coname
MARGOT ABIS
CHARLES XEROX
JOHN IBM
PAUL (null)
(null) APPLE
SQL
1. Wat is een query?2. Tabellen selecteren: FROM3. Resultaat weergeven: SE-
LECT4. Gegevens Filteren: WHERE5. Sorteren: ORDER BY6. Tabellen koppelen: JOIN7. Samenvatting
B ABIS 84
Samenvatting 7
SELECT -> welke kolommen tonen in resultaat * -> alles col1, col2 -> kolomnamen met komma’s col1 , col1*col2 AS hoofding -> berekende waarde, aliassen
F
W
Oflopendlect, alias
asisopleiding informatica - module 4
DISTINCT col1,col2 -> unieke waarden
ROM -> tabel(len) waaruit de data komt tabelnaam1 inner join tabelnaam2 on fk_col=pk_col
HERE -> condities op rijniveau = , <>, < , > , <= , >= -> basisoperatoren AND, OR, NOT -> logische operatoren col1 (NOT) IN (‘val1’,’val2’,’val3’) -> lijst col1 (NOT) BETWEEN val1 AND val2 -> tussen
col1 (NOT) LIKE ‘%val%’ -> begint met / bevat col1 IS (NOT) NULL -> nulls
RDER BY -> sorteren op kolom uit resultaat (select) col1 DESC , col 2 -> kolommen, DESC = a 3 , hoofding (niet in ACCESS) -> kolomnummer uit se
ABIS Training & 85
AppenTraini
ebruikt in de oefeningen
Consulting
dix A:ng Database
Objectieven :
• Documentatie van de database g
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 86
ERD - Diagram 1
asisopleiding informatica - module 4
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 87
Tabeldefinities 2
De training database bestaat uit 5 tabellen:
1. COURSES
2. PERSONS
3
4
5
D het d
asisopleiding informatica - module 4
. COMPANIES
. SESSIONS
. ENROLMENTS
eze database is een voorbeeld van de administratie van epartement TRAINING.
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 88
Companies 2.1
KEY COLNO NAME COLTYPE LENGTH SCALE NULLS DEFAULT------------------------------------------------------------------PK 1 CONO SMALLINT - - N - 2 CONAME CHAR 45 - N - 5 COTOWN CHAR 45 - N - 6 COTOWNNO CHAR 10 - Y NULL 7 COCOUNTR CHAR 4 - Y NULL 8 COTEL CHAR 16 - Y NULL 9 COVAT CHAR 11 - Y NULL
S
•
•
•
•
•
•
•
•
asisopleiding informatica - module 4
10 COBANKNO CHAR 14 - Y NULL
emantiek:
CONO: (artificiële PK), bevat het bedrijfsnummer
CONAME: naam van het bedrijf
COTOWN: plaats waar het bedrijf gevestigd is
COTOWNNO: postcode
COCOUNTR: landcode (B,NL,D of GB)
COTEL: telefoonnummer van het bedrijf
COVAT: BTW nummer
COBANKNO: bankrekeningnummer
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 89
Persons 2.2
KEY COLNO NAME COLTYPE LENGTH SCALE NULLS DEFAULT------------------------------------------------------------------PK 1 PNO SMALLINT - - N - 2 PLNAME CHAR 40 - N - 3 PFNAME VARCHAR 15 - Y NULL 4 PFUNC CHAR 20 - Y NULLFK(N) 5 PA_CONO SMALLINT - - Y NULL 6 PADEPT CHAR 30 - Y NULL 8 PSEX CHAR 1 - Y NULL
S
•
•
•
•
• on werkt
• erkt
• ’)
asisopleiding informatica - module 4
emantiek:
PNO: (artificiële PK), bevat het persoonsnummer
PLNAME: familienaam
PFNAME: voornaam
PFUNC: functie van de persoon
PA_CONO: FK naar COMPANIES, bedrijf waar de perso
PADEPT: departement in het bedrijf waar de persoon w
PSEX: geslacht van de persoon, man (‘M’) of vrouw (‘F
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 90
Courses 2.3
KEY COLNO NAME COLTYPE LENGTH SCALE NULLS DEFAULT------------------------------------------------------------------PK 1 CID CHAR 4 - N - 2 CSTITLE CHAR 45 - N - 3 CLTITLE VARCHAR 60 - Y NULL 4 CDUR SMALLINT - - N - 5 CAPRICE DECIMAL 9 2 N -
S
• e cursus
•
•
•
•
asisopleiding informatica - module 4
emantiek:
CID: (artificiële PK), bevat het identificatienummer van d
CSTITLE: korte titel van de cursus
CLTITLE: lange titel van de cursus
CDUR: duur in dagen
CAPRICE: prijs per dag
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 91
Sessions 2.4
PK 1 SNO SMALLINT - - N - 2 SDATE DATE - - N -FK(R) 3 SINS_PNO SMALLINT - - N -FK(R) 4 SLOC_CONO SMALLINT - - N -FK(R) 6 SORG_CONO SMALLINT - - Y NULL 7 SKIND CHAR 1 - N - 8 SINCOMES DECIMAL 9 2 N 0.00 9 SCANCEL CHAR 1 - Y NULLFK(R) 10 S_CID CHAR 4 - N -
S
•
•
• de docent
• sie
• sessie
• ie (‘c’)
•
• NULL
• ort
asisopleiding informatica - module 4
emantiek:
SNO: (artificiële PK), identificatienummer van de sessie
SDATE: startdatum
SINS_PNO: FK naar PERSONS, persoonsnummer van
SLOC_CONO: FK naar COMPANIES, locatie van de ses
SORG_CONO: FK naar COMPANIES, organizator van de
SKIND: type sessie, publieke sessie (‘p’) of bedrijfssess
SINCOMES: inkomsten
SCANCEL: is de sessie geannuleerd? Zo ja-> ‘c’ anders
S_CID: FK naar COURSES, cursus waarbij de sessie ho
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 92
Enrolments 2.5
KEY COLNO NAME COLTYPE LENGTH SCALE NULLS DEFAULT------------------------------------------------------------------PK1/FK(C) 1 E_SNO SMALLINT - - N -PK2 2 ENO SMALLINT - - N -FK(R) 3 E_PNO SMALLINT - - Y NULL 4 EPAY DECIMAL 9 2 N 0.00FK(R) 5 E_CONO SMALLINT - - N - 6 ECANCEL CHAR 1 - Y NULL
S
• ijving is
•
•
•
• on is
• nders NULL
asisopleiding informatica - module 4
emantiek:
E_SNO: FK naar SESSIONS, sessie waarvoor de inschr
ENO: inschrijvingsnummer binnen de sessie
E_PNO: FK naar PERSONS, persoon die inschrijft
EPAY: prijs per dag betaald (na eventuele kortingen)
E_CONO: FK naar COMPANIES, bedrijf waarvoor perso ingeschreven
ECANCEL: is de inschrijving geannulleerd? Zo ja -> ‘c’ a
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 93
Inhoud van de tabellen 3
COMPANIES
asisopleiding informatica - module 4
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 94
Inhoud van de tabellen - PERSONS (gedeeltelijk)
asisopleiding informatica - module 4
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 95
Inhoud van de tabellen - COURSES
asisopleiding informatica - module 4
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 96
Inhoud van de tabellen - SESSIONS
asisopleiding informatica - module 4
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 97
Inhoud van de tabellen - ENROLMENTS (gedeeltelijk)
asisopleiding informatica - module 4
Appendix A:Training Database
1. ERD - Diagram2. Tabeldefinities3. Inhoud van de tabellen
B ABIS 98
asisopleiding informatica - module 4ABIS Training & 99
Opdra
ngeleerde concepten
tabase producten
Consulting
chten
Objectieven :
• In de praktijk brengen van de aa
• Opzoeken van gegevens over da
• Queries schrijven in SQL
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 100
Van bestand naar tabel 1
1. Som de voor- en nadelen op van het gebruik van bestanden, spreadsheets of databases
2. Jan, Peter en Bob zijn ijzerwaren inkopers bij doe-het-zelf zaken. Voor het aanvullen van hun stock, doen ze bestellingen bij
oor MDF bij aar B uit
kop schroe-
oeren bij s bij
le structuur
3 data kan ge-
asisopleiding informatica - module 4
groothandelaars.
Jan: 5000 kruiskopschroeven en 2000 houtschroeven vhandelaar A uit Leuven, 4000 zeskantmoeren bij handelGentPeter: 1000 hoekijzers bij handelaar B uit Gent, 500 platvendraaiers bij handelaar C uit BrusselBob: 5000 houtschroeven voor MDF en 3000 zeskantmhandelaar A in Leuven, 250 kruiskop schroevendraaierhandelaar C uit Brussel
Stel deze situatie voor in een hierarchische en relatione
. Zoek nog minstens 2 andere manieren (Google) waarop structureerd worden
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 101
Database Management Systemen 2
1. Naast Sql Server, Oracle,... zijn er nog andere RDBMSen. Zoek er minstens 2 op.
2. Wat zijn de grote verschillen tussen ACCESS en een “volledige” RDBMS
3 tabases zijn
4 k of dit een
5 erschillen?
asisopleiding informatica - module 4
. Ook voor Hiërarchische en Netwerk gestructureerde daer DBMS produkten op de markt. Zoek er enkele op.
. Ken je nog productnamen i.v.m. databases? OnderzoeDBMS (welk type?), tool, taal of ... is.
. Welke edities van SQL Server 2012 zijn er? Wat zijn de vPrijzen?
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 102
Normalisatie 3
1. Zoek de fouten in volgende relationele database. Waarom zouden ze dit zo gedaan hebben? Probeer het systeem te verbeteren.
Table 1: Stock Table
Price
10
22
32
40
40
66
20
86
asisopleiding informatica - module 4
Product # Products Price / Product
GREEN PAINT 6 10
BLUE PAINT 10 11
PAINTBRUSH 7 20
Table 2: Order Table
OrderNr Date ClientNr Product # Products
1 02.02.2002 1 GREEN PAINT 1
1 02.02.2002 1 BLUE PAINT 2
1 02.02.2002 1 TOTALS 3
2 03.03.2002 1 PAINTBRUSH 2
2 03.03.2002 1 TOTALS 2
4 04.04.2002 3 BLUE PAINT 6
4 04.04.2002 3 PAINTBRUSH 1
4 04.04.2002 3 TOTALS 7
FK FK
PK
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 103
Normalisatie
2 it
ssant zijn?
ClientNr ClientName PhoneNr FaxNr
1 ABIS 016/245610
016/245611
016/245691
3 ARDATIS 016/000000 -
asisopleiding informatica - module 4
. Werk het voorbeeld van de ijzerwaren-inkopers verder u
- welke extra informatie (kolommen) zouden nog intere
- identificeer de verschillende “entiteiten”
- verschil leverancier-inkoper?
- hoe de relaties leggen tussen de tabellen? Sleutels?
- Maak een ERD (UML klassediagram)
2 ACERTA 016/111111 -
2 ACERTA 016/222222 016/333333
PK
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 104
Tabellen 4
Zet de database uit de vorige oefening om in de praktijk. Gebruik ACCESS.
1. Kies goede namen voor de kolommen
2
3
4
5
6
7
8
9
P n te passen, r n orde?
asisopleiding informatica - module 4
. Welk datatype (+ lengte) ga je gebruiken
. Welke velden zijn verplicht
. Beperkingen
. Welke tabel eerst aanmaken?
. Relaties leggen tussen de tabellen
. Vul de tabellen in met gegevens. Let op de volgorde!!!
. Verbeter je ERD indien nodig
. Documentatie?
robeer eens enkele gegevens (vooral sleutel-waarden) aaijen te verwijderen. Wat gebeurt er? Is de integriteit nog i
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 105
SQL 5
Bestudeer de documentatie i.v.m. de oefen-database
1. Bekijk het ERD. Welke tabellen worden er gebruikt? Wat zijn de relaties?
2 e, NULLs?
3 enis van de
4 ealistisch?
A
1
2 FROM
3 -> WHERE
4 LECT
5
G ave
asisopleiding informatica - module 4
. Bestudeer per tabel de kolomgegevens: naam, datatyp
. Bekijk ook de semantische beschrijving. Wat is de betekkolommen?
. In dit geval hebben we ook de inhoud afgeprint. Is dit r
lgemene aanpak voor het maken van een query:
. Analyseer goed de vraag!!!
. In welke tabel(len) vind ik de benodigde informatie ->
. Zijn er ev. condities op te leggen? Op welke kolommen?
. Wat wil ik tonen in mijn resultaat? Berekeningen? -> SE
. Moet het resultaat gesorteerd worden? -> ORDER BY
ebruik afwisselend de ontwerpweergave en de sql-weerg
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 106
SELECT - FROM 5.1
1. Toon de volledige tabel sessions
2. Selecteer alle informatie m.b.t tot de tabel enrolments
3. Selecteer alle identificatienummers evenals de lange titels uit de tabel courses
4 ssies
5 et de korte
6
7 n 21% BTW
8 ]
9 t geslacht
1 t [33]
asisopleiding informatica - module 4
. Toon de sessiedatum en het cursusnummer van alle se
. Bereken de totale prijs per cursus. Toon deze samen mtitel. Geef de kolommen duidelijk namen
. Geef de naam, postcode en locatie van alle bedrijven
. Bereken de inkomsten per sessie na nog eens aftrek va
. Welk zijn de verschillende dagprijzen voor cursussen [7
. Geef de voornaam, familienaam, het departement en hevan alle personen
0. Geef de unieke combinaties van functie en departemen
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 107
WHERE - Basiscondities 5.2
1. Toon alle Britse bedrijven [4]
2. Geef de lange titels van alle cursussen die 3 dagen duren [10]
3. Geef alle sessies met een opbrengst van meer dan 5000 euro [7]
4
5 is (cono=3)
6 00 euro per
7 even? [5]
8 en die
9
1 1]
asisopleiding informatica - module 4
. Toon alle personen met voornaam David [2]
. Haal alle sessies op die niet georganiseerd zijn door Ab[6]
. Geef alle bedrijfsnummers van bedrijven die tenminste 5dag hebben betaald voor een inschrijving [9]
. Voor welke sessies was Frits Meuris (pno=25) ingeschr
. Toon het persoonsnummer en de naam van alle personwerken voor Berendsen CP (cono=32) [5]
. Toon alle geannuleerde inschrijvingen [5]
0. Geef alle personen die gratis cursus hebben gevolgd [
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 108
WHERE - Logische operatoren 5.3
1. Geef de namen van alle vrouwelijke programmeurs [1]
2. Toon alle info van de publieke sessies die plaatsvonden bij Abis (cono=3) [6]
3. Geef de naam en locatie van alle Duitse en Belgische bedrijven [15]
4 [1]
5 eyser chanics
6 n de
7 nsnummer
8 SERVICES
asisopleiding informatica - module 4
. Geef alle sessies van cursus 7850 die geannuleerd zijn
. Toon de cursusnummers van alle sessies die Ann De K(pno=3) gaf, en die georganiseerd werden door BET Me(cono=10) [3]
. Geef de functie van alle mannen die in het infocenter vaBelgische Bank (cono=22) werken [2]
. Geef alle personeelsleden van bedrijf 1 of 41 met persoogroter dan 12 [4]
. Toon alle programmeurs van het departement SYSTEM SOFTWARE en alle project managers bij DATA[3]
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 109
WHERE - IN en BETWEEN 5.4
1. Geef alle personen die werken voor bedrijf 43, 22 of 11 [6]
2. Geef de cursusnummers en korte titels van alle cursussen die 1 of 2 dagen duren [10]
3. Geef de namen en btw nummers van alle bedrijven uit Antwerpen of
4 in België of
5 00 [5]
6 of Bruce
7 chrijvingen ag [27]
asisopleiding informatica - module 4
Rotterdam [5]
. Geef de naam en plaatsnaam van alle bedrijven die niet Nederland gevestigd zijn [5]
. Geef alle sessies met een opbrengst tussen 5000 en 75
. Toon alle sessies die niet door Ann De Keyser (pno=3) Adamson (pno=36) gegeven werden [7]
. Toon alle sessienummers en persoonsnummers van insdie maximum 400 of minstens 500 betaald hebben per d
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 110
WHERE - LIKE 5.5
1. Toon alle personen met een voornaam beginnend met ‘D’ [6]
2. Geef de korte titel van alle PC-cursussen [3]
3. Geef de naam van alle mannelijke managers [13]
4 locatie die
5 ]
asisopleiding informatica - module 4
. Geef de naam van alle bedrijven die gevestigd zijn op eenniet met een ‘A’ of ‘B’ begint [15]
. Selecteer alle informatie m.b.t de N.V.’s (en de S.A.’s) [3
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 111
WHERE - IS NULL 5.6
1. Geef alle personen waarvan de functie niet gekend is [3]
2. Geef alle bedrijven waarvan het telefoonnummer gekend is [9]
3. Geef alle sessies die niet geannuleerd zijn [13]
4 met een
5 is, maar het
asisopleiding informatica - module 4
. Toon de namen van alle personen die geen link hebbenbedrijf [2]
. Geef alle bedrijven waarvan het BTW nummer onbekendbankrekeningnummer gekend [2]
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 112
ORDER BY 5.7
1. Sorteer alle bedrijven op land
2. Sorteer alle sessies aflopend op basis van de inkomsten
3. Rangschik de inschrijvingen op bedrijf
4
5 catie
asisopleiding informatica - module 4
. Sorteer de personen op familienaam en voornaam
. Sorteer de sessies-tabel op docentnr, en aflopend op lo
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 113
Gemengde opdrachten 5.8
1. Geef de unieke combinaties van docentnummer en locatie waar hij les gegeven heeft. Sorteer op docentnummer. [7]
2. Geef alle personen van bedrijf 43 die les gevolgd hebben [4]
3. Geef de naam en postcode van alle Nederlandse bedrijven uit een
4 agen duren
5 mer 8 [2]
6 er 7900 [3]
7 egenen die
8 ie niet door-]
9 ie zich niet iet met 1 7]
1
asisopleiding informatica - module 4
plaats beginnend met ‘R’ [2]
. Geef de totale prijs van alle cursussen die minstens 3 den waarvan het id begint met ‘80’ [9]
. Geef alle geannuleerde inschrijvingen voor sessie num
. Welke docenten geven er allemaal de cursus met numm
. Toon alle persoonsnummers en bedrijfsnummers van dsessie nr 1 gevolgd hebben [4]
. Geef het nummer en de datum van de publieke sessies dgegaan zijn, maar waarvoor er toch inkomsten waren [2
. Selecteer alle informatie m.b.t de Belgische bedrijven din het Brusselse bevinden (dus waarvan de postcode nbegint en van wie het bankrekeningnummer gekend is [
0. Toon alle personen die geen manager zijn [27]
Opdrachten
1. Van bestand naar tabel2. Database Management Sy-
stemen3. Normalisatie4. Tabellen5. SQL
B ABIS 114
Joins 5.9
1. Toon het persoonsnummer en de naam van alle personen die werken voor Berendsen CP [5]
2. Haal alle sessies op die niet georganiseerd zijn door Abis [6]
3. Geef cursusnaam en sessiedatum van de sessies waarvan de op-
4 r hebben [3]
5
asisopleiding informatica - module 4
brengst tussen 5 000 en 7 500 ligt. [5]
. Geef de namen van alle bedrijven die een Training Cente
. Geef de naam van de docent van sessie 5 [1 rij, docent=Peter Tavernier]