Academy Track (AMBI)
JavaScript Tree Menu

Samenvatting/examenleidraad HSB.1

HSB.1 Examenwijzer
(hoort bij het boek van E3 ICT- I-Tracks Advanced)

Hoofdstuk 1: Samenhang informatiesystemen, systeemmodellen en SQL

Definitie project: Een project is een tijdelijk multidisciplinair samenwerkingsverband gericht op het realiseren van een afgesproken resultaat (blz 10)

Veelal is er sprake van een project als de activiteiten die noodzakelijk zijn om het resultaat te bereiken:

Definitie systeemontwikkelaanpak: Een systeemontwikkelaanpak is het productieproces waarin ICT-deskundigen en materiedeskundigen (de bedrijfsvoering) gericht samenwerken met als doen: de realisatie van een informatiesysteem. (blz 18)

Lineair, incrementeel en evolutionair (blz 19)

Kenmerken MAD, de methode:

Iteratieve systeemontwikkeling volgens de MAD aanpak: plaatje blz 25)

JAD: Joint Application Development (blz 26)

Projectbeheersing richt zich op de volgende kenmerken (MOSQUITO)

Informatiemodel:

Coupling en binding (blz 43)


Soorten beheer en onderhoud:

Definitie model:
Een model is een beperkte vereenvoudigde afbeelding van de werkelijkheid vanuit een bepaald gezichtspunt voor een bepaalde doelgroep (blz 47)

Doorgaande resultaatlijn en doorgaande communicatielijn,
De rol van documentatie bij het systeemontwikkeltraject en
Modellenstrijd(blz 49)

Samenhang tussen de MAD modellen (blz 51 en verder )

Projectfase Ontwikkelfase Ontwikkelactiviteit Ontwikkelproduct
Opstarten en initiëren project      
Beheersen MAD-ontwikkelcyclus: - definieer project Bedrijfsanalyse Opstellen bedrijfsactiviteiten model Bedrijfsactiviteiten model
    Opstellen informatiemodel Informatiemodel
  Systeemspecificatie Afbakening systeemgrenzen Contextdiagram
Beheersen MAD-ontwikkelcyclus: - definieer increment   Definitie incrementen Gedefinieerde incrementen
    Definitie gegevensstructuur increment Gegevensmodel
    Definitie gedrag increment Functiemodel
    Definitie userinterface increment Userinterface model
Beheersen MAD-ontwikkelcyclus: - realisatie Systeembouw Ontwikkel increment Ontwikkeld systeemonderdeel
Beheersen MAD-ontwikkelcyclus: - installate   Installeer increment Geïnstalleerd systeemonderdeel
Implementatie informatiesysteem      
Beheer en onderhoud      
Afsluiting project      

Templates en applicatiegeneratie (blz 56 en verder)

Samenvatting HFD 1 (blz 60-61)

Hoofdstuk 2: Bedrijfsactiviteitenmodel

Functies van het bedrijfsactiviteitenmodel:

Componenten A-schema:

Toepassingsmogelijkheden A-schema’s:

Conventies bij het opstellen van een A-schema:

Activiteiten:

  1. Activiteiten hebben een naam en een nummer. De naam wordt altijd uitvoergericht gekozen en bestaat uit een werkwoord eventueel gevolgd door een zelfstandig naamwoord. De naam duidt de verwerking aan die door de activiteit wordt uitgevoerd.
  2. Iedere activeit heeft minimaal één invoerstroom en één uitvoerstroom.

Informatiestromen:

1.  Een informatiestroom heeft een naam. Deze naam is een zelfstandig naamwoord en geeft de inhoud van de informatiestroom weer.

2.  Level balancing: bij toepassing van decompositie waardoor een lager abstractie niveau ontstaat, moet op het lagere niveau het aantal inkomende en uitgaande informatiestromen gelijk zijn aan het hogere abstractieniveau. (eventueel braching of joining van informatiestromen) (blz 76)


Opstellen bedrijfsactiviteitenmodel:

  1. Verzamel de benodigde informatie (blz 81)
  2. Bepaal het doel van het model (blz 81)
  3. Bepaal het gezichtspunt van het model (blz 82)
  4. Maak een A0 diagram (blz 82)
  5. Maak een A-0 diagram (blz 82-83)
  6. Maak uitgaande van het A0 diagram de benodigde decomposities (blz 83-84)
  7. Review en controle (blz 84).

