Database, Document and Content Management

Slides:



Advertisements
Verwante presentaties
Informatieanalyse klassediagram I.
Advertisements

Les 2 klassediagrammen II
SQL deel 2: datamodel ontwerp
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Het ER model Een powerpoint presentatie, gemaakt door: F. Triep
Databases Informatica Ga verder met een muisklik. SQL FCO DBMS NE FA
Beheer van gebruikers en groepen lancering DSH Leuven 2-feb-2009 Jan Vangrinsven.
Entiteit-Relatie Model
Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het selecteren van data uit meerdere gekoppelde tabellen
<Mdl01 hoorcollege 1>
Databases I Van EER naar relationeel
Opleiding AI cursus Databases
Entity Relation Model (ER-model).
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Gevorderden 5.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische.
Hoofdstuk 6: Controle structuren
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
DATABANKEN HET “ENTITY-RELATIONSHIP” MODEL
DATABANKEN HET “ENHANCED ENTITY-RELATIONSHIP” MODEL
Relationele databases: Fysiek databaseontwerp en SQL
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
Vrij Technisch Instituut - Hasselt
Vorige week: Referentiele integriteit
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.
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Digitaal Sociaal Huis Samenwerkingsproject Vlaams-Brabantse sociale huizen 2 februari 2009.
Fundament Informatica
Hoofdstuk 3 Databaseontwikkeling 4 Access.  Uitgangspunt is altijd de informatiebehoefte van de klant  Deze wordt vaak bepaald door rapporten, formulieren.
Workshop PHP Een productencatalogus Met database.
Conceptueel databaseontwerp
Relationele databases: Logisch databaseontwerp
Databank Beheer Practica Databanken. Vakgroep Telecommunicatie en Informatieverwerking2 Twee practica Schema ontwerp & implementatie –conceptueel ontwerp:
Hfst 1 paragraaf 3 Enkelvoudige ionen.
Business Marketing Management
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Een entingsprotocol in Veterin stap voor stap. Doelstelling gebruiker interactief een combinatie-enting laten samenstellen logische en eenduidige prijsstelling.
Meervoudige selectie van deuren
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
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Conceptueel databaseontwerp
Fase 2 – Functioneel ontwerp
Objecttechnologie in databases
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Vakgroep Telecommunicatie en Informatieverwerking 1 Relationele databases: Het relationeel databasemodel Hoofdstuk 4 Database, Document and Content Management.
Databases I Het Entity-Relationship Model
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.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
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 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
GegevensAnalyse Les 2: Bouwstenen en bouwen. CUSTOMER: The Entity Class and Two Entity Instances.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
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.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Recht op leerlingenvervoer:
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.
SQL Les February 2019.
SQL Les 3 23 February 2019.
SQL Les 6 14 April 2019.
SQL Les 4 12 May 2019.
Python – For loop + strings
Transcript van de presentatie:

Database, Document and Content Management DATABANKEN MAPPING EER-SCHEMA NAAR RELATIONEEL DATABANKSCHEMA

Logisch relationeel databankontwerp met behulp van een EER-diagram Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagram Case studie Oefeningen

Logisch relationeel databankontwerp met behulp van een EER-diagram Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagram Case studie Oefeningen

Relationeel databankontwerp Omzettingsalgoritme voor relationele databanken: stap 3 (omzetting van specialisaties en generalisaties) alle entiteitstypes uit een specialisatie met m subtypes {S1,S2, …,Sm} en supertype C zijn reeds in stap 1 of 2 omgezet naar basisrelaties Ri, 1im, en R (stel dat de attributen van R, de relatie die C voorstelt, {k,a1,a2,…,an} zijn, met k de (primaire) sleutel): optie 3a (meerdere relaties – supertype en subtypes) behoud alle bestaande basisrelaties breidt de relaties Ri, voor elk van de subtypes Si 1im, uit met een vreemde sleutel {k}, verwijzend naar de primaire sleutel van de relatie R; {k} is tevens primaire sleutel van de relaties Ri deze optie werkt voor elke specialisatie (totaal of partieel; disjunct of overlappend)

Relationeel databankontwerp optie 3b (meerdere relaties – enkel subtypes) breidt de relaties Ri, voor elk van de subtypes Si 1im, uit met de attributen {k,a1,a2,…,an} van de basisrelatie R; in alle relaties Ri wordt k de primaire sleutel verwijder R, de basisrelatie van het supertype C deze optie werkt enkel voor totale specialisaties met disjuncte subtypes

