Modellering og data

From CCT - Vidensdeling
Jump to navigation Jump to search

Introduktion

Formål

Forløbet skal lære eleverne at:

  • modellere et problemområde for at forstå dette
  • modellere data for at designe et it-system
  • forstå databasers anvendelse og lave simple forespørgsler

Læreplansmål

Med henvisning til læreplanen skal eleven kunne:

  • behandle problemstillinger i samspil med andre fag
  • modellere data samt redegøre for udvalgte typer
  • redegøre for hvordan data kan organiseres i databaser og hvordan databaser anvendes i it-systemer

Indhold

Tøj
Virksomhed som sælger tøj

Emnet for forløbet er modellering af problem- og anvendelsesområdet i en virksomhed, som sælger tøj. Det er målrettet hhx, men det kræver ingen faglige forudsætninger inden for det merkantile område og kan uden problemer anvendes på de øvrige gymnasiale uddannelser.

Med henvisning til læreplanen er kernestoffet:

  • Modellering som middel til at forstå et problemområde
  • Abstraktion og strukturering
  • Begrebs- og datamodeller
  • Databasers anvendelse
  • Simple databaseforespørgsler

Forudsætninger

Ingen forudsætninger er krævet, og forløbet kan således optræde tidligt i undervisningen.

Aktiviteter og materialer

Lektionsplan

Lektioner á 60 minutters varighed:

  1. Introduktion til forløbet, fænomener og begreber
  2. Abstraktion og strukturering
  3. Klassediagram
  4. Begrebsmodeller som analysemodel til at forstå et problemområde
  5. Databaser og modellering af data som designmodel: Entiteter og attributter
  6. Modellering af data som designmodel: Relationer og kardinaliteter
  7. Databaseforespørgsler med filtrering
  8. Databaseforespørgsler i flere tabeller

Materiale og metode per lektion

Lektion 1: Introduktion til forløbet, fænomener og begreber

  • Materiale: Nowack, 2011, side 6-7
  • Begreber: Fænomen, begreb, eksemplifikation, klassifikation, ekstension, intention, designation
  • Kompetencer: Eksemplificere begreber, klassificere fænomener

Sekvensering:

  1. Læreroplæg: Definition og eksempler på henholdsvis fænomen og begreb (side 6, linje 6 fra bunden, til side 7, linje 11 fra bunden)
  2. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Find flere fænomener, som eksemplificerer begrebet bil.
    2. Giv et andet eksempel på et begreb, som klassificerer fænomenerne naboens gamle Lada og din nye Mercedes.
    3. Find for hvert af begreberne produkt, taske og kunde mindst tre fænomener, som eksemplificerer begrebet.
    4. Klassificér fænomenerne blomstret kjole og casual langærmet kjole samt fænomenerne Agnethe Lund og Malthe Andersen.
  3. Læreroplæg: Definition og eksempler på henholdsvis ekstension, intension og designation (side 7, linje 10 fra bunden, til side 8, linje 2)
  4. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Giv mindst tre eksempler på elementer i mængderne ekstension, intension og designation for begrebet kjole.
  5. Afrunding med opsummering af de lærte begreber

Lektion 2: Abstraktion og strukturering

Model
Begrebsdannelsesprocessen
  • Materiale: Nowack, 2011, side 8-9
  • Begreber: Begrebsdannelsesproces, abstraktion, generalisering, specialisering, aggregering, dekomponering
  • Kompetencer: Generalisere begreber, specialisere begreber, aggregere begreber, dekomponere begreber

