definitieve versie 2002 Databases I Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam Over het college Docenten – Martin Caminada – Wiebren de Jonge Stof: – – – – [email protected] [email protected] 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 Wat gaan we doen Doel vak Databases I: “De student van voldoende achtergrondkennis en vaardigheden te voorzien zodat hi 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!) 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 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) 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) 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 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 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 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) ANSI/SPARC architectuur 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) Thuis Nalezen: – hoofdstuk 1 – hoofdstuk 2 Voorbereiden: – hoofdstuk 3