1. Einführung und Wiederholung Wiederholung 1. Einführung und Wiederholung Notwendige Vorkenntnisse: • • • • • • Elementare Datenbankkonzepte, Datenbankarchitektur Datenmodelle: Entity-Relationship-Modell, UML Relationales Modell: Relationen (Tabellen), Attribute, Schlüssel Datenbankentwurf: Integritätsbedingungen, Normalformen Datenbanksprachen: Relationale Algebra, SQL Transaktionen: ACID-Konzept Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 11 1. Einführung und Wiederholung Wiederholung Datenabstraktion/3-Ebenen-Architektur Physische Ebene. The unterste Ebene der Abstraktion beschreibt, wie die Daten gespeichert werden. Logische Ebene. Hier wird beschrieben, welche Daten in einer Datenbank gespeichert werden und welche Beziehungen zwischen den Daten bestehen. Sichtenebene. Anwendungsorientierte vereinfachte Sichten auf die logische Ebene Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 12 1. Einführung und Wiederholung Wiederholung ANSI/SPARC-Datenbankarchitektur view level view 1 physical level Tables, Attributes, Keys, Foreign Keys Query Processing logical level view N Data Abstraction . . . Views Indexes, Table Spaces, Segments Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 13 1. Einführung und Wiederholung Wiederholung Datenunabhängigkeit Physische Datenunabhängigkeit beschreibt die Möglichkeit, • Änderungen auf der physischen Ebene vornehmen zu können, • ohne Änderungen in Anwendungsprogrammen vornehmen zu müssen. Modifikationen auf der physischen Ebene sind z.B. notwendig, um die Performanz eines Datenbanksystems zu verbessern. Logische Datenunabhängigkeit beschreibt die Möglichkeit, • Änderungen auf der logischen Ebene vornehmen zu können, • ohne Änderungen in Anwendungsprogrammen vornehmen zu müssen. Solche Modifikationen sind z.B. notwendig, wenn die logische Beschreibung um zusätzliche Aspekte erweitert wird. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 14 1. Einführung und Wiederholung Wiederholung Entity-Relationship-Modell • Ein ER-Diagramm definiert die logische Struktur einer Datenbank in graphischer Form. • Eine Entität ist ein Gegenstand der realen Welt, der von anderen Gegenständen unterscheidbar ist. Im ER-Diagramm beschreibt man Arten von Entitäten (Rechteck). • Die Eigenshcaften der Arten von Entitäten werden in einer Datenbank durch eine Menge von Attributen beschrieben (Ellipse). • Zwischen Entitäten kann eine Beziehung bestehen (Raute). Auch Beziehungen können Attribute haben. • Kardinalitätsangaben geben die Anzahl an Entitäten an, zu der eine Entität in Beziehung stehen kann. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 15 1. Einführung und Wiederholung Wiederholung name customer account−id address customer−id mc 1 balance account depositor • Unterstrichene Attribute kennzeichnen Schlüsselattribute • Es existieren viele verschiedene Varianten von ER-Diagramm-Notationen. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 16 1. Einführung und Wiederholung Wiederholung Relationales Modell • Im relationalen Modell werden die Daten einer Datenbank und die Beziehungen zwischen den Daten durch eine Menge von Relationen (Tabellen) repräsentiert. • Jede Tabelle (Relationen) hat eine oder mehrere Spalten (Attribute), und jede Spalte hat einen eindeutigen Namen. • Ein Datenbankschema ist eine Menge von Relationenschemata, eine Datenbank eine Menge von Relationen. • Eine Zeile einer Tabelle wird als Tupel bezeichnet. Solch ein Tupel repräsentiert eine Entität oder stellt eine Beziehung zwischen Entitäten dar. • Ein Schlüssel ist eine Menge von Attributen, deren Werte Tupel in einer Relation eindeutig identifizieren. Jede Relation hat einen ausgezeichneten Primärschlüssel (primary key). • Beziehungen zwischen Tupeln werden durch Fremdschlüssel (foreign keys) repräsentiert. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 17 1. Einführung und Wiederholung Wiederholung customer-id customer name address 4711 4712 4713 Johnson, Bill Smith, Joseph Turner, Peter Palo Alto Stanford Carmel account-id 12345 34343 77777 account customer-id 4711 4712 4712 balance 500 700 900 Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 18 1. Einführung und Wiederholung Wiederholung Datenbankentwurf • Integritätsbedingung: funktionale Abhängigkeit Attribut b is funktional anhängig von Attribut a (a → b) in Relation r genau dann, wenn: ∀t1 , t2 ∈ r : t1 .a = t2.a ⇒ t1.b = t2 .b • 1. Normalform: flache Relationen, alle Attributwerte müssen atomar sein • 2. Normalform: Jedes Nichtschlüsselattribut ist voll funktional abhängig von jedem Schlüssel. • 3. Normalform: Es existiert kein Nichtschlüsselattribut, das von einem Schlüsselattribut transitiv abhängig ist. • Normalisierung: Datenbankentwurf, so dass – jede Relation in 3. Normalform ist, – alle funktionalen Abhängigkeiten erhalten bleiben und – der natürliche Verbund der Relationen verlustfrei ist. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 19 1. Einführung und Wiederholung Wiederholung Datenbankabfragen Operationen der relationalen Algebra ausgedrückt in SQL: • Projektion πAttribute : Name und Adresse von allen Kunden select name, address from customer • Selektion σBedingung : Welche Kunden leben in Stanford? select * from customer where address = ’Stanford’ Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 20 1. Einführung und Wiederholung Wiederholung • Verbund R ⊲⊳ S : Liste alle Kunden mit ihren Konten auf. select * from customer c, account a where c.customer_id = a.customer_id • SQL bieten weitere Funktionalitäten für Abfragen an: – subquery – exists, in, all, any – dynamic views – grouping – column aggregation – update/delete Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 21 1. Einführung und Wiederholung Wiederholung Transaktionen Eine Transaktion ist eine Folge von Datenbankoperationen, die eine einzelne logische Operation einer Datenbankanwendung ausführen. ACID-Prinzip für Transaktionen: Atomicity: Entweder müssen alle oder keine der Datenbankoperationen einer Transaktion ausgeführt werden. Consistency: Übergang von einem konsistenten in einen konsistenten Zustand. Isolation: Parallel laufende Transaktionen werden logisch serialisiert. Durability: Nach dem erfolgreichen Ende einer Transaktion muss der Zustand dauerhaft gespeichert sein. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 22 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Objektrelationale Datenbanksysteme • Weiterentwicklung relationaler Datenbanksysteme • unterstützen eine Reihe von neuen Konzepten, die ihren Ursprung in der Objektorientierung haben • Ziel: Datenbanktechnologie auf die Verwaltung beliebiger Arten von Daten ausdehnen Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 23 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Vorteile objektrelationaler Datenbanksysteme • vereinfachte Abbildung und Darstellung komplexer Objekte und komplexer Operationen: mehr Semantik in der Datenbank • Wiederverwendung auf Datenbankebene • Höherer Abstraktionsgrad, zentrale Verwaltung • strengere Typisierung • höhere Effizienz, z.B. durch angepasste Indexstrukturen Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 24 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Typische objektrelationale Konzepte • • • • • • Typkonstruktoren Benutzerdefinierte Datentypen Typhierarchien Erweiterte Tabelle Typisierte Tabellen und Tabellenhierarchien Datenbankerweiterungen Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 25 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Typkonstruktoren Konstruktion neuer Datentypen für Kollektionen auf Basis bestehender Datentypen, z.B. • • • • • Tupel Menge Multimenge Liste Array • Möglichkeit zur Verschachtelung der Typkonstruktoren Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 26 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Benutzerdefinierte Datentypen Erweiterung des Vorrats an bestehenden Datentypen; man unterscheidet: Distinct-Typen: neue Datentypen werden durch bestehende einfache Datentypen repräsentiert Ziel: Semantische unzulässige Vergleiche und Zuweisungen ausschließen Prinzip der strengen Typisierung Strukturierte Typen: Objekttyp, der Eigenschaften und Verhalten definiert, analog einer Klasse in der objektorientierten Programmierung: • Strukturierung, Kapselung • zustandsunabhängige Objektidentifikation • Vererbung, Typhierarchien • Substituierbarkeit Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 27 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Erweiterte Tabellen Aufweichung der ersten Normalform, Tupel-Attribute können nicht atomare Werte aufweisen: • • • • • Kollektionen: Mengen, Arrays, etc. strukturierte Werte Relationen Referenzen (Objektidentifikationen, OID) Large Objects (LOBs) Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 28 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Typisierte Tabellen und Tabellenhierarchien • Eine typisierte Tabelle wird auf Basis eines benutzerdefinierten strukturierten Typs definiert. • strukturierter Typ entspricht einer Klasse, die Tupel der typisierten Tabelle den Instanzen der Klasse • Typhierarchie überträgt sich auf Tabellenhierarchie, dort entsteht dann automatisch eine Teilmengenbeziehung zwischen den Tabellen. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 29 1. Einführung und Wiederholung Übersicht über objektrelationale Konzepte Datenbankerweiterungen • Semantik ist schön, aber eine Datenbank benötigt auch Effizienz. • Das DBMS weiß zunächst nicht, wie Operationen bei selbst definierten Typen für Abfragen effizient unterstützt werden können. • Hierfür bieten viele DBMS Erweiterungsmöglichkeiten an, z.B. die Integration spezieller Indextypen. Objektrelationale Datenbanksysteme — Hochschule Bonn-Rhein-Sieg, WS 2012/13 30