ANALYSE 3 INFANL01-3 WEEK 4 01-02-2014 CMI Informatica.

Slides:



Advertisements
Verwante presentaties
Inleiding in de statistiek voor de gedragswetenschappen Met ondersteuning van SPSS Guido Valkeneers.
Advertisements

SQL deel 2: datamodel ontwerp
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Meerdere tabellen: Relaties en Joins
Hoofdstuk 8: Werken met SQL voor eindgebruikers
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Relationele databases en
Databases Informatica Ga verder met een muisklik. SQL FCO DBMS NE FA
Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
MySQL-acties Klassikaal: Wijnen.sql. 1.Toon alle wijnen die er zijn. Toon de naam, kleur en prijs. SELECT `naam`,`kleur`,`prijs` FROM `wijnen`
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het selecteren van data uit meerdere gekoppelde tabellen
Normaliseren Datamodellering 2006.
Databases.
<Mdl01 hoorcollege 1>
LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica
Inleiding Databanken: oefeningen 4 Sven Casteleyn 4 Lokaal: 6G HomePage: te bereiken via
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Relationele databases: Fysiek databaseontwerp en SQL
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
Vorige week: Referentiele integriteit
SQL (structured Query Language) DDL (Data Definition Language) DML (Data Manipulation Language) Ontwerp databaseBevraag database.
Workshop PHP Een productencatalogus Met database.
Databases.
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
Inleiding in de statistiek voor de gedragswetenschappen
7 Databases. SAMENGESTELDE VOORWAARDEN 1 Wat is het adres van Odile Goossens? SELECT adres, woonplaats FROM leden WHERE naam = ‘Goossens’ AND voornaam.
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.
Join Indices … as a tool for Spatial Datamining. Inhoud Inleiding Spatial Relations (Spatial) Join Index Implementatie Conclusie.
Vakgroep Telecommunicatie en Informatieverwerking 1 Relationele databases: Het relationeel databasemodel Hoofdstuk 4 Database, Document and Content Management.
24/04/2015IT-Assurance1 IT-Assurance deeltijd 4. Inleiding SQL Introductie in de basisfuncties Bijbehorend lesmateriaal: -AIV-boek van Derksen en Crins.
College 3 Hoofdstuk 3: Basis concepten van een relationele database
Hoofdstuk 11 Databasemanagementsystem. hoofdstuk 112 STROKENDIAGRAMMEN llnrvoornaamtussenvachternaamstraathuisnummerpostcodeplaatstelefoongeslachtgebdatumklas.
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.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Week 3 BIMAIV03 Les B3 BIMAIV03 Les B3. Opdracht 1 Van een artikel mogen maximaal 300 stuks verkocht worden. Verschillende klanten bestellen een aantal.
ANALYSE 3 INFANL01-3 WEEK 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
Week 6 BIMAIV03 les B1. DML en DDL ata D anipulation M anguage L ata D efinition D anguage L.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Week 1 BIMAIV03 Les B2 BIMAIV03 Les B2. Uit het voorgaande... CREATE TABLE... Opdracht om een nieuwe tabel binnen de database te creëren. Aandachtspunten.
ANALYSE 3 INFANL01-3 WEEK 6 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Subqueries met correlaties ▸ Subqueries zonder correlaties ▸ Views ▸
1 KPN Mobiel – Introductie Repository Object Browser & Designer 10 Designer 10g & Repository Object Browser Maandag 28 februari 2005 Lucas Jellema (AMIS)
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
– Software development fundamentals
SQL Cursus deel
LauwersCollege Buitenpost Informatica
Moving objects in a geo-DBMS
Informatie-analyse 1: Er zijn veel manieren om een database te vullen
SQL Les February 2019.
SQL Les 3 17 February 2019.
SQL Les 3 23 February 2019.
SQL Les 7 24 February 2019.
SQL Les 1 5 April 2019.
SQL Les 6 14 April 2019.
SQL en Datanormalisatie
SQL Les 9 12 May 2019.
SQL Les 4 12 May 2019.
– Software development fundamentals
SQL Les May 2019.
Databases SQL.
Transcript van de presentatie:

