290 likes | 401 Views
Databases & SQL. Docent: Henny Klein email hklein@let.rug.nl spreekuur: di 13-15. Lesmateriaal en opdrachten http://www.let.rug.nl/~hklein/Databases/ onder Programma . Eerste periode: H 1 t.m. 5 Basiskennis voor het ontwerpen van en werken met relationele databases Tweede periode:
E N D
Databases & SQL Docent: Henny Klein email hklein@let.rug.nl spreekuur: di 13-15 Lesmateriaal en opdrachten http://www.let.rug.nl/~hklein/Databases/ onder Programma
Eerste periode: H 1 t.m. 5 Basiskennis voor het ontwerpen van en werken met relationele databases Tweede periode: H 6 t.m. 10 andere typen databases processen in een DBMS gedistribueerde systemen Inhoud van de cursus
Access: de basishandelingen: tabellen, relaties, QBE, formulieren, rapporten Werken met Access- SQL datadefinitie datamanipulatie queries Programmeren in Access functies, gebeurtenisprocedures (VBA, DAO) Applicatiebouw Inhoud van de practica
Naast oefenen met voorbeelddatabases gaat iedere student ook een eigen database bouwen, als oefenmateriaal voor jezelf en voor anderen: in hoorcolleges: uitwisselen en bespreken van de ontwerpen in SQL practica: vragen bedenken / oplossen in eigen en andermans database Opdracht deze week: Bedenk alvast een onderwerp! Voorbeelden en eigen ontwerp!
De essenties, maar beknopt, op colleges toelichting, voorbeelden Exercises, ook als zelfcontrole Het boek
Beoordeling Ontwerpen Project SQL/VBA Tentamen 10% 20% 30% 40% Ontwerpopdrachten als huiswerk Eigen project: langzaam uitbreidend in practicum SQL en VBA: practicumoefeningen Tentamen: boek
Hoe zocht je voor het computertijdperk een boek in de bibliotheek? Voordelen electronisch systeem? Voordelen database systeem boven een (tekst)file? Hoe werkten organisaties/bedrijven voor het computertijdperk? Voordelen electronisch systeem? Voordelen database systeem boven losse files? Kaartenbak, file en database systeem
Database systemen • Systematische en gestructureerde gegevensopslag • ieder gegeven slechts eenmaal opgeslagen • integriteit en veilgheid van gegevens bewaakt • gegevens beschikbaar voor verschillende applicaties • gelijktijdig gebruik mogelijk • verschillende “views” op de data • Toepassingen op vele gebieden • (bedrijfs)administratie • online gegevens invoeren en/of lezen • databanken • gegevens wetenschappelijk onderzoek • data mining
DBMS: hèt systeem om informatie in op te slaan, en dus ook vaak centraal in informatiekundig werk: bij veel bedrijfsstages wordt je gevraagd met (online) databases te werken ook bij onderzoek of onderzoeksstage kun je een database nodig hebben Informatiekunde en databases
Database: conceptueel model van de werkelijkheid • Bedenk welke gegevens (attributen) je zou kunnen opslaan • van de volgende entiteiten: • boeken • bomen Keuzes van attributen hangen niet alleen af van de eigenschappen van de dingen, maar ook van de context. Een database is een model van de werkelijkheid.
Het meer-lagen systeem Presentatie van de data (views) Access: Formulieren, rapporten, VBA, SQL Buiten het DBMS: (web)applicaties Logische structuur van de data (conceptual level) DBMS Operating system Fysieke opslag van de data
Eerdere typen: Hiërarchische databases Netwerk databases Momenteel meest gangbaar: Relationele databases In ontwikkeling: Object-georiënteerde databases Typen databases
CODE LEV_NAAM ADRES WOONPLAATS 004 Hovenier G.H. Zandweg 50 Lisse 009 Baumgarten R. Taksstraat 13 Hillegom 011 Struik BV Bessenlaan 1 Lisse 013 Spitman en Zn. Achtertuin 9 Aalsmeer 014 Dezaaier L.J.A. De Gronden 101 Lisse 019 Mooiweer FA. Verlengde Zomerstr. 24 Aalsmeer Relationele db: voorbeeld van een tabel Schema: Leveranciers (code, lev_naam, adres, woonplaats) Tabel Leveranciers: Iedere rij representeert de gegevens van 1 leverancier Elke rij moet uniek zijn. Gegevens opgesplitst in eenvoudige attributen.
De elementen van een tabel/ relation tabelkop: schema heading attribuut, veldnaam, Kolomkop attribute record Set body record, entiteit, rij, tupel Tuple, row Veldwaarde value Kolom column NB Attribuut heeft datatype, domein
De identificatieplicht Uiteraard wil je niet dat iets/iemand dubbel in je tabel komt. De keuze van je identificatie is belangrijk: ook nieuwe entiteiten moeten er aan kunnen voldoen. Welke identificatie kun je gebruiken voor de studenten in PROGRESS de boeken in de UB de leden van een tennisclub?
De identificatieplicht Welke problemen kun je verwachten bij gebruik van NAW-gegevens (Naam Adres Woonplaats) ISBN geboortedatum? Vaak wordt gewerkt met een identificatienummer als ‘primaire sleutel’. Dit werkt gemakkelijk en maakt heel snel zoeken mogelijk, maar je moet wel nadenken over wat je entiteiten in feite onderscheidt!
In een database heb je vaak meer dan 1 tabel nodig om je gegevens netjes op te slaan Als voorbereiding op het practicum gaan we alvast naar de belangrijkste basisprincipes bij het ontwerpen van een database kijken In H 4 komt het ontwerp van een relationele database systematischer aan bod. Introductie databaseontwerp
Library als platte tabel: herhaalde gegevens Auteur- gegevens
Herhaalde gegevens - vervolg Bij elk boek staat de uitgever + het telefoonnummer van de uitgever Het telefoonnummer is een kenmerk van de uitgever, niet van het boek, maar staat op meerdere plaatsen Problemen bij duplicatie van gegevens: ruimtebeslag integriteit bij wijzigingen (update/insert/delete) Alleen gegevens die de entiteit zelf kenmerken en eventuele relaties met andere entiteiten horen in de tabel. Een uitgever is zelf een entiteit, met een eigen attribuut.
Een relatie: 1 op veel Uitgever Boek
De relationele oplossing voor herhaalde gegevens BOOKS Elk boek heeft 1 uitgever PUBLISHERS Publisher en Book zijn aparte entiteitsklassen/ tabellen, de relatie wordt gelegd via PubID, dit is de verwijzende sleutel in BOOKS naar een Publisher in PUBLISHERS
Auteur: een attribuut met meerdere waarden:provisorische oplossingen ... 3 versies van table BOOKS:
“Multiple values”... en hun problemen Problemen: vinden van een auteur, sorteren op auteur Problemen: vinden van een auteur, sorteren op auteur, maximaal aantal auteurs onbekend, veel lege velden Problemen: herhaling van andere gegevens van een boek: integriteit en ruimte
De relationele oplossing voor multiple values Table BOOKS Table BOOK-AUTHOR Regel: een attribuut is ‘atomair’, ondeelbaar, mag niet meer dan 1 waarde bevatten Er is een aparte tabel gemaakt voor de multiple values. Per rij wordt een BOOK gekoppeld aan een AUTHOR. Book en Author komen beiden meermalen voor, maar een rijis uniek ISBN+Author zijn samen de primaire sleutel van BOOK-AUTHOR. ISBN is een verwijzendesleutel in BOOK-AUTHOR
Een relatie: veel op veel Auteur Boek
Library: auteur ook als aparte entiteit 2 entiteiten en een tussentabel
Databaseontwerp Welke entiteiten, metwelke attributen? Sleutel? Boek: ISBN, Titel, Prijs Uitgever: PubID, Naam, Adres, Tel.nummer Schrijver: AuID, Naam, Adres, Tel.nummer Welke relaties? Een boek heeft 1 uitgever Een uitgever publiceert 1 of meer boeken : oneindig: onbepaald hoeveel Een boek heeft 1 of meer schrijvers Een schrijver schrijft 1 of meer boeken U B 1 - S B -
Entity-Relation Diagram (zie H2) 1 publiceert gepubl. door Uitgever Boek Auteur heeft geschr. geschr. door Methode: Ga uit van één rij in de ene tabel, noteer bij de andere tabel 1 of
Nalezen, nog vragen? Rolland: H1 en begin H3, exercises H1 Evt Brookshear 9.1 en 9.2 Bedenk een eigen thema voor een database, en werk uit welke verschillende entiteiten je onderscheidt welke attributen je entiteiten hebben wat voor relaties er tussen de entiteiten bestaan Neem dit in 2voud mee: om in te leveren en om te bespreken op het volgende college! Volgende week gaan we verder met hoofdstuk 2 “Huiswerk”