Relationeel databankontwerp optie 3c (één relatie met extra type-attribuut) breidt de basisrelatie R uit met de attributen van alle subtypes Si 1im, plus een extra attribuut {t}; k blijft de primaire sleutel k verwijder alle basisrelaties Ri 1im het attribuut t wordt het type-attribuut of discriminerend attribuut genoemd en geeft de subklasse aan waartoe een tuple behoort deze optie werkt voor enkel voor specialisaties met disjuncte subtypes (mogelijks veel NULL waarden !)

Relationeel databankontwerp optie 3d (één relatie met meerdere type-attributen) breidt de basisrelatie R uit met de attributen van alle subtypes Si 1im, plus extra attributen {t1,t2,…,tm}; k blijft de primaire sleutel k verwijder alle basisrelaties Ri 1im elk attribuut ti, 1im, is een Boolean type-attribuut dat aangeeft of een tuple behoort tot subtype Si deze optie werkt voor elke specialisatie (mogelijks veel NULL waarden !)

Relationeel databankontwerp stap 3’ (omzetting van meervoudige overervingen) beschouw een subtype S met meerdere supertypes Ci, 1im; in stap 1 of 2 werden deze omgezet naar basisrelaties R en Ri, 1im, met ki de (primaire) sleutels van de supertypes: optie 3a’ (meerdere relaties – supertypes en subtype) behoud alle bestaande basisrelaties breidt de relatie R, voor het subtype S, uit met vreemde sleutels {ki}, verwijzend naar de primaire sleutels van de relatie Ri; indien de relatie R nog geen primaire sleutel heeft, kan deze worden gevormd door de combinatie van alle vreemde sleutels {ki}, ofwel door het toevoegen van een nieuw sleutelattribuut als surrogaatsleutel

Relationeel databankontwerp optie 3b’ (één relatie) breidt de relatie R, voor het subtype S, uit met de attributen van alle supertypes Ci indien de relatie R nog geen primaire sleutel heeft, kan deze worden gevormd door de combinatie van alle sleutelattributen {ki} van de supertypes Ci, ofwel door het toevoegen van een nieuw sleutelattribuut als surrogaatsleutel verwijder alle basisrelaties Ri 1im

Relationeel databankontwerp stap 4 (omzetting van categorieën) gewoonlijk hebben de definiërende supertypes van een categorie verschillende primaire sleutels; hierom dient er een nieuw sleutelattribuut k’, de surrogaatsleutel, gecreëerd te worden voor relatie R, de relatie die correspondeert met de categorie; k’ is de primaire sleutel van R voeg k’ als vreemde sleutel toe aan de relaties die corresponderen met de definiërende supertypes van de categorie opmerking: voor entiteiten van de definiërende superklassen die zelf geen element zijn van de categorie is de waarde van de vreemde sleutel NULL opmerking: een gedragspecificatie is nodig om af te dwingen dat een instantie van een categorie overeenkomt met een instantie van slechts één van de supertypes

Logisch relationeel databankontwerp met behulp van een EER-diagram Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagram Case studie Oefeningen

Case studie: softwarefirma naam werknemernr gebruikerID Ext_Gebr. Int_Gebr. bedrijf productnr N Product U  telefoon beschr. 1 Gebruiker adres bezit van 1 e-mail door rapportnr N versienr N Versie 1 omschr. datum Rapport datum 1 status over d prioriteit voor   N M registratienr Int_Rapport Ext_Rapport N 1 Registratie N over datum

Case studie: softwarefirma INT_RAPPORT GEBRUIKER telefoon, adres, email PRODUCT productnr, beschrijving REGISTRATIE regnr, datum EXT_GEBR gebruikersnaam, bedrijf INT_GEBR werknemernr RAPPORT rapportnr, omschr, status, prioriteit, datum EXT_RAPPORT , productnr, versienr FK (productnr, versienr): VERSIE , gebrID (FK: GEGRUIKER) , gebrID (FK: GEGRUIKER) stap 3 stap 1 stap 6 stap 4 stap 2 stap 7 , gebrID , productnr, versienr, gebrID FK (productnr, versienr): VERSIE; FK (gebrID): GEBRUIKER rapportnr, omschr, status, prioriteit, datum , regnr, gebrID FK (regnr): REGISTRATIE; FK (gebrID): GEBRUIKER rapportnr, omschr, status, prioriteit, datum VERSIE productnr (FK: PRODUCT), versienr, datum REG_SOFTW gebruikersnaam, bedrijf, regnr (FK: REGISTRATIE) FK (gebruikersnaam, bedrijf): EXT_GEBR