Bottom/up aanpak voor het opstellen van een A-schema: (blz 86 en verder)

  1. Maak een datalijst
  2. Maak een activiteitenlijst
  3. Leg associaties tussen de datalijst en de activiteitenlijst
  4. Transformeer de datalijst en activiteitenlijst naar een 1ste concept A-schema
  5. Verfijn het A-schema
  6. Controleer het A-schema

Check de diagrammen op: (blz 85)

  1. Controleer of alle activiteiten passen binnen het doel en het gezichtspunt van het model
  2. Controleer of alle activiteiten een naam hebben
  3. Controleer of alle activiteiten correct genummerd zijn
  4. Controleer of alle activiteiten minimaal 1 input en 1 output hebben
  5. Controleer of alle activiteiten binnen een diagram gelijkwaardig zijn (horizontal balancing)
  6. Controleer voor elke decompositie of de deelactiviteiten een afgeleide zijn van de bovenliggende activiteit
  7. Controleer voor elke decompositie of de stromen uit het afgeleide diagram consistent zijn met de bovenliggende activiteit (leveling)
  8. Beoordeel of het noodzakelijk is stromen te splitsen of te bundelen om hiermee de inzichtelijkheid van het diagram te verbeteren.

Hoofdstuk 3: Informatiemodel

Begrippen en toepassingen ERD

Relationshiptype (het element waarmee de samenhang tussen entiteittypen wordt gemodelleerd - geeft de relatie tusen de verschillende objecten):

Notatiewijze (zie blz 109)

ISO notatie van de tekstuele bijlage (voorbeeld op blz 114)

    Analyse en modellering – gestructureerd stappenplan (blz 115-117):
  1. Bepalen en benoemen entiteittypen
  2. Bepalen en benoemen relationshiptypen
  3. Maak een primair diagram
  4. Bepaal de kardinaliteiten
  5. Bepalen en benomen attribuuttypen
  6. Bepalen identificerende attribuuttypen
  7. Bepalen type attribuuttypen
  8. Onderzoek naar toepasbaarheid specialisatie/generalisatie
  9. Controleer het uitgewerkte ERD.

Analyse en modellering – analystische aanpak:

Er wordt uitgegaan van het inventariseren van entiteittype, relationshiptypen en attribuuttypen tegelijkertijd. Via een inventarisatiemodel ontstaat een basismodel dat wordt omgezet in een definitieve uitwerking. (blz 118)

Controleregels ERD

Algemene regels:

  1. Er zijn binnen een ERD geen twee entiteittypen met dezelfde naam
  2. Er zijn binnen een entiteittype geen twee attribuuttypen met dezelfde naam

Formele modelleringsregels (ISO):

  1. Enkelvoudige attribuuttypen: Elk entiteittype dient alleen enkelvoudige attribuuttypen te bezitten, multivalued attribuuttypen moeten worden overgezet in een entiteittype
  2. Normalisatie:
    1. het voorkomen van herhaalde groepen
    2. het voorkomen van attribuuttypen die afhankelijk zijn van een deel van de sleutel in plaats van de gehele sleutel
    3. het voorkomen van transitieve afhankelijkheden
  3. Decompositie:
  4. Bij tertiaire relationshiptypes moet de functionaliteit van een relationshiptype eenduidig te zijn over de aangesloten entiteittypen. Is dat niet het geval, dan moet je het relationshiptype splitsen in twee relationshiptypen met ieder de functionaliteit vh relationshiptype zoals dat voor de aangesloten entiteittypen van toepassing is (blz 120)

Pragmatische modelleringsregels (ISO)

Entiteittypen zonder relevante attribuuttypen:
Een entiteittype zonder attribuuttypen wordt samengevoegd als attribuuttype met dat entiteittype waarmee het via een relationshiptype verbonden is (blz 121)

Impliciete entiteittypen:
De attribuuttypen die niet tot het oorspronkelijke entiteittype behoren worden als entiteittype via een relationship type gekoppeld aan het oorspronkelijke entiteittype (omgekeerde van 1, blz 122)

Relationship met attribuuttypen:
De ISO geeft de voorkeur aan de objectivering boven het relationshiptype met attribuuttypen. Het geobjectiveerde entiteittype wordt via een kardinaliteit van 1,1 met het relationshiptype verbonden. Dit kan alleen bij een N:M relatie. (blz 123)

