Sie können sich theoretisch auf beiden Seiten einfinden, jedoch befinden Sie sich meist an dem Entitätstypen, der die größte Beteiligung hat. -> n-Seite
Jeder Entitätstyp wird in ein eigenes Tabelle abgebildet.
Funktionale Abhängigkeit bedeutet informell, ein Attribut (oder eine Kombination von Attributen) bestimmt die Werte eines anderen Attributs (oder Attributkombination).
Das Data Dictionary, auch Database Catalog genannt. Enthält Daten (Metadaten), welche den logischen und physischen Aufbau der Datenbank sowie die Konfiguration des Systems beschreiben
Sie werden immer automatisch angelegt, da sie notwendig für eine schnelle überprüfung der Entity- und referenziellen Integrität sind.
Eine Relation R des Relationenschemas R (A1, A2, ..., An) ist eine Menge von nTupeln.
Für eine Relation muss ein Prim.rschlüssel definiert sein. Keine Komponente des Primärschlüssels einer Basisrelation darf NULL enthalten.
Bei einer Domänen Integrität sind alle Attribute atomar.
Eine referenzielle Integrität in einer Datenbank gilt, wenn für jeden Fremdschlüsselwert (ungleich NULL), der dazugehörige Prim.rschlüssel existiert. Optionen:
ON DELETE ON ACTION: Kann nicht löschen
ON DELETE CASCADE: Löscht alles durch
ON DELETE SET NULL: Setzt Null
Da Fremdschlüssel eine Referenz auf den Prim.rschlüssel haben muss dieser einzigartig und stabil bleiben.
Durch zusammengesetzte Prim.rschlüssel müssen alle Werte der Attribute ausgegeben werden.
Durch einen Surrogat-Key.
Natürliche Schlüssel sind bei Änderungen problematisch -> Surrogatschlüssel sind stabil.
Da pro Attribut dieser vordefinierte Block gespeichert wird, so kann es sein das man immer nur drei Zeichen in ein Attribut eingibt, jedoch werden fünfundzwanzig Zeichen reserviert.
Ein Surrogat-Schlüssel ist ein künstlich erzeugter Primärschlüssel. Es handelt sich dabei um einen Primärschlüssel, welcher aus einem Attribut (Spalte) mit numerischem Datentyp besteht und mit einer fortlaufenden Nummer gefüllt wird.
Einfacher bzgl. Verwaltung (Mehrbenutzerbetrieb)
in SQL: ähnlich aber viele Varianten
INT UNSIGNED, TINYINT
FLOAT, DOUBLE
NUMBER, DECIMAL (rechnen exakt im Ggs. zu FLOAT)
CHAR, VARCHAR
DATE, TIME, TIMESTAMP
Optionale Attribute (bekannt aus ERD)
Es gibt viele Attribute, deren Angabe optional ist
Ausgezeichneter, typunabhängiger Wert NULL signalisiert das Nichtvorhandensein eines Attributwertes in einem relationalen Tupel
Bedeutung von NULL
NULL ≠ "" (leere Zeichenkette)
NULL ≠ 0 (numerische Null)
kann nicht mit anderen Werten verglichen werden
Structured (strukturierte)
Query (Abfrage)
Languge
Sprachbestandteile
DDL: Data Definition Language
DML: Data Manipulation Language
DCL: Data Control Language
Hinweis
Ohne NOT-NULL-Constraint sind NULL-Werte grundsätzlich erlaubt
Regel - 1
Entity Integrity
Für eine Relation muss ein Primärschlüssel definiert sein.
Keine Komponente des Primärschlüssels einer Basisrelation darf NULL enthalten.
Primärschlüssel: ausgezeichneter Schlüsselkandidat, unterstrichen Student(MatrikelNr, Name, ...)
Sekundärschlüssel: Begriff für weitere Schlüsselkandidaten
PRIMARY KEY bedeutet immer automatisch NOT NULL
Sekundärschlüssel (UNIQUE) dürfen NULL-Werte enthalten
Regel - 2
Domänen Integrität (Domain Integrity, Semantische Integrität)
Alle Attribute sind atomar (-> 1. Normalform).
Die Ausprägungen eines Attributes haben immer einen gemeinsamen, definierten Wertebereich.
Domänen sollten soweit wie möglich eingeschränkt werden!
Domänen-Integrität (Wertebereiche der Attribute)
Regel - 3
Beziehungen
Relationenmodell kennt nur Relationen Beziehungen werden über Relationen modelliert,
eine Beziehung zwischen zwei Tupeln (Objekten) kann ausschließlich über einen sog. Fremdschlüssel (Fremdschlüsselattribute) hergestellt werden
Definition: Fremdschlüssel (Foreign Key)
Ein Attribut F in einer Relation R heißt Fremdschlüssel, wenn es eine Relation S mit dem Primärschlüssel P gibt, so dass für jeden Wert von F in R einen Datensatz in S gibt, der diesen Wert als Primärschlüssel hat.
Anmerkung
Ein Fremdschlüssel ist ein Attribut, das eine Beziehung zum Primärschlüssel einer anderen Relation herstellt.
Fremdschlüssel und korrespondierender Primärschlüssel müssen den gleichen Wertebereich haben.
Da Primärschlüssel aus mehreren Attributen zusammengesetzt sein dürfen, können auch Fremdschlüssel zusammengesetzt sein.
Fremdschlüssel dürfen prinzipiell NULL sein ("Kann"- vs. "Muss"-Beziehungstypen).
Referenzielle Integrität (Referential Integrity)
Referenzielle Integrität in einer Datenbank gilt, wenn für jeden Fremdschlüsselwert (ungleich NULL), der dazugehörige Primärschlüsselwert existiert.
Definition: Surrogat-Schlüssel
Ein Surrogat-Schlüssel ist künstlich erzeugter Primärschlüssel, d.h. die Werte haben keine fachliche Bedeutung.
Einsatzzweck
Natürliche Schlüssel (Primärschlüssel mit Bedeutung) sind bei Änderungen problematisch -> Surrogatschlüssel sind stabil
Zusammengesetzte Primärschlüssel sind oft unhandlich, insbesondere bei Referenzierung in Fremdschlüsseln -> Surrogatschlüssel sind in der Regel einfache Integer-Werte
Automatische Generierung von Surrogat-Schlüsseln
Hinweise
AUTO_INCREMENT ist MySQL-spezifisch; andere DBMS verwenden andere Syntax
Beim Einfügen von Datensätzen darf für die entsprechende Spalte i.d.R. kein Wert angegeben werden!
Anforderungskatalog von Codd (1985) beschreibt, was ein RDBMS ausmacht
Grundregel: Ein relationales DBMS muß in der Lage sein, Datenbanken vollständig über seine relationalen Fähigkeiten zu verwalten.
Regel 1: Darstellung von Informationen
Alle Informationen in einer relationalen Datenbank werden nur auf eine Art repräsentiert: als Werte innerhalb von Zeilen (Datensätzen) in Tabellen (Relationen)
Regel 2: Garantierter Zugriff
Jeder Wert einer relationalen Datenbank muß durch eine Kombination von Tabellenname, Primärschlüssel und Spaltenname auffindbar sein.
Regel 3: Systematische Behandlung von NULL-Werten
Das DBMS behandelt NULL-Werte durchgängig gleich als unbekannte oder fehlende Daten und unterscheidet diese vom Wert der numerischen 0.
Regel 4: Data Dictionary / Database Catalog
Die Datenbank und ihre Inhalte werden in einem sogenannten Systemkatalog auf derselben logischen Ebene wie die Daten selbst - also in Tabellen - beschrieben. Demzufolge läßt sich der Katalog mit Hilfe der Datenbanksprache abfragen.
Regel 5: Vollständige Abfragesprache
Zu einem relationalen System gehört mindestens eine Abfragesprache mit einem vollständigen Befehlssatz für Datendefinition, Manipulation, Integritätsregeln, Autorisierung und Transaktionen.
In der Praxis: SQL
Regel 6: Aktualisierbare Sichten
Ein RDBMS muss Sichten, d.h. virtuelle Tabellen, unterstützen, um die externe Ebene nach ANSI/Sparc abzubilden.
In der Praxis: SQL CREATE VIEW
Regel 7: Mengenoperationen
Es werden nicht nur Operationen auf einzelnen Datensätzen unterstützt, sondern relationale Mengenoperationen, mit denen ganze Tabellen manipuliert werden können. In der Praxis: SQL
Regel 8: Physikalische Datenunabhängigkeit
Der logische Zugriff auf die Daten durch Anwendungen und Ad-hoc-Programme muß unabhängig von den physikalischen Zugriffsmethoden oder den Speicherstrukturen der Daten sein.
Regel 9: Logische Datenunabhängigkeit
Änderungen der Tabellenstrukturen haben nur nicht notwendiger Weise Änderungen der Anwendungen zur Folge.
Regel 10: Integritätsunabhängigkeit
Integritätsregeln müssen sich in der Datenbanksprache definieren lassen. Die Regeln müssen im Systemkatalog gespeichert werden. Es darf nicht möglich sein, die Regeln zu umgehen.
Regel 11: Verteilungsunabhängigkeit
Der logische Zugriff auf die Daten durch Anwendungen und Ad-hoc-Programme darf sich beim Übergang von einer nicht-verteilten zu einer verteilten Datenbank nicht ändern.
Regel 12: Nichtgefährdungsregel
Integritätsregeln, die über die Datenbanksprache definiert sind, dürfen sich nicht mit Hilfe von Low-Level-Sprachen umgehen lassen.
Last changed9 months ago