Opleiding Kunstmatige Intelligentie cursus Databases voor AI

Slides:



Advertisements
Verwante presentaties
Les 2 klassediagrammen II
Advertisements

SQL deel 2: datamodel ontwerp
Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Datamodellering en –verwerking 8C020 college 5. Terugblik college 4 • Zeikenhuis (RM) • Querytalen • SQL – Inleiding – Data definitie – Data manipulatie.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
(c) Marc de Graauw Presentatie XML Marc de Graauw 2 maart 2000.
Meerdere tabellen: Relaties en Joins
Entiteit-Relatie Model
Datamodellering en –verwerking 8C020 college 3
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Van Nul naar Drie Normaliseren.
Normaliseren Datamodellering 2006.
Relationele Databases Hoofdstuk 10
Databases.
<Mdl01 hoorcollege 1>
Databases I Van EER naar relationeel
Opleiding AI cursus Databases
LauwersCollege Buitenpost Informatica
Entity Relation Model (ER-model).
Inleiding Databanken: oefeningen 4 Sven Casteleyn 4 Lokaal: 6G HomePage: te bereiken via
ontwerp een datamodel Criteria voor een goed model Ontwerppatronen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
ontwerp een datamodel Criteria voor een goed model Ontwerppatronen
Normalisatie Relationeel databaseontwerp:
Literatuur: Rolland, “The Essence of Databases”, Hfdst 6, 7, 9, 10
Opleiding AI cursus Databases
Vrij Technisch Instituut - Hasselt
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
SQL (structured Query Language) DDL (Data Definition Language) DML (Data Manipulation Language) Ontwerp databaseBevraag database.
Databases I Relationeel Model Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam definitieve versie 2002.
Lesplanning Binnenkomst Intro Vragen huiswerk Uitleg docent 1.3 Zelfstandig werken, met radio?? Afsluiting van de les. Lokaal verlaten.
Databases & SQL Docent: Henny Klein
Relationele databases: Logisch databaseontwerp
Databases.
Relationele Databases Hoofdstuk 10 Deel 2 Blz.: 90 t/m 95.
Datamodellering en –verwerking 8C020 college 2
LauwersCollege Buitenpost Informatica
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Constructie van het kennismodel
1 OMI Digitaal publiceren in bredere context.
Vakgroep Telecommunicatie en Informatieverwerking 1 Relationele databases: Het relationeel databasemodel Hoofdstuk 4 Database, Document and Content Management.
Databases I (H. 7: 1-3) Het Relationele Model Wiebren de Jonge Vrije Universiteit, Amsterdam versie 2003.
Databases I Praktische aspecten Database Design en Database System Architectuur Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam definitieve.
Databases I Het Entity-Relationship Model
Datamodellering en –verwerking 8C020 college 1ste week
College 3 Hoofdstuk 3: Basis concepten van een relationele database
Hoofdstuk 11 Databasemanagementsystem. hoofdstuk 112 STROKENDIAGRAMMEN llnrvoornaamtussenvachternaamstraathuisnummerpostcodeplaatstelefoongeslachtgebdatumklas.
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 CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 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.
GegevensAnalyse Les 2: Bouwstenen en bouwen. CUSTOMER: The Entity Class and Two Entity Instances.
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
Informatica-Actief Thema: Databases en informatiemodellering
Deutschland stellt sich vor
LauwersCollege Buitenpost Informatica
Een computersysteem organiseert gegevens in een hiërarchie die begint bij een bit die de waarde 0 of een 1 vertegenwoordigt. Bits kunnen worden gegroepeerd.
Databases.
Tweede normaalvorm DERDE STAP: afsplitsen van labeltypen die afhankelijk zijn van een ander (niet-sleutel) labeltype Onderzoek in iedere strook of alle.
SQL en Datanormalisatie
– Software development fundamentals
Transcript van de presentatie:

Opleiding Kunstmatige Intelligentie cursus Databases voor AI Tweede college Rolland: hoofdstuk 3 F. de Vries

College 2 Databases AI

Opdracht 1

