Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

22
Universiteit Antwerpen Databank - Gevorderden 5.1 Computervaardigheden en Programmatie Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 5 Databank - Gevorderden

description

Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen. 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) - PowerPoint PPT Presentation

Transcript of Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Page 1: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.1Computervaardigheden en Programmatie

Computervaardigheden en Programmatie

1rste BAC Toegepaste Biologische Wetenschappen

Hoofdstuk 5Databank - Gevorderden

Page 2: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.2Computervaardigheden en Programmatie

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 en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.3Computervaardigheden en Programmatie

Uitzonderlijke observaties• Alle observaties per soort waarvoor

– gewicht < minimum gewicht– gewicht > maximum gewicht– spanwijdte < minimum spanwijdte– spanwijdte > maximum spanwijdte

Page 4: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.4Computervaardigheden en Programmatie

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

11/11/1992 baardvleermuis 19 4 19 22,5 4 811/11/1992 grootoorvleermuis 24 5 24 28,5 4,611,311/11/1992 grootoorvleermuis 28 12 24 28,5 4,611,302/11/1993 baardvleermuis 19,5 5 19 22.5 4 802/11/1993 grootoorvleermuis 25 7 24 28,5 4,611,3

Naïeve Tabelvoorstelling

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 5: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.5Computervaardigheden en Programmatie

"1-to-Many" Relaties

VleermuisSoortenNaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

ObservatiesDatumSoortSpanwijdteGewicht

*

1

1 vleermuissoort ...

kan vele malen geobserveerd worden

Page 6: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.6Computervaardigheden en Programmatie

Inner Join (Query)VleermuisSoortenNaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

ObservatiesDatumSoortSpanwijdteGewicht

VleermuisSoortenx Observaties

NaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewichtDatumSpanwijdteGewicht

Cartesisch Productwaar

VleermuisSoorten.Naam

= Observaties.Soort

Page 7: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.7Computervaardigheden en Programmatie

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. maxwijdte icht span. span. gew. gew.

11/11/1992 baardvleermuis 19 4 19 22,5 4 811/11/1992 grootoorvleermuis 24 5 24 28,5 4,6 11,311/11/1992 grootoorvleermuis 28 12 24 28,5 4,6 11,302/11/1993 baardvleermuis 19,5 5 19 22.5 4 802/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 8grootoorvleermuis 24 28,5 4,6

11,3

Page 8: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.8Computervaardigheden en Programmatie

Voorbereidingen• Importeer

– "Observaties1.txt"• tabel "Observaties"

– "VleermuisSoorten.txt"

• 1-N relatie– >>Tools>>Relationships– Selecteer tabellen"Observaties" & "VleermuisSoorten"

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

– (1) bevestig via "Create"– (2) resultaat in "Relationships"

– Sluit "Relationships"

1

2

Page 9: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.9Computervaardigheden en Programmatie

Inner Join (basis)• Nieuwe query (design

view)• >>Show Table>>

"Observaties" & "VleermuisSoorten"– (1) Automatisch relatie

• sleep uit Observaties– (2) datum, soort, gewicht

• uit VleermuisSoorten– (3) MinimumGewicht &

MaximumGewicht

• (4) Bekijk in datasheet view

• Bekijk in SQL-view– "inner join"

1

2

3

4

Page 10: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.10Computervaardigheden en Programmatie

Inner Join (extra criteria)

1

• definieer criterium voor gewicht

>[VleermuisSoorten].[MaximumGewicht]

Or

<[VleermuisSoorten].[MinimumGewicht]• bewaar als

UitzonderlijkeObservatiesGewicht

Page 11: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.11Computervaardigheden en Programmatie

Outer Join (Query)VleermuisSoortenNaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

ObservatiesDatumSoortSpanwijdteGewicht

VleermuisSoortenx Observaties

NaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewichtDatumSpanwijdteGewicht

Cartesisch Productwaar

(VleermuisSoorten.Naam= Observaties.Soort)

of(er bestaat geen

observatie metVleermuisSoorten.Naam= Observaties.Soort)

