De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Computervaardigheden Hoofdstuk 5 — Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.)

Verwante presentaties


Presentatie over: "Computervaardigheden Hoofdstuk 5 — Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.)"— Transcript van de presentatie:

1 Computervaardigheden Hoofdstuk 5 — Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.)

2 2 Inhoud •Terminologie •Data importeren •Basis queries •Allerhande Joins “Doe dit.” “Aandachtspunt! ” “Wat gebeurt hier ?” “Controleer wat je ziet.”

3 3 Anatomie van een databank •Een databank is een verzameling van tabellen. •Een tabel is een lijst van records. •Een record is een lijst van velden. •Alle records binnen éénzelfde tabel hebben dezelfde structuur. -Ariteit (aantal velden). -Type (soort veld; hoofdzakelijk getal of tekst)

4 4 Elk Access project is één databank Hier vind je een overzicht van de tabellen in deze databank. Dit is een voorbeeld van zo’n tabel. Elke tabel heeft een unieke naam. Deze tabel heet “Data”. Hier zie je het aantal records in een tabel.

5 5 Een nieuwe databank starten 1. Open Microsoft Access 2. Menu: File/New Kies voor “blank database” 4. Kies een naam voor je database 5. En sla op.

6 6 Data importeren 1. File > Get External Data > Import... Let op: kies niet voor “Link Tables...” ! Dit laat je wel toe de data te gebruiken, maar importeert deze niet in Access. Als je bewaart wordt de data niet mee bewaard, en als je je Access project nadien doorstuurt (of indient op het examen) werkt je verdere code niet meer. 2. Kies je databestand. Let op: kies het juiste type bij “Files of type”!

7 7 Data importeren 3. Selecteer “Delimited”; Next 4. Kies de juiste delimiter. Zorg dat “First Row contains Field Names” geselecteerd is. Next. Gebruik de preview om het effect van je keuzes te bekijken en te verifi ë ren.

8 8 Data importeren 5. Kies voor “In a New Table”; Next 6. Next.

9 9 Data importeren 7. Kies voor “No primary key”; Next 8. Kies een naam voor je tabel; Finish.

10 10 Queries •Een query is een bevraging van de databank. •Een query gebeurt op basis van de records in één of meer tabellen. •Het resultaat van een query is zelf ook een tabel. -Deze tabel blijft gebonden aan de query, en verandert als de records in de andere tabellen veranderen.

11 11 Nieuwe Query starten 1. Klik op “Queries”, en dubbelklik op “Create Query in Design View” 2. Voor elke tabel die je wil bevragen, selecteer deze en klik op “Add”. Sluit af met “Close”. Let op: kies uitsluiten de tabellen die je echt nodig hebt ! Overbodige tabellen zullen het resultaat van je query be ï nvloeden.

12 12 De Query maken en evalueren 3. Dubbelklik op “*” in tabel “Data”. 4. Klik op het “View” icoon linksboven. Kies voor “Datasheet View”. De design view wordt dan vervangen door een tabel met de resultaten van de query. Deze stap bouwt de query op. De query hierboven selecteert alle records. Andere soorten queries volgen later in de slides.

13 13 SQL: de code achter je Query 5. Klik linksboven op het “View” icoon. Kies deze keer voor “SQL View”. De datasheet view wordt vervangen door een tekstveld met daarin de code van je Query. Deze code is SQL code. SQL is een standaard query taal (Standard Query Language => SQL) die door zowat alle databanken gesproken wordt. Wat je in de design view doet, is eigenlijk het opstellen van zo’n SQL query die dan door Access wordt verwerkt. Let op: Deze cursus verwacht niet dat je zelf zo’n code kan schrijven. Je moet echter wel weten hoe je ze terug kan vinden, aangezien deze code vaak als antwoord dient op examenvragen.

14 14 Sorteren op velden 1. Keer terug naar de “Design View”. 2. Verwijder de kolom met de “*” uit je query. (Klik op het kleine balkje, dan delete of rechtsklik en “Cut”.) 3. Voeg velden “day” en “sunshine” toe. 4. Kies bij de kolom voor “day” bij “Sort” voor “Ascending”. 5. Ga naar de “Datasheet View”. Je krijgt als resultaat een tabel met volgende eigenschappen: • elke record heeft slechts twee velden, en • alle records zijn gesorteerd op datum.

15 15 Formules 1. Keer terug naar de “Design View”. 2. Selecteer “day” in de cel “Field:” van de eerste kolom. 3. Vervang dit met: month: Month(day) rain: rainAM + rainPM 4. In de “Field:” cel van kolom drie, schrijf: 5. Ga naar de “Datasheet View”. De tabel bevat nu records met drie velden: • het maandnummer bevat, • de hoeveelheid zon, en • de som is van de regen in voor- en namiddag van de oorspronkelijke record.

