24 KiB
title | date | author |
---|---|---|
Datenbanksysteme | Wintersemester 20/21 | Robert Jeutter |
Was sind Datenbanken - Grundlegende Konzepte
Überblick
- Daten = logisch gruppierte Informationseinheiten
- Bank = Sicherheit vor Verlust, Dienstleistung für mehrere Kunden, (langfristige) Aufbewahrung
Ohne Datenbanken:
- jedes Anwendungssystem verwaltet seine eigenen Daten
- Daten sind (redundant) mehrfach gespeichert
- Probleme
- Verschwenden von Speicherplatz
- "vergessen" von Änderungen
- keine zentrale "genormte" Datenerhaltung
- größere Mengen von Daten nicht effizient verarbeitet
- mehrere Benutzer können nicht parallel auf den gleichen Daten arbeiten, ohne sich zu stören
- Anwendungsprogrammierer/Benutzer können Anwendungen nicht programmieren/benutzen ohne ... zu kennen (keine Datenunabhängigkeit)
- interne Dartstellung der Daten
- Speichermedien oder Rechner
- Datenschutz und Datensicherheit
Datenintegration durch Datenbanksystem
Anwendungen greifen über Datenbankmanagementsystem auf Datenbank zu.
Datenbankmanagementsystem (DBMS): Software zur Verwaltung von Datenbanken
Datenbank (DB): strukturierter, von DBMS verwalteter Datenbestand
Datenbanksystem (DBS) = DBMS + DB
Architekturen
die neun Codd'schen Regeln
- Integration: einheitliche, nichtredundante Datenverwaltung
- Operationen: Speichern, Suchen, Ändern
- Katalog: Zugriffe auf Datenbankbeschreibungen im Data Dictionary
- Benutzersichten
- Integritätssicherung: Korrektheit des Datenbankinhalts
- Datenschutz: Ausschluss unauthorisierter Zugriffe
- Transaktionen: mehrere DB-Operationen als Funktionseinheit
- Synchronisation: parallele Transaktionen koordinieren
- Datensicherung: Wiederherstellung von Daten nach Systemfehlern
Ziele:
- Trennung von Modellierungssicht und interner Speicherung
- Portierbarkeit
- Tuning vereinfachen
- standardisierte Schnittstellen
Schemata:
-
Konzeptuelles Schema (Ergebnis der Dateidefinition)
-
Internes Schema (Festlegung der Dateiorganisation und Zugriffspfade = Index)
-
Externes Schema (Ergebnis der Sichtdefinition)
-
Anwendungsprogramm (Ergebnis der Anwendungsprogrammierung)
-
Trennung Schema-Instanz
- Schema: Metadaten, Datenbeschreibung
- Instanz: Anwenderdaten, Datenbankzustand
Datenunabhängigkeit:
- Stabilität der Benutzerschnittstelle gegen Änderungen
- physisch: Änderung der Dateiorganisation und Zugriffspfade haben keinen Einfluss auf das konzeptuelle Schema
- logisch: Änderung am konzeptuellen und gewissen externen Schemata haben keine Auswirkungen auf andere externe Schemata und Anwendungsprogramme
Aufteilung der Funktionalitäten einer Anwendung
- Präsentation und Benutzerinteraktion
- Anwendungslogik („Business“-Logik)
- Datenmanagementfunktionen (Speichern, Anfragen, ...).
Architektur von Datenbankanwendungen typischerweise auf Basis des Client-Server-Modells (Server=Datenbanksystem).
3 Schichten Architektur (ANSI-SPARC-Architektur)
Klassifizierung der Komponenten
- Definitionskomponenten: Datendefinition, Dateiorganisation, Sichtdefinition
- Programmierkomponenten: DB-Programmierung mit eingebetteten DB-Operationen
- Benutzerkomponenten: Anwendungsprogramme, Anfrage und Update interaktiv
- Transformationskomponenten: Optimierer, Auswertung, Plattenzugriffssteuerung
- Data Dictionary (Datenwörterbuch): Aufnahme der Daten aus Definitionskomponenten, Versorgung der anderen Komponenten
5 Schichten Architektur
Verfeinerung der Transformation
- Datensystem: Übersetzung, Zugriffspfadwahl
- Zugriffssystem: Logische Zugriffspfade, Schemakatalog, Sortierung, Transaktionsverwaltung
- Speichersystem Speicherungsstrukturen, Zugriffspfadverwaltung, Sperrverwaltung, Logging, Recovery
- Pufferverwaltung: Systempufferverwaltung, Seitenersetzung, Seitenzuordnung
- Betriebssystem: Externspeicherverwaltung, Speicherzuordnung
Einsatzgebiete
- Klassische Einsatzgebiete:
- viele Objekte (15000 Bücher, 300 Benutzer, 100 Ausleihvorgänge pro Woche, ...)
- wenige Objekttypen (BUCH, BENUTZER, AUSLEIHUNG)
- etwa Buchhaltungssysteme, Auftragserfassungssysteme, Bibliothekssysteme, ...
- Aktuelle Anwendungen: E-Commerce, entscheidungsunterstützende Systeme (Data Warehouses, OLAP), NASA’s Earth Observation System (Petabyte-Datenbanken), Data Mining
Datenbankgrößen:
- eBay Data Warehouse: 10PB
- Teradata DBMS, 72 Knoten, 10.000 Nutzer,
- mehrere Millionen Anfragen/Tag
- WalMart Data Warehouse: 2,5PB
- Teradata DBMS, NCR MPP-Hardware;
- Produktinfos (Verkäufe etc.) von 2.900 Märkten;
- 50.000 Anfragen/Woche
- Facebook: 400TB
- x.000 MySQL-Server
- Hadoop/Hive, 610 Knoten, 15 TB/Tag
- US Library of Congress 10-20TB
- nicht digitalisiert
Historisches
-
Wissensbanksysteme
- Daten in Tabellenstrukturen
- Stark deklarative DML, integrierte Datenbankprogrammiersprache
-
Objektorientierte Datenbanksysteme
- Daten in komplexeren Objektstrukturen (Trennung Objekt und seine Daten)
- Deklarative oder navigierende DML
- Oft integrierte Datenbankprogrammiersprache
- Oft keine vollständige Ebenentrennung
-
Neue Hardwarearchitekturen
- Multicore-Prozessoren, Hauptspeicher im TB-Bereich: In-Memory-Datenbanksysteme (z.B. SAP HANA)
-
Unterstützung für spezielle Anwendungen
- Cloud-Datenbanken: Hosting von Datenbanken, Skalierbare Datenmanagementlösungen (Amazon RDS, Microsoft Azure) • Datenstromverarbeitung: Online-Verarbeitung von Live-Daten, z.B. Börseninfos, Sensordaten, RFID-Daten, ...(StreamBase, MS StreamInsight, IBM Infosphere Streams)
- Big Data: Umgang mit Datenmengen im PB-Bereich durch hochskalierbare, parallele Verarbeitung, Datenanalyse (Hadoop, Hive, Google Spanner & F1, ...)
-
NoSQL-Datenbanken („Not only SQL“):
- nicht-relationale Datenbanken, flexibles Schema (dokumentenzentriert)
- „leichtgewichtig“ durch Weglassen von SQL-Funktionalitäten wie Transaktionen, mächtige deklarative Anfragesprachen mit Verbunden etc.
- Beispiele: CouchDB, MongoDB, Cassandra, ...
Relationale Datenbanken - Daten als Tabellen
Relationen für tabellarische Daten
Konzeptuell: Datenbank = Menge von Tabellen (= Relationen)
- „Tabellenkopf“: Relationenschema
- Eine Zeile der Tabelle: Tupel; Menge aller Einträge: Relation
- Eine Spaltenüberschrift: Attribut
- Ein Eintrag: Attributwert
Integritätsbedingungen: Schlüssel
- Attribute einer Spalte identifizieren eindeutig gespeicherte Tupel: Schlüsseleigenschaft
- auch Attributkombinationen können Schlüssel sein!
- Schlüssel können durch Unterstreichen gekennzeichnet werden
- Schlüssel einer Tabelle können in einer anderen (oder derselben!) Tabelle als eindeutige Verweise genutzt werden:
- Fremdschlüssel, referenzielle Integrität
- ein Fremdschlüssel ist ein Schlüssel in einer „fremden“ Tabelle
SQL-Datendefinition
CREATE table
Wirkung dieses Kommandos ist sowohl
- die Ablage des Relationenschemas im Data Dictionary, als auch
- die Vorbereitung einer „leeren Basisrelation“ in der Datenbank
DROP table
komplettes Löschen einer Tabelle (Inhalt und Eintrag im Data Dictionary)
Mögliche Wertebereiche in SQL
- integer (oder auch integer4, int),
- smallint (oder auch integer2),
- float(p) (oder auch kurz float),
- decimal(p,q) und numeric(p,q) mit jeweils q Nachkommastellen,
- character(n) (oder kurz char(n), bei n = 1 auch char) für Zeichenketten (Strings) fester Länge n,
- character varying(n) (oder kurz varchar(n) für Strings variabler Länge bis zur Maximallänge n,
- bit(n) oder bit varying(n) analog für Bitfolgen, und
- date, time bzw. datetime für Datums-, Zeit- und kombinierte Datums-Zeit-Angaben
Beispiel:
create table WEINE (
WeinID int,
Name varchar(20) not null,
Farbe varchar(10),
Jahrgang int,
Weingut varchar(20),
primary key(WeinID),
foreign key(Weingut) references ERZEUGER(Weingut))
- primary key kennzeichnet Spalte als Schlüsselattribut
- foreign key kennzeichnet Spalte als Fremdschlüssel
- not null schließt in bestimmten Spalten Nullwerte als Attributwerte aus
- null repräsentiert die Bedeutung „Wert unbekannt“, „Wert nicht anwendbar“ oder „Wert existiert nicht“, gehört aber zu keinem Wertebereich
- null kann in allen Spalten auftauchen, außer in Schlüsselattributen und den mit not null gekennzeichneten
Grundoperationen: Die Relationenalgebra
-
Anfrageoperationen auf Tabellen
- Basisoperationen auf Tabellen, die die Berechnung von neuen Ergebnistabellen aus gespeicherten Datenbanktabellen erlauben
- Operationen werden zur sogenannten Relationenalgebra zusammengefasst
- Mathematik: Algebra ist definiert durch Wertebereich sowie darauf definierten Operationen
- für Datenbankanfragen entsprechen die Inhalte der Datenbank den Werten, Operationen sind dagegen Funktionen zum Berechnen der Anfrageergebnisse
- Anfrageoperationen sind beliebig kombinierbar und bilden eine Algebra zum „Rechnen mit Tabellen“ – die Relationenalgebra
-
Selektion
\sigma
: Auswahl von Zeilen einer Tabelle anhand eines Selektionsprädikats -
Projektion
\pi
: Auswahl von Spalten durch Angabe einer Attributliste- Die Projektion entfernt doppelte Tupel
-
Verbund
\bowtie
(engl. join): verknüpft Tabellen über gleichbenannte Spalten, indem er jeweils zwei Tupel verschmilzt, falls sie dort gleiche Werte aufweisen- Tupel, die keinen Partner finden (dangling tuples), werden eliminiert
-
Umbenennung
\beta
: Anpassung von Attributnamen mittels Umbenennung -
Vereinigung
r_1 \cup r_2
von zwei Relationenr_1
undr_2
:- Gesamtheit der beiden Tupelmengen
- Attributmengen beider Relationen müssen identisch sein
-
Differenz
r_1 − r_2
eliminiert die Tupel aus der ersten Relation, die auch in der zweiten Relation vorkommen -
Durchschnitt
r_1 \cap r_2
: ergibt die Tupel, die in beiden Relationen gemeinsam vorkommen
SQL als Anfragesprache
SELECT farbe FROM weine WHERE Jahrgang = 2002
- SQL hat Multimengensemantik — Duplikate in Tabellen werden in SQL nicht automatisch unterdrückt!
- Mengensemantik durch distinct
- Verknüpfung von Tabellen
- Kreuzprodukt:
select * from Weine, Erzeuger
- Verbund:
select * from Weine natural join Erzeuger
- Verbund mit Bedingung:
select * from Weine, Erzeuger where Weine.Weingut = Erzeuger.Weingut
- Kreuzprodukt:
- Kombination von Bedingungen
- Vereinigung in SQL explizit mit union
Änderungsoperationen in SQL
- insert: Einfügen eines oder mehrerer Tupel in eine Basisrelation oder Sicht
INSERT INTO table (attribut) VALUE (ausdruck)
- optionale Attributliste ermöglicht das Einfügen von unvollständigen Tupeln
- nicht alle Attribute angegeben ⇝ Wert des fehlenden Attribut Land wird null
- update: Ändern von einem oder mehreren Tupel in einer Basisrelation oder Sicht
UPDATE relation SET attribut=ausdruck
- delete: Löschen eines oder mehrerer Tupel aus einer Basisrelation oder Sicht
DELETE FROM table WHERE id=123
- Löschoperationen können zur Verletzung von Integritätsbedingungen führen!
Lokale und globale Integritätsbedingungen müssen bei Änderungsoperationen automatisch vom System überprüft werden
Datenbankentwurf im ER-Modell
Datenbankmodelle
Datenbankmodell: Ein Datenbankmodell ist ein System von Konzepten zur Beschreibung von Datenbanken. Es legt Syntax und Semantik von Datenbankbeschreibungen für ein Datenbanksystem fest.
Datenbankbeschreibungen = Datenbankschemata
- statische Eigenschaften
- Objekte
- Beziehungen
- inklusive der Standard-Datentypen, die Daten über die Beziehungen und Objekte darstellen können,
- dynamische Eigenschaften wie
- Operationen
- Beziehungen zwischen Operationen,
- Integritätsbedingungen an
- Objekte
- Operationen
Datenbankmodelle im Überblick
- HM: hierarchisches Modell, NWM: Netzwerkmodell, RM: Relationenmodell
- NF 2 : Modell der geschachtelten (Non-First-Normal-Form = NF 2 ) Relationen, eNF 2 : erweitertes NF 2 -Modell
- ER: Entity-Relationship-Modell, SDM: semantische Datenmodelle
- OODM / C++: objektorientierte Datenmodelle auf Basis objektorientierter Programmiersprachen wie C++,
- OEM: objektorientierte Entwurfsmodelle (etwa UML),
- ORDM: objektrelationale Datenmodelle
ER Modell
- Entity: Objekt der realen oder der Vorstellungswelt, über das Informationen zu speichern sind, z.B. Produkte (Wein, Katalog), Winzer oder Kritiker; aber auch Informationen über Ereignisse, wie z.B. Bestellungen
- Relationship: beschreibt eine Beziehung zwischen Entities, z.B. ein Kunde bestellt einen Wein oder ein Wein wird von einem Winzer angeboten
- Attribut: repräsentiert eine Eigenschaft von Entities oder Beziehungen, z.B. Name eines Kunden, Farbe eines Weines oder Datum einer Bestellung
- Attribute modellieren Eigenschaften von Entities oder auch Beziehungen
- alle Entities eines Entity-Typs haben dieselben Arten von Eigenschaften; Attribute werden somit für Entity-Typen deklariert
- Werte: primitive Datenelemente, die direkt darstellbar sind
- Wertemengen sind beschrieben durch Datentypen, die neben einer Wertemenge auch die Grundoperationen auf diesen Werten charakterisieren
- ER-Modell: vorgegebene Standard-Datentypen, etwa die ganzen Zahlen int, die Zeichenketten string, Datumswerte date etc.
- jeder Datentyp stellt Wertebereich mit Operationen und Prädikaten dar
- Entities sind die in einer Datenbank zu repräsentierenden Informationseinheiten
- im Gegensatz zu Werten nicht direkt darstellbar, sondern nur über ihre Eigenschaften beobachtbar
- Entities sind eingeteilt in Entity-Typen, etwa
E_1 , E_2,...
- Schlüsselattribute: Teilmenge der gesamten Attribute eines Entity-Typs
E(A_1,... , A_m)
- in jedem Datenbankzustand identifizieren die aktuellen Werte der Schlüsselattribute eindeutig Instanzen des Entity-Typs E
- bei mehreren möglichen Schlüsselkandidaten: Auswahl eines Primärschlüssels
- Beziehungstypen: Beziehungen zwischen Entities werden zu Beziehungstypen zusammengefasst
- Beziehungen können ebenfalls Attribute besitzen
Merkmale von Beziehungen
-
Stelligkeit oder Grad:
- Anzahl der beteiligten Entity-Typen
- häufig: binär
- Beispiel: Lieferant liefert Produkt
-
Kardinalität oder Funktionalität:
- Anzahl der eingehenden Instanzen eines Entity-Typs
- Formen: 1:1, 1:n, m:n
- stellt Integritätsbedingung dar
- Beispiel: maximal 5 Produkte pro Bestellung
-
1:1 Beziehung
- jedem Entity
e_1
vom Entity-TypE_1
ist maximal ein Entitye_2
ausE_2
zugeordnet und umgekehrt - Bsp: Prospekt beschreibt Produkt
- jedem Entity
-
1:N Beziehung
- jedem Entity
e_1
ausE_1
sind beliebig viele EntitiesE_2
zugeordnet, aber zu jedem Entitye_2
gibt es maximal eine_1
ausE_1
- Bsp: Lieferant liefert Produkte, Mutter hat Kinder
- jedem Entity
-
N:1 Beziehung
- invers zu 1:N, auf funktionale Beziehung
-
M:N Bezeihung
- keine Restriktionen
- Bsp: Bestellung umfasst Produkte
[min,max]-Notation
- schränkt die möglichen Teilnahmen von Instanzen der beteiligten Entity-Typen an der Beziehung ein, indem ein minimaler und ein maximaler Wert vorgegeben wird
- Spezielle Wertangabe für
max_i
ist ∗
Kardinalitätsangaben
- [0, ∗] legt keine Einschränkung fest (default)
R(E_1 [0, 1], E_2 )
entspricht einer (partiellen) funktionalen BeziehungR : E_1 \rightarrow E_2
, da jede Instanz ausE_1
maximal einer Instanz ausE_2
zugeordnet ist- totale funktionale Beziehung wird durch
R(E_1 [1, 1], E_2 )
modelliert - Beispiele:
- partielle funktionale Beziehung:
lagert_in(Produkt[0,1],Fach[0,3])
- totale funktionale Beziehung:
liefert(Lieferant[0,*],Produkt[1,1])
- partielle funktionale Beziehung:
Weitere Konzepte im ER Modell
- abhängiger Entity-Typ: Identifikation über funktionale Beziehungen (Bsp x "gehört zu" y)
- Spezialisierungs-/Generalisierungsbeziehung oder auch IST-Beziehung
- E1 IST E2
- entspricht semantisch einer injektiven funktionalen Beziehung
- Attribute des Entity-Typs E2 treffen auch auf E1 zu: "vererbte" Attribute
- nicht nur Atrributsdeklarationen vererben sich, sondern auch jeweils die aktuellen Werte für eine Instanz
- Kardinalitätsangabe immer:
IST(E_1[1,1], E_2[0,1])
- Jede Instanz von E1 nimmt genau einmal an der Ist-Beziehung teil, während Instanzen des Obertyps E2 nicht teilnehmen müssen
Die Konzepte im Überblick:
Begriff | Informale Bedeutung |
---|---|
Entity | zu repräsentierende Informationseinheit |
Entity Typ | Gruppierung von Entitys mit gleichen Eigenschaften |
Beziehungstyp | Gruppierung von Beziehungen zwischen Entitys |
Attribut | datenwertige Eigenschaft eines Entitys oder einer Beziehung |
Schlüssel | identifizierende Eigenschaft von Entitys |
Kardinalitäten | Einschränkung von Beziehungstypen bezüglich der mehrfachen Teilnahme von Entitys an der Beziehung |
Stelligkeit | Anzahl der an einem Beziehungstyp beteiligten Entity Typen |
funktionale Beziehungen | Beziehungstyp mit Funktionseigenschaften |
abhängige Entitys | Entitys, die nur abhängig von anderen Entitys existieren können |
IST Beziehung | Spezialisierung von Entity Typen |
Optionalität | Attribute oder Funktionale Beziehungen als partielle Funktionen |
Relationaler DB-Entwurf
Phasen des Datenbankentwurfs
- Datenerhaltung für mehrere Anwendungssysteme und mehrere Jahre
- Anforderungen an Entwurf:
- Anwendungsdaten jeder Anwendung sollen aus Daten der Datenbank ableitbar sein (mögl effizient)
- nur "vernünftige" Daten sollen gespeichert werden
- nicht-redundante Speicherung
Phasenmodell
Anforderungsanalyse \leftrightarrow
Konzeptioneller Entwurf \leftrightarrow
Verteilungsentwurf \leftrightarrow
Logischer Entwurf \leftrightarrow
Datendefinition \leftrightarrow
Physischer Entwurf \leftrightarrow
Implementierung & Wartung
Anforderungsanalyse
- Vorgehensweise: Sammeln des Informationsbedarfs in den Fachabteilungen
- Ergebnis:
- informale Beschreibung des Fachproblems (Texte, Tabellen, Formblätter,...)
- Trennen der Informationen über Daten (Datenanalyse) von den Informationen über Funktionen (Funktionsanalyse)
- "Klassischer" Entwurf: nur Datenanalyse und Folgeschritte
- Funktionsentwurf: siehe Methoden des Software Engineering
Konzeptioneller Entwurf
- erste Formale Beschreibung des Fachproblems
- Sprachmittel: semantisches Datenmodell
- Vorgehensweise:
- Modellierung von Sichen z.B. für verschiedene Fachabteilungen
- Analyse der vorliegenden Sichten in Bezug auf Konflikte
- Integration der Sichten in ein Gesamtschema
- Phasen:
- Sichtentwurf
- Sichtanalyse
- Sichtintegration
- Ergebnis: konzeptionelles Gesamtschema (z.B. ER Schema)
weiteres Vorgehen beim Entwurf
- ER-Modellierung von verschiedenen Sichten auf Gesamtinformation, z.B. für verschiedene Fachabteilungen eines Unternehmens -> konzeptueller Entwurf
- Verteilungsentwurf bei verteilter Speicherung
- Abbildung auf konkretes Implementierungsmodell -> logischer Entwurf
- Datendefinition, Implementierung und Wartung -> physischer Entwurf
Sichtintegration
- Analyse der vorliegenden Sichten in Bezug auf Konflikte
- Integration der Sichten in ein Gesamtschema
Integrationskonflikte
- Namenskonflikte: Homonyme/Synonyme
- Typkonflikte: verschiedene Strukturen für das gleiche Element
- Wertebereichskonflikte: verschiedene Wertebereiche für ein Element
- Bedingungskonflikte: z.B. verschiedene Schlüssel für ein Element
- Strukturkonflikte: gleicher Sachverhalt durch unterschiedliche Konstrukte ausgedrückt
Verteilungsentwurf
- sollen Daten auf mehreren Rechnern verteilt vorliegen, muss Art und Weise der verteilten Speicherung festgelegt werden
- horizontale Verteilung z.B. Kunden 1-1000 und Kunden 10001-20000
- vertikale Verteilung z.B. Adresse in DB1, Konto in DB2
Logischer Entwurf
- Sprachmittel: Datenmodell des ausgewählten "Realisierungs"DBMS
- Vorgehensweise
- (automatische) Transformation des konzeptionellen Schemas z.B. ER -> relationales Modell
- Verbesserung des relationalen Schemas anhand von Gütekriterien
- Ergebnis: logisches Schema
Datendefinition
- Umsetzung des logischen Schemas in ein konkretes Schema
- Sprachmittel: DDL und DML eines DBMS
- Datenbankdeklaration in der DDL des DBMS
- Realisierung der Integritätssicherung
- Definition der Benutzersichten
Physischer Entwurf
- Ergänzen des physischen Entwurfs um Zugriffsunterstützung bzgl Effizienzverbesserung, z.B. Definition von Indexen
- Index:
- Zugriffspfad: Datenstruktur für zusätzlichen, schlüsselbasierten Zugriff auf Tupel
- meist als B*-Baum realisiert
- Sprachmittel: Speicherstruktursprache SSL
Indexe in SQL, z.B.: create index WeinIdx on WEINE (Name)
Notwendigkeit für Zugriffspfade:
- Beispiel: Tabelle mit 100GB Daten, Festplattentransferrate ca 50MB/s
- Operation: Suchen eines Tupels (Selektion)
- Implementierung: sequentielles Durchsuchen
- Aufwand: 102.500/50 = 2048 sec ~ 34 Minuten
Implementierung & Wartung
- Wartung
- weitere Optimierung der physischen Ebene
- Anpassung an neue Anforderungen und Systemplattformen
- Portierung auf neue Datenbankmanagementsysteme
- etc
Kapazitätserhaltende Abbildungen
Umsetzung des konzeptionellen Schemas
- Umsetzung auf logisches Schema
- Erhaltung der Informationskapazität
- Kapazitätserhöhende Abbildung: Abbildung auf R mit genau einem Schlüssel K ( K={{A},{B}} )
- Kapazitätsvermindernde Abbildung: Relationsschema mit einem Schlüssel
- Kapazitätserhaltende Abbildung: kapazitätserhaltend mit Schlüssel beider Entity Typen im Relationsschema als neuer Schlüssel
ER-auf-RM Abbildung
ER Abbildung auf Relationen
- Entity-Typen und Beziehungstypen: jeweils auf Relationenschemata
- Attribute: Attribute des Relationenschemas, Schlüssel werden übernommen
- Kardinalitäten der Beziehungen: durch Wahl der Schlüssel bei den zugehörigen Relationenschemata ausgedrückt
- in einigen Fällen: Verschmelzen der Relationenschemata von Entity- und Beziehungstypen
- zwischen den verbleibenden Relationenschemata diverse Fremdschlüsselbedingungen einführen
Abbildung von Beziehungstypen
- neues Relationenschema mit allen Attributen des Beziehungstyps, zusätzlich Übernahme aller Primärschlüssel der beteiligten Entity-Typen
- Festlegung der Schlüssel:
- m:n-Beziehung: beide Primärschlüssel zusammen werden Schlüssel im neuen Relationenschema
- 1:n-Beziehung: Primärschlüssel der n-Seite (bei der funktionalen Notation die Seite ohne Pfeilspitze) wird Schlüssel im neuen Relationenschema
- 1:1-Beziehung: beide Primärschlüssel werden je ein Schlüssel im neuen Relationenschema, der Primärschlüssel wird dann aus diesen Schlüsseln gewählt
- optionale Beziehungen ([0,1] oder [0,n]) werden nicht verschmolzen
- bei Kardinalitäten [1,1] oder [1,n] (zwingende Beziehungen) Verschmelzung möglich:
- 1:n-Beziehung: das Entity-Relationenschema der n-Seite kann in das Relationenschema der Beziehung integriert werden
- 1:1-Beziehung: beide Entity-Relationenschemata können in das Relationenschema der Beziehung integriert werden
Übersicht über Transformationen
ER Konzept | wird abgebildet auf relationales Konzept |
---|---|
Entity Typ E_i |
Relationsenschema R_i |
Attribute von E_i |
Attribute von R_i |
Primärschlüssel P_i |
Primärschlüssel P_i |
Beziehungstyp | Relationenschema, Attribute P_1,P_2 |
dessen Attribute | weitere Attribute |
1:n | P_2 wird Primärschlüssel der Beziehung |
1:1 | P_1 und P_2 werden Schlüssel der Beziehung |
m:n | P_1 \cup P_2 wird Primärschlüssel der Beziehung |
IST Beziehung | R_1 erhält zusätzlichen Schlüssel P_2 |