Databaskunskap för mjukvarutestare

From Juneday education
Jump to: navigation, search

Contents

Kurslitteratur

Huvudbok - Introduction to databases

Den bok vi kommer syssla mest med är 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.

Examination

Tenta

Det kommer bli en skriftlig tenta i slutet av kursen. För att klara tentan måste ni ha varit med på alla föreläsningar (eller åtminstone ha sett filmerna) OCH ha gjort alla övningar. Tentafrågorna är baserade på kunskaper som kommer från övningarna som hör till varje föreläsning. Det räcker INTE att ha sett filmerna och gjort inlämningsuppgifterna för att klara tentan. Ni måste göra alla övningar och be om hjälp under övningspassen om ni kör fast. Detta är samma upplägg som i programmeringskursen! Övningarna är centrala för att ni ska kunna klara kursen.

På tentan ges betyget IG, G eller VG.

Inlämningsuppgifter

Det ingår tre obligatoriska inlämningsuppgifter i kursen. På dessa ges endast betyget IG eller G. För att få G på kursen måste man ha minst G på tentan och G på alla tre inlämningsuppgifter.

För att få VG på kursen måste man ha VG på tentan och G på alla tre inlämningsuppgifter.

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 (tisdagar) och en halvdag (fredagar) i veckan i åtta veckor. 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 2017

Tisdag den 10/1 (heldag)

Filmer att se (helst före denna dag!)

Pass kl 09-12

  • 09-10 Introduktion och presentation av kursen
  • 10-12 Installation av Cygwin och SQLite3 (gemensam aktivitet)

Pass kl 13-16

Fredag den 13/1 (förmiddag)

Filmer att se innan denna dag

Pass kl 09-12

  • 09.00 - 10.00 - Föreläsning SQL SELECT (retreiving data) Slide: "L02 Retrieving data"
  • 10.15 - 11.00 - Slide L02 forts.
  • 11.15 - 12.00 - Övningar SELECT (endast teori) Exercise SQL SELECT
  • Om tid finns över - börja med Assignment 01 - SELECT-delen
  • Gå igenom SQLite-manualens syntaxdiagram

Tisdag den 17/1 (heldag)

Filmer att se innan denna dag

Bash:

Databas:

Pass kl 09-12

Pass kl 13-16

Eftermiddagen vigs åt övnignar i bash och SQLite3

Fredag den 20/1 (förmiddag)

Filmer att se innan denna dag

Pass kl 09-12

Tisdag den 24/1 (heldag)

Filmer att se innan denna dag

  • SQL DELETE - Radera rader av data (Swe)
  • SQL DELETE - Radera rader av data livekodning (Swe)
  • Databaser 06 - SQL - INSERT - Lägga till rader med data (Swe)
  • Databaser 06 - SQL - INSERT - Lägga till rader med data livekodning (Swe)

PDF:er till filmerna ovan

Pass kl 09-12

09.00 - 10.00 Föreläsning "Deleting data" Föreläsnings-PDF

10.15 - 12.00 Övningar DELETE

Pass kl 13-16

13.00 - 14.00 Föreläsning "Adding new data" Föreläsnings-PDF

14.15 - 15.00 Övningar INSERT

15.15 Presentera Assignment 1 - The basics - Deadline 30/1. Eleverna uppmuntras sätta fart med den.

  • Handledning Assignment 1

Fredag den 27/1 (förmiddag)

Pass kl 09-12

Genomgång inför inlämning 1 och snabb repetition för dem som vill, arbete med inlämning 1 för övriga.

Avklarade kapitel och ämnen som ingår i inlämning 1:

  • SELECT
  • UPDATE
  • DELETE
  • INSERT
  • Create table from file using redirect

OBS! Deadline är på måndag, den 30/1 kl 23.55. Ni kommer behöva arbeta även under måndagen. Sätt igång med inlämning 1 så fort ni kan.

Måndag den 30/1 23.55

Deadline inlämning 1. Inga lektioner (det är ju måndag!).

Tisdag den 31/1 (heldag)

Filmer att se innan denna dag

Pass kl 09-12

09.00 - 10.00 Föreläsning om JOIN Related data in related tables (Eng)

10.15 - 12.00 Övningar JOIN

Pass kl 13-16

  • Fortsätt med Övningar JOIN

Fredag den 3/2 (förmiddag)

Filmer att se innan denna dag

Pass kl 09-12

Föreläsning Constraints

Tisdag den 7/2 (heldag)

Filmer att se före denna dag

Pass kl 09-12

Föreläsning Scraping data - an example with municipalities Föreläsnings-PDF

Pass kl 13-16

Övnignar Scraping data from the web

Kapitel i databasboken

Fredag den 10/2 (förmiddag)

Filmer att se innan denna dag

Pass kl 09-12

  • 09.00 - 10.00 - Föreläsning - introduktion till JDBC Föreläsnings-PDF
  • 10.15 - 11.00 - Övningar JDBC
  • 11.15 - 12.00 - Handledning Assignment 2

Kapitel i databasboken

Kom igång med JDBC - drivrutin mm Ni får halvfärdiga program att leka med och lära er av.

OBS! Deadline inlämning 2 är på måndag

Måndag 13/2 Deadline Assignment 2

Inga lektioner (det är ju måndag) men glöm inte bort att deadline för assignment 2 är idag kl 23.55!

Länk till inlämningsuppgiften: Assignment 2 - JOINs and Constraints

Tisdag den 14/2 (heldag)

