Professional Documents
Culture Documents
Chapter 9: Building An Information Architecture: o o o o o o o o
Chapter 9: Building An Information Architecture: o o o o o o o o
Chapter 9: Building An Information Architecture: o o o o o o o o
ERD
Entity
o A thing or object of significance, whether real or imagined, about which
information is needed to be maintained
o An object in the real world that is relevant to the information system
o Can be real or abstract
o Book, author
o Loan, sales
o In an E-R-diagram, an entity is shown by a box with a name
o Naming convention
o Using a singular noun that, if possible, is known to the user
o Written in capitals
o E.g CUSTOMER → in een rechthoek getekend
Attribute
o Is a properly or characteristic of an entity that is of interest to the organization
o Can be classifies as identifiers or descriptors
o An identifier (key, primary key) uniquely identifies an instance of an entity
o A descriptor describes a non-unique characeristic of an entity
o An attribute is written in singular in lower case in an ellipse connected to the
entity
1
o It’s nor necessary to show attributes
- Single-valued attribute
o For each entity instance, the attribute has only one value
- Multivalued attributes
o An attribute that may take on more than one value for a particular entity
instance
o Hobby → persoon kan meerdere hobby's hebben (dus er zijn meerdere
attributen) in dubbele elipse tekenen
- Derived attribute
o An attribute whose value can be calculated form related attribute values
o Age → kan ook berekend worden via Birthdate (Age: je kunt een veld niet
automatisch laten verhogen → wanneer?)
2
- Identifying attribute
o = identifier, primary key
o Attribute (or combination of attributes) that uniquely identifies each individual
instance of the entity
- Composite key ↔ atomic key
- Candidate key
o An attribute or set of attributes that uniquely identifies individual occurrences
of an entity type
- Atomic identifiers
- Composite identifiers
Simple Examples
3
- We can give you a report with all the cars, containing registration number, license
plate, brand, model and colour
o Eerst nagaan of er van elk zelfstandig naamwoord meerdere mogelijkheden
zijn bv is er maar 1 soort auto of meerdere?
o Car in vierkant entity
o Elipse: RegNr, Colour, Model, Brand, License plate attributen
o (onderstreepte = authentieke sleutel; hier: RegNr)
- From each member we know his full name, address, phone and his age
o Entiteit: member
o Attributen: MemberID, Last name, First name, Birth date, Phone, Address
(verder opsplitsen in: Street, City, Postal code)
- Each library can give you a list of books with ISBN, title, author, editor and year of
publication
o Entity: book
o Attributen: ISBN, Title, Author, Editor, Year of publication
o Old books???
o Attribute author???? One author??? → desnoods in dubbele elipse tekenen
om aan te duiden dat er meerdere attributen (auteurs) kunnen hebben; wat
met andere boeken van auteur? Prijzen?
geen attribuut maar ook een entiteit (aangezien je er meer gegevens
van kunt verwerken)
o Attribute editor??? geen attribuut maar een entiteit op zich
4
- From each person we know his full name, address, birth date and phone. Some
persons do not have a phone number. Choose an identifier
o Entity: Product
o Attribute: PersonID, Phone, Birth date, Address (→ Street, City, Postal code)
o Candidate keys:
o PersonID
o Last name + First name + Phone???
o Last name + First name + Birth date???
o Last name + First name + Birth date + Phone???
- Relationship
o Represents an association between 2 or more entities (see 'simple examples'
→ books)
o Entiteit = een object waarover we gegevens verzamelen
- Binary relationships
- Cardinality of a relationship
o Actual number of instances in the relationship
o Cardinality is usually expressed as one or many
- Existence of a relationship
o Indicates whether the relationship is optional or mandatory
o Mandatory = an instance of an entity must always be associated with at least
one instance of the related entity
o Relationship between mother and son
Mandatory for son (must have / had a mother)
o Optional = some instances of an entity are not associated with instances of the
related entity
o Relationship between mother and son
Optional for mother (all her children might be daughters)
5
- A foreign key is a referential constraint between 2 tables
- The foreign key identifies a column or a set of columns is one (referencing) table
that refers to a column or set of columns in another (referenced) table. The columns
in the referencing table must be the primary key in the referenced table
- The referencing and referenced table may be the same table, i.e the foreign key
refers back to the same table
- A table may have multiple foreign keys
Op figuren:
1 of | = mandatory
0 = optional
Tekening = fout → 1 aan de kant van de customer en 0 aan de kant van de order
Foreign key: CustomerID
6
- Unary relationship
o Relationship between the instances of a single entity
o = recursive relationship
- Many-to-many relationship
7
Een medewerker gaat aan meerdere projecten meewerken.
Aan 1 project gaan meerdere medewerkers werken.
Bestaat niet in ERD, kan je niet creëren in Access
→ Oplossen door twice one-to-many
Als nu niet elke werknemer aan een project kan worden gekoppeld, dan wil dat
zeggen dat er een 0 gekoppeld wordt aan de tussenentiteit.
Aan elk project moet er minstens 1 werknemer worden gekoppeld, dus dit is een
verplichte relatie.
- Many-to-many relationship
8
Employee: enkelvoudige sleutel
Project details: samengestelde sleutel (samenvoeging van de 2 sleutels van de
entiteiten van waaruit je vertrekt)
EmployeeID and Project ID apart from Project details: foreign / referrential key
ProjectID of Project, EmployeeID of Employee, EmployeeID and ProjectID together
of Project details: primary key
- But …
9
3 entiteiten: stad, land en een persoon
■ Een land heeft meerdere steden → 1 op veelrelatie
■ Een stad heeft meerdere inwoners → 1 op veelrelatie
■ Een land heeft meerdere inwoners → 1 op veelrelatie
Rechterkant is overbodig want linkerkant wijst zichzelf uit → niet opnemen in
tekeningen (dus weglaten)
- In this example all relationships are necessary if a cricket player is not necessarily
an inhabitant of the country
1
Een land bevat verschillende steden, en er wonen verschillende personen
Spelers van een team wonen niet per se in het land dat ze vertegenwoordigen
→ Rechtse verband is wel nodig want speler kan in een ander land wonen dan het
land waar hij voor speelt
Links = waar persoon woont
Rechts = waar persoon speelt
Exercise
Salesman 0 Order
Many-to-many
Lesgever kan meerdere cursussen geven
1 cursus kan door verschillende lesgevers gegeven worden
1
Teacher Teacher courses
Course
Kan ook:
Bv veevoeder kan door meerdere leveranciers geleverd worden
Supplier 0 Supplier detail
Product
- A magazine has several articles. Each article starts and ends on a specific
page.
1
Magazine StartPage
Article
EndPage
→ Over de tijd heen wordt een boek ontleend door meerdere personen
→ Per persoon (ontlening) is er een start en een end date
→ 0 want niet elk boek wordt ontleend
Reader (lezer) heeft een boek ontleend (wordt verschillende keren uitgeleend), en
een boek wordt natuurlijk geschreven door een auteur.
→ What kind of limitations can you see in this solution?
■ Een boek dat niet teruggebracht wordt, heeft geen einddatum (blijft dus
blanco).
■ Een verlenging zou wel kunnen ingeboekt worden → 3de attribuut:
Verwachte teruggavedatum veld veranderen indien iemand een boek
verlengd (niet einddatum aanpassen = datum dat boek terug binnen is)
■ Beperking: In dit systeem kunnen alleen boeken geregistreerd worden die
geschreven zijn door 1 auteur → boek kan door meerdere auteurs
geschreven worden (op tekening =- )
1
A company publishes vacancies. Each vacancy requires a set of skills (‘Fluent in
English’, ‘Working with Word’, ‘Programming in C#’, …). For each skill the required
level is indicated (‘basic’, ‘expert’, …). A skill can be requested for in several
vacancies. A vacancy is published during a limited period: it starts and ends on a
certain date. Choose appropriate identifiers
Primary keys → indien niet uitdrukkelijk vermeld: naam vermelden van entiteit en ID
achterplakken
Combinatie VacanciesID en SkillsID is uniek = foreign key
>< tegenspreken van ervoor!! (wat juist?)
Elke skill gaat een unieke ID (code) krijgen bv kennis Engels, werken met word, ...
met verschillende levels (basis, gevorderd, ...)
Bv Kennis Engels basis = code 1, kennis Engels gevorderd = code 2, ...
Niet vermelden op ERD!
→ Nieuwe tussenentiteit: Niveau (daarop aangeven of basiskennis, gevorderde, ... is
vereist)
ERD: bij een veel op veel relatie mag dit niet op 1 lijn staan → moet dimensie in
zitten
1
A company implements projects for customers. Each project gets a project leader
and a team of project members. All these people are personnel of the company. Not
all personnel can be assigned to projects (e.g a secretary). The project leader of
project A can be a team member of project B
Each project gets a start and a due date. When the project is finished, it gets an end
date.
With the system following questions must be answered:
o How many projects are implemented at this moment?
o Who are the project leaders of the current projects?
o How many projects have not met their deadline?
o Which employees are assigned to more than 2 projects at the same time?
Project team
Deadline
0
Personnel
Bij project team: ofwel geen medewerker en geen rol en wel projectleader, ofwel
medewerker en geen projectleader en geen rol, ofwel rol en geen projectleader en
geen medewerker
→ je kan als projectleader geen andere rol meer opnemen
Project team – personnel: optional relationship (0) want niet elk personeelslid werkt
mee aan een project (bv secretariaat)
Vragen:
a) Je kan een blanco hebben bij u delivery date
b) Blanco DeliveryDate en attribuut rol bij project team
c) Selectie van projecten onder DeliveryDate zijn groter dan die van Deadline
d) Kijk naar relatie personeel – project team. Project overstaande met DeliveryDate
(is blanco) geeft aan welke werknemers aan meer dan 2 projecten werken
Oefening: inschrijven in 1 DR
Een student schrijft in voor één of meerdere opleidingen. Om het diploma te behalen
schrijft hij/zij per academiejaar in voor een set opleidingsonderdelen (max. 72
1
studiepunten). De student behaalt een credit indien hij meer dan 10/20 behaalt. Hij
kan onder bepaalde voorwaarde een tolerantie inzetten voor een 8 of 9/20.
Opleidingsonderdelen met een score <8/20 moeten in het volgende academiejaar
opnieuw worden afgelegd. Trissen voor een opleidingsonderdeel moet worden
goedgekeurd. Bij elke inschrijving voor een opleidingsonderdeel wordt dus het
volgnummer (aantal keren) bijgehouden.
Opleiding gaat leiden tot een diploma, maar dat diploma kan je op verschillende
manieren behalen
Een student schrijft in voor een opleiding en elke opleiding heeft meerdere studenten
(many-to-many)
Slaagpercentage staat in cirkel die niet volledig doortrokken (stippellijntjes) is omdat
het een berekend percentage is