Page 12: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.12Computervaardigheden en Programmatie

datum soort span- gew-wijdte icht

11/11/1992 baardvleermuis 19 411/11/1992 grootoorvleermuis 24 511/11/1992 grootoorvleermuis 28 1202/11/1993 baardvleermuis 19,5 502/11/1993 grootoorvleermuis 25 7

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

11/11/1992 baardvleermuis 19 4 19 22,5 4 811/11/1992 grootoorvleermuis 24 5 24 28,5 4,6 11,311/11/1992 grootoorvleermuis 28 12 24 28,5 4,6 11,302/11/1993 baardvleermuis 19,5 5 19 22.5 4 802/11/1993 grootoorvleermuis 25 7 24 28,5 4,6 11,3

bosvleermuis 26 32 13 20dwergvleermuis 18 24 3,5 8

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

span.span.gew. gew.baardvleermuis 19 22,5 4 8grootoorvleermuis 24 28,5 4,6

11,3bosvleermuis 26 32 13 20dwergvleermuis 18 24 3,5 8

niet geobserveerde soorten

NULL (blanco)

Page 13: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.13Computervaardigheden en Programmatie

Outer Join (basis)• Nieuwe query (design

view)• >>Show Table>>

"Observaties" & "VleermuisSoorten"

• Dubbelklik relatie– (1) Include all ...

VleermuisSoorten ... only from ...: Observaties

– OK

• (2) relatie krijgt een pijltje !!

• sleep uit VleermuisSoorten, Observaties *

• Bekijk in datasheet view

• Bekijk in SQL-view– "left join" of "right

join" 2

1

Page 14: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.14Computervaardigheden en Programmatie

"Many-to-Many" RelatiesVleermuisSoort

NaamMinimumSpanwijdteMaximumSpanwijdteMinimumGewichtMaximumGewicht

ObservatieTrip

DatumObservatorLocatie

ObservatiesSpanwijdteGewicht

**

• Tijdens een observatietrip observeren we 0 of meerdere vleermuissoorten

• Een vleermuissoort kan tijdens 0 of meerdere observatietrips geobserveerd worden

• Bij elke observatie noteren we de spanwijdte en het gewicht

Page 15: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.15Computervaardigheden en Programmatie

Join (3 tabellen)• Importeer

– ObservatieTrips.txt– in tabel ObservatieTrips

• Relaties– >>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 16: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.16Computervaardigheden en Programmatie

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 17: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.17Computervaardigheden en Programmatie

Antwerpse Metro (overzicht)

Page 18: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.18Computervaardigheden en Programmatie

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

(1) Haltes & (2) Haltes_1– (3) relatie: "Haltes.volgende" "Haltes_1.halte"

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

• Resultaat in Datasheet view ?

1 2

3

Page 19: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.19Computervaardigheden en Programmatie

Recursieve Join (2/3)• Criteria

– (1) kolom "Haltes.lijn""= Haltes_1.halte"

• Datasheet view– Hoeveel records ?

1

Page 20: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.20Computervaardigheden en Programmatie

Recursieve Join (3/3)• Maak een "left outer join"– (1) Include ALL ...from "Haltes" ...and only ... "Haltes_1" ...

• Datasheet view– Hoeveel records ?

• Criterium– (2) 2de lijn (Or:)Haltes_1.Lijn Is Null

• Datasheet view– Hoeveel records ?– Verklaar het verschil

1

2

Page 21: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.21Computervaardigheden en Programmatie

Oefeningen (antwerpse metro)• maak queries voor

– Welke stations kan ik in precies drie stappen bereiken vanuit station "Meir" ? Geef de tussenhaltes.

– Welke stations kan ik in precies drie stappen bereiken vanuit station "Meir", zonder van lijn te veranderen ? Geef de tussenhaltes.

– Vanuit welke stations kan ik in maximaal drie stappen station "Meir" bereiken, zonder van lijn te veranderen ? Geef de tussenhaltes.

Page 22: Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen

Universiteit Antwerpen

Databank - Gevorderden

5.22Computervaardigheden en Programmatie

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