Een hiërarchisch datamodel maken
In deze oefening bouw je een eenvoudig hiërarchisch datamodel door de hiërarchie van IT-assets op te zetten. Een asset kan Hardware of Software zijn. Een Software-asset kun je verder opsplitsen in Application of Tools, enzovoort. De hiërarchie staat in de onderstaande afbeelding.

Om deze hiërarchie te modelleren, heb je een geschikte datastructuur nodig. Dat kan met een datamodel dat bestaat uit het kindrecord ID en het ouderrecord ParentID. De ID’s zijn opeenvolgende waarden van 1 tot en met 10.
Je taak is om de bijbehorende tabel Equipment te maken en de assets Software, Monitor en Microsoft Office in de tabel in te voegen. Houd er rekening mee dat je de juiste ID’s voor elke asset moet instellen om de gewenste hiërarchie van assets te krijgen.
Deze oefening maakt deel uit van de cursus
Hiërarchische en recursieve queries in SQL Server
Oefeninstructies
- Definieer de velden
IDenParentIDvan het typeINT.IDmag nietNULLzijn,ParentIDmagNULLzijn. - Voeg de equipment
Softwaretoe aan de tabel met de juiste ID’s. De software maakt deel uit vanAsset. - Voeg de equipment
Monitortoe aan de tabel met de juiste ID’s. De monitor maakt deel uit vanHardware. - Voeg de equipment
Microsoft Officetoe aan de tabel met de juiste ID’s. Deze software maakt deel uit vanApplication.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
CREATE TABLE Equipment (
-- Define ID and ParentID
___ ___ NOT NULL,
Equipment VARCHAR(255) NOT NULL,
___ ___
);
INSERT INTO Equipment VALUES (1,'Asset',NULL);
INSERT INTO Equipment VALUES (2,'Hardware',1);
-- Insert the type Software
INSERT INTO Equipment VALUES (___,____,1);
INSERT INTO Equipment VALUES (4,'Application',3);
INSERT INTO Equipment VALUES (5,'Tool',3);
INSERT INTO Equipment VALUES (6,'PC',2);
-- Insert the type Monitor
INSERT INTO Equipment VALUES (___,'Monitor',2);
INSERT INTO Equipment VALUES (8,'Phone',2);
INSERT INTO Equipment VALUES (9,'IPhone',8);
-- Insert the type Microsoft Office
INSERT INTO Equipment VALUES (___,___,4);
SELECT *
FROM Equipment;