Elementen van ERD Entiteit, attribuut, relatie Cardinaliteit van relatie Zwakke entiteit Sleutel, gecombineerde sleutel Subtyping, specialisatie, generalisatie ‘Ternary’ relatie, recursieve relatie Grouping, aggregatie

Het relationele database model Literatuur: Rolland, “The Essence of Databases”, Hoofdstuk 3

Relationele Model Een uniforme structuur, de ‘relation’ als een verzameling (set) van ’tuples’. tuple: afbeelding van attributen op waarde-instanties uit het onderliggende domein. Bijvoorbeeld tuple: Persoon(Naam, Vnaam, Straat, HNr, Stad, Postcode) Met instantie van zo’n tuple: Persoon(de Vries, Jan, Brink, 6, Soest, 1018 WB) De set van deze tuple-instanties vormt de relatie ‘Persoon’.

Terminologie Relatie: Attribuut: Domein: een tabel met kolommen en rijen (een set van tupels) Attribuut: de naam van een kolom (de (rol)naam van een element in een tupel) Domein: de verzameling mogelijke waarden voor een attribuut Naam - chars(20) Leeftijd - x:int, o<x,110 Kleur - x:{rood, groen, blauw} Dag - x:{mndg, dnsdag, … … , zndg}

Terminologie-2 Tupel: Degree: Cardinaliteit: Relationele database: een rij in een relatie Degree: het aantal attributen in een relatie Cardinaliteit: het aantal tupels in een relatie Relationele database: een verzameling (genormaliseerde) relaties Base relation: Een expliciet, door de DBA gedefinieerde en benoemde relatie. De tuples zijn daadwerkelijk (fysiek) opgeslagen in de database.

Instanties van “Branch” en “Staff” relaties 6

