Datenbank (DB): sehr große integrierte Sammlung von Daten, beschreibt Ausschnitt aus der realen Welt: Entitäten und Beziehungen. Datenbank-Management-System (DBMS): Softwarepaket zum Speichern und Verarbeiten von Datenbanken (Einfügen, Lesen, Ändern und Löschen von Daten), Oracle, DB2(IBM), MS SQL Server. Vorteile: Datenunabhängigkeit, effizienter Zugriff, verminderte Entwicklungszeit, Kontrolle der Datenintegrität, Zugriffskontrolle auf Daten, Datensicherheit, einheitliche Datenadministration, Unterstützung Nebenläufigkeit (Concurrency Control) Recovery-Fähigkeit Datenbank-System (DBS): ermöglicht anwendungsübergreifende Nutzung von Daten, isoliert Anwendungsprogramme von Hardware und Betriebssystem (und deren Änderungen), DBS=DBMS+DB Vorteile: integrierter Datenbestand Vermeidung von Redundanz, Konsistenz, höhere Qualität des Bestandes, einheitliche Mechanismen für Datenschutz, -sicherheit (Recovery) und Nebenläufigkeit (Concurrency Control), physische+logische Datenunabhängigkeit, leichtere+schnellere Programmentwicklung/-wartung, Nutzung von 4GL, Form- und Reportgeneratoren, optimierte Anfragesprache Nachteile: General-Purpose Software oft weniger effizient als Spezialisierte, bei konkurrierenden Anforderungen nur für einen Teil der AP optimiert, Kosten: DBMS+zusätzliche Hardware, hochqualifiziertes Personal (DB-Administration), Verwundbarkeit durch Zentralisierung – Ausweg: Verteilung Datenmodell (DM): Struktur, Operation, Konsistenzregeln der Daten Informationssystem (IS): besteht aus Menschen und Maschinen, die Informationen erzeugen oder benutzen und die durch Kommunikationsbeziehungen miteinander verbunden sind rechnergestütztes Informationssystem (CIS): Erfassung, Speicherung, Transformation von Informationen durch EDV (teilweise) automatisiert. Datenmodelle Daten: haben Struktur, die in Typen definiert wird (Intension), Werte und Instanzen (Extension) Datenmodell: Menge von Konstrukten zur Beschreibung von Daten, Low-Level-Details der Datenspeicherung werden abstrahiert, DBMS erlaubt Definition von Daten in bestimmten Datenmodell (meist relational) Semantisches Datenmodell: abstrakter ohne Bezug auf DBMS, z.B.: ER-Modell Schema: beschreibt Menge von Daten mit Hilfe eines Datenmodells Relationales Datenmodell: Basiskonstrukt: Relation (Tabelle), jede Relation hat Schema zur Beschreibung der Spalten (oder Felder) Abstraktionsebenen Views: anwendungsspezifische Ausschnitte auf das konzeptuelles Schema (Filterung unnötiger Daten, Schutz vor nichtautorisiertem Zugriff), Anwendungsspezifische Strukturierung Konzeptuelles Schema: integrierte logische Sicht des gesamten Datenbestandes ohne Details über Speicherort oder Struktur Physisches Schema: in Form von Datensätzen (Records), spezifische Zugriffspfade, Abbildung der Records auf Speicherstruktur Datenunabhängigkeit Applikationen sind isoliert davon, wie Daten strukturiert und gespeichert werden, Logische Datenunabhängigkeit, Physikalische Datenunabhängigkeit (Pfad,Struktur,Speicherstruktur,Gerät, Seitenzuordnung...) Concurrency Control Nebenläufigkeit, Pro: bessere Auslastung, bessere Performance, Kontra: Inkonsistenzen bei Überlappungen, DBMS garantiert Isolation (Illusion einer Appl. alleine Zugriff auf DB zu haben, sieht nur konsistenten Zustand) und Konsistenz (korrekter Ablauf von Transaktionen) Transaktionskonzept Transaktion: atomare (all or nothing) Sequenz von Datenbank-Aktionen, nach jeder Transaktion KONSISTENTER Zustand wenn zu Transaktionsbeginn schon konsistent!! (Integritätsbedingungen können formuliert werden, DBMS kennt aber Semantik nicht – Benutzer für korrekten Ablauf verantwortlich) Datensicherheit DBMS sichert Atomizität auch bei Absturz während einer Transaktion – Logging: Protokollierung aller Aktionen, vor Änderung entsprechender Logeintrag an sicherer Stelle, nach Crash zurücksetzen undo, Logging von Write (alter und neuer Wert), Commit und Abort, Logs häufig auf anderen Datenträger, Aktivitäten von Logging und Concurrency Control transparent verwaltet von DBMS Rollen beim Entwurf und Betrieb von DB Endbenutzer – meist ein computer-naiver Benutzer (Verkäufer, Verwaltungsangestellter), Liest Daten, fügt ein, ändert mit vorgegebenen Masken und Applikationen DB-Anwendungsprogrammierer – entwickelt Applikation mit vorgegebenen Schema Schema-Designer – ermittelt Anforderungen der Benutzer und Anwender, Entwickelt Teilschichten und integriert diese zum globalen Schema (konzeptuelles Schema), Bildet Schema zusammen mit DB-Administrator auf spezifisches DBMS ab DB-Administrator – mitverantwortlich für Mapping konzeptuelles -> logisches Schema, Autorisiert neue Benutzer (Zugriffsrechte), Reibungsloser Ablauf (Verfügbarkeit), Sicherung/Archivkopie, Installation neuer DBMS-Versionen DBMS-Entwickler – Entwickelt die DBMS Software Entity-Relationship-Modell Datenmodell: System von Konzepten zur abstrakten Darstellung eines Ausschnitts der realen Welt mittels Daten, verschiedene Abstraktionsebenen, bestehen aus: Struktur (statische Eigenschaften), Operatoren (dynamische E., erlaubt Zugriff, Speicherung, Änderung), Constraints (Korrektheitsbedingungen, garantiert syntaktische+semantische Korrektheit einer Operation) Phasen des DB-Entwurfs Requirements-Analyse (Welche Daten, Operationen, Anwendungen, nichtfunktionalen Anforderungen) Konzeptueller DB-Entwurf (Spezifikation Anforderungen in high-level-Darstellung -> ER-Modell) Logischer DB-Entwurf (Übersetzung konzeptueller Entwurf in Schema im Datenmodell des Ziel-DBMS) Schema-Verfeinerung (Normalisierung des relationalen Schemas soweit erforderlich) Physischer DB-Entwurf (phys. Entw.entsch. (Index,Clusters) entsprechend Last-Profilen u. Perf. Anforderungen) Security-Entwurf (Def. Benutzergruppen, Rollen, Zugriffsrechten) Konzept 1: Entity-Menge Entity: unterscheidbar von anderen Objekten, beschrieben durch Menge von Attributen Entity-Menge: Zusammenfassung aller Entities mit gemeinsamen Eigenschaften, DB enthält endlich viele Konzept 2: Relationship-Menge Relationship: Beziehung zwischen min. zwei Entities, Zusammenfassung von gleichartigen Beziehungen (Relationships), R...Relationshipmenge = math. Relation zwischen n Ei : R⊆E1×...×E nd.h. R= {r=[ e1 ,... , en ]∣e1∈ E1 ... en ∈E n} Konzept 3: Wertemengen