Multidimensionale databases (blz 136 en verder en loss hoofdstukken in zwarte klapper)

Een MMD is een vorm van databasetechnologie voor efficiënte opslag en bevraging van grote hoeveelheden complexe gerelateerde data vanuit verschillende applicaties vanuit verschillende onderdelen van de organisatie, waarbij data worden opgeslagen in een kruistabel waardoor de data beter toegankelijk zijn voor analyses vanuit verschillende invalshoeken. (datawarehouse met BI-tool functionaliteit)

Datawarehousing is het op zodanige manier structureren en koppelen van bestanden dat alle informatie via een uniform medium beschikbaar wordt.

BI-tool is een software-tool dat bedoeld is voor de presentatie en analyse van grote hoeveelheden data.

Hoofdstuk 4: Specificatiemodel

Update en delete regels

ON UPDATE/DELETE RESTRICTED: update/delete wordt niet toegestaan

ON UPDATE/DELETE CASCADES: update/delete wordt in deze tabel ook doorgevoerd

ON UPDATE/DELETE NULLIFY (of SET NULL): bij update/delete van kolommen, worden deze in deze tabel op “NULL” gezet.

Analyse en modellering

Normaliseren:

  1. Vaststellen 1 NF: meerwaardige attributen (vector) of samengesteld meerwaardige attributen (repeating group) zijn niet toegestaan
  2. Vaststellen 2 NF: Indien er sprake is van een samengestelde primaire sleutel mag geen enkel attribuut afhankelijk zijn van een deel van de sleutel in plaats van de gehele sleutel
  3. Vaststellen 3 NF: Alle attributen moeten volledig afhankelijk zijn van de sleutel en mogen niet functioneel afhankelijk zijn van een ander attribuut uit de relatie. M.a.w. transitieve afhankelijkheden zijn niet toegestaan
  4. BCNF: het aantal kandidaatssleutels is gelijk aan het aantal determinanten. (als 1/tm 3 goed zijn uitgevoerd, volgt BCNF automatisch, hiermee kan dus gecontroleerd worden of het goed gegaan is )

Transformatie van het informatiemodel naar het relationele model (blz 172):

Modellering gedrag op specificatie en realisatie niveau(ON .. IF... THEN...) blz 177 en verder)

ON...IF...THEN regels op specificatieniveau: in tekst

ON...IF...THEN regels op realisatieniveau: in SQL (met name het THEN gedeelte)

Hoofdstuk 5: Structured Query Language (SQL)

Data Definition Language (DDL)

CREATE TABLE tabelnaam
(kolomnaam1 gegevenstype (NOT NULL),
kolomnaam2 gegevenstype,
PRIMARY KEY (kolomnaam[,kolomnaam]),
FOREIGN KEY (kolomnaam) REFERENCES tabelnaam
ON DELETE {CASCADES | RESTRICTED | NULLIFYING}
ON UPDATE {CASCADES | RESTRICTED | NULLIFYING})

Veel gebruikte constraints:

DROP TABLE tabelnaam1, [tabelnaam2]…

ALTER TABLE tabelnaam alter_specifications

Voorbeelden alter_specifications:
RENAME kolomnaam_oud kolomnaam_nieuw,
ADD kolomnaam gegevenstype,
MODIFY kolomnaam gegevenstype,

INDEX creëren om zoekvolgorde aan te maken of zoeksnelheid te verhogen.

CREATE [UNIQUE] INDEX indexnaam ON tabelnaam

(kolomnaam_1 [ASC|DESC])

UNIQUE zorgt ervoor dat in de index geen dubbele waarden worden opgenomen.

Een VIEW is een virtuele tabel die is samengesteld uit de base-tables en is bedoeld om de gebruiker informatie te verschaffen uit een subset van de database. Hierdoor kan je bepaalde informatie afschermen voor (groepen) gebruikers, of de complexiteit van de gepresenteerde data vereenvoudigen en makkelijker verwerkbaar maken.

CREATE VIEW naamview [kolomnaam_1, kolomnaam_2]
AS query

DE VIEW verwijderen:
DROP VIEW naamview

Data Control Language (DCL)

Rechten toekennen:
GRANT {SELECT | INSERT | DELETE | UPDATE kolomnaam
INDEX | ALTER | ALL} ON tabelnaam TO {PUBLIC | gebruikersnaam}
[WITH GRANT OPTION]

