Basisopleiding informatica - module 4
|
|
- Joke de Croon
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 TRAINING & CONSULTING Basisopleiding informatica - module 4 ABIS Training & Consulting training@abis.be 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) , Fax: (+32) Copyright ABIS N.V.
2
3 INHOUDSTAFEL VOORWOORD V NORMALISATIE 27 VAN BESTAND NAAR TABEL 1 1 Van bestand naar tabel 2 2 Definitie Database 3 3 Hoe data structureren Hiërarchische structuur Netwerk-structuur Relationele structuur NoSQL 12 RELATIONAL DATABASE MANAGEMENT SYSTEMS 15 1 Wat is een Database Management System (DBMS) 16 2 Taken van het RDBMS (relationele DBMS) 17 3 Overzicht van RDBMS produkten DB Oracle MySQL SQL Server / MS SQL Access 23 4 SQL - Structured Query Language 24 1 Ontwerpen van een relationele data structuur Analyse Basisontwerp Normalisatie 31 2 Relaties tussen tabellen: sleutels 35 3 ERD diagram 38 TABELLEN 41 1 Tabeldefinitie: Overzicht 42 2 Kolomdefinitie Naam Datatype NULL waarden Standaardwaarden Beperkingen opleggen 46 3 Integriteit 47 SQL 49 1 Wat is een query? 50 2 Tabellen selecteren: FROM 51 3 Resultaat weergeven: SELECT Welke kolommen tonen in het resultaat? 52 Basisopleiding informatica - module 4 iii
4 3.2 Berekende waarden weergeven Aliassen DISTINCT 55 4 Gegevens Filteren: WHERE Basiscondities Logische operatoren IN BETWEEN LIKE IS NULL 71 5 Sorteren: ORDER BY 74 6 Tabellen koppelen: JOIN INNER JOIN LEFT en RIGHT OUTER JOIN FULL OUTER JOIN 83 3 Normalisatie Tabellen SQL SELECT - FROM WHERE - Basiscondities WHERE - Logische operatoren WHERE - IN en BETWEEN WHERE - LIKE WHERE - IS NULL ORDER BY Gemengde opdrachten Joins Samenvatting 84 APPENDIX A: TRAINING DATABASE 85 1 ERD - Diagram 86 2 Tabeldefinities Companies Persons Courses Sessions Enrolments 92 3 Inhoud van de tabellen 93 OPDRACHTEN 99 1 Van bestand naar tabel Database Management Systemen 101 Basisopleiding informatica - module 4 iv
5 VOORWOORD In deze module bespreken we hoe data opgeslagen en beheerd kan worden in databases. We overlopen enkele manieren waarop data gestructureerd kan worden, waarbij de focus vooral zal liggen op relationele databases. In een 2de deel van de cursus maken we kennis met SQL om gegevens uit de database op te halen. Dmv een massa oefeningen maken we ons deze taal eigen. Qua oefenomgeving zal er vooral met MS-ACCESS gewerkt worden. Database Management Systemen hebben niet enkel als taak om gegevens op te slaan zodat we ze gemakkelijk kunnen opzoeken of manipuleren. Ook beheerstaken worden uitgevoerd. In deze module introduceren we enkele concepten, zoals performantie, locking, versioning, database herstel, auditing en monitoring. In de volgende module zullen enkele van deze zaker dieper worden bekeken in het kader van Oracle en SQL Server. Basisopleiding informatica - module 4 v
6 Basisopleiding informatica - module 4 vi
7 Van bestand naar tabel Objectieven : Waarom een database? Definitie database Hoe data structureren ABIS Training & Consulting 1
8 Van bestand naar tabel 1 Gegevens kunnen op verscheidene manieren bewaard worden: Bestand Spreadsheet Database Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Voor- en nadelen (zoeken, filteren, beheer, beveiliging, consistentie, redundantie, formattering, gebruik door applicaties,...)? Basisopleiding informatica - module 4 ABIS 2
9 Definitie Database 2 Een database is een georganiseerde collectie van onderling gerelateerde data elementen die gemakkelijk te verwerken is door één of meerdere applicaties voor het terugvinden en beheren van informatie Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Basisopleiding informatica - module 4 ABIS 3
10 Hoe data structureren 3 Meerdere manieren om data in een database te structureren Hiërarchisch Netwerk Relationeel NoSQL... Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Verschil zit in de manier waarop de links tussen de data gelegd worden en deze data ondervraagd kan worden. Basisopleiding informatica - module 4 ABIS 4
11 Hiërarchische structuur 3.1 Oudste vorm van database Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Boomstructuur: Ouder-kind relatie Elk record in een database kan weer verwijzen naar een n-aantal andere records Implementaties: IMS, Windows Registry, bestandssysteem (b.v. FAT) Basisopleiding informatica - module 4 ABIS 5
12 Hiërarchische structuur: voor- en nadelen Voordelen: gemakkelijk te ontwerpen goedkoop om te onderhouden gemakkelijk te beveiligen gelijkaardig aan niet-elektronische data-opslag gemakkelijk doorzoeken, maar enkel indien gesorteerd en als de zoekactie compatibel is met de sortering Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Nadelen: kind kan maar 1 ouder hebben één boom per database, takken hebben onderling geen samenhang niet flexibel voor meer complexe verwijzingen niet alle data is intrinsiek hiërarchisch navigatie is moeilijk (niet-lineair) Basisopleiding informatica - module 4 ABIS 6
13 Netwerk-structuur 3.2 Geïntroduceerd midden jaren 60 Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Gelijkaardig aan de hiërarchische structuur Verschil: meerdere ouders per kind en links tussen takken mogelijk Creëert many-to-many relaties Implementaties: IDMS, WAN en LAN systemen Basisopleiding informatica - module 4 ABIS 7
14 Netwerk-structuur: voor- en nadelen Voordelen: meerdere relatie-types kunnen gebruikt worden gemakkelijke datatoegang data-integriteit verzekerd data onafhankelijk van het achterliggende systeem efficiënter dan het corresponderende hiërarchische model Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Nadelen: complex systeem (achter de schermen) moeilijk om structurele wijzigingen door te voeren in het model onoverzichtelijk Basisopleiding informatica - module 4 ABIS 8
15 Relationele structuur 3.3 Edgar Codd, begin jaren 70 Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Gebaseerd op relationele algebra ( verzamelingenleer ) Geen echte hiërarchie meer tussen de data: platte structuur Elke rij van een tabel bevat gegevens die samenhoren, gerelateerd zijn Tabellen kunnen aan mekaar gelinkt zijn via zgn. sleutels ( keys ) One-to-many relaties Implementaties: Oracle, Sql Server, Access, DB2, MySQL,... Basisopleiding informatica - module 4 ABIS 9
16 Relationele structuur - Voorbeeld Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren id titel duur dagprijs 1 SQL JAVA id datum locatie cursusnr Abis Leuven Abis Leuven Min Financiën 2 id voornaam familienaam 1 Mark Stessens 2 Jef Goris 3 An Smets 4 Mieke Schoofs 5 Jos Van Hoof Hoe personen en sessies linken? Basisopleiding informatica - module 4 ABIS 10
17 Relationele structuur: voor- en nadelen Voordelen: eenvoudige concepten, met theoretische basis geen redundante data niet navigationeel goede security (gebaseerd op inhoud van de data) Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Nadelen: 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 eigenschap Basisopleiding informatica - module 4 ABIS 11
18 NoSQL 3.4 Not only SQL Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Beweging gestart in 2009 Bedoeling: moderne web-scale database, Big Data Vrijer gestructureerd, open-source, gedistribueerd Zowel gebruikt voor het opslaan van gewone relationele data als van documenten en andere structuren (b.v. JSON) Implementaties: Hadoop/Hbase, MongoDB,... Basisopleiding informatica - module 4 ABIS 12
19 NoSQL: voor- en nadelen Voordelen: dynamisch bijvoegen van nieuwe attributen ook niet-atomaire data kan makkelijk opgeslagen worden eenvoudige query-interface directere vertaling tussen data en applicatie snel efficiënter gebruik van geheugen Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Nadelen: TE vrij? geen standaardisatie: heel veel verschillende types, tools,... geen garanties van data-consistentie Basisopleiding informatica - module 4 ABIS 13
20 Van bestand naar tabel 1. Van bestand naar tabel 2. Definitie Database 3. Hoe data structureren Basisopleiding informatica - module 4 ABIS 14
21 Relational Database Management Systems Objectieven : Verschil tussen database en DBMS Taken van het DBMS Overzicht van produkten Wat is SQL? ABIS Training & Consulting 15
22 Wat is een Database Management System (DBMS) 1 Vorig hoofdstuk: LOGISCH zicht op data-opslag Fysiek zit data nog steeds in bestanden Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Database Management System is een tool voor databeheer, en een buffer tussen data en programma s / gebruikers DBMS neemt ook andere taken op zich dan data toegankelijk maken Basisopleiding informatica - module 4 ABIS 16
23 Taken van het RDBMS (relationele DBMS) 2 Logische datastructuur toegankelijk maken, onafhankelijk van de fysieke opslag / toegangsmethode Integriteit (= consistentie) van de data bewaken Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Gelijktijdige toegang maximaliseren Performantie verhogen door optimalisatie Beveiliging van data (autorisaties) Dataverlies vermijden door o.a. backup / recovery Basisopleiding informatica - module 4 ABIS 17
24 Overzicht van RDBMS produkten 3 IBM: DB2 (z/os, LUW), Informix Oracle: Oracle, MySQL Microsoft: Access, SQL Server (MS SQL) Ingres, PostGreSQL Sybase (SAP): Adaptive Server Enterprise, IQ Teradata Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Verschillen op basis van OS waarop de database draait waar zitten de files - geheugengebruik soort / hoeveelheid data - concurrency - optimalisatie beheerstaken tools Gelijkenissen: gebruiken gelijkaardige interface (SQL) Basisopleiding informatica - module 4 ABIS 18
25 DB2 3.1 Eerste versie 1983, nieuwste versie (11) oktober 2013 Drie verschillende produkten op basis van het OS DB2 for z/os: Mainframe DB2 for LUW: Linux, Unix (AIX, Solaris, HP-UX), Windows DB2 for iseries: AS400 Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Maximale tabelgrootte: quasi onbeperkt (afh. v. bestandssysteem) Duur qua licenties - gratis versie voor thuis Extreem krachtig bij complexere systemen, zeer performant Vooral gebruikt door grote (financiële) bedrijven Tools: SPUFI, QMF, Data Studio,... Basisopleiding informatica - module 4 ABIS 19
26 Oracle 3.2 Eerste versie 1979, nieuwste versie (12c) juni 2013 OS: Windows, Linux, Solaris, AIX, HP-UX Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Maximale tabelgrootte: ongelimiteerd Duur qua licenties - gratis versie voor thuis Extreem krachtig bij complexere systemen, zeer performant Vooral populair bij grotere bedrijven Tools: SQL Developer, Apex, SQL*Plus, Oracle Reports,... Basisopleiding informatica - module 4 ABIS 20
27 MySQL 3.3 Eerste versie 1995, nieuwste versie (5.6) juli 2013 OS: alle (ook b.v. Symbian, BSD, MacOS,...) Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Open source - goedkoop (of zelfs gratis) Max tabelgrootte: ongelimiteerd (limiet van het bestandssysteem) Eenvoudige set-up voor kleinere databases Vooral populair bij kleinere bedrijven, startups, bedrijven die web applicaties ontwikkelen Tools: MySQL Workbench, PHPmyadmin, commandolijn,... Basisopleiding informatica - module 4 ABIS 21
28 SQL Server / MS SQL 3.4 Eerste versie 1984 (Sybase), 1992 (Microsoft), nieuwste versie SQL Server 2012 (april 2012) OS: Windows Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Maximale tabelgrootte: 16 TB Goedkoper dan Oracle of DB2, maar beperkter qua grootte, schaalbaarheid,... Gebruikers: Windows / Microsoft-minded bedrijven,... Tools: SQL Server Management Studio, Visual Studio, Reporting Services,... Basisopleiding informatica - module 4 ABIS 22
29 Access 3.5 Eerste versie 1992, nieuwste versie MS Access 2013 (januari 2013) OS: Windows Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language Tool + DBMS in één product (goede geïntegreerde grafische gebruikersinterface) Een echt DBMS? maximale bestands-grootte: 2GB geen triggers, functies, procedures,... beperkt aantal gelijktijdige gebruikers niet client-server gebaseerd, maar file-server Eerder te gebruiken voor kleine toepassingen Basisopleiding informatica - module 4 ABIS 23
30 SQL - Structured Query Language 4 Taal waarmee relationele data aangesproken wordt Oorspronkelijk SEQUEL: Structured English QUEry Language Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language 4GL - descriptief en declaratief -> gemakkelijk te schrijven ISO standaard voor alle RDBMS produkten Dialecten! Uniforme taal voor zowel data manipulatie als structuurdefinitie Basisopleiding informatica - module 4 ABIS 24
31 SQL - onderdelen DQL: Data Query Language select DML: Data Manipulation Language insert update delete merge truncate Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language DDL: Data Definition Language create alter drop rename Basisopleiding informatica - module 4 ABIS 25
32 SQL - onderdelen (vervolgd) DCL: Data Control Language grant revoke Relational Database Management Systems 1. Wat is een Database Management System (DBMS) 2. Taken van het RDBMS (relationele DBMS) 3. Overzicht van RDBMS produkten 4. SQL - Structured Query Language TCL: Transaction Control Language commit rollback savepoint lock CLIENT - SERVER connect call prepare Basisopleiding informatica - module 4 ABIS 26
33 Normalisatie Objectieven : Ontwerpen van een relationele database structuur ERD diagrammen Hoe relaties leggen tussen tabellen ABIS Training & Consulting 27
34 Ontwerpen van een relationele data structuur 1 Data verspreid over meerdere tabellen Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram Tabel: vast aantal kolommen variabel aantal rijen één relatie tussen de gegevens (= vaste betekenis) Tabel: 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 betekenis wel!) Basisopleiding informatica - module 4 ABIS 28
35 Analyse 1.1 Welke gegevens moeten er allemaal in de tabellen komen? Vb.: Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram Basisopleiding informatica - module 4 ABIS 29
36 Basisontwerp 1.2 Zet alle gegevens in één grote tabel op basis van de betekenis Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram titel duur datum locatie persoon persoonsgegevens bedrijf bedrijfsgegevens DB2 3 02/03/2013 Abis Leuven Stessens Nieuwstraat MinFinanciën Kunstlaan DB2 3 02/03/2013 Abis Leuven Smets Bondgenotenlaan Belfius Pachecolaan DB2 3 05/05/2013 AbisWoerden Goris Lippenslaan Honda Langerbruggestraat SQL 1 15/08/2013 Min Financiën Schoofs Lippenslaan MinFinanciën Kunstlaan Oracle 3 05/11/2013 Abis Leuven Smets Bondgenotenlaan Belfius Pachecolaan Java 4 05/11/2013 Abis Leuven Van Hoof Steenstraat Honda Langerbruggestraat Wijzigingen (insert, update, delete,...) kunnen consistentie-problemen geven in deze vorm --> NORMALISEREN Basisopleiding informatica - module 4 ABIS 30
37 Normalisatie 1.3 Stap 1: Cursussen - Inschrijvingen (versie 1) Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram titel duur DB2 3 Oracle 3 SQL 1 Java 4 titel datum locatie persoon persoonsgegevens bedrijf bedrijfsgegevens DB2 02/03/2013 Abis Leuven Stessens Nieuwstraat MinFinanciën Kunstlaan DB2 02/03/2013 Abis Leuven Smets Bondgenotenlaan Belfius Pachecolaan DB2 05/05/2013 AbisWoerden Goris Lippenslaan Honda Langerbruggestraat SQL 15/08/2013 Min Financiën Schoofs Lippenslaan MinFinanciën Kunstlaan Oracle 05/11/2013 Abis Leuven Smets Bondgenotenlaan Belfius Pachecolaan Java 05/11/2013 Abis Leuven Van Hoof Steenstraat Honda Langerbruggestraat Basisopleiding informatica - module 4 ABIS 31
38 Normalisatie Stap 2: Personen (versie 1) - inschrijvingen (versie 2) Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram persoon persoonsgegevens bedrijf bedrijfsgegevens Stessens Nieuwstraat Min Financiën Kunstlaan Smets Bondgenotenlaan Belfius Pachecolaan Goris Lippenslaan Honda Langerbruggestraat Schoofs Lippenslaan Min Financiën Kunstlaan Van Hoof Steenstraat Honda Langerbruggestraat titel datum locatie persoon DB2 02/03/2013 Abis Leuven Stessens DB2 02/03/2013 Abis Leuven Smets DB2 05/05/2013 Abis Woerden Goris SQL 15/08/2013 Min Financiën Schoofs Oracle 05/11/2013 Abis Leuven Smets Java 05/11/2013 Abis Leuven Van Hoof Basisopleiding informatica - module 4 ABIS 32
39 Normalisatie Stap 3: Sessies - Inschrijvingen (finale versie) Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram titel datum locatie titel datum persoon DB2 02/03/2013 Abis Leuven DB2 02/03/2013 Stessens DB2 05/05/2013 Abis Woerden DB2 02/03/2013 Smets SQL 15/08/2013 Min Financiën DB2 05/05/2013 Goris Oracle 05/11/2013 Abis Leuven SQL 15/08/2013 Schoofs Java 05/11/2013 Abis Leuven Oracle 05/11/2013 Smets Java 05/11/2013 Van Hoof Basisopleiding informatica - module 4 ABIS 33
40 Normalisatie Stap 4: Personen (finale versie) - Bedrijven Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram persoon persoonsgegevens bedrijf bedrijf bedrijfsgegevens Stessens Nieuwstraat Min Financiën Min Financiën Kunstlaan Smets Bondgenotenlaan Belfius Belfius Pachecolaan Goris Lippenslaan Honda Honda Langerbruggestraat Schoofs Lippenslaan Min Financiën KBC Brusselsesteenweg Van Hoof Steenstraat Honda Basisopleiding informatica - module 4 ABIS 34
41 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 waarde mag niet leeg (NULL) zijn (max) 1 PK per tabel gedefinieerd op 1 of meerdere kolommen vaak een artificieel identificatienummer, dat eventueel zelfs automatisch verhoogd wordt Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram Refererende sleutel (foreign key, FK) = kolom in een tabel die verwijst naar een primaire sleutel in een andere (of dezelfde) tabel moet dezelfde definitie (behalve de naam) hebben als de PK waarnaar hij verwijst tabel kan meerdere FKs bevatten Als deze sleutels gedefinieerd zijn, houdt het DBMS de integriteit van de gegevens en hun samenhang in de gaten! Basisopleiding informatica - module 4 ABIS 35
42 Relaties tussen tabellen persoon persoonsgegevens bedrijf bedrijf bedrijfsgegevens Stessens Nieuwstraat Min Financiën Min Financiën Kunstlaan Smets Bondgenotenlaan Belfius Belfius Pachecolaan Goris Lippenslaan Honda Honda Langerbruggestraat Schoofs Lippenslaan Min Financiën KBC Brusselsesteenweg Van Hoof Steenstraat Honda PK FK Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram Met een artificiële sleutel: persoon persoonsgegevens bedrijfsnr bedrijfsnr bedrijf bedrijfsgegevens Stessens Nieuwstraat 1 1 Min Financiën Kunstlaan Smets Bondgenotenlaan 2 2 Belfius Pachecolaan Goris Lippenslaan 3 3 Honda Langerbruggestraat Schoofs Lippenslaan 1 4 KBC Brusselsesteenweg Van Hoof Steenstraat 3 PK Janssens Kerskstraat NULL FK Basisopleiding informatica - module 4 ABIS 36
43 Relaties - JOINS JOIN = samenvoegen van 2 of meerdere tabellen op basis van hun refererende en primaire sleutels Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram persoon persoonsgegevens bedrijfnr bedrijf bedrijfsgegevens 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 Meerdere types JOINs, in verband met NULL waarden in de FK en/of niet voorkomende waarden van de PK in de FK Basisopleiding informatica - module 4 ABIS 37
44 ERD diagram 3 ERD = Entiteit - Relatie Diagram Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram Documenteert de relatie tussen de tabellen op een grafische manier Ook gebruikt tijdens de ontwerpfase van de database Tools bestaan om ERDs te vertalen naar tabellen en omgekeerd Verschillende tekenmanieren: UML, Chen, Bachmann,... Basisopleiding informatica - module 4 ABIS 38
45 ERD - UML UML = Unified Modeling Language Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram Kent verschillende diagrammen, waaronder het klasse diagram MS-Access gebruikt een soortgelijk type diagram Basisopleiding informatica - module 4 ABIS 39
46 Normalisatie 1. Ontwerpen van een relationele data structuur 2. Relaties tussen tabellen: sleutels 3. ERD diagram Basisopleiding informatica - module 4 ABIS 40
47 Tabellen Objectieven : Tabellen definiëren Wat zijn NULL-waarden Data-integriteit - sleutels Beperkingen opleggen op kolommen ABIS Training & Consulting 41
48 Tabeldefinitie: Overzicht 1 Tabel bestaat uit meerdere kolommen Tabellen 1. Tabeldefinitie: Overzicht 2. Kolomdefinitie 3. Integriteit Elke kolom gedefinieerd door: naam datatype NULLs toegelaten? standaardwaarde (optioneel) beperkingen (optioneel) Sleutels (PK en FK) zijn een speciale vorm van beperking Hoe integriteit bewaren -> wat te doen bij insert/update/delete Basisopleiding informatica - module 4 ABIS 42
49 Kolomdefinitie 2 Naam woord beginnend met een letter maximum lengte hangt af van het DBMS kies een kolomnaam die duidelijk zegt wat de inhoud is! Tabellen 1. Tabeldefinitie: Overzicht 2. Kolomdefinitie 3. Integriteit Datatype 2.2 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 afhankelijk zijn! Basisopleiding informatica - module 4 ABIS 43
50 NULL waarden 2.3 Is het invullen van een waarde in de kolom verplicht? ja nee -> NULL toegestaan (default) Tabellen 1. Tabeldefinitie: Overzicht 2. Kolomdefinitie 3. Integriteit NULL betekent: onbekende / ontbrekende / zinloze waarde NULL is niet hetzelfde als blanco (lege waarde)! Controverse 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 begrip NULL niet of slechts beperkt kennen Basisopleiding informatica - module 4 ABIS 44
51 Standaardwaarden 2.4 Als een veld verplicht is, kan een standaardwaarde (default) worden gedefinieerd Tabellen 1. Tabeldefinitie: Overzicht 2. Kolomdefinitie 3. Integriteit Deze wordt automatisch ingevuld als het veld niet opgegeven werd Kan expliciet opgegeven worden Soms ook een standaard standaardwaarde gekoppeld aan het datatype: blanco s voor tekst 0 voor numeriek nu voor datum/tijd Basisopleiding informatica - module 4 ABIS 45
52 Beperkingen opleggen 2.5 Mogelijk om validatieregels toe te voegen Tabellen 1. Tabeldefinitie: Overzicht 2. Kolomdefinitie 3. Integriteit Gekoppeld aan een kolom of aan de tabeldefinitie Waarden worden bepaald door een logische expressie Voorbeelden: geslacht in ( V, M ) cursusprijs > 0 accessoireprijs < totale_prijs Geen echte businessregels! Validatieregels 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) Basisopleiding informatica - module 4 ABIS 46
53 Integriteit 3 DBMS checkt integriteit van de data wanneer sleutels gedefinieerd zijn Tabellen 1. Tabeldefinitie: Overzicht 2. Kolomdefinitie 3. Integriteit Entity integriteit: primaire sleutel moet uniek zijn en mag geen NULLs bevatten Referentiële integriteit: refererende sleutel moet verwijzen naar een correcte waarde uit een primaire sleutel, of gelijk zijn aan NULL Wat bij insert/update/delete? -> ook hiervoor regels gedefinieerd: restrict: foutmelding indien rij weggehaald/gewijzigd waarnaar nog verwijzingen zijn cascade (trapsgewijs bijwerken/verwijderen) -> als rij weggehaald / gewijzigd wordt, worden ook verwijzende rijen verwijderd/gewijzigd set null: verwijzende velden worden op NULL gezet Default gedrag hangt af van DBMS, juiste keuze hangt af van betekenis van de relatie Basisopleiding informatica - module 4 ABIS 47
54 Tabellen 1. Tabeldefinitie: Overzicht 2. Kolomdefinitie 3. Integriteit Basisopleiding informatica - module 4 ABIS 48
55 SQL Objectieven : Gegevens zoeken in een tabel Filteren Eenvoudige berekeningen maken Sorteren Tabellen koppelen ABIS Training & Consulting 49
56 Wat is een query? 1 SELECT haalt data op van 1 of meer tabellen Resultaat is tabel SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Mogelijkheid om gegevens te filteren, groeperen, sorteren, (eenvoudige) berekeningen te maken 6 statements: 5 SELECT -> welke kolommen tonen 1 FROM -> uit welke tabel(len) komen de gegevens 2 WHERE -> filteren (condities) 3 GROUP BY -> groeperen 4 HAVING -> condities op kolomfuncties 6 ORDER BY -> sorteren In deze cursus: SELECT, FROM, WHERE, ORDER BY Basisopleiding informatica - module 4 ABIS 50
57 Tabellen selecteren: FROM 2 tabel/view specificeren waaruit de data komt select * from persons SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting kan ook vooraf gegaan worden door een schema naam, gescheiden van de tabelnaam d.m.v. een punt select * from tbaccad.tutpersons schema naam is vaak naam van de eigenaar/creator van de tabel Basisopleiding informatica - module 4 ABIS 51
58 Resultaat weergeven: SELECT 3 Welke kolommen tonen in het resultaat? 3.1 Courses cid cstitle cdur caprice 1000 DB2, An overview IMS/DB SAS_ADV SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting * toont ALLE kolommen select * -> geeft de volledige tabel weer from courses kolommen kiezen, gescheiden door een komma select cstitle, cdur from courses cstitle cdur DB2, An overview 5 IMS/DB 5 SAS_ADV 3 Basisopleiding informatica - module 4 ABIS 52
59 Berekende waarden weergeven 3.2 Nieuwe kolommen bijvoegen in het resultaat, gebaseerd op berekeningen op bestaande kolommen Operatoren: +, -, *, / SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Gebruik decimale punten, geen komma s Ook scalaire functies kunnen gebruikt worden (zie Module 5) b.v. LOWER(cstitle), SUBSTR(pfname, 1, 1), MONTH(sdate),... Voorbeeld: select cstitle, caprice * cdur * 1.15 from courses cstitle DB2, An overview IMS/DB 2070 SAS_ADV Basisopleiding informatica - module 4 ABIS 53
60 Aliassen 3.3 (Andere) naam geven aan een kolom uit de resultaat-tabel Keyword: AS SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting AS kan meestal weggelaten worden (niet in MS-ACCESS) Indien meerdere woorden -> dubbele aanhalingstekens toevoegen select cstitle AS titel, caprice*cdur*1.15 AS "totale prijs" from courses titel totale prijs DB2, An overview IMS/DB 2070 SAS_ADV Berekeningen en aliassen in SELECT veranderen de inhoud van de originele tabel NIET Alias ENKEL te gebruiken in SELECT (definitie) en ORDER BY Basisopleiding informatica - module 4 ABIS 54
61 DISTINCT 3.4 Unieke rijen selecteren op basis van (combinatie) van kolommen DISTINCT = verschillend SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select distinct cdur from courses cdur 5 3 select distinct cdur, caprice from courses cdur caprice Basisopleiding informatica - module 4 ABIS 55
62 Gegevens Filteren: WHERE 4 Limiteren van het aantal rijen in het resultaat Specificeert een conditie die waar, vals of onbekend (NULL) is SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Syntax: kolomnaam - OPERATOR - expressie Condities kunnen gecombineerd worden d.m.v. AND, OR en NOT Basisopleiding informatica - module 4 ABIS 56
63 Basiscondities 4.1 Vergelijkingsoperatoren: = : gelijk aan <> : verschillend van (in sommige DBMS ook!= of ^=) < : strikt kleiner dan <= : kleiner of gelijk aan > : strikt groter dan >= : groter of gelijk aan SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Indien vergeleken wordt met een tekstwaarde -> deze tussen enkele aanhalingstekens zetten! Tekstwaarden zijn in principe hoofdlettergevoelig tenzij datatype dit anders specifeert (standaard bij MS) Numerieke waarden: nooit tussen aanhalingstekens Basisopleiding informatica - module 4 ABIS 57
64 Basiscondities - Voorbeelden companies cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 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: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from companies where cono = 2 cono coname cotown cotownno cocountr 2 ASCO OXFORD RG211RY GB select coname, cotown, cocountr from companies where cocountr <> 'GB' coname cotown cocountr ABIS N.V. LEUVEN B COVERDAT NAARDEN NL Basisopleiding informatica - module 4 ABIS 58
65 Basiscondities - Voorbeelden (vervolg) select * from companies where cono <= 3 cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 2 ASCO OXFORD RG211RY GB 3 COVERDAT NAARDEN 1411 AR NL SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from companies where cotown > 'N' cono coname cotown cotownno cocountr 2 ASCO OXFORD RG211RY GB 3 COVERDAT NAARDEN 1411 AR NL Basisopleiding informatica - module 4 ABIS 59
66 Logische operatoren operatoren voor het samenvoegen van condities AND: beide condities moeten voldaan zijn OR: minstens 1 van de condities moet voldaan zijn NOT: negatie (meestal pas gebruikt bij IN, BETWEEN,...) SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Elk deel is een volledige conditie zoals hiervoor (kolomnaam!) Prioriteitsregels: eerst NOT, dan AND, dan OR indien andere volgorde gewenst -> HAAKJES gebruiken! zelfde prioriteit -> van links naar rechts uitgevoerd Basisopleiding informatica - module 4 ABIS 60
67 Logische operatoren - Voorbeelden companies cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 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: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from companies where cocountr='gb' AND cono>2 cono coname cotown cotownno cocountr 4 EDUCA Ltd. LONDON EC2A 2EN GB select * from companies where cocountr='gb' OR cono>2 cono coname cotown cotownno cocountr 2 ASCO OXFORD RG211RY GB 3 COVERDAT NAARDEN 1411 AR NL 4 EDUCA Ltd. LONDON EC2A 2EN GB Basisopleiding informatica - module 4 ABIS 61
68 Logische operatoren - Voorbeelden (vervolg) select coname, cocountr from companies where cocountr='nl' OR cocountr='b' coname cocountr ABIS N.V. B COVERDAT NL SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select coname, cocountr from companies where cocountr='nl' AND cocountr='b' coname cocountr Basisopleiding informatica - module 4 ABIS 62
69 Logische operatoren - Voorbeelden (vervolg) select * from companies where cocountr='nl' OR cocountr='b' AND cono < 3 cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 3 COVERDAT NAARDEN 1411 AR NL SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from companies where (cocountr='nl' OR cocountr='b') AND cono < 3 cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B Basisopleiding informatica - module 4 ABIS 63
70 IN 4.3 Verzameling van waarden opsommen Waarden tussen haakjes, gescheiden door komma s SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Vervangt een gecombineerde OR op dezelfde kolom Syntax: kolomnaam IN (waarde1, waarde2, waarde3) Negatie: NOT IN Basisopleiding informatica - module 4 ABIS 64
71 IN - Voorbeelden companies cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 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: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from companies where cotown IN ('LEUVEN','LONDON') cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 4 EDUCA Ltd. LONDON EC2A 2EN GB select * from companies where cono NOT IN (1,3,4) cono coname cotown cotownno cocountr 2 ASCO OXFORD RG211RY GB Basisopleiding informatica - module 4 ABIS 65
72 BETWEEN 4.4 Tussen Syntax: kolomnaam BETWEEN waarde1 AND waarde2 SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Grenswaarden inbegrepen Negatie: NOT BETWEEN Vooral gebruikt voor numerieke waarden en datums (maar kan ook voor tekst) Basisopleiding informatica - module 4 ABIS 66
73 BETWEEN - Voorbeelden Courses cid cstitle cdur caprice 1000 DB2, An overview IMS/DB SAS_ADV ORACLE, An overview SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select cstitle, caprice from courses where caprice BETWEEN 300 AND 550 cstitle caprice DB2, An overview IMS/DB ORACLE, An overview select * from courses where cdur NOT BETWEEN 4 AND 5 cid cstitle cdur caprice 3000 SAS_ADV Basisopleiding informatica - module 4 ABIS 67
74 LIKE 4.5 Zoeken op tekstwaarden met een bepaald patroon begint met bevat eindigt op SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Wildcards (jokers) gebruikt % : 0 of meer karakters (LET OP: MS-ACCESS gebruikt * ) _ : exact 1 karakter (LET OP: MS-ACCESS gebruikt? ) Syntax: kolomnaam LIKE '%waarde' Negatie: NOT LIKE Let op bij het gebruik van like '%n' (eindigt op n) in sommige DBMSen indien de kolom als vaste breedte (char) gedefinieerd is Gebruik STEEDS een wildcard bij LIKE, NOOIT bij IN!!! Basisopleiding informatica - module 4 ABIS 68
75 LIKE - Voorbeelden (MS-ACCESS syntax) companies cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 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: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from companies where cotown LIKE 'N*' cono coname cotown cotownno cocountr 3 COVERDAT NAARDEN 1411 AR NL select * from companies where cotown LIKE '*N*' cono coname cotown cotownno cocountr 1 ABIS N.V. LEUVEN 3000 B 3 COVERDAT NAARDEN 1411 AR NL 4 EDUCA Ltd. LONDON EC2A 2EN GB Basisopleiding informatica - module 4 ABIS 69
76 LIKE - Voorbeelden (vervolg) select * from companies where coname LIKE '?O*' cono coname cotown cotownno cocountr 3 COVERDAT NAARDEN 1411 AR NL SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from companies where coname NOT LIKE 'A*' cono coname cotown cotownno cocountr 3 COVERDAT NAARDEN 1411 AR NL 4 EDUCA Ltd. LONDON EC2A 2EN GB select * from companies where coname NOT LIKE '*A*' cono coname cotown cotownno cocountr Basisopleiding informatica - module 4 ABIS 70
77 IS NULL 4.6 Test of een waarde NULL is ( onbekend ) Niet hetzelfde als blanco! Kan b.v. ook voor numeriek of datum SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Syntax: kolomnaam IS NULL Negatie: IS NOT NULL -> waarde is gekend Opgelet: gebruik nooit kolomnaam = NULL!!! Keywoord IS enkel gebruiken in combinatie met NULL NULL kan op verschillende manieren voorgesteld worden (afhankelijk van het DBMS en zelfs van de gebruikte tool) NULL of null of (null) of \N --- Basisopleiding informatica - module 4 ABIS 71
78 IS NULL - Voorbeelden persons pno plname pfname pfunc 1 Smith John programmer 2 Johnson Paul analyst 3 Jones Mary NULL SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from persons where pfunc IS NULL pno plname pfname pfunc 3 Jones Mary NULL select * from persons where pfunc IS NOT NULL pno plname pfname pfunc 1 Smith John programmer 2 Johnson Paul analyst Basisopleiding informatica - module 4 ABIS 72
79 IS NULL - Voorbeelden (vervolg) Let op: <> geeft geen rijen terug waarvoor die kolom NULL is!!! select * from persons where pfunc <> PROGRAMMER SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting pno plname pfname pfunc 2 Johnson Paul analyst select * from persons where pfunc <> PROGRAMMER OR pfunc IS NULL pno plname pfname pfunc 2 Johnson Paul analyst 3 Jones Mary NULL Basisopleiding informatica - module 4 ABIS 73
80 Sorteren: ORDER BY 5 Sorteren op basis van 1 of meerdere kolommen Indien meerdere kolommen: volgorde maakt uit SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Oplopend (ASC: default) of aflopend (DESC) Syntax : ORDER BY kolomnaam1 DESC, kolomnaam2 Aliassen of kolomnummers kunnen gebruikt worden Basisopleiding informatica - module 4 ABIS 74
81 ORDER BY - Voorbeelden cid cstitle cdur caprice 1000 DB2, An overview IMS/DB SAS_ADV SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from courses order by cdur cid cstitle cdur caprice 2000 IMS/DB SAS_ADV DB2, An overview select * from courses order by cstitle DESC cid cstitle cdur caprice 3000 SAS_ADV IMS/DB DB2, An overview Basisopleiding informatica - module 4 ABIS 75
82 ORDER BY - Voorbeelden (vervolg) select from * courses order by cdur, caprice cid cstitle cdur caprice 2000 IMS/DB SAS_ADV DB2, An overview SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select * from courses order by caprice, cdur cid cstitle cdur caprice 2000 IMS/DB DB2, An overview SAS_ADV Basisopleiding informatica - module 4 ABIS 76
83 ORDER BY - Voorbeelden (vervolg) select from * courses order by cdur DESC,caprice cid cstitle cdur caprice 1000 DB2, An overview IMS/DB SAS_ADV SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting select cstitle, cdur, caprice from courses order by 3 cstitle cdur caprice IMS/DB DB2, An overview SAS_ADV Basisopleiding informatica - module 4 ABIS 77
84 Tabellen koppelen: JOIN 6 Combineren van meerdere tabellen op basis van PK en FK (JOIN-conditie) In het FROM statement SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Meerdere types JOINs ( ivm NULL waarden) INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN Alle kolommen uit de gejoinde tabellen kunnen gebruikt worden in de select Tabellen kunnen een aliasnaam krijgen (ivm leesbaarheid en naamconflicten) Alias verplicht in Access Basisopleiding informatica - module 4 ABIS 78
85 INNER JOIN 6.1 Bevat enkel die rijen die in beide tabellen een matchende PK - FK combinatie hebben JOIN-conditie in FROM SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Syntax: SELECT * FROM tabel1 t1 INNER JOIN tabel2 t2 ON t1.pk=t2.fk Basisopleiding informatica - module 4 ABIS 79
86 INNER JOIN - Voorbeeld Companies cono coname cotownno cotown cocountr 1 ABIS 3000 LEUVEN B 2 ESCON 8200 GENT B 3 FLYGT 1200 TERNAT B SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Persons pno pfname pa_cono 1 MARGOT 2 2 CHARLES 3 4 JOHN 2 5 PAUL (null) Geef voornaam en bedrijfsnaam van elke persoon select pfname, coname from persons p inner join companies c on p.pa_cono=c.cono Resultaat: pfname MARGOT CHARLES JOHN coname ESCON FLYGT ESCON Basisopleiding informatica - module 4 ABIS 80
87 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 hebben in linkse tabel worden meegenomen SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting PAUL,---- MARGOT,ABIS CHARLES,XEROX JOHN,IBM ----,APPLE LEFT INNER RIGHT Persons Companies pno pfname pa_cono cono coname cocountr 1 MARGOT 1 1 ABIS B 2 CHARLES 2 2 XEROX (null) 4 JOHN 5 5 IBM NL 5 PAUL (null) 6 APPLE B Basisopleiding informatica - module 4 ABIS 81
88 LEFT en RIGHT OUTER JOIN - Voorbeelden select pfname, coname from persons left outer join companies on pa_cono=cono Resultaat SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting pfname MARGOT CHARLES JOHN PAUL coname ABIS XEROX IBM (null) select pfname, coname from persons right outer join companies on pa_cono=cono Resultaat pfname MARGOT CHARLES JOHN (null) coname ABIS XEROX IBM APPLE Basisopleiding informatica - module 4 ABIS 82
89 FULL OUTER JOIN 6.3 Ook alle niet matchende rijen worden meegenomen Combinatie van LEFT en RIGHT outer join Voorbeeld select pfname, coname from persons full outer join companies on pa_cono=cono SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting Resultaat pfname MARGOT CHARLES JOHN PAUL (null) coname ABIS XEROX IBM (null) APPLE FULL OUTER JOIN wordt niet ondersteund in Access Basisopleiding informatica - module 4 ABIS 83
90 Samenvatting 7 SELECT -> welke kolommen tonen in resultaat * -> alles col1, col2 -> kolomnamen met komma s col1, col1*col2 AS hoofding -> berekende waarde, aliassen DISTINCT col1,col2 -> unieke waarden SQL 1. Wat is een query? 2. Tabellen selecteren: FROM 3. Resultaat weergeven: SE- LECT 4. Gegevens Filteren: WHERE 5. Sorteren: ORDER BY 6. Tabellen koppelen: JOIN 7. Samenvatting FROM -> tabel(len) waaruit de data komt tabelnaam1 inner join tabelnaam2 on fk_col=pk_col WHERE -> 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 ORDER BY -> sorteren op kolom uit resultaat (select) col1 DESC, col 2 -> kolommen, DESC = aflopend 3, hoofding (niet in ACCESS) -> kolomnummer uit select, alias Basisopleiding informatica - module 4 ABIS 84
91 Appendix A: Training Database Objectieven : Documentatie van de database gebruikt in de oefeningen ABIS Training & Consulting 85
92 ERD - Diagram 1 Appendix A: Training Database 1. ERD - Diagram 2. Tabeldefinities 3. Inhoud van de tabellen Basisopleiding informatica - module 4 ABIS 86
93 Tabeldefinities 2 De training database bestaat uit 5 tabellen: 1. COURSES 2. PERSONS 3. COMPANIES 4. SESSIONS 5. ENROLMENTS Appendix A: Training Database 1. ERD - Diagram 2. Tabeldefinities 3. Inhoud van de tabellen Deze database is een voorbeeld van de administratie van het departement TRAINING. Basisopleiding informatica - module 4 ABIS 87
94 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 10 COBANKNO CHAR 14 - Y NULL Appendix A: Training Database 1. ERD - Diagram 2. Tabeldefinities 3. Inhoud van de tabellen Semantiek: 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 Basisopleiding informatica - module 4 ABIS 88
95 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 NULL FK(N) 5 PA_CONO SMALLINT - - Y NULL 6 PADEPT CHAR 30 - Y NULL 8 PSEX CHAR 1 - Y NULL Appendix A: Training Database 1. ERD - Diagram 2. Tabeldefinities 3. Inhoud van de tabellen Semantiek: PNO: (artificiële PK), bevat het persoonsnummer PLNAME: familienaam PFNAME: voornaam PFUNC: functie van de persoon PA_CONO: FK naar COMPANIES, bedrijf waar de persoon werkt PADEPT: departement in het bedrijf waar de persoon werkt PSEX: geslacht van de persoon, man ( M ) of vrouw ( F ) Basisopleiding informatica - module 4 ABIS 89
Databases - Inleiding
Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden
Nadere informatieSQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.
BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is
Nadere informatie12. Meer dan één tabel gebruiken en sub-queries
12. Meer dan één tabel gebruiken en sub-queries 12.1. Inleiding In de vorige hoofdstukken heb je telkens queries uitgevoerd op één tabel. In de praktijk is het raadplegen van gegevens over het algemeen
Nadere informatieDBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.
SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases
Nadere informatieLes 2 Eenvoudige queries
Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten
Nadere informatieToon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64
Klas Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters JONGENS Number Integer MEISJES Number Integer Lessen Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters DOCCODE Short Text 3 Characters
Nadere informatieZelftest SQL Workshop
Zelftest SQL Workshop Document: n0087test.fm 04/01/2018 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test
Nadere informatie1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...
1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên
Nadere informatieHoofdstuk: 1 Principes van databases
DBSQLF Databases en SQL Hoofdstuk: 1 Principes van databases aant Css: 4 732 blz 9 1.1 Doel ve database - om op het juiste moment op de juiste plaats de juiste gegevens beschikbaar te hebben richten we
Nadere informatieInformatie & Databases
Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat
Nadere informatieDATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1
DATAMODEL SQL Middelbare School Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 INHOUDSOPGAVE 1. Informatiedomein 3 1.1 Informatiedomein 3 1.2 Toepassingen 3 2.
Nadere informatieStructured Query Language (SQL)
Structured Query Language (SQL) Huub de Beer Eindhoven, 4 juni 2011 Database: in essentie 0 of meer tabellen elke tabel nul of meer kolommen (of velden) elke tabel nul of meer unieke rijen elke query werkt
Nadere informatieDatabases en SQL Foundation (DBSQLF.NL)
Databases en SQL Foundation (DBSQLF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48
Nadere informatieZelftest SQL Workshop
Zelftest SQL Workshop Document: n0087test.fm 25/06/2014 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test
Nadere informatieDBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.
SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Op dit moment gebruiken
Nadere informatieSQL & Datamodelleren
SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...
Nadere informatieInhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank
v Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank 1 Introductie: data en informatie 1.0 Wat leer je in dit hoofdstuk? 1.1 Verschil tussen gegevens en
Nadere informatieZelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium
Zelftest SQL Document: n0453test.fm 19/04/2012 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING BIJ DE ZELFTEST SQL Korte handleiding Deze test heeft als bedoeling
Nadere informatieZelftest Informatica-terminologie
Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u
Nadere informatieSQL datadefinitietaal
SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen
Nadere informatieQuery SQL Boekje. Fredrik Hamer
Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen
Nadere informatieEXIN Databases en SQL Foundation
EXIN Databases en SQL Foundation Preparation Guide Editie 201608 Copyright 2016 EXIN All rights reserved. No part of this publication may be published, reproduced, copied or stored in a data processing
Nadere informatieZelftest DB2 for z/os basiscursus
Zelftest DB2 for z/os basiscursus Document: n1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST DB2 FOR Z/OS BASISCURSUS
Nadere informatieDatamodelleren en databases 2011
Datamodelleren en databases 21 Capita selecta 1 In dit college Modelleren Normaliseren Functionele afhankelijkheid 1-3N M:N-relaties, associatieve entiteittypes, ternaire relaties Weak entiteittypes Multivalued
Nadere informatieSQL / Systeemanalyse
SQL / Systeemanalyse Wie ben ik Hans de Wit 44 jaar HBO BI in deeltijd gedaan Sinds 2008 werkzaam met BI / DWH med.hro.nl/wihan SQL De gegevens in een database vormen de grondstof voor informatie De informatie
Nadere informatieInleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5
1 Inhoudsopgave. Inleiding.... 3 1 Databases en Data Base Management Systems.... 3 2 Tabellen.... 3 3 Wat is SQL?... 5 4 Gegevens opvragen (deel 1).... 5 4.1 Boolean operatoren.... 7 4.2 IN en BETWEEN
Nadere informatieDatabank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster
4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens
Nadere informatieIntroductie (relationele) databases
Eerste les Introductie (relationele) databases Database en DBMS Een verzameling van gestructureerd opgeslagen gegevens Dus ook een kaartenbak is een database Van oudsher waren er hiërarchische en netwerkdatabases
Nadere informatieSparse columns in SQL server 2008
Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG
Nadere informatieInhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2
v Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2 1 Introductie: data en informatie 3 1.0 Wat leer je in dit hoofdstuk? 3 1.1 Verschil tussen
Nadere informatieLes S-01: De basisbeginselen van SQL
Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database
Nadere informatie11. Het selecteren van gegevens deel II
11. Het selecteren van gegevens deel II 11.1. Inleiding In hoofdstuk 7 heb je kennis gemaakt met het statement Select. In dit hoofdstuk ga je wat dieper in op het statement. Je gaat sorteren / groeperen
Nadere informatieStructured Query Language
Structured Query Language SQL = internationale standaardtaal. Origineel IBM. SQL92 (SQL2), SQL99 (SQL3), SQL:2003, SQL:2007 en SQL:2008. Vele dialecten. In wat volgt beperken we ons tot wat tot de kern
Nadere informatie[TOETS SQL INLEIDING]
2011 ROC ter AA afdeling T&T Team ICT Toets SQL Inleiding Duur: 100 minuten Hulpmiddelen: Alleen Pen en Papier Er is één voorblad en vijf opgaven pagina s. Normering: Deel I: 14 punten (7x2 Deel II: 10
Nadere informatieMiniles gegevensbanken bevragen met SQL
Miniles gegevensbanken bevragen met SQL In deze miniles gaat het over gegevensbanken of databases. Dit zijn bestanden waarin gegevens kunnen worden opgeslagen. Het is dan van belang dat je op een eenvoudige
Nadere informatieInformatie verwerking en databases... 4. RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE...
Databases+SQL 1 Inhoud Informatie verwerking en databases... 4 RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE... 18 SQL ORDER BY... 19 SQL Aggregate
Nadere informatieEUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE
EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE The European Computer Driving Licence Foundation Ltd. Portview House Thorncastle Street Dublin 4 Ierland Tel: + 353 1 630
Nadere informatieDATAMODELLERING ER DIAGRAM
DATAMODELLERING ER DIAGRAM Inleiding In dit whitepaper wordt de datamodelleervorm ER diagram beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld krijgen
Nadere informatieWorkshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1
Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database
Nadere informatieSQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003
SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets
Nadere informatieThinking of development
Thinking of development Databases Arjan Scherpenisse HKU / Miraclethings Agenda voor vandaag Opdracht tussenstand State diagram / Observer pattern Bret Victor Databases 2/42 Opdracht tussenstand Slides
Nadere informatie1. Databanken. Wat is een databank? Verschillende opslagmethodes
1. Databanken Wat is een databank? Verschillende opslagmethodes Tekst bestanden Spreadsheet Relationele gegevensbanken Relationeel model De gestandaardiseerde opvraagtaal SQL Beheer van een mysql databank
Nadere informatieADVANCED DATABASES Syllabus versie 2.0
ECDL-MODULE ADVANCED DATABASES Syllabus versie 2.0 Doel Dit document bevat de syllabus van de module Advanced Databases. In de syllabus worden aan de hand van leeruitkomsten de kennis en vaardigheden uiteengezet
Nadere informatie8. De invoer van gegevens
8. De invoer van gegevens 8.1. Inleiding Voor het invoeren van gegevens kan het DML-statement INSERT INTO worden gebruikt. Om dit statement correct te kunnen gebruiken, moet je wel antwoord weten op de
Nadere informatieData Manipulation Language
Data Manipulation Language (DML) In de vorige les hebben we een database structuur gemaakt van 4 tabellen. Hiervoor worden de volgende scripts gebruikt voor de verschillende tabellen: Tabel A ROBERT ELLIS
Nadere informatieISO Query By Example
ISO Query By Example Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. QBE waarom nog een query taal? de relationele algebra en SQL geven niet alleen een specificatie van een query-resultaat,
Nadere informatieF. TRUYEN - Informatiekunde QBE. MS Access
F. TRUYEN - Informatiekunde QBE MS Access Maak queries via Design View Voeg de tabellen toe die je wil bevragen Selecteer de gewenste kolommen Bekijk resultaat met View knop Bekijk SQL code SQL venster
Nadere informatieDatabases SQL - meerdere tabellen
Databases SQL - meerdere tabellen Nut van een database Dilbert 1 Reservering Lezer Uitgave Filiaal Basis zaken Uitlening Exemplaar NB: er kan verschil in smaak zitten tussen M1a en S1a notatie Join : het
Nadere informatieSQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.
SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens
Nadere informatieSQL.
SQL joost.vennekens@kuleuven.be Mogelijkheden Tabellen maken: create table Tabellen verwijderen: drop table Tabellen vullen: insert into Tabellen wijzigen: update, delete from Gegevens opvragen: select
Nadere informatieoefeningen TOP2000 antwoorden
oefeningen TOP2000 antwoorden vragen niveau 1 Niveau 1 beslaat de volgende onderwerpen: SELECT, FROM, WHERE, DISTINCT, ORDER BY, LIKE, BETWEEN, IN, wildcards, eenvoudige vergelijkingen, eenvoudige logische
Nadere informatie6. Het maken van een database
6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor
Nadere informatieSQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.
SQL en XML Datamodellering 2007 1 XML schema s & DMO Schema een ruim begrip (zie Møller, p. 96) DTD schema W3C Schema In dit overzicht: Wat zijn de belangrijke zaken uit XML voor datamodellering? (onvolledig)
Nadere informatieLes S-01: De basisbeginselen van SQL
Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database
Nadere informatieLes 11 : Basis SQL (deel2).
Les 11 : Basis SQL (deel2). Wat is SQL? SQL gaan we gebruiken voor het raadplegen van de database. We gaan gegevens invoegen in de database, selecteren, aanpassen en verwijderen van de database. Om dit
Nadere informatieLes S-02: Meer geavanceerde SQL-instructies
Les S-02: Meer geavanceerde SQL-instructies 2.0 Overzicht les 1: De basisvorm van een SQL query ziet er als volgt uit: (DISTINCT) selecteer de velden uit de tabel waar de volgende voorwaarde geldt ; Bij
Nadere informatieopstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren
opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren Handleiding om te beginnen met mysql WorkBench. In twee stappen 0. WorkBench verbinden met mysql 1. een hallo
Nadere informatie1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer.
DataBase Management & Databasetechnologie We gaan nu aan de slag met het databasemanagementprogramma Access. Zo'n set programma's waarmee je databases kunt maken, beheren en bevragen noemt men ook wel
Nadere informatie1. * Database worden vaak gebruikt in Client-Server architectuur.
Naam Studentnummer Klas Herkansing [ ] ja, nee [ ], zoja uit welk jaar? kernbegrippen relationele database Minimaal drie van de vijf vragen goed beantwoorden. 1. * Database worden vaak gebruikt in Client-Server
Nadere informatieVragen hoofdstuk 1: Resultaat
Vragen hoofdstuk 1: Resultaat Het ontwikkelen van informatiesystemen bevat volgende activiteiten: Analyse van het probleem. Toewijzen van resources. Ontwerp van de onderdelen van het systeem. Bouw van
Nadere informatieSQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC
Aantekeningen IRDB Vak: IRDB > Infrma1ca Rela1nele DataBase Onderstaande database scripts zijn gebaseerd p PstgreSQL. Standaarden Schrijf SQL wrden al1jd in hfdlefers, k al werkt het met kleine lefers;
Nadere informatieRelationele databanken
Relationele databanken De meeste databanken zijn relationeel. Gegevens in tabellen. Relationele model stoelt op de verzamelingenleer (leer der relaties). Relatie betekent hier tabel. Grote kracht van deze
Nadere informatieSQL & Relationele datamodellen in interactieve media
SQL & Relationele datamodellen in interactieve media HVA-CMD-V1-datamodelleren oefeningen deel 1: SQL 2012-2013 Inhoud Inhoud... 2 Selecties uit een enkelvoudige datatabel... 3 Selecties uit een meerdere
Nadere informatieData Definition Language
Data Definition Language We gaan hier dezelfde database gebruiken als in de vorige les. Nu gaan we deze echter maken met behulp van DDL gedeelte van SQL. Om in het SQL deel van Microsoft Access te komen
Nadere informatieLes 10 : Aanmaken van een database (deel2).
Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van
Nadere informatieModule 1 Programmeren
Module 1 Programmeren Programmeertalen 13 1.1 Inleiding 13 1.2 Programmeertalen in historisch perspectief 13 1.2.1 Machinecode 13 1.2.2 Assembleertalen (assembly) 14 1.2.3 Hogere programmeertalen 15 1.2.4
Nadere informatieOntwerp een datamodel
SQL IAM-TDI-V2-SQL, handleiding datamodel Ontwerp een datamodel Fons van Kesteren, okt 2008, HvA IAM IAM-V2-TDI-SQL 1 Doelstelling... 3 Het ontwerpproces... 4 Afbakening van het informatiedomein... 5 Entiteiten,
Nadere informatie= > >= < <= BETWEEN IS NULL IS NOT NULL
Select queries SELECT...FROM... SELECT DISINCT...FROM... WHERE...AND...OR...NOT...LIKE...IN = > >= <
Nadere informatieRelationele databases
Systematisch bouwen van informatiesystemen t.b.v. practicumopdracht : Relationele databases Structured Query Language SQL Relationele databases Geautomatiseerde informatiesystemen gebruiken bijna altijd
Nadere informatiePROGRAMMA 2011-2012. Vak: informatica..
Vak: informatica.. Laag: Havo-. PROGRAMMA 2011-2012 week leerstof dagen toets overig 34-26.08 zomervakantie Bespreking PTA-404 Deze week: uitreiking van de Praktische Opdracht Programmeren Herhaling theorie
Nadere informatieKoppeling met een database
PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt
Nadere informatieData Warehouse Script Generator Doel
Data Warehouse Script Generator Doel Op basis van een aantal standaard sql scripts ( create table, create view ) een nieuwe sql script genereren welke alle objecten ( tables & views ) kan aanmaken in een
Nadere informatie7. Het selecteren van gegevens
7. Het selecteren van gegevens 7.1. Inleiding Het doel van databases is het ontsluiten van gegevens. Een database wordt gebruikt om gegevens in op te slaan en te lezen. In dit hoofdstuk ga je door gebruik
Nadere informatieDatabases gebruiken. Databases gebruiken
Databases gebruiken In deze module wordt van de kandidaat verwacht dat hij een goed begrip heeft van databases en aantoont competent te zijn in het gebruik van een database. Doel van de module De kandidaat:
Nadere informatieMS Access. Module 0. MS Access, versie 2000 (NL) Nummer: 256 (11062002) The Courseware Company
MS Access Module 0 MS Access, versie 2000 (NL) Nummer: 256 (11062002) The Courseware Company Niets van deze uitgave mag verveelvoudigd worden en/of openbaar worden gemaakt door middel van druk, fotokopie,
Nadere informatieTrainingsomschrijving ACCESS 97 / 2000 / 2003NL
Module 1 Inleiding Module 2 Ontwerpen van tabellen Module 3 Relationele databases en queries Module 4 Formulieren en rapporten Module 5 Geav. formulieren en rapporten Module 6 Macro s en menu s Module
Nadere informatieDatabanken programmatorisch benaderen
Databanken programmatorisch benaderen met Visual Studio 2013 HA-2267-01 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2015 Vlaams Verbond van het Katholiek Secundair Onderwijs Guimardstraat
Nadere informatiePuzzelen met SQL: Fileleed
Puzzelen met SQL: Fileleed Patrick Barel, Alex Nuijten - AMIS Services BV Na begin de dag met een dansje en de NOS Headlines worden op Radio 3 de files voorgelezen. Heleen de Geest of John Bakker, van
Nadere informatieSQL. Datamodellering 2008
SQL Datamodellering 2008 1 Wat is SQL? SQL is een standaard interactieve bevragings- en definitietaal voor relationele DBMSen SQL is een set-based, declaratieve query-taal (dus niet procedureel!) DB-leveranciers
Nadere informatieSQL. Wat is SQL? Geschiedenis SQL SQL DMO 2008 1. Datamodellering 2008
SQL Datamodellering 2008 1 Wat is SQL? is een standaard interactieve bevragings- en definitietaal voor relationele DBMSen is een set-based, declaratieve query-taal (dus niet procedureel!) DB-leveranciers
Nadere informatieTechnische nota AbiFire Rapporten maken via ODBC
Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern
Nadere informatieWe moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.
MySQL talk Trage website? Het optimaliseren van een bestaande website die een MySQL database heeft is niet altijd even makkelijk. Het probleem kan namelijk op veel verschillende plekken zitten: de database
Nadere informatieHet omzetten van een ER-diagram naar SQL
Het omzetten van een ER-diagram naar SQL Huub de Beer Eindhoven, 4 juni 2011 Omzetting ER-diagram naar SQL in twee stappen 1: ER-Diagram relationeel model Onderwerp van hoofdstuk 3 Entiteittype relatie,
Nadere informatieSysteemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010
4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4.1 Starten met MS Access Als je het programma Microsoft Access
Nadere informatiehoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1
relationele databases 9.1 hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit Als voorbeeld nemen we een eenvoudige database, bestaande uit twee tabellen. De
Nadere informatieKennis na het volgen van de training. Na het volgen van deze training bent u in staat:
Training Trainingscode Duur Gepubliceerd Taal Type Leermethode Kosten SF2015V8 4 dagen 02/02/2015 Nederlands & Engels Developer, basis Invidueel & klassikaal Op aanvraag Deze training richt zich op het
Nadere informatieComputervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank
Inhoud Computervaardigheden Hoofdstuk 5 Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.) Terminologie Data importeren Basis queries Allerhande Joins Doe dit. Aandachtspunt! Wat gebeurt hier?
Nadere informatieNormaliseren versie 1.1
Normaliseren versie 1.1 Datamodellering 27 1 Wat is normaliseren? Data organiseren in tabelvorm, zó dat: er minimale redundantie is update operaties (toevoegen, wijzigen, verwijderen) eenvoudig zijn uit
Nadere informatieKatholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica
Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica Labo 4 Beheer van databanken Svenia CLAES (3Ti3) Britt JACOBS (3Ti3) Lies VAN
Nadere informatieFoutafhandeling in SQL
Algemene richtlijnen binnen de mogelijkheden van RDBMS en 4GL Foutafhandeling in SQL Toon Loonen Foutafhandeling van SQL-code is op veel projecten een achtergebleven gebied. Soms is er discussie of het
Nadere informatieTechnische nota AbiFire5 Rapporten maken via ODBC
Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...
Nadere informatieCursus Analyse voor Web Applicaties 1. Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML
Cursus Analyse voor Web Applicaties 1 Organisatie Opleiding Module Onderwerp Syntra AB Webdesign / Web Programmeren Analyse voor web applicaties SDM methode + Basis UML Analyse op basis van SDM en UML
Nadere informatieVakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be
Nadere informatieGebruikers Handleiding
Gebruikers Handleiding (De SQL module) Versie 2.14 Pagina 2 van 14 Versie 2.14 Inhoudsopgave NGP SQL...5 Het Menu... 6 De instellingen... 7 De database informatie... 9 Het Script... 10 Pagina 3 van 14
Nadere informatieIntegriteitsbewaking bij een relationele database
Integriteitsbewaking bij een relationele database Bij het ontwikkelen van een informatiesysteem voor een organisatie moet er koste wat koste voor gezorgd worden, dat er geen tegenstrijdige gegevens in
Nadere informatieEntiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.
Relationele databases SqlServer en Oracle zijn relationele client server databases. De verwerking van de opdrachten vindt plaats op de server. Access is een relationele pc database. De verwerking van de
Nadere informatieDB architectuur.
DB architectuur joost.vennekens@kuleuven.be DB - logisch perspectief - DB - fysisch perspectief - DBMS Fysische details van databank beheren Zodat gebruiker zich enkel om logische perspectief moet bekommeren
Nadere informatieRelationele databases
Relationele databases Normaliseert eer gij begint! Normalisatie is van zeer groot belang bij het ontwikkelen van een database applicatie. De kern van de zaak, de doelstelling : Efficiënt beheer van data.
Nadere informatieVan CaseTalk naar een database in SQLite studio
Van CaseTalk naar een database in SQLite studio Dit document legt uit hoe je een SQL export uit CaseTalk kunt importeren in het DBMS (Database Management System) SQLite Studio. SQLIte studio is handig
Nadere informatieOracle-database creëren
Datum: maart 2014 Versie: 3.1 2014 Perceptive Software. Alle rechten voorbehouden. Perceptive Software is een gedeponeerd handelsmerk van Lexmark International Technology S.A. in de VS en andere landen.
Nadere informatie