Een database schema, als verzameling van relatie schema’s Branch(B#, Street, Area, City, Pcode, Tel, Fax) Staff(S#, Fname, Lname, Address, Tel, Pos, Sex, DOB, Salary, NIN, B#) Property_for_rent(P# , Street, Area, City, Pcode, Type, Rooms, Rent, O#, S#, B#) Renter(R#, Fname, Lname, Address, Tel, Pref, Max_rent, B#) Owner(O# , Fname, Lname, Address, Tel) Viewing(R#, P# , Date, Comment)

Eigenschappen van relaties Elke relatie tabel heeft een unieke naam. Elke cel binnen een relatie heeft precies één (atomaire) waarde. Elke attribuut binnen een tabel heeft een unieke naam. Waarden van één attribuut komen allen uit één domein. Volgorde der attributen is van geen betekenis. Volgorde der tupels is van geen betekenis. Elk tupel is uniek, er zijn geen duplicaten.

Sleutels Elk element in de set (elke tupel in de relatie) moet uniek identificeerbaar zijn d.m.v. een sleutel Super keys Candidate keys Primary keys Alternate keys ( Foreign keys )

Super keys definitie super key Voorbeeld: een super key is een attribuut dat, of een verzameling van attributen die een tuple uniek identificeert Voorbeeld: sofinummer + naam + personeelsnr + … + …

Candidate keys definitie candidate key een candidate key is een super key die minimaal is (dwz geen enkele subset van de attributen is nog steeds zo’n sleutel) uniek (identificeert een tupel op unieke wijze) minimaal (irreducible: geen subset kan dat)

Primary keys definitie primary key een primary key is een uitverkoren candidate key die gebruikt wordt om tuples binnen een relatie te identificeren Super Key Candidate Key Primary Key = Alternate Keys

Foreign keys definitie foreign key (verwijssleutel) een foreign key is een attribuut (of een verzameling van attributen) in een tabel die verwijst naar (matcht met) een kandidaat-sleutel van (meestal) een andere tabel.

Missende waarden: null Staat voor een attribuut met onbekende (of niet van toepassing zijnde) waarde. Neemt onvolledige kennis of exceptionele waarde voor zijn rekening. Speciaal symbool (i.e. is anders dan ø of spaties). Bijvoorbeeld: viewing(CR56, PG4, 26-mei-98, null)

Relationele integriteit Entiteit integriteit een primary key kan nooit en nergens de waarde null krijgen (in een ‘base relation’) Referentiële integriteit Een foreign key waarde moet matchen met een candidate key waarde (m.a.w. die waarde moet bestaan), maar null is toegestaan … Enterprise constraints door de gebruiker toegevoegde beperkingen

Referentiële integriteit Wat te doen als de plek waarnaar verwezen wordt wijzigt (UPDATE, DELETE) Doe niets (inconsistente database). Verbied. CASCADE. Set to NULL.

Referentiële integriteit, MsAccess

Mathematische relatie Beschouw twee sets D1 and D2, met D1 = {a,b} en D2 = {1,3,5} Het cartesiaans product D1  D2 is de set van alle geordende paren, waarbij het 1e element uit D1 en het 2e element uit D2 komt. M.a.w. alle mogelijke combinatieparen van elementen uit D1 en D2. D1  D2 = {(a,1),(a,3),(a,5),(b,1),(b,3),(b,5)}

Mathematische relatie: definitie Dan ... Elke willekeurige subset van een carthesiaans product is een relatie, bijvoorbeeld: R = {(a,1),(b,1)} Je kan ook specificeren welke paren in de relatie zitten, bijvoorbeeld: R = {(x,y)| x  D1, y  D2 en y=1}

Mathematische relatie -2 Eenvoudig model. Komt goed overeen met hoe wij over de wereld denken (dingen die bestaan: ‘existentieel conjunctief’). Er bestaan relationele talen die relaties manipuleren: relationele algebra, relationele calculus. Een operatie op een relatie levert altijd weer een relatie op !! (closure).

n-domeinen relatie D1, D2, . . ., Dn representeren n sets met het volgende Cartesiaans product: D1  D2 . . .  Dn = {(d1, d2, . . . , dn) | d1  D1, d2  D2, . . . , dn  Dn} Notatie: n X Di i=1 Een relatie is dus vastgelegd door de domeinen waaruit de waardes gekozen worden.

Voorbeeld geslacht - {man,vrouw} stemgedrag - {PvdA, VVD, CDA} opleiding - {LO, MBO, VWO, HO} Vraag: Wat is het cartesiaans product hiervan? Wat is een mogelijke relatie?

Relationele algebra Operatoren die werken op 1 of 2 tabellen en die een nieuwe tabel produceren Dus … output van een operator kan input zijn voor een volgende operator Dus … nesting van operatoren is mogelijk (vergelijk wiskundige operatoren)

Operatoren vijf-tal basis operatoren: Selectie (RESTRICT) Projectie (PROJECT) Cartesiaans product (TIMES) Union (UNION) Set difference (MINUS) additionele operatoren (herleidbaar tot basisoperatoren) JOIN, INTERSECT, DIVIDE

RESTRICT (~SELECT) Selecteer rijen uit een tabel onder bepaalde condities student: {collegekaart, naam, woonplaats} RESTRICT (student) woonplaats = “Amsterdam” AND naam = “Jan Janssen”; produceert een tuple-subset van studenten die aan beide criteria voldoen. Dit kan een lege verzameling zijn!

PROJECT Selecteer kolommen uit een tabel student: {collegekaart, naam, woonplaats} PROJECT naam, woonplaats (student); produceert een kopie van de student tabel waarin de kolom met het collekaartnummer is weggelaten.

Cartesiaans Product R TIMES S Stel: relatie R is van graad n en heeft i tuples, en relatie S is van graad m met j tuples Dan heeft het Cartesiaanse product de graad n + m (i.e. n + m attributen) cardinaliteit i  j In de praktijk wordt meestal een JOIN gebruikt: dit is een SELECT over een Cartesiaans product

Voorbeeld Cartesiaans product Maak een lijst met de namen en commen-taren van alle huurders die een object bezocht hebben: ( clNo, fname, lname(Client)) X ( clNo, propNo,comment (Viewing))

(NATURAL)JOIN (client, viewing)

Natural Join Is een selectie uit het product van twee tabellen met een GEMEENSCHAPPELIJK ATTRIBUUT. Het resultaat bevat de rijen met matchende attribuut-waarden, zonder duplicaten. Stel R: (X1, X2 , …, Xm, Y1, Y2, …, Yn) S: (Y1, Y2 , …, Yn, Z1, Z2, …, Zp) Dan R join S (X1,X2,…,Xm, Y1,Y2,…Yn, Z1,Z2,…, Zp) Soms is er een ontbrekende waarde in een van de kolommen waarover de JOIN-operator werkt. De OUTER JOIN neemt deze rijen toch op.

JOIN (familie) Selectie uit een product waarbij de matchende attributen expliciet worden opgegeven. De attributen moeten hetzelfde domein hebben student: {collegekaart, naam, woonplaats} inschrijving: {student_id, cursus} JOIN(student, inschrijving) collegekaart = student_id; produceert de tuple-subset van het product van twee tabellen, waarvoor geldt dat de twee attributen dezelfde waarde hebben binnen de tuple.

Andere relational-algebra operatoren R UNION S R MINUS S R INTERSECT S Deze operatoren hebben de standaard set-theoretische betekenis. De relaties moeten compatible zijn (zelfde aantal attributen elk uit hetzelfde domein!!) UNION en INTERSECT zijn commutatief, MINUS niet R DIVIDE S Produceert een (sub)set van tupels uit R, gedefinieerd over attributen C die matchen met ELK tupel in S

Voorbeeld DIVIDE R DIVIDE S

INTERSECT is redundant R INTERSECT S The intersection operation consists of the set of all tuples that are in both R and S. R and S must be union-compatible. Expressed using basic operations R INTERSECT S = R MINUS (R MINUS S) S R R MINUS S 51 R INTERSECT S

Andere talen / non-procedureel ! Relationele calculus ‘Transformatie-talen’ zijn niet-procedurele talen die input data, gerepresenteerd in een relatie omzetten naar de gewenste output relatie (bijv.: SQL). ‘Grafische (visuele) talen zijn niet-procedurele talen die de gebruiker een grafische voorstelling van de gegevens bieden. De gebruiker construeert een voorbeeld van wat hij wil hebben en het systeem geeft de gewenste uitput (bijv.: QBE).

Basis relaties en views Base Relation A named relation, corresponding to an entity in a conceptual schema, whose tuples are physically stored in database. View Dynamic result of one or more relational operations operating on the base relations to produce another relation.

Views Een view ziet er voor de gebruiker uit als een echte tabel, maar deze is virtueel ! Een view wordt dynamisch, op het moment dat ze nodig is, aangemaakt door het toepassen van een of meer operatoren (een ‘query’) op een of meer basis relaties. Views zijn dynamisch. Veranderingen in de basis relaties worden onmiddellijk gepropageerd naar alle relaties die hierop gebaseerd zijn. Als een VIEW gewijzigd wordt, dan MOETEN de onderliggende BASE relations gewijzigd worden (N.B.: dat is niet altijd mogelijk !).

Updating Views Maar, er zijn restricties op het updaten van onderliggende relaties via een view: Wel als: Wel als er één enkele base-relation aan ten grondslag ligt, Niet als: Niet als er meerdere base-relations aan ten grondslag liggen, Niet als het view is gemaakt met een SQL aggregatie of groep operator. Zie verder bij SQL

Purpose of Views Provides a powerful and flexible security mechanism by hiding parts of database from certain users. Permits users to access data in a customized way, so that same data can be seen by different users in different ways, at same time. It can simplify complex operations on base relations.

Wanneer is een database ‘Relational’ ? Minimaal relationeel: Relaties met attributen uit eenvoudige domeinen. operaties: RESTRICT (SELECT), PROJECT en JOIN. Relationeel compleet: minimaal relationeel. operaties: UNION en MINUS. Volledig relationeel: relationeel compleet. door gebruiker definieerbare domeinen.