16 16 Algemene vorm van formules Elke formule is van de vorm: field_name : expr function_name ( params ) Hierbij is field_name een naam voor het nieuwe veld. Dit is vrij te kiezen, maar moet uniek zijn. Na de dubbelpunt volgt een expressie die de waarde voor het nieuwe veld berekent. Dit is een combinatie van rekenkundige bewerkingen (+, -, *, /) en/of aanroepen van functies. Die laatste zien er steeds als volgt uit: Hierbij is function_name natuurlijk de naam van de functie die je wil aanroepen. In ons voorbeeld was dat “Month”. De parameters geef je op als een lijst, eventueel gescheiden met komma’s (dus geen punt-komma’s als in Excel).

17 17 Queries met voorwaarden Probeer elk van deze queries en vergelijk: De linker-query selecteert alle records waarvan zowel sunshine als rain groter zijn dan 5. Er zijn 13 dergelijke records. De rechter query selecteert alle records waarvan ofwel sunshine ofwel rain groter is dan 5. Er zijn 204 dergelijke records.

18 18 Queries met voorwaarden Elke voorwaarde die je plaatst in één van de cellen van de “Criteria:” rijen test de waarde van het veld in de overeenkomstige kolom. Als twee voorwaarden in eenzelfde rij staan (zoals hierboven), dan moet aan beide voorwaarden voldaan zijn vooraleer een record aanvaard wordt. Als twee voorwaarden in verschillende rijen staan (zoals hieronder), dan is het voldoende dat de record aan de voorwaarden van één rij voldoet om geselecteerd te worden. Zelfde rij: logische “AND” Verschillende rijen: logische “OR”

19 19 Queries met voorwaarden Je kan ook meerdere voorwaarden in één cel plaatsen: Bovenstaande query kijkt of sunshine kleiner is dan 1 of (omwille van de OR) groter dan 5, en (omdat de voorwaardan in dezelfde rij staan) of rain groter is dan 1 en (omwille van de AND) kleiner dan 5. M.a.w.: (sun 5) And (rain > 1 And rain < 5)

20 20 Queries over groepen van records 1. Start een nieuwe query op basis van de tabel “Data”. 2. Klik op het “Totals” icoon in de toolbar. Verifieer dat je design view nu ook een “Total:” rij bevat.

21 21 Queries over groepen van records 3. Voeg drie keer veld “sunshine” aan de query toe. 4. Selecteer bij “Total:” voor de eerste sunshine “Min”, voor de tweede sunshine “Max” en voor de derde sunshine “Avg”. 5. Geef elke sunshine een naam (“min”, “max”, “average”). 7. Bekijk het resultaat in de datasheet view.

22 22 Totals “Totals” laat toe om karakteristieken te berekenen op basis van een groep records in plaats van individuele records. Mogelijkheden: min, max, avg, stdev, count, sum,... Het resultaat is één record per groep, met daarin de berekende karakteristieken als velden. Zo berekende deze query de minimum, maximum en gemiddelde hoeveelheid zonneschijn over het gehele jaar.

23 23 Totals + Group By Pas vorige query als volgt aan: 1. Voeg een nieuwe kolom toe met “day”. 2. Pas de waarde “day” aan met de expressie voor het berekenen van de maand. 3. Kies bij “Total:” voor “Group By”. Bekijk het resultaat in de datasheet view. De tabel bevat nu twaalf records, één voor elke maand. Dit is omdat we alle records gegroepeerd hebben op basis van de waarde voor maand. Zo zijn er natuurlijk juist twaalf.

24 24 Elke query levert een tabel op! Je kan dus queries doen op basis van de resultaten van eerdere queries.

25 25 Queries op resultaten van queries Bewaar de vorige query als “SunshinePerMonth”. Start dan een nieuwe query op basis van SunshinePerMonth (zie figuur linksonder). Voeg dan month en average toe, en stel dat average groter moet zijn dan 5 (zie figuur rechtsboven). Bekijk het resultaat in de datasheet view (figuur rechts). Sla de query op als “MonthsWithSunshineOver5” (wordt later in de slides opnieuw gebruikt).

26 26 Voorbereiding: tabel Months Importeer de data uit months.txt in een nieuwe tabel genaamd “Months”.

27 27 Queries over meerdere tabellen Start een nieuwe query op basis van de “Months” tabel en op basis van de “SunshinePerMonth” query. Voeg daarna elk veld uit elke tabel toe aan de query. Bekijk het resultaat in de datasheet view.

28 28 Queries over meerdere tabellen MonthsSunshinePerMonth X = 12 x 12

29 29 Inner Join Het resultaat van vorige query is een tabel waarbij elke record uit de eerste tabel (Months) wordt gecombineerd met elke record uit de tweede tabel (SunshinePerMonth). Wat we eigenlijk willen is dat records uit beide tabellen pas worden gecombineerd als hun waarde voor maand overeenkomt. Dit is wat we nu gaan doen: Sleep “Number” uit “Months” op “month” uit “SunshinePerMonth”. Access toont hierna een verbinding tussen deze twee velden. Dit is een “Inner Join”. Bekijk het resultaat in de datasheet view.