Sekvensering:

  1. Læreroplæg: Definition og eksempler på generalisering, specialisering, aggregering og dekomponering (side 8, linje 3, til side 9, linje 5)
  2. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Find et andet begreb, som generaliserer begreberne hund, gris og ko.
    2. Find mindst tre begreber, som er specialiseringer af begrebet fest.
    3. Find et begreb, som aggregerer (samler) begreberne hund, gris og ko.
    4. Opdel (dekomponér) begrebet fest i del-begreber.
  3. Læreroplæg: Opsummering af eksemplifikation og klassifikation og præsentation af det gennemgående eksempel om tøjvirksomhed
  4. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Find mindst tre begreber, som er specialiseringer af begrebet produkt.
    2. Opdel begrebet ordre i del-begreber.
  5. Opsummering af begreber og introduktion af begreberne abstraktion og begrebsdannelsesproces (visning af figur)

Lektion 3: Klassediagram

Klassediagram
Klassediagram for løbe-musik-app'en (Nowack)
  • Materiale: Nowack, 2011, side 2-3
  • Begreber: Klassediagram, UML, attribut
  • Kompetencer: Læse, udvide og skabe klassediagrammer
  • Værktøjer: Google Drawings (Google Tegninger) - tilgås fra Google Drev

Sekvensering:

  1. Læreroplæg: Definition af klassediagram og eksemplet med løbe-musik-app'en (side 2, linje 13 fra bunden, til side 3, linje 16)
  2. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Brug begreberne fra de første to lektioner til at beskrive klassediagrammet for løbe-musik-app'en.
    2. Løbe-musik-app'en skal nu udvides med to typer af brugere. Betalende brugere skal kunne oprette playlister, og gratis-brugere skal blot kunne lytte til numre, som app'en finder ud fra løbetempoet. Udvid klassediagrammet, så det passer til de nye krav.
  3. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Lav et klassediagram for tøjvirksomheden introduceret i forrige lektion. En kunde med et navn og en e-mail skal kunne oprette ordrer hos virksomheden. Disse ordrer er sammensat af en række af virksomhedens produkter, og virksomheden har specialiseret sig i kjoler og tasker. Alle kjoler har en størrelse, og taskerne er one-size.
    2. Overvej hvordan klassediagrammet kan udvides yderligere til at modellere tøjvirksomheden.

Lektion 4: Begrebsmodeller som analysemodel til at forstå et problemområde

  • Materiale: Nowack, 2011, side 4-5
  • Begreber: Problemområde, anvendelsesområde, usikkerhed, kompleksitet, modeller i fag
  • Kompetencer: Redegøre for en model ud fra ovenstående begreber

Sekvensering:

  1. Læreroplæg: Definition og eksempel (kort over den fysiske verden, side 4) på problemområde samt formålet med modeller i forhold til usikkerhed og kompleksitet (side 4, linje 1, til side 5, linje 5 fra bunden)
  2. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Find mindst to andre eksempler på problemområder.
    2. Lav et simpelt klassediagram for de fundne problemområder med generalisering/specialisering og/eller aggregering/dekomponering.
    3. Find eksempler på fænomener i dine modeller.
  3. Læreroplæg: Eksempler på modeller i fag (side 4, linje 1, til side 4, linje 17 fra bunden)
  4. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Find en model (som ikke er nævnt i eksemplerne) for mindst to af de fag, som du har i øjeblikket.
    2. Lav et simpelt klassediagram for de fundne problemområder med generalisering/specialisering og/eller aggregering/dekomponering.
    3. Find eksempler på fænomener i dine modeller.

Lektion 5: Databaser og modellering af data som designmodel: Entiteter og attributter

Entitetsklasse og attributter
Entitetsklasse og attributter
  • Materiale: Informationsteknologi, Systime, 2017, afsnittene Databaser og Datamodel: E/R-modellen
  • Begreber: Databasesystem, datamængde, grænseflade, entitet, entitetsklasse, attribut
  • Kompetencer: Redegøre for organisering af data i databaser samt modellere data som entitetsklasser med attributter

