Datamodellering en –verwerking 8C020 college 5. Terugblik college 4 • Zeikenhuis (RM) • Querytalen • SQL – Inleiding – Data definitie – Data manipulatie.

Slides:



Advertisements
Verwante presentaties
Leer de namen van de noten 1
Advertisements

Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Meerdere tabellen: Relaties en Joins
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Relationele databases en
Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
Databank van een restaurant Download op Twee tabellen: Klanten: Alle klanten die minstens.
Datamodellering en –verwerking 8C020 college 3
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het selecteren van data uit meerdere gekoppelde tabellen
Van Nul naar Drie Normaliseren.
SQL Les 01 & 02. SELECT Weergeven van alle gegevens uit een tabel: SELECT * FROM tlbPersonen; Weergeven van alle personen die uit Aruba komen: SELECT.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Relationele Databases
Normaliseren Datamodellering 2006.
Databases.
<Mdl01 hoorcollege 1>
W ORD P RESS TECHNISCHE ACHTERGROND Kris Cardinaels 26 maart 2013.
LauwersCollege Buitenpost Informatica
Leer de namen van de noten 2
Inleiding Databanken: oefeningen 4 Sven Casteleyn 4 Lokaal: 6G HomePage: te bereiken via
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Gevorderden 5.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische.
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Elke 7 seconden een nieuw getal
Datamodellering en –verwerking 8C020 college 4
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
SQL (structured Query Language) DDL (Data Definition Language) DML (Data Manipulation Language) Ontwerp databaseBevraag database.
WIS21.
Workshop PHP Een productencatalogus Met database.
Statistische functies (aggregaatfuncties)
Databases.
Laat software voor je werken
SQL ( SERVER ) Les #02: T-SQL. A GENDA Herhaling les 4 Views SELECT…INTO Beheren van tabellen: CREATE ALTER DROP Opdracht voor de volgende les.
LauwersCollege Buitenpost Informatica
Datamodellering en –verwerking 8C020 college 6
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
7 Databases. STRUCTURED QUERY LANGUAGE Bij het relationele model hoort een programmeertaal waarmee de database benaderd kan worden. In de praktijk wordt.
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Toepassingen van Petri-netten in bioinformatica Biologische schakelaars en oscillatoren.
24/04/2015IT-Assurance1 IT-Assurance deeltijd 4. Inleiding SQL Introductie in de basisfuncties Bijbehorend lesmateriaal: -AIV-boek van Derksen en Crins.
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 3 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
BIMAIV03 Les A1 BIMAIV03 Les A1 Databases. De gegevens in een database vormen de grondstof voor informatie De informatie wordt opgevraagd in de taal met.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 6 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Subqueries met correlaties ▸ Subqueries zonder correlaties ▸ Views ▸
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
Databases.
– Software development fundamentals
SQL Cursus deel
LauwersCollege Buitenpost Informatica
Informatie-analyse 1: Er zijn veel manieren om een database te vullen
Databases.
SQL Les 3 17 February 2019.
SQL Les 3 23 February 2019.
SQL Les 7 24 February 2019.
SQL Les 9 12 May 2019.
SQL Les 4 12 May 2019.
– Software development fundamentals
Databases SQL.
Transcript van de presentatie:

Datamodellering en –verwerking 8C020 college 5

Terugblik college 4 • Zeikenhuis (RM) • Querytalen • SQL – Inleiding – Data definitie – Data manipulatie – Apsecten van SQL – Oefeningen

Onderwerpen college 5 • Aspecten van SQL – Join – Subqueries • Oefeningen SQL • Normalisatie – 1 ste, 2 de, 3 de normaal form • Oefeningen ER, RM, SQL

Join - voorbeeld Patnrpnaampadrespwoonplhuisartsgeb 12345AppelsBrink 12Son PerenMarkt 1Son StormsLaan 88Oss AppelsLaan 86Oss JanssenWeg 4aAlmere BrandsmaWeg 67Almere hanrhanaamhaadreshaplaats 13B. BrandsmaBrink 89Son 14S. StormsLaan 84Oss 15G. de GrootWeg 17Lelystad 16G. GrotenWeg 19Almere

