1 / 23

Computervaardigheden

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.

shing
Download Presentation

Computervaardigheden

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computervaardigheden Hoofdstuk 5 — Databank (Gevorderden)

  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

  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)

  4. Uitzonderlijke observaties • Alle observaties per soort waarvoor • gewicht < minimum gewicht • gewicht > maximum gewicht • spanwijdte < minimum spanwijdte • spanwijdte > maximum spanwijdte

  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)

  6. VleermuisSoorten Naam MinimumSpanwijdte MaximumSpanwijdte MinimumGewicht MaximumGewicht "1-to-Many" Relaties 1 vleermuissoort ... Observaties Datum Soort Spanwijdte Gewicht 1 * kan vele malen geobserveerd worden

  7. VleermuisSoorten Naam MinimumSpanwijdte MaximumSpanwijdte MinimumGewicht MaximumGewicht Inner Join (Query) VleermuisSoorten x Observaties Naam MinimumSpanwijdte MaximumSpanwijdte MinimumGewicht MaximumGewicht Datum Spanwijdte Gewicht Cartesisch Product waar VleermuisSoorten.Naam = Observaties.Soort Observaties Datum Soort Spanwijdte Gewicht

  8. 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) 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 soort min. max. min. max span. span. gew. gew. baardvleermuis 19 22,5 4 8 grootoorvleermuis 24 28,5 4,6 11,3

  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"

  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"

  11. criterium voor gewicht: >[VleermuisSoorten].[MaximumGewicht] Or <[VleermuisSoorten].[MinimumGewicht] Bewaar als “UitzonderlijkGewicht” Inner Join (extra criteria)

  12. VleermuisSoorten Naam MinimumSpanwijdte MaximumSpanwijdte MinimumGewicht MaximumGewicht Outer Join (Query) VleermuisSoorten x Observaties Naam MinimumSpanwijdte MaximumSpanwijdte MinimumGewicht MaximumGewicht Datum Spanwijdte Gewicht Cartesisch Product waar (VleermuisSoorten.Naam = Observaties.Soort) of (er bestaat geen observatie met VleermuisSoorten.Naam = Observaties.Soort) Observaties Datum Soort Spanwijdte Gewicht

  13. 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) 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 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

  14. 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" Outer Join (basis)

  15. VleermuisSoort Naam MinimumSpanwijdte MaximumSpanwijdte MinimumGewicht MaximumGewicht ObservatieTrip Datum Observator Locatie "Many-to-Many" Relaties * * Observaties Spanwijdte Gewicht • 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

  16. 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" Join (3 tabellen)

  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

  18. Antwerpse Metro (overzicht)

  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 ?

  20. Recursieve Join (2/3) • Criteria • kolom "Haltes.lijn""= Haltes_1.halte" • Datasheet view • Hoeveel records ?

  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

  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.

  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

More Related