TRAINING & CONSULTING Basisopleiding informatica - … · 3 ____ERD diagram ... Dmv een massa...

120
TRAINING & CONSULTING Basisopleiding informatica - module 4 ABIS Training & Consulting www.abis.be [email protected] ABIS 2013, 2014 Document nummer: 1660_02n.fm 19 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.

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.

B vi

asisopleiding informatica - module 4

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 4

ABIS 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 4

ABIS 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 4

ABIS 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 4

ABIS 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]