Computervaardigheden

23
Computervaardigheden Hoofdstuk 5 — Databank (Gevorderden)

description

Computervaardigheden. Hoofdstuk 5 — Databank (Gevorderden). Inhoud. Terminologie redundantie  normalisatie Relaties "1-to-Many" (1-N) Join Inner Join; Outer (Left/Right) Join Relaties (vervolg) "Many-to-Many" (N-M) Join (vervolg) Recursive Join Oefeningen. Survival guide. - PowerPoint PPT Presentation

Transcript of Computervaardigheden

Page 1: Computervaardigheden

ComputervaardighedenHoofdstuk 5 — Databank (Gevorderden)

Page 2: Computervaardigheden

2

Inhoud

• Terminologie- redundantie normalisatie

• Relaties- "1-to-Many" (1-N)

• Join- Inner Join; Outer (Left/Right) Join

• Relaties (vervolg)- "Many-to-Many" (N-M)

• Join (vervolg)- Recursive Join

• Oefeningen

Page 3: Computervaardigheden

3

Survival guide

• Essentieel:- "one-to-many" relatie definiëren- Join-query over een "one-to-many" relatie

• Belangrijk:- Outer join-query (links of rechts)

• Nuttig:- Recursieve join (een tabel met zichzelf joinen)

Page 4: Computervaardigheden

4

Uitzonderlijke observaties

• Alle observaties per soort waarvoor- gewicht < minimum gewicht- gewicht > maximum gewicht- spanwijdte < minimum spanwijdte- spanwijdte > maximum spanwijdte

Page 5: Computervaardigheden

5

datum soort span- gew- min. max. min. max

wijdte icht span. span. gew. gew.

11/11/1992 baardvleermuis 19 4 19 22,5 4 8

11/11/1992 grootoorvleermuis 24 5 24 28,5 4,6 11,3

11/11/1992 grootoorvleermuis 28 12 24 28,5 4,6 11,3

02/11/1993 baardvleermuis 19,5 5 19 22.5 4 8

02/11/1993 grootoorvleermuis 25 7 24 28,5 4,6 11,3

Naïeve tabelindeling

redundante informatie• Redundante Informatie- verkwisting van plaats- gevaar op inconsistenties

• verander 1 record alle gelijkaardige records• symptoom van slecht databankontwerp !

- Oplossing ? Normalisatie (opsplitsen in meerdere tabellen)

Page 6: Computervaardigheden

6

"1-to-Many" Relaties

VleermuisSoortenNaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

ObservatiesDatumSoortSpanwijdteGewicht

*

1

1 vleermuissoort ...

kan vele malen geobserveerd worden

Page 7: Computervaardigheden

7

Inner Join (Query)

VleermuisSoortenNaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

Observaties

DatumSoortSpanwijdteGewicht

VleermuisSoortenx Observaties

NaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewichtDatumSpanwijdteGewicht

Cartesisch Productwaar

VleermuisSoorten.Naam= Observaties.Soort

Page 8: Computervaardigheden

8

datum soort span- gew-

wijdte icht

11/11/1992 baardvleermuis 19 4

11/11/1992 grootoorvleermuis 24 5

11/11/1992 grootoorvleermuis 28 12

02/11/1993 baardvleermuis 19,5 5

02/11/1993 grootoorvleermuis 25 7

datum soort span- gew- min. max. min. max

wijdte icht span. span. gew. gew.

11/11/1992 baardvleermuis 19 4 19 22,5 4 8

11/11/1992 grootoorvleermuis 24 5 24 28,5 4,6 11,3

11/11/1992 grootoorvleermuis 28 12 24 28,5 4,6 11,3

02/11/1993 baardvleermuis 19,5 5 19 22.5 4 8

02/11/1993 grootoorvleermuis 25 7 24 28,5 4,6 11,3

Inner Join (Resultaat)soort min. max. min. max

span. span. gew. gew.

baardvleermuis 19 22,5 4 8

grootoorvleermuis 24 28,5 4,6 11,3

Page 9: Computervaardigheden

9

Voorbereidingen• Importeer

- "Observaties1.txt"• tabel "Observaties"

- "VleermuisSoorten.txt"• 1-N relatie

- Menu: Tools/Relationships- Selecteer tabellen

"Observaties" & "VleermuisSoorten"

- Sleep "Observaties.soort" op "VleermuisSoorten.Naam"

- Bevestig via "Create"- Resultaat in "Relationships"- Sluit "Relationships"

Page 10: Computervaardigheden

10

Inner Join (basis)

• Nieuwe query (design view)• Show Table: "Observaties" &

"VleermuisSoorten"- Automatisch relatie

• sleep uit Observaties- datum, soort, gewicht

• uit VleermuisSoorten- MinimumGewicht &

MaximumGewicht• Bekijk in datasheet view• Bekijk in SQL-view

- "inner join"

Page 11: Computervaardigheden

11

Inner Join (extra criteria)• criterium voor gewicht:

>[VleermuisSoorten].[MaximumGewicht]

Or <[VleermuisSoorten].[MinimumGewicht]

• Bewaar als “UitzonderlijkGewicht”

Page 12: Computervaardigheden

12

Outer Join (Query)

VleermuisSoortenNaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

Observaties

DatumSoortSpanwijdteGewicht

