opleiding kunstmatige intelligentie cursus databases voor ai
Download
Skip this Video
Download Presentation
Opleiding Kunstmatige Intelligentie cursus Databases voor AI

Loading in 2 Seconds...

play fullscreen
1 / 42

Opleiding Kunstmatige Intelligentie cursus Databases voor AI - PowerPoint PPT Presentation


  • 107 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Opleiding Kunstmatige Intelligentie cursus Databases voor AI' - vine


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
opleiding kunstmatige intelligentie cursus databases voor ai

Opleiding Kunstmatige Intelligentiecursus Databases voor AI

Tweede college

Rolland: hoofdstuk 3

F. de Vries

college 2

College 2

Databases AI

elementen van erd
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

Het relationele database model

Literatuur: Rolland, “The Essence of Databases”,

Hoofdstuk 3

relationele model
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
Terminologie
  • Relatie:
    • 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
Terminologie-2
  • Tupel:
    • 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.
een database schema als verzameling van relatie schema s
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
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
Sleutels

Elk element in de set (elke tupel in de relatie) moetuniek identificeerbaar zijn d.m.v. een sleutel

  • Super keys
  • Candidate keys
  • Primary keys
  • Alternate keys
  • ( Foreign keys )
super keys
Super keys
  • definitiesuper key
    • een super key is een attribuut dat, of een verzameling van attributen die een tuple uniek identificeert
  • Voorbeeld:

sofinummer + naam + personeelsnr + … + …

candidate keys
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

Super Key

Candidate Key

Primary Key

= Alternate Keys

Primary keys
  • definitie primary key
    • een primary key is een uitverkoren candidate key die gebruikt wordt om tuples binnen een relatie te identificeren
foreign 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
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
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
Referentiële integriteit
  • Wat te doen als de plek waarnaar verwezen wordt wijzigt (UPDATE, DELETE)
    • Doe niets (inconsistente database).
    • Verbied.
    • CASCADE.
    • Set to NULL.
mathematische relatie
Mathematische relatie
  • Beschouw twee sets D1 and D2, metD1 = {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 D2komt.
  • 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
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
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
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
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
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
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
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
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
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
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))

join familie
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
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
i ntersect is redundant
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

RMINUSS

51

RINTERSECTS

andere talen non procedureel
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) talenzijn 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
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
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
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
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
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.
ad