Sekvensering:

  1. Læreroplæg: Introduktion af databaser til organisering af data, udtræk, typer af manipulation
  2. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Forklar med egne ord organisering af data i databaser.
    2. Find eksempler på it-systemer, som anvender databaser.
  3. Læreroplæg: Definition og eksempel (person og cykel) på entiteter, entitetsklasser og attributter med henvisning til fænomener, begreber og intention
  4. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. (samme øvelser som ovenfor)
    2. Find attributter for entitetsklasserne produkt, ordre og kunde.

Lektion 6: Modellering af data som designmodel: Relationer og kardinaliteter

Relationer og kardinaliteter
Relation mellem Produkt og Ordre
  • Materiale: Informationsteknologi, Systime, afsnittet Relationer og kardinaliteter
  • Begreber: Relation, kardinalitet
  • Kompetencer: Modellere relationer mellem entitetsklasser

Sekvensering:

  1. Læreroplæg: Definition og eksempel (person og cykel) på relationer og kardinaliteter
  2. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Udvid diagrammet med entitetsklassen Producent og en relation mellem denne og Person.
    2. Hvad vil være et passende navn for denne relation?
    3. Hvad er kardinaliteten?
  3. Øvelse i par/grupper og efterfølgende opsamling på klassen:
    1. Udvid diagrammet for tøjvirksomheden med en relation mellem produkt og ordre samt mellem ordre og kunde.
    2. Navngiv relationerne og angiv kardinalteten.

Lektion 7: Databaseforespørgsler med filtrering

Sekvensering:

  1. Læreroplæg: Definition af tabel, række, kolonne og forespørgsel
  2. Øvelse i par/grupper og derefter opfølgning:
    1. Kopier nedenstående blok A af SQL ind i vinduet, og kør koden.
    2. Ret i forespørgslen, så kun produkters navne hentes.
    3. Ret i forespørgslen, så kun produkter med pris over 200 hentes.

Blok A:

DROP TABLE IF EXISTS produkter;
CREATE TABLE produkter (`navn` varchar(30), `pris` int);
INSERT INTO produkter (`navn`, `pris`) VALUES
('Casual kjole med korte ærmer', 299),
('Blomstret sommerkjole', 399),
('Sort lædertaske', 199);
SELECT * FROM produkter;

Lektion 8: Databaseforespørgsler i flere tabeller

Blok B:

DROP TABLE IF EXISTS produkter;
CREATE TABLE produkter (`id` int, `navn` varchar(30), `pris` int);
DROP TABLE IF EXISTS kunder;
CREATE TABLE kunder (`kundenr` int, `navn` varchar(40));
DROP TABLE IF EXISTS ordrer;
CREATE TABLE ordrer (`dato` date, `kundenr` int, `ordrenr` int);
DROP TABLE IF EXISTS prod_ordre;
CREATE TABLE prod_ordre (`ordrenr` int, `prodid` int);
INSERT INTO produkter (`id`, `navn`, `pris`) VALUES
(1, 'Casual kjole med korte ærmer', 299),
(2, 'Blomstret sommerkjole', 399),
(3, 'Sort lædertaske', 199);
INSERT INTO kunder (`kundenr`, `navn`) VALUES
(1, 'Allan Andersen'),
(2, 'Benedicte Boesen');
INSERT INTO ordrer (`dato`, `kundenr`, `ordrenr`) VALUES
('2017-06-27', 2, 1),
('2017-06-28', 2, 2),
('2017-06-29', 1, 3);
INSERT INTO prod_ordre (`ordrenr`, `prodid`) VALUES
(1, 1), (1, 2), (2, 2), (3, 1), (3, 2), (3, 3);
SELECT * FROM produkter;
SELECT * FROM kunder;
SELECT * FROM ordrer;
SELECT navn, dato
FROM kunder INNER JOIN ordrer ON kunder.kundenr = ordreR.kundenr;
SELECT navn, pris
FROM prod_ordre INNER JOIN produkter ON prod_ordre.prodid = produkter.id
WHERE prod_ordre.ordrenr = 2;