ANALYSE 3 INFANL01-3 WEEK CMI Informatica

ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Anatomy van de SELECT statement ▸ Natural JOINS ▸ Hiërarchie en recursieve relaties ▸ Tijdaspecten ▸ Generics ▸ Integriteit regels en constraints

VORIGE LES

Wat is een relationele database (RDBMS)? Een RDBMS is een systeem :  met gegevens in de vorm van tabellen  waarin SQL wordt gebruikt om tabellen te manipuleren SQL

Relationele Algebra: selectie (SELECT... WHERE..) SELECT * FROM verz WHERE naam = ‘jan’ selectie van rijen die aan voorwaarde voldoen

Relationele Algebra: vereniging (UNION) SELECT * FROM verz UNION SELECT * FROM wegb  voorwaarde: aantal en domein v/d attributen komt overeen

Relationele Algebra: verschil (EXCEPT) SELECT * FROM verz EXCEPT SELECT * FROM wegb  volgorde is van belang ! (verz - wegb) <> (wegb-verz)

Relationele Algebra: doorsnede (INTERSECT) SELECT * FROM verz INTERSECT SELECT * FROM wegb

Relationele Algebra: projectie (SELECT) SELECT kenteken FROM verz

Relationele Algebra: product of JOIN SELECT * FROM man, vrouw alle mogelijke combinaties!

SELECT STATEMENT

SELECT (1) ::=   [ ]

SELECT (2) SELECTPNAAM,LEEFTIJD [kolommen] FROM PATIENT [tabel] WHERE LEEFTIJD > 50; [voorwaarde voor rij]

SELECT instructie: volgorde van uitvoeren (intern) SELECT [kolommen] [3] FROM [tabellen][1] WHERE [voorwaarde voor rij][2] ORDER BY [kolom][4] 1. FROM2. WHERE a b 3. SELECT4. ORDER BY

SELECT instructie: volgorde (voorbeeld) SELECTANO, ANAAM FROM A WHERE KLEUR=‘Blauw’ ORDER BY ANAAM 1. FROM A 2. WHERE KLEUR=‘Blauw’ 3. SELECT ANO, ANAAM 4. ORDER BY ANAAM

SELECT instructie: FROM component (definitie) ::= FROM [{, }...] ::= [[AS] ] ::= [.] tabelnaam

SELECT instructie: FROM component (voorbeeld) SELECT teamnr, naam FROM teams AS t,spelers AS s WHERE t.spelersnr = s.spelersnr Dit is een voorbeeld van een natural join

SELECT instructie: WHERE (operatoren etc) vergelijking: = = <> AND, OR, NOT BETWEEN, IN, LIKE, NULL IN met subquery vergelijkingsoperator met subquery ANY, ALL EXISTS

SELECT instructie: WHERE (voorbeelden)  WHERE GEB_DATUM > ‘ ’ AND NOT NAAM = ‘Haas’;  WHERE GEB_DATUM BETWEEN ‘ ’ AND ‘ ’;  WHERE NAAM IN (‘Smit’,’Jansen’,’Zwart’);

SELECT instructie: WHERE (IN met subquery) SELECT naam AS aanvoerder FROM spelers WHERE spelersnr IN (SELECT spelersnr FROM teams);

SELECT instructie: WHERE (EXISTS) SELECT naam AS aanvoerder FROM spelers WHERE EXISTS (SELECT * FROM teams WHERE spelersnr=spelers.spelersnr);

SELECT instructie: WHERE (ALL) SELECT naam+’ is het oudst’ AS oudste, geb_datum FROM spelers WHERE geb_datum <= ALL (SELECT geb_datum FROM spelers);

Natural JOIN  verschillende typen JOIN later behandeld  natural join: SELECT student.snaam,opleiding.onaam FROM student, opleiding WHERE student.opl=opleiding.opl;

