Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam definitieve versie 2002 Databases I Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam
Over het college Docenten Stof: Huiswerk: Martin Caminada martinc@cs.vu.nl Wiebren de Jonge wiebren@cs.vu.nl Stof: boek Elmasri en Navathe correcties op boek aanvullingen op boek huiswerkopgaven Huiswerk: vanaf ongeveer 3e week groepjes van bij voorkeur 2 personen serieuze deelname verplicht voor deelname eerste tentamen Meer info: www.cs.vu.nl/~martinc/databases Waarschuwen: Databases moeilijket dan het lijkt: - huiswerk maken - college voorbereiden - gecorrigeerd huiswerk bekijken
Wat gaan we doen Doel vak Databases I: “De student van voldoende achtergrondkennis en vaardigheden te voorzien zodat hij in staat is om (relationele) databases te ontwerpen en te gebruiken in domeinen met een grote en complexe informatiebehoefte” Enkele van de te behandelen onderwerpen: modelleren van informatie-behoefte (ER-model) mappen van ER-model naar database ontwerp theorie achter database ontwerp (normaliseren, lossless join, …) queries; ook in de iets minder makkelijke situaties achtergrond en opzet DBMS (architectuur, opslag, concurrency, …) Opzet: beperkt tot principes / concepten van moderne database systemen weinig tot geen specifiek DBMS (Oracle/DB2/…) gerelateerde info colleges zijn bedoeld om je op weg te helpen (details staan in boek en aanvullingen!) *maken van* ER model *enige* theorie achter database ontwerp (we gaan slechts deel behandelen) gebruik van query-talen / formuleren van queries Opmerken: BOEK BEDTUDEREN. Geen gedoe van “Ja maar, dat is toch niet op het college behandeld dus hoe kun je dan verwachten dat ik met moet weten…”
Waarom zijn databases relevant? Informatica: databases overal, meeste IT draait op databases BI: CRM, ERP, Data Warehousing AI: kennisbanken, data mining MM&C: back-office van Websites Databases zijn de motor van veel IT-toepassingen Amazon maakt trouwens winst tegenwoordig “Op zich is modelleren het allerbelangrijkste wat je in de praktijk gaat tegenkomen. Doch uiteindelijk draait alles op een database.”
Definities Database: Een verzameling van gerelateerde gegevens heeft betrekking op Universe of Discourse (UoD) is logisch coherent en heeft bepaalde betekenis heeft een specifiek doel / doelgroep Database Management System (DBMS): verzameling programmatuur voor het aanmaken en beheren van een database Database System: DBMS software samen met gegevens zelf Informatie systeem: Database System + applicaties + gebruikersomgeving (gebruikers + procedures) DBMS: defining, constructing (loading) and manipulation (updates + queries) /// general purpose
Voorbeeld (UoD) Universe of Discourse: University enkele UoD entiteiten: STUDENT COURSE SECTION (of COURSE) DEPARTMENT INSTRUCTOR enkele UoD relaties SECTIONS zijn van bepaalde COURSES STUDENTS volgen SECTIONS COURSES hebben als vereiste voorkennis andere COURSES INSTRUCTORS geven zekere SECTIONS COURSES worden gegeven aan DEPARTMENTS STUDENTS volgen een studie aan DEPARTMENTS
Voorbeeld (database) Aanstippen: - tabels, tuples, attributes, meta-data
Overzicht Database System
Karakteristieken Database System zelfbeschrijvende opzet van database systeem catalog bevat beschrijving van database (meta-data) isolatie tussen gegevens en programma’s (program-data independence) staat toe data opslag structuren te wijzigen zonder DBMS applicaties te hoeven wijzigen data abstractie verbergt opslag en implementatie details en geeft gebruikers een conceptuele kijk op de gegevens in de database meerdere views mogelijk geeft gebruikers alleen de data die voor hen relevant is (+ presentatie) data sharing brengt echter ook behoefte aan concurrency control met zich mee Waarom uberhaupt DBMS pakket gebruiken, waarom niet gewoon progje schrijven dat files inleest en wegschrijft, net als bij inleiding programmeren? Waarom moeilijk doen als het makkelijk kan? Isolatie: neem voorbeeld aanmaken index data abstractie: je hoeft je bijvoorbeeld geen zorgen te maken om zaken als byte alignment van je data’s (fixed positions) views: neem voorbeeld telecom bedrijf. Monteurs: wijkcentrale, storingsmeldingen fin. Admin: betalingsgegevens hier kun je dus twee verschillende views voor gebruiken data sharing: neem voorbeeld luchtvaartmaatschappij (OLTP)
Enkele voordelen gebruik DBMS Controlling redundancy (consistency) / sharing of data restricting unauthorized access providing persistent storage for program objects and data structures representing complex relationships among data enforcing integrity constraints backup and recovery multiple user-interfaces potential for enforcing standards economies of scale Economies of scale: je hoeft maar een keer een DBMS aan te schaffen en daarna kost het aanmaken van een extra database je relatief weinig tijd/geld. Daarnaast ook centralisatie mogelijk.
Database gerelateerde posities Op de voorgrond: eindgebruikers (naive / casual / sophisticated) software engineers (application programs) database Administrator (DBA) Op de achtergrond: DBMS software engineers (IBM, Oracle, Microsoft, …) tool developers (ER-editors, …) operators en systeembeheerders Canned transactions
Wanneer geen DBMS gebruiken? Nadelen DBMS: Hoge initiële kosten (aanschaf + training personeel) functionaliteit (generaliteit, beveiliging, recovery, concurrency control) brengt ook overhead met zich mee DBMS kan onnodig zijn wanneer: de database en haar applicaties simpel en wel gedefinieerd zijn, en het niet de verwachting is dat het database ontwerp gewijzigd zal worden multi-user gebruik niet nodig stringente real-time eisen die DBMS overhead onwenselijk maken
Database System concepten en architectuur data model: een verzameling van concepten om de structuur van de database te beschrijven en de constraints waaraan de database dient te voldoen soorten data models: conceptual (high-level, semantic) data models (bv ER-model) physical (low-level, internal) data models implementation (representation) data models (bv relationeel model) database schema: beschrijving van een database. bevat zowel beschrijving van database structuur als constraints intensie v/e database: alle mogelijke/toegestane toestanden en toestandsovergangen extensie v/e database: één van de mogelijke/toegestane toestanden (waarden) van een relatie (een intensie). Alternatief: de huidige toestand van de relatie (de intensie) Opmerken: database schema in feite zelfde als intensie
ANSI/SPARC architectuur Aanstippen: - logical data independence (conceptueel schema veranderen zonder externe schemas en applicatieprogs te veranderen) - physical data independence (internal schema veranderen zonder conceptual schema te veranderen)
DBMS talen Data Definition Language (DDL) Storage Definition Language (SDL) View Definition Language (VDL) Data Manipulation Language (DML) high level (set-at-a-time, query language) low level (record-at-a-time, host language / data sublanguage) Opmerken: - low level moet embedded zijn (want loops nodig e.d.) - high level kan zowel stand-alone als embedded
Thuis Nalezen: hoofdstuk 1 hoofdstuk 2 Voorbereiden: hoofdstuk 3