Læringsmål for databaser
Uge 1: Normalisering og SQL
Efter den første uge er det meningen at du kan:
- installere Postgresql og PgAdmin i en Docker container og overordnet forklare hvordan applikationerne er i stand til at køre og arbejde sammen.
- designe en database med tabeller og relationer, samt datatyper på kolonnerne og “constraints”, der hjælper med at sikre dataintegriteten.
- anvende teori om normalformer i praksis og bringe en database på 3NF.
- anvende sql til at udføre CRUD (Create, Read, Update og Delete) operationer på databasen for at manipulere data.
- forklare forskellen på DDL: Data Definition Language og DML: Data Manipulation Language.
- udarbejde et ER-diagram og omsætte det til en fysisk datamodel og til et sql script
- udføre komplekse udtræk af data fra en sql-database med flere sammenkædede tabeller.
- anvende aggregate funktioner, som SUM, COUNT, GROUP BY til diverse sammentællinger
- kan oprette og anvende views
Uge 2: Java, JDBC og integrationstest
Efter den anden uge er det meningen at du kan:
-
oprette og benytte en Connection / forbindelse til Postgres via JDBC
- gøre rede for de mest anvendte strategier for synkronisering af data mellem Java og databasen
- Hvilke datatyper- og strukturer bruger vi i Java til at holde data?
- Hvad svarer de til i Postgres?
- Hvordan “mapper” vi disse data fra Java til Postgres og den anden vej?
- Hvordan sørger vi for at data i Java og Postgres er de samme?
- implementerere CRUD operationer på en database via JDBC via en datamapper.
- “C” = “Create” = insert statementments i SQL
- “R” = “Read” = select statements i SQL
- “U” = “Update” = update statements i SQL
- “D” = “Delete” = delte statements i SQL
- håndtere besværlige datatyper i Java og Postgres (fx dato og tid)
- Opret attributter i Java, der indeholder en dato, et tidspunkt (klokkeslet) og en der indeholder begge. F.eks. som LocalDate, LocalTime og LocalDateTime.
- Vis hvordan man gemmer attributterne i en tabel i Postgres
- Vis hvordan man henter de tilsvarende felter fra en række i Postgres og gemmer dem i Java
- håndtere autogenerede identiteter ved inserts
- Forklar hvorfor vi nogle gange kan have behov for at få et
id
tilbage fra en netop oprettet række i Postgres. Altså når id’et er genereret af Postgres. - Hvordan gør vi i Java? Hint: brug af Statement.RETURN_GENERATED_KEYS og getGeneratedKeys().
- Forklar hvorfor vi nogle gange kan have behov for at få et
- indsætte data i parent og child tables ved brug af fremmednøgler
- Det betyder, at vi f.eks. i
sportsclub
databasen opretter et nyt medlem, og i samme ombæring tilmelder medlemmet nogle hold ved at indsætte nogle rækker iregistration
tabellen.
- Det betyder, at vi f.eks. i
- opsætte og gennemføre integrationstest af databaseapplikationer