30 30 Inner Join MonthsSunshinePerMonth Merk op dat door het leggen van een inner join nu alleen records worden samengesteld waarvoor de waarden die meespelen in de inner join dezelfde zijn.

31 31 Primary en Foreign Keys Gegeven dit: Je kan nu zeggen dat “Number” en “month” keys zijn. Van een primary key wordt verwacht dat elke record binnen een tabel een unieke waarde voor deze key heeft. Dit is het geval voor “Number” in “Months”. Een foreign key is een veld waarvan de waarde overeen komt met de primary key van records in een bepaalde tabel. Dit is het geval voor “month” in “SunshinePerMonth”. Keys worden dus gebruikt om records in verschillende tabellen aan elkaar te linken. Dit is in essentie wat we doen in een Join.

32 32 Inner Join + Voorwaarden Pas de query als volgt aan:Bekijk het resultaat: Bij combinatie van joins en voorwaarden: eerst gebeurt de join, daarna wordt het resultaat gefilterd door de voorwaarden.

33 33 Voorbereiding Maak volgende query:Bekijk het resultaat: De definitie van “MonthsWithSunshineOver5” vind je terug op slide 25. Merk op: dit levert het zelfde resultaat op als de query in de vorige slide. Les geleerd: er zijn altijd wel meerdere oplossingen mogelijk.

34 34 Outer Join Dubbelklik op de verbinding tussen Number en month. Kies optie 2 (ALL from “Months”), en klik OK. Verifieer dat er de verbinding tussen Number en month nu een richting heeft gekregen (van Number naar month). Dit maakt van je inner join een outer join. De pijl toont aan dat je join nu een outer join is.

35 35 Outer Join Merk op dat elke record uit Months nu mee wordt opgenomen in het resultaat, ook al was er geen record in SunshinePerMonthOver5 met een overeenkomstige waarde voor number. De overige velden worden leeg gelaten. ? ? ?

36 36 Voorbereiding Importeer de data in “haltes.txt” in een nieuwe tabel “Haltes”. Importeer de data in “lijnen.txt” in een nieuwe tabel “Lijnen”.

37 37 Recursieve Join Start een nieuwe query. Voeg de tabel “Haltes” twee keer toe. Bouw daarna de query als volgt op:

38 38 Recursieve Join Een recursieve join werkt dus als een gewone join. Het enige verschil is dat je twee keer dezelfde tabel bevraagt. Haltes

39 39 Meerdere joins in één query Rechtsklik naast één van de tabellen in de query, en kies “Show Table...” Voeg één keer tabel “Lijnen” toe aan de query.

40 40 Meerdere joins in één query Pas de query als volgt aan en bekijk het resultaat.

41 41 Meerdere joins in één query Het resultaat toont voor elke lijn de naam van die lijn, samen met twee opeenvolgende halten op die lijn.

42 42 Meerdere joins in één query Dit werkt als volgt: 1 23 Join 1 combineert twee records waarvan “Volgende” in de eerste record dezelfde waarde heeft als “Halte” in de tweede record. Dit geeft ons dus twee opeenvolgende haltes. Join 2 combineert twee records als ze dezelfde waarde voor “Lijn” hebben. Samen met vorige join hebben we dus: twee opeenvolgende haltes op dezelfde lijn. Join 3 linkt het lijnnummer van één van de eerste twee records (die wegens join 2 hetzelfde zijn voor beide records) aan het nummer in de records van Lijnen. Het resultaat is dus dat voor elke twee opeenvolgende haltes op een zelfde lijn we nu ook de naam van die lijn kennen.

43 43 Extra: voorwaarde “Like” Breidt de vorige query als volgt uit: “Like” kijkt of de waarde tekstueel overeenkomt met de waarde die er op volgt. Je mag “*” gebruiken in de betekenis van “eender welke combinatie van letters”. Dat betekent dat we hier kijken of de eerste halte ofwel “Meir” is, ofwel begint met een “S”. Like “Meir” Like “S*”

44 44 Survival guide Essentiële vaardigheden •Importeren van gegevens •Query met enkelvoudige criteria •Sorteren binnen een query •Query met rekenkundige bewerkingen •one-to-many" relatie definiëren •join-query over een "one-to-many" relatie Belangrijke vaardigheden •Query met meervoudige criteria •Query met rekenkundige bewerkingen over reeksen (COUNT, MIN, MAX, AVG) •"Group By" query; inclusief het gebruik van operatoren als COUNT, MIN, MAX, AVG •Outer join-query (links of rechts) Nuttige vaardigheden •Recursieve join (een tabel met zichzelf joinen)

45 45 Conclusie •Databank -Terminologie, Navigeren, Importeren •Tabellen -Records/Velden manipuleren •Queries -SQL -sorteren -filter volgens criteria -rekenkundige bewerkingen (ook over reeksen) -GROUP BY •Joins -Inner Joins -Outer Joins -Recursive Joins


Download ppt "Computervaardigheden Hoofdstuk 5 — Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.)"

Verwante presentaties


Ads door Google