Modellering og data
Revision as of 17:42, 27 June 2017 by Jesper Buch Ritz (talk | contribs) (→Lektion 8: Databaseforespørgsler i flere tabeller)
Contents
- 1 Introduktion
- 2 Aktiviteter og materialer
- 2.1 Lektionsplan
- 2.2 Materiale og metode per lektion
- 2.2.1 Lektion 1: Introduktion til forløbet, fænomener og begreber
- 2.2.2 Lektion 2: Abstraktion og strukturering
- 2.2.3 Lektion 3: Klassediagram
- 2.2.4 Lektion 4: Begrebsmodeller som analysemodel til at forstå et problemområde
- 2.2.5 Lektion 5: Databaser og modellering af data som designmodel: Entiteter og attributter
- 2.2.6 Lektion 6: Modellering af data som designmodel: Relationer og kardinaliteter
- 2.2.7 Lektion 7: Databaseforespørgsler med filtrering
- 2.2.8 Lektion 8: Databaseforespørgsler i flere tabeller
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
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:
- Introduktion til forløbet, fænomener og begreber
- Abstraktion og strukturering
- Klassediagram
- Begrebsmodeller som analysemodel til at forstå et problemområde
- Databaser og modellering af data som designmodel: Entiteter og attributter
- Modellering af data som designmodel: Relationer og kardinaliteter
- Databaseforespørgsler med filtrering
- 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:
- 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)
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Find flere fænomener, som eksemplificerer begrebet bil.
- Giv et andet eksempel på et begreb, som klassificerer fænomenerne naboens gamle Lada og din nye Mercedes.
- Find for hvert af begreberne produkt, taske og kunde mindst tre fænomener, som eksemplificerer begrebet.
- Klassificér fænomenerne blomstret kjole og casual langærmet kjole samt fænomenerne Agnethe Lund og Malthe Andersen.
- Læreroplæg: Definition og eksempler på henholdsvis ekstension, intension og designation (side 7, linje 10 fra bunden, til side 8, linje 2)
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Giv mindst tre eksempler på elementer i mængderne ekstension, intension og designation for begrebet kjole.
- Afrunding med opsummering af de lærte begreber
Lektion 2: Abstraktion og strukturering
- Materiale: Nowack, 2011, side 8-9
- Begreber: Begrebsdannelsesproces, abstraktion, generalisering, specialisering, aggregering, dekomponering
- Kompetencer: Generalisere begreber, specialisere begreber, aggregere begreber, dekomponere begreber
Sekvensering:
- Læreroplæg: Definition og eksempler på generalisering, specialisering, aggregering og dekomponering (side 8, linje 3, til side 9, linje 5)
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Find et andet begreb, som generaliserer begreberne hund, gris og ko.
- Find mindst tre begreber, som er specialiseringer af begrebet fest.
- Find et begreb, som aggregerer (samler) begreberne hund, gris og ko.
- Opdel (dekomponér) begrebet fest i del-begreber.
- Læreroplæg: Opsummering af eksemplifikation og klassifikation og præsentation af det gennemgående eksempel om tøjvirksomhed
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Find mindst tre begreber, som er specialiseringer af begrebet produkt.
- Opdel begrebet ordre i del-begreber.
- Opsummering af begreber og introduktion af begreberne abstraktion og begrebsdannelsesproces (visning af figur)
Lektion 3: Klassediagram
- 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:
- 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)
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Brug begreberne fra de første to lektioner til at beskrive klassediagrammet for løbe-musik-app'en.
- 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.
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- 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.
- 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:
- 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)
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Find mindst to andre eksempler på problemområder.
- Lav et simpelt klassediagram for de fundne problemområder med generalisering/specialisering og/eller aggregering/dekomponering.
- Find eksempler på fænomener i dine modeller.
- Læreroplæg: Eksempler på modeller i fag (side 4, linje 1, til side 4, linje 17 fra bunden)
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Find en model (som ikke er nævnt i eksemplerne) for mindst to af de fag, som du har i øjeblikket.
- Lav et simpelt klassediagram for de fundne problemområder med generalisering/specialisering og/eller aggregering/dekomponering.
- Find eksempler på fænomener i dine modeller.
Lektion 5: Databaser og modellering af data som designmodel: Entiteter 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:
- Læreroplæg: Introduktion af databaser til organisering af data, udtræk, typer af manipulation
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Forklar med egne ord organisering af data i databaser.
- Find eksempler på it-systemer, som anvender databaser.
- Læreroplæg: Definition og eksempel (person og cykel) på entiteter, entitetsklasser og attributter med henvisning til fænomener, begreber og intention
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- (samme øvelser som ovenfor)
- Find attributter for entitetsklasserne produkt, ordre og kunde.
Lektion 6: Modellering af data som designmodel: Relationer og kardinaliteter
- Materiale: Informationsteknologi, Systime, afsnittet Relationer og kardinaliteter
- Begreber: Relation, kardinalitet
- Kompetencer: Modellere relationer mellem entitetsklasser
Sekvensering:
- Læreroplæg: Definition og eksempel (person og cykel) på relationer og kardinaliteter
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Udvid diagrammet med entitetsklassen Producent og en relation mellem denne og Person.
- Hvad vil være et passende navn for denne relation?
- Hvad er kardinaliteten?
- Øvelse i par/grupper og efterfølgende opsamling på klassen:
- Udvid diagrammet for tøjvirksomheden med en relation mellem produkt og ordre samt mellem ordre og kunde.
- Navngiv relationerne og angiv kardinalteten.
Lektion 7: Databaseforespørgsler med filtrering
- Materiale: Introduktion til SQL (iftek)
- Begreber: Tabel, række, kolonne, forespørgsel
- Kompetencer: Redegøre for udvalgte typer af data, lave databaseforespørgsler med filtrering
- Værktøjer: http://kripken.github.io/sql.js/GUI/
Sekvensering:
- Læreroplæg: Definition af tabel, række, kolonne og forespørgsel
- Øvelse i par/grupper og derefter opfølgning:
- Kopier nedenstående blok A af SQL ind i vinduet, og kør koden.
- Ret i forespørgslen, så kun produkters navne hentes.
- 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
- Materiale: Introduktion til SQL (iftek)
- Begreber: Join
- Kompetencer: Lave 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;