Rechten intrekken:
REVOKE {SELECT | INSERT | DELETE | UPDATE kolomnaam
INDEX | ALTER | ALL} ON tabelnaam TO {PUBLIC | gebruikersnaam}
[WITH REVOKE OPTION]

Data Manipulation Language (DML)

Basisquery:

SELECT [* | kolomnaam1,kolomnaam2,..] FROM tabelnaam
[WHERE...]

(voorbeelden op blz 200-201)

Gebruik van de JOIN (betreft een koppeling tussen twee tabellen aan de hand van de primaire en vreemde sleutel).

  1. De volgende aanpak kan worden gebruikt om een query met een zogenaamde JOIN op te stellen:
    Bepaal de gewenste outputkolommen en vermeld deze bij de SELECT.
  2. Bepaal welke tabellen je nodig hebt om de benodigde gegevens te kunnen presenteren en vermeldt deze tabellen achter de FROM.
  3. Bepaal hoe de benodigde tabellen aan elkaar gekoppeld kunnen worden via een zogenaamde join en vermeldt dit achter de WHERE.
  4. Bepaald de voorwaarden waaraan voldoen moet worden (de eigenschappen die je wil toetsen) en vermeldt deze na de join uit stap 3 achter AND.

Het gebruik van aliassen – als je een tabel meerdere keren in een query wil gebruiken:

Bijvoorbeeld: Geef een overzicht van de zorgaanbieders die in dezelfde stad wonen:
SELECT l1.levnr, l2.levnr
FROM zorgaanbieder l1, zorgaanbieder l2
WHERE l1.levplaats = l2.levplaats
AND l1.levnr < l2.levnr (zorgt ervoor dat identieke nummers worden uitgesloten)

GROUP BY: als aanvulling op de functies zorgt GROUP BY voor het samenvoegen van dezelfde waarden binnen een bepaalde kolom tot een groep. Deze groep wordt gevormd door rijen die voor een opgegeven kolom dezelfde waarde  hebben. Voorwaarde is dat bij de SELECT opdracht alleen functies en de namen van de achter GROUP BY genoemde kolommen mogen worden opgenomen. De uitkomst geeft één rij per groep.

HAVING: Als het gewenst is om op eigenschappen te toetsen ten aanzien van de uitkomst van een functie, dan mag dat niet via de WHERE-clause, maar moet dit via de HAVING-clause. Met behulp van het HAVING statement kunnen de functies nog verder worden uitgebreid en is het mogelijk om eigenschappen te toetsen binnen een bepaalde groep. (door te combineren met GROUP BY)

EXISTS: is een logisch operator die de waarden waar/niet waar kan aannemen welke worden gebaseerd op de aan- of afwezigheid van uitvoer bij een subquery. EXISTS wordt vaak gebruikt in combinatie met NOT. Het is toegestaan om * achter de SELECT te gebruiken,omdat de variabelen die je selecteerd niet relevant zijn voor de uitkomst. Na EXISTS mag je geen verzamelfunctie (AVG, SUM etc) gebruiken.

Gecorreleerde subquery: in de subquery wordt verwezen naar een kolom uit de buitenste query. Sommige gecorreleerde subqueries kun je ook d.m.v. een JOIN oplossen, maar soms is het qua performance beter om een gecorreleerde subquery te gebruiken.


Groeps-groeps vergelijkingen (zie blz 210-211):

De gecorreleerde subquery dient altijd te worden in situaties waarbij sprake is van vergelijkingen tussen objecten (verzamelingen) waarbij de vraagstelling geldt:

De gecorreleerde subquery heeft dan het volgende formaat:
SELECT… WHERE NOT EXISTS
(SELECT  …. WHERE NOT IN….
(SELECT ………….))

Blz 212:
INSERT INTO tabelnaam [kolomnaam_1, kolomnaam_2]
VALUES (waarde_1, waarde_2)
Of soms kun je in plaats van VALUES ook een query gebruiken:
INSERT INTO tabelnaam

Blz 212:
DELETE FROM tabelnaam
[WHERE clause]

Blz 213:
UPDATE tabelnaam
SET kolomnaam_1 = uitdrukking_1/waarde[,kolomnaam_2 = uitdrukking_2]
[WHERE clause]