Join het leggen van een verbinding tussen tabellen kan met behulp van een join-operatie SELECT pnaam, hanaam FROM patienten, huisartsen WHERE patienten.pwoonpl = huisartsen.haplaats; 1. beschouw stuk voor stuk de rijen uit de eerste FROM tabel 2. beschouw stuk voor stuk de rijen uit de tweede FROM tabel 3. verifieer of de combinatie voldoet aan de WHERE regel 4. geef voor de goede combinaties de SELECT attributen

Join pnaamhanaam AppelsB. Brandsma PerenB. Brandsma StormsS. Storms AppelsS. Storms JanssenG. Groten BrandsmaG. Groten geef de namen van patiënten en de namen van huisartsen waarvoor geldt dat de patiënt woont in de plaats waar de huisarts praktijk houdt

Join • in principe krijgen we bij een join combinaties van willekeurige tupels • meestal hebben we behoefte aan combinaties van gerelateerde tupels SELECT pnaam, hanaam FROM patienten, huisartsen WHERE patienten.huisarts = huisartsen.hanr; 1. beschouw stuk voor stuk de rijen uit de eerste FROM tabel 2. beschouw stuk voor stuk de rijen uit de tweede FROM tabel 3. verifieer of de combinatie voldoet aan de WHERE regel 4. geef voor de goede combinaties de SELECT attributen

Join pnaamhanaam AppelsB. Brandsma PerenB. Brandsma StormsS. Storms AppelsS. Storms JanssenG. de Groot BrandsmaG. de Groot geef de namen van patiënten en de namen van hun huisartsen

Join pnaamhanaam AppelsB. Brandsma PerenB. Brandsma StormsS. Storms AppelsS. Storms SELECT pnaam, hanaam FROM patienten, huisartsen WHERE patienten.huisarts = huisartsen.hanr AND patienten.woonpl = huisartsen.haplaats; geef de namen van patiënten en de namen van hun huisartsen voor die patiënten waarvoor geldt dat zij wonen in de plaats waar hun huisarts praktijk houdt

Join voorbeeld SELECT * FROM patienten, huisartsen; voorbeeld SELECT * FROM patienten, huisartsen WHERE patienten.huisarts = huisartsen.hanr;

Subqueries binnen queries kunnen weer queries gebruikt worden SELECT pnaam FROM patienten WHERE huisarts = SELECT hanr FROM huisartsen WHERE hanaam = 'Brandsma'; subqueries in een tabel SELECT pnaam FROM patienten WHERE huisarts = SELECT huisarts FROM patienten WHERE patnr = '9912';

Subqeries behalve de operator = kunnen we ook andere operatoren gebruiken om queries met elkaar te relateren SELECT * FROM patienten WHERE huisarts IN SELECT hanr FROM huisartsen WHERE haplaats = 'Eindhoven'; SELECT pnaam FROM patienten WHERE EXISTS (SELECT hanr FROM huisartsen WHERE patienten.padres = huisartsen.haadres);

Opgave 5.4 wat drukt de volgende query uit? SELECT pnaam FROM patienten WHERE NOT huisarts IN SELECT hanr FROM huisartsen WHERE haplaats = 'Eindhoven';

Voorbeeld we hebben een relatie (tabel) ouders met attributen ouder en kind en een relatie personen met attributen naam en leeftijd ouders(ouder,kind) personen(naam,leeftijd) opgave 5.5 wat drukt de volgende query uit? SELECT ouder FROM ouders WHERE NOT kind IN SELECT naam FROM personen WHERE leeftijd = '6'; en wat als er NOT in de laatste regel staat?