Filmer att se innan denna dag

  • JDBC - INSERT, DELETE och UPDATE 1/3 (Swedish)
  • JDBC - INSERT, DELETE och UPDATE 2/3 (Swedish)
  • JDBC - INSERT, DELETE och UPDATE 3/3 (Swedish)

Pass kl 09-12

Pass kl 13-16

Kapitel i databasboken

Fredag den 17/2 (förmiddag)

Filmer att se före denna dag

Pass kl 09-12

Kapitel i databasboken

Tisdag den 21/2 (heldag)

Filmer att se innan denna dag

Ber om ursäkt, hade glömt länka dem - se dem när ni har tid!

Pass kl 09-12

Pass kl 13-16

Övningskapitel i databasboken: Övningar commit rollback

Om ni vill så börjar ni med inlämning 3 efter att ni är färdiga med övningarna på commit/rollback.

Fredag den 24/2 (förmiddag)

Pass kl 09-12

Genomgång inlämning 3

OBS! Deadline inlämning 3 är fredag 3/3!

Tisdag den 28/2 (heldag)

Pass kl 09-12

Repetition - Ni önskar innehåll! Annars blir det fritt arbete.

Pass kl 13-16

Repetition - Ni önskar innehåll! Annars blir det fritt arbete.

Fredag den 3/3 (förmiddag)

Pass kl 09-12

Genomgång tenta (kan eventuellt bli en video)

Områden som ingår i tentan:

  1. Grundläggande om Databaser och Databashanterare
  2. SQLite-databashanteraren
  3. SQL - SELECT, ORDER BY, WHERE, LIMIT
  4. UPDATE
  5. DELETE
  6. INSERT
  7. Normalisering, referenser mellan tabeller
  8. Constraints och modifiers
  9. JDBC översiktligt - men läs på övningar och presentationer samt länkar
  10. SQL-injections

Vi kommer inte tentera

  • Transaktioner (COMMIT/ROLLBACK)
  • bash-kommandon utom i relation till sqlite3 (ni måste t ex kunna starta sqlite3 från kommandoraden med och utan argument)

Det skadar inte om ni läser på bash ändå. Tidigare studenter uppgav att de hade nytta av bash redan i nästa kurs på ITHS. Tala gärna med dem för att få en uppfattning.

Datum to be decided (Obetalt)

  • Tentamen 09-12

Tentagenomgång av lösningsförslag

Kommer som filmer.

Datum to be decided(Obetalt)

Omtenta 09-12

Färdigt material

Här kan ni följa utvecklingen av vår produktion av kapitel i wikin och material (filmer etc)

Kapitel Antal sidor Artefakter
Database:Introduction to Databases X pages (Text TODO, Slides Done!, Swedish Videos done!)
Database:Exercise - Introduction to Databases 3 pages (5 Exercises Done!)
Database:Retrieving rows of data - SQL SELECT X pages (Text TODO, Slides Done!, Videos Done!)
Database:Exercise - Retrieving rows of data - SQL SELECT 3 pages (7 Exercises Done!)
Database:Getting started with SQLite X pages (Text TODO, Slides Done!, Swedish Videos Done!)
Database:Exercise - Getting started with SQLite 7 pages (10 Exercises Done!)
Database:Changing rows of data - SQL UPDATE X pages (Text TODO, Slides Done!, Swedish Videos Done!)
Database:Exercise - Changing rows of data - SQL UPDATE 4 pages (6 Exercises Done!)
Database:Deleting rows of data -SQL DELETE X pages (Text TODO, Slides Done!, Swedish Videos Done!)
Database:Exercise - Deleting rows of data -SQL DELETE 4 pages (5 Exercises Done!)
Database:Adding rows with new data - SQL INSERT X pages (Text TODO, Slides Done!, Swedish Videos Done!)
Database:Exercise - Adding rows with new data - SQL INSERT 7 pages (7 Exercises Done!)
Database:Assignment 1 - The basics 8 pages (Text Done! Files uploaded to Github.com Done!)
Database:Combining rows of data from related tables - SQL JOIN X pages (Text TODO, Slides Done!, Videos (1 Swedish) Done!)
Database:Exercise - Combining rows of data from related tables - SQL JOIN 11 pages (12 exercises Done!)
Database:Adding constraints to prevent garbage data X pages (Text TODO, Slides Done! (English), Videos (two Swedish) Done!)
Database:Exercise - Adding constraints to prevent garbage data 10 pages (6 exercises Done!)
Database:Scraping data from the web X pages (Text TODO, Slides (Eng)Done!, Videos TODO)
Database:Exercise - Scraping data from the web 12 pages (5 exercises Done!)
Database:Assignment 2 - JOINs and Constraints 9 pages (Text Done! Files uploaded to github)
JavaDB:Introduction to JDBC X pages (Text TODO, Slides Done!, Videos (3 Swedish) Done!)
JavaDB:Exercise - Introduction to JDBC 8 pages (8 Exercises Done!)
JDBC forts och SQL injections X pages (Text TODO, Slides Done!, Videos (3 Swedish) Done!)
Exercise - JDBC forts och SQL injections 11 pages (5 Exercises Done!)
JDBC - Prepared statement X pages (Text TODO, Slides Done!, Videos (1 Swedish) DONE!)
Exercise - JDBC - Prepared statement 5 pages (8 Exercises)
COMMIT och ROLLBACK X pages (Text TODO, Slides Done!, Videos (1 Swedish) Done!)
Övning - COMMIT och ROLLBACK 9 pages (5 Exercises Done!)
Assignment 3 X pages (Text, Slides, Videos, Exercises)