- Richard Feynman -
Utveckling mot databas - ITHS - 2018
Contents
- 1 Kurslitteratur
- 2 Examination
- 3 Om studietakten och studieteknik
- 4 Grovplanering 2018
- 4.1 Onsdag den 31/10 (eftermiddag)
- 4.2 Fredag den 2/11 (heldag)
- 4.3 Onsdag den 7/11 (Eftermiddag)
- 4.4 Fredag den 9/11 (heldag)
- 4.5 Onsdag den 14/11 (eftermiddag)
- 4.6 Fredag den 16/11 (heldag)
- 4.7 Onsdag den 21/11 (Eftermiddag)
- 4.8 Fredag den 23/11 (heldag)
- 4.9 Onsdag den 28/11 (eftermiddag)
- 4.10 Fredag den 30/11 (heldag) OBS: Deadline i kväll för laborationen
- 4.11 Onsdag den 5/12 (eftermiddag)
- 4.12 Fredag 7/12 (heldag)
- 4.13 Onsdag den 12/12 (eftermiddag)
- 4.14 Fredag 14/12 (förmiddag)
- 4.15 Onsdag 19/12 (eftermiddag)
- 4.16 Fredag den 21/12 OBS! Ikväll är det deadline för inlämning 2
- 4.17 Januari - februari 2019 - ej färdigplanerat - kan komma att ändras!
- 4.18 Onsdag 16/1 (heldag)
- 4.19 Fredag 18/1 (heldag)
- 4.20 Onsdag 23/1 (heldag)
- 4.21 Fredag 25/1 (heldag)=
- 4.22 Onsdag 30/1 (heldag)
- 4.23 Fredag 1/2 (heldag)
- 4.24 Lördag 9/2 kl 23:59 DEADLINE Laboration 3
Kurslitteratur
Huvudbok - Introduction to databases
Den bok vi kommer syssla mest med är "wiki-boken" Introduction to Databases där vi lär oss att använda SQLite3 som databashanterarare och grunderna i språket SQL. Emellertid är alla övningar, exempel och inlämningsuppgifter skrivna utifrån att vi använder bash (i t ex Cygwin eller terminalen i Mac OS), så det finns inslag i schemat som länkar till andra böcker, så som Bash introduction.
I kursens sista del kommer vi även att titta på hur man får en Java-applikation att prata med en databas via JDBC-APIet, så där kommer också finnas inslag som länkar till andra böcker för detta.
Här finns ett kompendium om att arbeta i terminalen med skalet Bash med mera: Datorkunskap för IT-studenter.pdf . Det kommer att gå att köpa men studenter på ITHS Utveckling mot databas 2018 kan få PDF-versionen (betaversion) kostnadsfritt att använda som bredvidläsning. Detta är en bonus för studenter 2018 med Nahid som lärare.
Examination
Inlämningsuppgifter
Det ingår tre obligatoriska inlämningsuppgifter i kursen. På dessa ges betyget IG , G eller VG. För att få G på kursen måste man ha G på alla tre inlämningsuppgifter.
För att få VG på kursen måste man ha VG på 2 st inlämningsuppgifter och minst G på ytterligare 1 st inlämningsuppgift.
Inlämningsuppgifterna innehåller ibland inslag som inte gåtts igenom på föreläsningarna. I förekommande fall så ges information i texten eller/och via externa länkar. Inlämningsuppgifterna är på engelska men finns att få på svenska vid förfrågan.
Uppgifterna rättar vi med skript, så det är väldigt viktigt att ni följer instruktionerna till punkt och pricka. I synnerhet är det viktigt att ni följer instruktionerna om vad filer som skall lämnas in skall heta. Skapa filer med exakt de namn som anges i inlämningsuppgifterna. Tänk på att bash gör skillnad på stora och små bokstäver, så filnamnen måste matcha instruktionerna exakt. Ni förväntas arbeta med inlämningsuppgifterna även mellan lektionstillfällena och vi rekommenderar att ni formar studiegrupper som arbetar tillsammans och samlar ihop eventuella frågor till samlingar i klassrummet då vi kan gå igenom frågorna gemensamt.
Om studietakten och studieteknik
Lektioner ges med en heldag (fredagar) och en halvdag (onsdagar). Utöver detta förväntas ni lägga minst lika mycket tid på studier och arbete med inlämningsuppgifter. Vi rekommenderar att ni ordnar studiegrupper där ni träffas i skolan och arbetar med övningar och inlämningsuppgifter tillsammans och samlar på er frågor kring moment som ni inte förstår eller klarar av. Det kommer finnas gott om tid för laborationer och övningsarbete på lektionstid men för att vara så effektiva som möjligt är det bra om ni samlar på er frågor som vi kan gå igenom gemensamt under laborationstillfällena. Det är således ingen bra idé att arbeta hemifrån under schemalagda arbetspass, eftersom man får handledning och genomgång av svårigheterna under laborationspassen.
Se schema för upplägget i stora drag.
Ni förväntas förbereda er inför varje schemalagd föreläsning genom att se filmerna och läsa länkar som ges för vidaresläsning. Det framgår i schemat vilka kapitel/sidor mm som gås igenom respektive teoripass.
De pass i schemat som benämns "Övningar" är lärarledda laborationspass då vi dels handleder och hjälper till men också då vi går igenom frågor som ni samlar på er under självstudier utanför schemat. Återigen, detta gör att det INTE är rekommenderat att utebli från övningspassen, eftersom det där tas upp spontan genomgång av koncept som ni upplever som svåra. Uteblir man från övningspassen så kan man räkna med att missa teorigenomgångar som drivs av önskemål från er.
Kort sagt, kursens upplägg bygger på att ni närvarar på samtliga schemalagda pass samt lägger ned lika mycket tid på studier och arbete utanför schemalagda pass. I gengäld så har ni möjlighet att förbereda er och repetera med hjälp av filmerna. Ni har också möjlighet att styra innehållet i eventuella extragenomgångar på övningspassen.
Grovplanering 2018
Onsdag den 31/10 (eftermiddag)
Följ instruktionerna här: Introduction_to_Databases#Your_environment (särskilt instruktionerna om "additional software")
- Verifiera att ni kan köra följande i terminalen:
- wget
- curl
- unzip
- Om du inte kan köra wget, curl, unzip, läs sidan igen och följ instruktionerna här Using_bash#Install_additional_software för att installera de programmen (de behövs för skriptet nedan)
- Kör skriptet som länkas på sidan ovan (här: Introduction_to_Databases#Download_script_and_execute)
Sedan ska vi introducera kommandotolken Bash: Bash:Bash-introduction och göra övningarna på den sidan.
Fredag den 2/11 (heldag)
- Introduktion till databaser. Wiki-sida med filmer och exempel och slides: Introduction_to_Databases
- Övningar till introduktion till databaser: Exercise Introduction to databases
- Bash Files and Folders. Wiki-sida med filmer, exempel och övningar: Bash_-_Files_and_Folders (inklusive övnignar)
- Bash Structure. Wiki-sida med filmer, exempel och övningar: Bash-structure (inklusive övnignar)
Onsdag den 7/11 (Eftermiddag)
- Föreläsning SQL SELECT (retreiving data). Kapitel i databasboken: Retrieving data - SQL SELECT
- Extra: WHERE - villkor för SELECT: Databases - WHERE clause (Full playlist) | Databases - where 1/2 | 2/2 | SQL WHERE clause (PDF)
- Övningar SELECT (endast teori ej praktik) Exercise SQL SELECT
- Gå igenom SQLite-manualens syntaxdiagram t ex SELECT core
- Bash - Text files. Wiki-sida med filmer, exempel och övningar: Bash-Text_files (inklusive övningar)
Fredag den 9/11 (heldag)
- Databaser - Kom igång med SQLite. Wiki-sida med filmer och exempel: Getting started with SQLite
- Bash - Standard streams. Wiki-sida med filmer, exempel och övningar: Bash standard streams (inklusive övningar)
- Bash - Redirection. Wiki-sida med filmer, exempel och övningar: Bash - redirection (inklusive övnignar)
- Bash - Output och return . Wiki-sida med filmer och exempel: Output_and_return (ej övnignar)
- Övningar - Bash - Output och return: Exercises_-_Output_and_return (övnignar)
Onsdag den 14/11 (eftermiddag)
- Föreläsning SQL UPDATE - Changing data. Wiki-sida: Changing rows of data - SQL UPDATE
- Övnignar UPDATE: Exercise - Changing rows of data - SQL UPDATE
- Föreläsning SQL DELETE - Deleting data. Wiki-sida: Deleting rows of data -SQL DELETE
- Övningar DELETE: Exercise - Deleting rows of data -SQL DELETE
Fredag den 16/11 (heldag)
Sista föreläsningen som behövs för att klara labb nummer 1:
- Föreläsning SQL INSERT - Adding new data. Wiki-sida: Adding rows with new data - SQL INSERT
- Övningar INSERT Exercise - Adding rows with new data - SQL INSERT
Presentation av Assignment 1. Deadline 30/11 klockan 23:59: Assignment 1 - The basics
Betygskrav:
- G Gör allt exakt enligt instruktionerna på wiki-sidan.
- VG Samma som för G samt skriv en reflektion med egna ord om vad målet med uppgiften var, hur du löste uppgiften och vad du lärt dig av uppgiften. Beskriv även varje SQL-sats du använt och hur de fungerar i varje del av satsen. Skicka in reflektionen i PDF-format.
Onsdag den 21/11 (Eftermiddag)
Handledning av laboration nummer 1.
Check your progress
Avklarade avsnitt i kursen efter denna dag och ämnen som ingår i inlämning 1:
- SELECT
- UPDATE
- DELETE
- INSERT
- Create table from file using redirect
- Föreläsning SQL JOIN. Koppla ihop data från tabeller som hör ihop. Wiki-sida: Combining rows of data from related tables - SQL JOIN
- Övningar JOIN: JOIN
- Föreläsning - NULL - Avsaknaden av ett värde. Wiki-sida (enbart teori och film): NULL-representing_lack_of_value
Fredag den 23/11 (heldag)
- Föreläsning - Constraints (begränsnignsvillkor). Hindra skräp från att hamna i databasen. Wiki-sida: Adding constraints to prevent garbage data
- Övningar Constraints: Exercise - Adding constraints to prevent garbage data
- ER diagram och övningar
Resten av dagen är det handledning för laboration nummer 1.
Onsdag den 28/11 (eftermiddag)
- Föreläsning - Bryta upp en stor tabell i flera mindre - Decomposing a table. Ingår i wiki-sidan om JOIN (pdf och filmer finns)
- PDF: Media:Database_-_Decomposing_a_table.pdf
- Filmer: se wiki-sidan om JOIN
- Extra lecture on JOINs (pdf)
- Föreläsning om "scraping data from the web". Wiki-sida: Scraping data from the web
- Here's the file kommuner-raw which we used to extract the municipality URLs.
- Övningar - Scraping data from tv.nu Exercise - Scraping data from the web
Handledning av laborationen. Och övningar ni ligger efter med.
Fredag den 30/11 (heldag) OBS: Deadline i kväll för laborationen
- Föreläsning om "scraping data from the web". Wiki-sida: Scraping data from the web
- Here's the file kommuner-raw which we used to extract the municipality URLs.
- Övningar - Scraping data from tv.nu Exercise - Scraping data from the web
- Föreläsning JDBC - intro - Koppla upp mod db från Java. Wiki-sida: JDBC introduktion
- Föreläsning: JDBC-INSERT-UPDATE-SQLInjection
- Övningar: Övning - JDBC-INSERT-UPDATE-SQLInjection
Onsdag den 5/12 (eftermiddag)
Presentaion av Assignment 2. Deadline 21/12 klockan 23:59: Assignment 2 - JOINs and Constraints
Betygskrav:
- G Gör allt exakt enligt instruktionerna på wiki-sidan.
- VG Samma som för G samt skriv en reflektion med egna ord om vad målet med uppgiften var, hur du löste uppgiften och vad du lärt dig av uppgiften. Beskriv även varje SQL-sats du använt och hur de fungerar i varje del av satsen. Skicka in reflektionen i PDF-format.
- Föreläsning: PreparedStatement
- Övnignar: Övning - PreparedStatement
Resten av dagen är det handledning av Laboration 2.
Fredag 7/12 (heldag)
- Föreläsning: Commit_-_Rollback
- Övningar: Övning - Commit-Rollback
- Handledning övningar och laboration
- Workshop: inlämning 3 OBS! Detta är en workshop och inte en inlämningsuppgift!
- Handledning övningar och laboration
Onsdag den 12/12 (eftermiddag)
- Föreläsning: SQL - simulera enum i SQLite. Video och PDF finns på wiki-sidan om Constraints:
- Här är PDFen: Media:DB_SQLite-Simulating_enums.pdf
- Övning: Skapa en tabell med WEEKDAYS som en enum och en tabell som använder WEEKDAYS
- Föreläsning: Introduktion till skiktad arkitektur. Using database
- Slides: Introduction_to_Layers.pdf (29 sidor) - Wiki-sida: Introduction_to_layered_architectures
- kodexempel: layers/tiers (github)
- Övningar: Exercises_-_Introduction_to_layered_architectures
Resten av dagen är handledning för laboration nummer 2.
Fredag 14/12 (förmiddag)
- Övningar: Exercises_-_Introduction_to_layered_architectures
- Handledning av laborationen. Och övningar ni ligger efter med.
Onsdag 19/12 (eftermiddag)
- Workshop JDBC: Servlet som serverar JSON från Systembolaget: Media:Övning i JDBC och Servlet - Systembolaget.pdf
Fredag den 21/12 OBS! Ikväll är det deadline för inlämning 2
- Introduktion MariaDB. Endast PDF: Media:Getting_started_with_MariaDB.pdf
- MariaDB - SQL SHOW. Wiki-sida: MariaDB_show_syntax (Endast läsning och länkar)
- MariaDB - SQL ALTER TABLE. Wiki-sida MariaDB_ALTER_TABLE_syntax (Endast läsning och länkar)
- MariaDB - SQL constraints, regexp och triggers. Wiki-sida: MariaDB_constraints_triggers (Endast läsning och länkar)
- MariaDB - SQL enum types. Wiki-sida: MariaDB_Enum (Endast läsning och länkar) - I MariaDB finns alltså riktiga enum
Om vi hinner:
- Övning: Installera MariaDB och skapa användare och en tabell, gör en select
- Föreläsning: Kort introduktion till PostgreSQL
- Här är PDF: Media:Getting_started_with_postgresql.pdf
- Övning: Installera PostgreSQL och skapa användare och en tabell, gör en select
Idag tar vi lite julavslutning och kör handledning.
- Handledning laboration nummer 2
- Om vi hinner, handledning i att installera MariaDB och PostgreSQL för dem som vill
Januari - februari 2019 - ej färdigplanerat - kan komma att ändras!
I korthet så kommer vi gå igenom:
- Repetition av SQL från i höstas:
- SELECT
- UPDATE
- DELETE
- INSERT
- JOIN
- Constraints
- CREATE (table)
- Repitition av Bash - eller om ni har frågor/glömt
- Ni önskar vad i Bash
- JDBC - koppla upp sig och använda databas från Java
- MongoDB - en "no sql-databas"
- Inlämningsuppgift nummer 3
Onsdag 16/1 (heldag)
- Repetition
- T ex check your progress-frågorna
Fredag 18/1 (heldag)
- Presentation av MongoDB-laborationen (Laboration nummer 3)
- Introduktion till MongoDB
- Handledning
Onsdag 23/1 (heldag)
- Fortsättning MongoDB
- Handledning
Fredag 25/1 (heldag)=
- Fortsättning MongoDB
- Handledning
Onsdag 30/1 (heldag)
- Fortsättning MongoDB
- Handledning
Fredag 1/2 (heldag)
- Fortsättning MongoDB
- Handledning
Lördag 9/2 kl 23:59 DEADLINE Laboration 3
- Lycka till!