Opgave5.6 wat drukt de volgende query uit? SELECT pnaam FROM patienten WHERE huisarts IN SELECT hanr FROM huisartsen WHERE NOT hanaam IN SELECT hanaam FROM huisartsen WHERE haplaats = 'Eindhoven';

Notatie • als we in een query meerdere keren dezelfde relatie gebruiken moeten we aangeven welke attributen bij welke relaties horen SELECT x.pnaam, y.pnaam FROM patienten x, patienten y WHERE x.huisarts = y.huisarts;

Voorbeeld we hebben een relatie (tabel) ouders met attributen ouder en kind ouders(ouder,kind) opgave 5.7.a wat drukt de volgende query uit? SELECT x.ouder, y.kind FROM ouders x, ouders y WHERE x.kind = y.ouder; opgave 5.7.b wat drukt de volgende query uit? SELECT x.ouder, y.kind FROM ouders x, ouders y;

Opgave 5.8 wat drukt de volgende query uit? SELECT ouder FROM ouders WHERE kind IN SELECT ouder FROM ouders; en wat met WHERE NOT kind IN ?

Opgave 5.9 wat drukt de volgende query uit? SELECT ouder FROM ouders WHERE NOT ouder IN SELECT ouder FROM ouders WHERE kind IN SELECT naam FROM personen WHERE leeftijd = '3';

Opgave 5.10 druk in SQL uit: geef van alle ouders de leeftijden druk in SQL uit: geef van alle ouders en grootouders de leeftijden druk in SQL uit: geef alle personen die ouder zijn dan Bas en Anna

Functies het is mogelijk met functies acties uit te voeren op groepen van gegevens AVG(..) SUM(..) MAX(..) MIN(..) COUNT(*) SELECT MAX(leeftijd) FROM personen WHERE naam = 'Anna'; SELECT MIN(leeftijd) FROM personen, ouders WHERE personen.naam = ouders.kind

Queryoptimalisatie de formulering van queries kan (bijvoorbeeld met joins en subqueries) tot lastige uitdrukkingen leiden query-optimalisatie betekent dat de DBMS-implementatie zorgt voor de vertaling naar een equivalente uitdrukking die sneller en efficiënter verwerkt kan worden waarschuwing • in de theorie is sprake van verzamelingen dus geen dubbele rijen en waarden • in een SQL implementatie is sprake van tabellen met dubbele rijen

SQL en andere programmeertalen •Embedded SQL •Dynamic SQL –ODBC (Open Data Base Connectivity) –JDBC (Java Data Base Connectivity) •Web technologien, “Data driven sites” –MySQL & php, Java scripts

Normalisatie WN2 WNIDNAAMAFDSALARISCURSUSDATUM 100Anna BruinsmaVerkoop50.000PR Anna BruinsmaVerkoop50.000Word Carla DikAdministratie41.000Belastingen Eef GroenInformatiesystemen49.000C Eef GroenInformatiesystemen49.000Word Henk IsraëlInkoop39.500Logistiek Janny KramerVerkoop45.000PR Janny KramerVerkoop45.000Workflow

Normalisatie •Probleem – WN2 bevat gegevens over twee entiteiten •Oplossing –Verdeel zo’n relatie in twee relaties: WN1 en WN-CURSUS

Normalisatie WN1 WNIDNAAMAFDSALARIS 100Anna BruinsmaVerkoop Carla DikAdministratie Eef GroenInformatiesystemen Henk IsraëlInkoop Janny KramerVerkoop WN-CURSUS WNIDCURSUSDATUM 100PR Word Belastingen C Word Logistiek PR Workflow

Normaalvormen 1 ste normaalvorm: Alle rijen hebben dezelfde lengte 2 de normaalvorm: Elk niet sleutel attribuut is een feit over de hele primaire sleutel (niet alleen over een deel van de sleutel) 3 de normaalvorm: Elk niet sleutel attribuut is geen feit over een ander attribuut dat geen primaire sleutel is Elk niet sleutel attribuut is een feit over “the key, the whole key, and nothing but the key, (so help me Codd)”