Chapter 9: Building An Information Architecture: o o o o o o o o

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 16

Chapter 9: Building an Information Architecture

ERD

= Entity Relationship Diagram

→ niks te maken met processen, maar met structuur van de data

- The ERD is a data modeling tool


- The ERD defines all data that are input, stored, transformed and produced within an
information system
- The ERD focuses solely on data. Unlike a DFD, the processes that transform the
data are irrelevant in an ERD
- It is a preliminary stage towards defining the database structure, independent of
software that will be used to implement the database, by means of a formal model
such as the relational model

- There are 3 basic elements in an ERD:


o Entities
o “things” about which we seek information
o Attributes (= kenmerken)
o The data we collect about the entities
o Relationships
o Represents associations between 2 entities
o Provide the structure needed to draw information from multiple entities
o Are evaluated in both directions
- An entity instance is an individual occurence of an entity

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

- Simple (or atomic) attribute


o Cannot be broken down into smaller components
- Composite attribute
o Can be broken down into smaller components
o Provide flexibility to users

(Country moet city zijn)

EX!! Indien je ERD moet gebruiken maar er is te weinig informatie → gewoon


opschrijven dat er te weinig informatie is

- 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

- Criteria for selecting identifiers


o Choose an identifier that will not change its value over the life of each instance
of the entity
o Choose an identifier that is guaranteed to have valid values and not be null (or
empty, or unknown)
o Avoid the use of so-called intelligent identifiers whose structure indicates
classifications, locations, and so on
o Consider substituting atomic attribute surrogate identifiers for large 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

- We sell products. A product has a unique productcode, a productname and a price.


We also keep track of the price history (the price fluctuations): each time a product
becomes cheaper or more expensive, we write down the date of the new price and
the price itself. When you want to know the current price, we search for the price with
the most recent date.
o Entity: Product
o Attributes: Product code, Product name, Price history
o Price → multi-valued attribute (double ellipse)
o Price history in double ellipse, that disintegrates in Price and Date

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

Entity Relationship Diagram

- Relationship
o Represents an association between 2 or more entities (see 'simple examples'
→ books)
o Entiteit = een object waarover we gegevens verzamelen
- Binary relationships

Optional relationships = 0 Mandatory relationships = 1 of |


Relaties uit 2 entiteiten staan niet los van elkaar (entity A heeft relatie met entity B en
omgekeerd)
o One-to-many relationship → kom je praktisch altijd tegen in een ERD

- 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

2 entities: an employee and a function


Foreign key: FunctionID
Not every employee has a functionID

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

Hoogste in rang rapporteert aan niemand → tegen klok in lezen

a) Rechthoeken → bepaald in Access tabellen


Attributes → bepaald in velden van tabel
b) Werknemer die aan niemand rapporteert → vakje managerID (= sleutel) blijft leeg

In handboek: verplichte relaties worden aangeduid door 2 streepjes

Ruit: ook gebruikt om de naam van een relatie weer te geven


→ hoeft bij ERD niet op examen
Examen: zeker optionele en verplichte relaties aanduiden

- 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

- Many-to-many = twice one-to-many

Je gaat een extra entiteit introduceren (een tussenentiteit)


Nieuwe project = Project details
Medewerkers koppelen aan project, en projecten koppelen aan medewerkers
→ Dit kan een databank perfect verwerken

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

- Checking for redundant relationships


o One of these relationships is redundant
o ‘Has Inhabitants’ on the right already exists through ‘Contains’ and ‘Has
inhabitants’ on the left

- 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

- A salesman and an order

Relatie tussen de 2 entiteiten:


Salesman en order in rechthoek =- → 1 op veel

Salesman 0 Order

1 (of |) want order moet geplaatst worden door verkoper


0 want verkoper moet geen orders plaatsen (bv junior verkoper)

- A teacher and a course

Many-to-many
Lesgever kan meerdere cursussen geven
1 cursus kan door verschillende lesgevers gegeven worden

1
Teacher Teacher courses

Course

- A product and a supplier

Bv merkproduct komt maar van 1 leverancier


Supplier 0 Product
→ 0 aan kant van product, dwz dat je in je systeem leveranciers hebt die nog niets
geleverd hebben

Kan ook:
Bv veevoeder kan door meerdere leveranciers geleverd worden
Supplier 0 Supplier detail

Product

→ 1 want product moet geleverd worden door leverancier

- A magazine has several articles. Each article starts and ends on a specific
page.

Mogelijke entiteiten: magazine, article en page


→ Een entiteit bevat altijd meerdere elementen  page = entiteit MAAR je moet een
entiteit kunnen beschrijven adhv verschillende attributen  geen entiteit maar een
attribuut (Start Page en End Page) (een entiteit moet meer dan 1 attribuut bevatten
→ je moet dus meer dan 1 element kunnen vermelden)

→ Artikel wordt in verschillende magazines gepubliceerd


 Start page en End page zijn publishing details doordat de start- en eindpagina in
elk magazine verschillend is

Andere mogelijke oplossing:

1
Magazine StartPage
Article

EndPage

→ Artikel wordt in 1 magazine gepubliceerd

- A borrower and a book

→ 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

-The library administration

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

- A company publishes vacancies

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

Kandidaat entiteiten: vacancies, skills, period


Period → geeft aanleiding tot 2 attributen: de StartDate en de EndDate van de
publicatie
Wij staan aan kant van het bedrijf (= opdrachtgever) → company is hier 1 uniek
bedrijf  geen entiteit

Relatie tussen vacancies en skills: many-to-many

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

Skill = definitie van een skill


Acquired skills = skill die opgenomen moeten worden in de vacancy

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

- A company implements projects for customers

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?

Wij staan aan de kant van het bedrijf

Welke entiteiten? Project, project team, project leader, personnel


Project → attributen: Start Date, Delivery Date, Deadline

Customer Role / function


StartDate OF
Projectleader
Project
DeliveryDate

Project team
Deadline

0
Personnel

Relatie project personnel: many-to-many

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.

Mogelijke entiteiten: opleidingsonderdeel, student, diploma, credit, slaagpercentage,


tolerantie, tolerantievoorwaarde (geen attribuut, geen entiteit), opleiding,
academiejaar, volgnummer

Entiteiten: opleidingsonderdeel, academiejaar, student, diploma, opleiding

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

You might also like