Voorlopige versie 2003 Databases I (H. 1) Wiebren de Jonge Vrije Universiteit, Amsterdam Definities DB: een verzameling van gerelateerde gegevens inperking: – met een bepaalde logische samenhang – met een bepaalde betekenis – met een specifiek doel / doelgroep – betreffende een bepaald UoD DBMS: software pakket voor het aanmaken (definiëren + vullen) en het manipuleren (gebruiken + beheren) van een DB DB Systeem: DBMS + gegevens (+ applicaties? Vgl. fig. 1.1) (eig./evt. ook nog: + hardware) IS: DB systeem + applicaties + gebruiksomgeving (i.e. gebruikers + procedures) Overzicht Database System (Fig. 1.1) Voorbeeld van DB UoD / miniworld: (deel van) een universiteit enkele entiteiten in UoD: – – – – – STUDENT COURSE SECTION (of COURSE) DEPARTMENT INSTRUCTOR enkele ‘relationships’ in UoD – – – – – – SECTIONS horen bij bepaalde COURSES STUDENTS volgen SECTIONS COURSES hebben andere COURSES als vereiste voorkennis INSTRUCTORS geven bepaalde SECTIONS COURSES worden aangeboden door DEPARTMENTS STUDENTS volgen hun studie (hoofdvak) bij DEPARTMENTS Voorbeeld relationele database (Fig. 1.2) Karakteristieken Database Technologie Zelfbeschrijvende opzet van database systeem – catalog bevat beschrijving van database (meta-data) Scheiding gegevens en programma’s (program-data independence) – gegevensopslag kan veranderd worden zonder applicatieprogramma’s te hoeven wijzigen (vorm van data abstraction) Een data model verbergt opslag- en implementatie-details – geeft gebruikers een conceptual view op de gegevens (data abstraction) Meerdere views mogelijk – je kunt gebruikers evt. alleen de data laten zien die voor hen relevant is – je kunt de presentatie van de gegevens toesnijden op diverse gebruikers Data sharing – o.a. gunstig voor vermijden redundantie en inconsistentie – gelijktijdig gebruik leidt tot behoefte aan concurrency control Transaction Processing Voorbeelden (Fig. 1.3 en Fig. 1.4) DBMS gebruikers ‘Actors on the Scene’: – – – – End users (casual, parametric, sophisticated, stand-alone) System Analysts & Application Programmers DBA DB designer ‘Workers behind the Scene’: – DBMS designers & implementors – Tool developers – Operators & maintenance personnel (IBM, Oracle, Microsoft, …) (e.g. ER-editor) Enkele voordelen van gebruik DBMS improved consistency – controlling of redundancy – enforcing integrity constraints sharing of data – – – – – up-to-date information available to all users controlling concurrent use (ook: nodig vanwege sharing) providing multiple user-interfaces (ook: nodig …………………..) restricting unauthorized access to data (ook: nodig …………………..) potential for enforcing standards (ook: nodig …………………..) reducing application development time – flexibility (e.g. to change data structures) – representing complex relationships among data – providing persistent storage (backup and recovery) economies of scale Wanneer geen DBMS gebruiken? Nadelen DBMS: – Hoge initiële kosten (aanschaf + training personeel) – Overhead door bieden van (onnodig?) veel functionaliteit (generality, security, recovery, integrity, concurrency control, ...) DBMS kan onnodig en/of ongewenst zijn, b.v. als: – de database en de toepassingen eenvoudig en goed gedefinieerd zijn, en er nauwelijks verandering verwacht wordt in DB ontwerp en toepassingen – multi-user gebruik niet nodig is – er zulke stringente real-time eisen zijn dat de DBMS overhead een belemmering vormt