Databases & SQL Docent: Henny Klein email hklein@let.rug.nl spreekuur: di 13-15 spreekuurtijd? Lesmateriaal en opdrachten http://www.let.rug.nl/~hklein/Databases/ onder Programma DB&SQL
Inhoud van de cursus Eerste periode: H 1 t.m. 5 Tweede periode: 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 practica Access: de basishandelingen: tabellen, relaties, QBE, formulieren, rapporten Werken met Access- SQL datadefinitie datamanipulatie queries Programmeren in Access functies, gebeurtenisprocedures (VBA, DAO) Applicatiebouw Gecombineerd gebruik van Office pakketten?? Doe ik dan dan? DB&SQL
Voorbeelden en eigen ontwerp! 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! opdracht straks herhalen, na wat voorbeelden DB&SQL
Het boek De essenties, maar beknopt, op colleges toelichting, voorbeelden Exercises, ook als zelfcontrole
Beoordeling Ontwerpen Project SQL/VBA Tentamen 10% 20% 30% 40% 10% 20% 30% 40% Ontwerpopdrachten als huiswerk Eigen project: langzaam uitbreidend in practicum SQL en VBA: practicumoefeningen Tentamen: boek geen idee eigenlijk DB&SQL
Kaartenbak, file en database systeem 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 database systeem boven losse files?
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 Bespreken, voorbeelden geven! Wat je ook gaat doen, databases vaak belangrijk! DB&SQL
Informatiekunde en databases 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
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 DB&SQL
Typen databases Eerdere typen: Momenteel meest gangbaar: Hiërarchische databases Netwerk databases Momenteel meest gangbaar: Relationele databases In ontwikkeling: Object-georiënteerde databases
Relationele db: voorbeeld van een tabel Schema: Leveranciers (code, lev_naam, adres, woonplaats) Tabel Leveranciers: 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 Iedere rij representeert de gegevens van 1 leverancier Elke rij moet uniek zijn. Gegevens opgesplitst in eenvoudige attributen. DB&SQL
De elementen van een tabel/ relation tabelkop: schema heading attribuut, veldnaam, Kolomkop attribute record, entiteit, rij, tupel Tuple, row record Set body eerst nog meer voorbeelden, dan pas al deze termen! Veldwaarde value Kolom column NB Attribuut heeft datatype, domein DB&SQL
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? DB&SQL
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! DB&SQL
Introductie databaseontwerp 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.
Library als platte tabel: herhaalde gegevens Auteur- gegevens DB&SQL
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. zie boek6-7, alle problemen, wel bespreken! DB&SQL
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 DB&SQL
Auteur: een attribuut met meerdere waarden: provisorische oplossingen ... 3 versies van table BOOKS: Sleutels aangeven!!! DB&SQL
“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 rij is uniek ISBN+Author zijn samen de primaire sleutel van BOOK-AUTHOR. ISBN is een verwijzende sleutel in BOOK-AUTHOR
Een relatie: veel op veel Auteur Boek
Library: auteur ook als aparte entiteit 2 entiteiten en een tussentabel DB&SQL
Databaseontwerp U B 1 - S B - Welke entiteiten, met welke 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 - Hier komen soms al discussies over impliciete aannames, en anders wel bij de fysiotherapie-case: kan een patient niet door meer dan een ft behandeld worden, of 2x op een dag gemasseerd worden? S B - DB&SQL
Entity-Relation Diagram (zie H2) 1 publiceert gepubl. door Boek Uitgever Auteur heeft geschr. geschr. door nu nog toevoegen de tabeelen ontwerp met sleutels! Methode: Ga uit van één rij in de ene tabel, noteer bij de andere tabel 1 of DB&SQL
“Huiswerk” 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