Opleiding kunstmatige intelligentie cursus databases voor ai
This presentation is the property of its rightful owner.
Sponsored Links
1 / 42

Opleiding Kunstmatige Intelligentie cursus Databases voor AI PowerPoint PPT Presentation


  • 88 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Opleiding Kunstmatige Intelligentie cursus Databases voor AI

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


Opdracht 1

Opdracht 1


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.


Instanties van branch en staff relaties

Instanties van “Branch” en “Staff” relaties

6


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.


Referenti le integriteit msaccess

Referentiële integriteit, MsAccess


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))


Natural join client viewing

(NATURAL)JOIN (client, 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


Voorbeeld divide

Voorbeeld DIVIDE

R DIVIDE 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.


  • Login