Natural join in stapjes: 1. FROM - input SELECT.... FROM teams AS t,spelers AS s

Natural join in stapjes: 2. FROM - resultaat SELECT... FROM teams AS t, spelers AS s

Natural join in stapjes: 3. WHERE - input WHERE t.spelersnr = s.spelersnr;

Natural join in stapjes: 4. WHERE - resultaat SELECT... FROM teams AS t, spelers AS s WHERE t.spelersnr = s.spelersnr;

Natural join in stapjes: 5. SELECT - resultaat SELECT t.teamnr as teamnr, naam as aanvoerder FROM teams AS t, spelers AS s WHERE t.spelersnr = s.spelersnr;

ERD

Modeleren van hiërarchie Wat zijn voorbeelden van hiërarchieën voor relaties? organisaties en afdelingen categorieën en subcategorie andere voorbeelden uit je project ? Hoe kun je deze data modelleren? Hoeveel entiteiten heb je nodig?

Modeleren van hiërarchie

Modeleren van recursieve relaties Een recursieve of zelf-refererende relatie. In een relationeel database model kan een entiteit relatie hebben met zichzelf.

Modeleren van hiërarchie met recursieve relatie

Tijdaspecten - Audit trails (Logs) - Geschiedenis van de data

Generieke data modellen zijn classificaties(generalisatie) van een aantal sub entiteiten die een set van dezelfde attributen hebben In generieke data modellen worden ook afwijkende attributen per entiteit type opgenomen in dezelfde entiteit Generieke modellen reduceren het aantal entiteiten in je data model Opdracht: maak een ERD waarbij de verschillende entiteit types in een entiteit opgenomen worden.

Generieke data modellen (uitwerking) Wat zijn de voor- en nadelen van de generalisatie?

Integriteit regels en constraints Constraints zijn belangrijk om de database te ontwerpen, de mogelijkheid te bieden om de semantiek van de data te bepalen en te waarborgen. Er zijn vier verschillende integriteit regels voor data: Domein integriteit Entiteit integriteit Referentiele integriteit Gebruiker-specifieke integriteit

Domein integriteit ▸ Een domein bepaald de waarde van attributes: ▸ Datatypes en lengte ▸ Null waardes ▸ Toegestane waardes ▸ Standaard waardes CREATE TABLE dbo.Payroll ( ID int PRIMARY KEY, PositionID INT, SalaryType nvarchar(10), Salary decimal(9,2) CHECK (Salary < ) ); Welke waardes kun je bij salary opslaan?

Entiteit integriteit Iedere entiteit moet een attribuut of combinatie van attributen hebben waarmee elk tupel (rij) als uniek en aanwezig te identificeren is. Dat attribuut is de primary key of primaire sleutel.

Referentiele Integriteit spelernsnr in TEAMS verwijst altijd naar een bestaand spelersnr in SPELERS primary keyforeign key

Referentiele Integriteit spelernsnr in TEAMS verwijst altijd naar een bestaand spelersnr in SPELERS, dus moeten gesynchroniseerd blijven primary keyforeign key

CREATE TABLE teams ( teamnr SMALLINT NOT NULL, spelersnrSMALLINT NOT NULL, divisieCHAR(6) NOT NULL, PRIMARY KEY (teamnr), FOREIGN KEY (spelersnr) REFERENCES spelers (spelersnr) ); Referentiele Integriteit : referenties aangeven bij CREATE

Referentiele Integriteit refererende acties default (SOLID):  ON UPDATE RESTRICT  ON DELETE RESTRICT (dwz wijzigen/verwijderen van een spelersnr in de SPELERS tabel wordt tegengehouden als spelersnr in TEAMS voorkomt)

Referentiele Integriteit refererende acties alternatief 1: ON UPDATE CASCADE ON DELETE CASCADE (dwz update/delete van een spelersnr in de SPELERS tabel triggert automatisch een update/delete in TEAMS) alternatief 2:  ON UPDATE SET NULL  ON DELETE SET NULL