Case studie: softwarefirma Gedragspecificatie (pseudo-code): Integriteitsrestricties: CHECK (FORALL GEBRUIKER.gebrID: (SELECT count(*) FROM INT_GEBR WHERE INT_GEBR.gebrID = GEBRUIKER.gebrID) + (SELECT count(*) FROM EXT_GEBR WHERE EXT_GEBR.gebrID = GEBRUIKER.gebrID) = 1) CHECK (VERSIE.datum >= VERSIE2.datum WHERE VERSIE.productnr = VERSIE2.productnr AND VERSIE.versienr > VERSIE2.versienr) CHECK (REGISTRATIE.datum >= VERSIE.datum) CHECK (INT_RAPPORT.datum >= VERSIE.datum) CHECK (EXT_RAPPORT.datum >= REGISTRATIE.datum) CHECK (INT_RAPPORT door INT_GEBR); CHECK (EXT_RAPPORT door EXT_GEBR)

Logisch relationeel databankontwerp met behulp van een EER-diagram Overzicht Logisch relationeel databankontwerp met behulp van een EER-diagram Case studie Oefeningen

FamNaam Voornaam Naam Adres Geslacht Lid Telefoonnummer o Orkestlid Koorlid Bestuurslid Functie Soort “blaas” “strijk” “slag” Naam Titel N speelt M voor Stem Partituur partID Instrument Componist o d Orkestpartituur Koorpartituur Blaas Strijk Slag

Oefeningen: databank voor koor en orkest Relationeel schema: LID (FamNaam, VNaam, Adres, Geslacht, Tel.) ORKESTLID (FamNaam, VNaam) FK(FamNaam, VNaam): LID KOORLID (FamNaam, VNaam) FK(FamNaam, VNaam): LID BESTUURSLID (FamNaam, VNaam, Functie) FK(FamNaam, VNaam): LID INSTRUMENT (INaam, Soort) PARTITUUR (Titel, Componist, Orkest, Koor) SPEELT (FamNaam, VNaam, INaam) FK(FamNaam, VNaam): ORKESTLID, FK(INaam) : INSTRUMENT STEM (FamNaam, VNaam, Stem) FK(FamNaam, VNaam): KOORLID VOOR (INaam, Titel, Componist) FK(INaam): INSTRUMENT, FK(Titel, Componist): PARTITUUR

Oefeningen: databank voor koor en orkest Gedragspecificatie: Integriteitsrestricties: CHECK (Orkest = TRUE OR Koor = TRUE) CHECK (PARTITUUR.Orkest = TRUE WHERE PARTITUUR.(Titel, Componist) = VOOR .(Titel, Componist))

Uitzending Zender M N N Medewerker 1 M ZendEenheid N Zelfst. Programma commentaar naam code id tijdstip Uitzending Zender M N naam id N afkorting Medewerker 1 omschrijving ISAN M ZendEenheid titel genre rol duur ISAN N Zelfst. Programma U Programma d Aflevering Serie ID N 1 genre titel ISANvolgnr subtitel ISANbasis

Oefeningen: televisiemaatschappij Relationeel schema: ZENDER (Code, Naam, Afkorting) UNIQUE (Naam), UNIQUE (Afkorting) MEDEWERKER (ID, Naam) PROGRAMMA (ProgrammaID, genre, titel, ISAN(basis), eenheidID) UNIQUE (ISAN(basis)) AFLEVERING (ISANbasis, ISANvolgnr, subtitel, eenheidID (FK: ZENDEENHEID)) FK (ISANbasis): PROGRAMMA.ISAN(basis) ZENDEENHEID (eenheidID, type, omschrijving, duur) UITZENDING (ID, commentaar, tijdstip, eenheidID (FK: ZENDEENHEID)) UITZENDING_ZENDER (UitzendingID, ZenderCode) FK (UitzendingID): UITZENDING; FK (ZenderCode): ZENDER PROGRAMMAMEDEWERKER (ProgrammaID, MedewerkerID, rol) FK (ProgrammaID): PROGRAMMA; FK (MedewerkerID): MEDEWERKER

