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:............................................................................................................................ 3 Lesmateriaal:................................................................................................................... 4 Lesprogramma: ............................................................................................................... 4 Toets beoordelingscriteria................................................................................................... 5 Schriftelijke toets ............................................................................................................ 5 Product toets.................................................................................................................... 5 SQL begrippen:................................................................................................................... 6
Inleiding Studiejaar: Periode(s): Aantal studiepunten: Docenten:
V1 Blok 2 3 studiepunten Fons van Kesteren
Leerdoelen: • De student kent de principes en concepten achter een relationele database • De student kan een eenvoudig relationeel datamodel ontwerpen • De student kan een complex relationeel datamodel lezen en interpreteren • De student kan met eenvoudige SQL queries uitvoeren op een database • De student kan complexe vragen bedenken welke met SQL uitgevoerd worden • De student kent en begrijpt de database gebaseerde software-architectuur van webtoepassingen • De student is in staat de relevantie en beperkingen van datamodellering in interactieve media projecten te benoemen • De student kent ook één data-opslag oplossing die géén gebruik maakt van relationele datamodellen en SQL Plaats in het leerplan: V1: Het programma loopt parallel aan het programma van het vak ‘ServerSideScripting’. ServerSideScripting en SQL sluiten naadloos op elkaar aan. De queries en database in dit vak kan worden gebruikt bij het schrijven van PHP scripts in het vak ServerSideScripting. Werkwijze: De cursus bestaat uit twee delen: 1)SQL queries en 2) ontwerp van het datamodel. In deel 1 worden vaardigheden met de taal SQL geoefend. Daarbij wordt tevens geoefend met het lezen van met relationele datamodellen en het ontwerpen van eenvoudige relationele modellen. De lessen hebben het karakter van een college gecombineerd met werkgroep waarbij de student aan oefeningen werkt. Deel 1 wordt afgesloten met een schriftelijk toets. In deel 2 wordt gewerkt aan het ontwerp van een volledig relationeel datamodel. De werken ieder aan hun datamodel op basis een keuze opdracht, waarbij de student kan kiezen uit verschillende moeilijkheidsgraden. De lessen bestaan uit korte college’s en presentaties door studenten van tussen resultaten. Deel 2 wordt afgesloten met het opleveren van een compleet gedocumenteerd datamodel en een fysieke realisatie in mySQL. Lesstof: De volgende onderwerpen worden behandelt: -technische vaardigheden: SQL, ERD, -kwaliteit van een datamodel: normalisatie, relationele integriteit. -website-architectuur: modulariteit, client-server architectuur
Lesmateriaal: • Oefen opdrachten SQL, wordt verstrekt bij de eerste bijeenkomst. • Sam’s SQL in 10 minutes ( isbn: 0672316641 ) • SQL reference: ( http://dev.mysql.com/doc/refman/5.1/en/ ) • ERD editor / database client : MySQL Workbenche (http://www.mysql.com/products/workbench/ ) • Php/mysql: XAMPP ( http://www.apachefriends.org ) • Te downloaden voorbeelden en oefendatabase (http://intra.iam.hva.nl ) De student wordt geacht zelf opzoek te gaan naar aanvullende bronnen en gereedschappen. Lesprogramma: 19 nov 1. introductie 26 nov 2. eenvoudige SQL queries 03 dec 3. relaties met SQL queries 10 dec 4. complexe queries en updates 17 dec SCHRIFTELIJKE TOETS 5. ontwerp datamodel: afbakening van het domein, formaliseren van de ERD 24 dec Kerstvakantie 31 dec Kerstvakantie 07 jan 6. ontwerp datamodel: normalisatie en andere criteria , architectuur 14 jan PRODUCT TOETS: oplevering datamodel en realisatie in mySQL Feedback en beoordeling
Toets beoordelingscriteria Schriftelijke toets De schriftelijke toets bestaat uit twee delen. Beide delen moeten met een voldoende worden behaald. Deel 1: begrippen. 6 open vragen, voor ieder vraag max 4 punten. Totaal 24 punten. Deel 2: queries. 10 SQL opdrachten in oplopende moeilijkheidgraad ( 6 enkelvoudige queries, 3 complexe queries, 1 zeer complexe querie) Product toets Het datamodel wordt schriftelijk ingeleverd en toegelicht. Voorwaarden: • Netjes en verzorgd, Correct Nederlands, Voorzien van metadata Beoordelingscriteria: Beschrijving van het informatiedomein • is beknopt (maximaal enkele alinea’s ) • is duidelijk en eenduidig • is volledig Het Entiteiten Relatie Diagram: Minimal 3 – 5 entiteiten • in overeenstemming met de beschrijving van het informatiedomein • consistente naamgevingsconventies • betekenisvolle naamgeving • Het model is genormaliseerd (derde normaalvorm) • PK’s en FK’s zijn correct gekozen. Kolomdefinities: • consistente naamgevingsconventies • betekenisvolle naamgeving • correct datatype • ‘nullable’, default waarde, autoincrement correct bepaald Ingevoerde data om het model te testen • voldoende betekenisvolle data om het model te testen Met een aantal SQL queries laat je zien hoe het model gebruikt • belangrijkste relaties gebruikt ( joins ) • belangrijkste berekeningen Voor een hoger cijfer (expert niveau > 7 ) gelden de volgende criteria • grotere complexiteit model ( veel tabellen en/of relaties ) • bijzondere of creatieve structuren • zinvol gebruik van VIEWS, triggers en stored procedures
SQL begrippen: Onderwerpen waarover vragen kunnen worden gesteld in deel 1 van de schriftelijke toets. Over de onderstaande begrippen kunnen er open vragen worden gesteld. • Relationele Database • Tabellen, rijen en kolommen • Datatypen: numeriek, tekst, boolean, datum/tijd • Client-‐server architectuur • Relationeel Database Management Systeem • SQL vs mySQL • phpMyAdmin • SQL querie • Aggregatie functies / statistische functies • SQL reference • Entiteit • ERD • Many-‐to-‐one, many-‐to-‐many relaties • Primary Key, Foreign Key • koppeltabel • Normalisatie • Referentiele integriteit • InnoDB vs myISAM Ook kan er gevraagd worden uitleg te geven van onderstaande SQL woorden: • SELECT … FROM … WHERE … ORDER BY … • ORDER BY vs GROUP BY • DISTINCT • (LEFT , RIGHT, INNER ) JOIN • NULL Voor extra bonuspunten kan er een vraag gesteld worden over • Stored procedures • Triggers • Views • Constraints • indexes