VleermuisSoortenx Observaties

NaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewichtDatumSpanwijdteGewicht

Cartesisch Productwaar

(VleermuisSoorten.Naam= Observaties.Soort)

of(er bestaat geen observatie

metVleermuisSoorten.Naam

= Observaties.Soort)

Page 13: Computervaardigheden

13

datum soort span- gew-

wijdte icht

11/11/1992 baardvleermuis 19 4

11/11/1992 grootoorvleermuis 24 5

11/11/1992 grootoorvleermuis 28 12

02/11/1993 baardvleermuis 19,5 5

02/11/1993 grootoorvleermuis 25 7

datum soort span- gew- min. max. min. max

wijdte icht span. span. gew. gew.

11/11/1992 baardvleermuis 19 4 19 22,5 4 8

11/11/1992 grootoorvleermuis 24 5 24 28,5 4,6 11,3

11/11/1992 grootoorvleermuis 28 12 24 28,5 4,6 11,3

02/11/1993 baardvleermuis 19,5 5 19 22.5 4 8

02/11/1993 grootoorvleermuis 25 7 24 28,5 4,6 11,3

bosvleermuis 26 32 13 20

dwergvleermuis 18 24 3,5 8

Outer Join (Resultaat)soort min. max. min. max

span. span. gew. gew.

baardvleermuis 19 22,5 4 8

grootoorvleermuis 24 28,5 4,6 11,3

bosvleermuis 26 32 13 20

dwergvleermuis 18 24 3,5 8

niet geobserveerde soorten

Page 14: Computervaardigheden

14

Outer Join (basis)• Nieuwe query (design view)• Show Table: "Observaties" &

"VleermuisSoorten"• Dubbelklik relatie

- Include all ... VleermuisSoorten ... only from ...: Observaties

- OK

• relatie krijgt een pijltje !!• sleep uit VleermuisSoorten,

Observaties *• Bekijk in datasheet view• Bekijk in SQL-view

- "left join" of "right join"

Page 15: Computervaardigheden

15

"Many-to-Many" Relaties

VleermuisSoortNaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

ObservatieTrip

Datum Observator Locatie

Observaties

SpanwijdteGewicht

**

• Tijdens een observatietrip observeren we nul of meerdere vleermuissoorten

• Een vleermuissoort kan tijdens nul of meerdere observatietrips geobserveerd worden

• Bij elke observatie noteren we de spanwijdte en het gewicht

Page 16: Computervaardigheden

16

Join (3 tabellen)

• Importeer- ObservatieTrips.txt- in tabel ObservatieTrips

• Relaties- Menu: Tools/RelationShips- Rechtermuisklik: Show

Table...- Voeg tabel Observatietrips

toe- Sleep "datum" van

"Observaties" naar "ObservatieTrips"

• Maak nieuwe query- ObservatieTripRapport- Voeg tabellen

"Observaties", "Observatietrips", "VleermuisSoorten" toe

• Voor elke tabel- sleep "*" op design grid

• Criteria- Alleen de observatietrips

met observator "Serge Demeyer"

Page 17: Computervaardigheden

17

Oefeningen (vleermuizen)

• maak queries voor- Alle observaties waarvan de spanwijdte groter of

kleiner is dan de minima/maxima voor de soort- alle soorten die niet werden geobserveerd- tel alle soorten die niet werden geobserveerd- alle observaties in de ijskelder- alle observaties in de ijskelder gemaakt na 2000

Page 18: Computervaardigheden

18

Antwerpse Metro (overzicht)

Page 19: Computervaardigheden

19

Recursieve Join (1/3)

• Importeer- Haltes.txt & Lijnen.txt- Bekijk inhoud tabellen

• Maak nieuw query- design view- naam: 1overstap- voeg tabel "Haltes" 2 x toe

Haltes & Haltes_1

- relatie: "Haltes.volgende" "Haltes_1.halte"

- Sleep "Lijn" en "Halte" uit "Halte" en "Halte_1" op grid

• Resultaat in Datasheet view ?

Page 20: Computervaardigheden

20

Recursieve Join (2/3)

• Criteria- kolom "Haltes.lijn"

"= Haltes_1.halte"• Datasheet view

- Hoeveel records ?

Page 21: Computervaardigheden

21

Recursieve Join (3/3)

• Maak een "left outer join"- Include ALL ... from

"Haltes" ... and only ... "Haltes_1" ...

• Datasheet view- Hoeveel records ?

• Criterium- 2de lijn (Or:)

Haltes_1.Lijn Is Null

• Datasheet view- Hoeveel records ?- Verklaar het verschil

Page 22: Computervaardigheden

22

Oefeningen (antwerpse metro)

• maak queries voor- Welke stations liggen op precies drie stappen van

station "Meir" ? Geef de tussenhaltes.- Welke stations liggen op precies drie stappen van

station "Meir", zonder van lijn te veranderen ? Geef de tussenhaltes.

Page 23: Computervaardigheden

23

Conclusie

• Terminologie- redundantie normalisatie

• Relaties- "1-to-Many" (1-N)

• Join- Inner Join; Outer (Left/Right) Join

• Relaties (vervolg)- "Many-to-Many" (N-M)

• Join (vervolg)- Recursive Join

• Oefeningen