Oefeningen: televisiemaatschappij Gedragspecificatie: Afgeleide attributen (bv. ISAN code): CREATE PROCEDURE ZendEenheid_ISAN (ID IN integer, ISAN OUT integer) AS BEGIN IF ID IN (SELECT eenheidID FROM Aflevering) THEN ISAN = (SELECT ISANbasis+ISANvolgnr FROM Aflevering WHERE eenheidID = ID) ELSEIF ID IN (SELECT eenheidID FROM Programma) THEN ISAN = (SELECT ISAN(basis) FROM Programma WHERE eenheidID = ID) ELSE raise ZendEenheidOnbekend ENDIF END;

Oefeningen: spoorwegmaatschappij Het spoorwegnetwerk bestaat uit een verzameling knooppunten die met elkaar verbonden zijn via spoorlijnen. Elk knooppunt heeft een uniek nummer maar kan ook geïndentificeerd worden via de geografische ligging (geografische lengte- en breedtegraad). Een typisch knooppunt is een station, maar ook onderhoudsplaatsen worden als knooppunten beschouwd. Van elk station wordt de (unieke) naam, en het aantal perrons bijgehouden. Voor elke onderhoudsplaats moet men bijhouden welke soorten onderhoudswerken men er kan uitvoeren (vb. tanken, reinigen, herstellingen, ...). Een knooppunt kan zowel station als onderhoudsplaats zijn. In een enkel geval is een knooppunt geen van beide (i.e. een splitsing). Een verbinding wordt geïdentificeerd aan de hand van een begin- en een eindknooppunt. Verder wordt ook de afstand en de maximale snelheid op de verbinding bijgehouden. Merk op dat een verbinding gericht is, een verbinding van A naar B is niet gelijk aan een verbinding van B naar A. De diensten van de spoorwegmaatschappij bestaan erin om op elk vastgesteld tijdstip (datum en uur van vertrek) een rit volgens het bijhorend vastgelegde traject uit te voeren. Een traject, dat wordt aangeduid met een uniek nummer, legt vast welke verbindingen hierbij achtereenvolgens worden gevolgd. Voor elk van de op dit traject gelegen verbinding wordt relatieve vertrek en aankomsttijd (t.o.v. van de aanvang van de rit) bijgehouden. Om deze diensten te verzorgen beschikt de maatschappij over een hoeveelheid rollend materieel dat wordt ingedeeld in drie categorieën: locomotieven, goederenwagons en passagiersrijtuigen. Elk voertuig krijgt binnen zijn categorie een uniek nummer. Naast de algemene kenmerken zoals lengte en gewicht, worden voor elke categorie een aantal specifieke kenmerken bijgehouden. Voor locomotieven: motortype (diesel of elektrisch) en het vermogen. Voor goederenwagons: vrachttype en tonnage. Voor passagiersrijtuigen: de klasse en het aantal passagiers. Er wordt bijgehouden welke voertuigen (zullen) worden ingezet voor een bepaalde rit.

voor van M N N 1 Rijtuig Rit Traject cat M d “L” “P” Locomotief tnr lengte cat voor van M N N 1 id Rijtuig Rit Traject nr cat gewicht vertrek M d “L” “P” datum uur Locomotief Passagiers “G” rel. vertrek via Goederen rel. aankomst PK klasse zitjes brandstof van N vracht tonn. 1 N knr Verbinding Knooppunt lengtegr ligging naar 1 N breedtegr o km km/h Station Onderhoudspl soort onderhoud naam perrons .

Oefeningen: spoorwegmaatschappij Relationeel schema: RIJTUIG (cat, nr, lengte, gewicht) LOCOMOTIEF (cat, nr, PK, brandstof) FK (cat, nr): RIJTUIG GOEDERENWAGON(cat, nr, vracht, tonnage) FK (cat, nr): RIJTUIG PASSAGIERSWAGON (cat, nr, klasse, zitjes) FK (cat, nr): RIJTUIG TRAJECT (Tnr) RIT (Tnr (FK: TRAJECT), datum, uur) KNOOPPUNT (Knr, lengtegr, breedtegr) UNIQUE (lengtegr, breedtegr) STATION (Knr (FK: KNOOPPUNT), naam, perrons) UNIQUE (naam) ONDERHOUDSPLAATS (Knr (FK: KNOOPPUNT)) VERBINDING (van (FK: KNOOPPUNT), naar (FK: KNOOPPUNT), km, km/h) VIA (traject (FK: TRAJECT), van, naar, rel_vertrek, rel_aankomst) FK (van, naar): VERBINDING VOOR (Tnr, datum, uur, cat, nr) FK (Tnr, datum, uur): RIT; FK (cat, nr): RIJTUIG ONDERHOUD (Knr (FK: ONDERHOUDSPLAATS), TypeOnderhoud)