Top Up Home HTML2PDF Relationenmodell

Tabelle = Tabellenstruktur + Tabelleninhalt


Tabelle mit dem Titel "Student". Sie enthält fünf Spalten und vier 
Zeilen, einschließlich der Kopfzeile. Von links nach rechts lauten die 
Spaltenüberschriften: SID, MATRNR, NAME, VORNAME, IMMATDATUM, 
EXMATDATUM. In der ersten Datenzeile stehen die Werte: 1, 500123, May, 
Phillip, 01.04.2016, 30.09.2023. In der zweiten Datenzeile stehen die 
Werte: 2, 503456, Özedem, Ali, 01.04.2023. In der dritten Datenzeile 
stehen die Werte: 3, 505789, Phan, Thi Mai Nhi, 01.10.2023.

Tabellenstruktur

  • Tabellenname (grün)
  • Spaltennamen (blaugrau)
  • Primärschlüssel (unterstrichen)

Tabelleninhalt

  • Datensätze (hellgrau)

Datentypen (beispielhaft)

Typname Wertebereich Beispiele
integer ganze Zahlen -100, 200
decimal(5,3) Festkommazahlen 10,156
float Gleitkommazahlen 10,154789
varchar(10) Zeichenketten variabler Länge 'Hallo'
date Datum 1.1.2007 14:30:12

Fremdschlüssel


Gleiche Tabelle mit dem Titel "Student", mit einer Änderung. Es gibt 
sechs Spalten mit den Überschriften "SID", "MATRNR", "NAME", "VORNAME", 
"IMMADATUM", "EXMADATUM" und "SG". Drei Zeilen sind gefüllt mit Daten: 
1. Zeile: SID 1, MATRNR 500123, NAME May, VORNAME Phillip, IMMADATUM 
01.04.2016, EXMADATUM 30.09.2023, SG 1. 2. Zeile: SID 2, MATRNR 503456, 
NAME Özdem, VORNAME Ali, IMMADATUM 01.04.2023, EXMADATUM leer, SG 1. Die 
Zelle für EXMADATUM ist leer und die SG-Zelle ist mit einer blauen 
Füllung und der Zahl 1 markiert. 3. Zeile: SID 3, MATRNR 505789, NAME 
Phan, VORNAME Thi Mai Nhi, IMMADATUM 01.10.2023, EXMADATUM leer, SG 2. 
Die Zelle für EXMADATUM ist leer und die SG-Zelle ist mit einer 
orangefarbenen Füllung und der Zahl 2 markiert.

Die Abbildung zeigt eine Tabelle mit dem Titel "Studiengang". Die 
Tabelle besteht aus drei Spalten und drei Zeilen. Die Kopfzeile der 
Tabelle enthält die Spaltentitel "SGID", "NAME" und "STANDORT". In der 
ersten Zeile unter der Kopfzeile steht in der ersten Spalte die Zahl 
"1", in der zweiten Spalte das Kürzel "WI" und in der dritten Spalte das 
Kürzel "TA". In der zweiten Zeile unter der Kopfzeile steht in der 
ersten Spalte die Zahl "2", in der zweiten Spalte das Kürzel "AI" und in 
der dritten Spalte das Kürzel "WH". Die Zellen mit den SGID-Werten "1" 
und "2" sind blau hinterlegt, während die Zellen mit den Namen "WI" und 
"AI" orange hinterlegt sind.
  • Spalte SG enthält Zeiger auf Studiengang-Datensätze
  • Fremd- und Primärschlüssel müssen gleichen Datentyp haben
  • Fremdschlüssel müssen nicht eindeutig sein
  • Werte in der Fremdschlüsselspalte müssen in der Zieltabelle als Primärschlüssel existieren
  • Repräsentieren eine 1-zu-n-Beziehung
    • Studierende 1 und 2 studieren WI
    • Studierende 3 studiert AI

Integritätsbedingungen

  • Primärschlüssel / Unique Constraint
    • Eindeutigkeit der Spaltenwerte
    • Identifikation von Datensätzen
  • Fremdschlüssel
    • Beziehungen zwischen Tabellen
    • Referenzielle Integrität, Zielwert muss existieren
  • Check-Constraint
    • Einschränkungen einer Spalte
    • Anzahl Plätze in einer Veranstaltung darf nicht negativ sein
  • Not-Null-Constraint
    • Spalte muss Werte enthalten

Gründe für Nullwerte

  • Information wird nicht bereit gestellt
    • Private Telefonnummer
  • Information noch nicht vorhanden
    • Exmatrikulationsdatum existiert erst nach Exmatrikulation
  • Spalte macht für Datensatz keinen Sinn
    • Personentabelle mit Daten von Studies und Profs
    • Spalte MatrNr macht nur für Studies Sinn

Strukturdarstellung

  • Struktureller Überblick über Tabellen und Beziehungen
  • Keine Tabelleninhalte
  • Keine Detailinformationen
  • Kompakt und übersichtlich

Das Bild zeigt ein einfaches Entity-Relationship-Diagramm (ERD) mit zwei 
Entitäten. Die linke Entität ist beschriftet mit "STUDENT" und enthält 
die Attribute SID, MATRNR, NAME, VORNAME, IMMATDATUM, EXMATDATUM und SG 
(FK). Die rechte Entität ist beschriftet mit "STUDIENGANG" und enthält 
die Attribute SGID, NAME und STANDORT. Zwischen den beiden Entitäten 
besteht eine Beziehung, die mit "SG=SGID" gekennzeichnet ist, was darauf 
hinweist, dass das Attribut SG in der Entität STUDENT als Fremdschlüssel 
(FK) auf das Attribut SGID in der Entität STUDIENGANG verweist.
  • Pfeil gibt Quelle und Ziel des Fremdschlüssels an
  • Quell- und Zielspalte stehen beim Pfeil
  • Kann weggelassen werden, falls gleiche Namen

Werkzeugdarstellung

Kompakte Form (ohne Datentypen)


    Die Abbildung zeigt ein Entity-Relationship-Diagramm (ERD) mit zwei 
    Entitäten: "STUDENT" und "STUDIENGANG". Zwischen den Entitäten besteht 
    eine Beziehung, die durch eine Linie mit einem Pfeil an einem Ende 
    dargestellt wird, der auf "STUDIENGANG" zeigt. Die Entität "STUDENT" ist 
    in einem gelben Rechteck dargestellt und enthält folgende Attribute: ein 
    Primärschlüsselattribut "SID", das mit einem P gekennzeichnet ist, 
    gefolgt von "MATNR", "NAME", "VORNAME", "IMMATDATUM", "EXMADATUM" und 
    ein Fremdschlüsselattribut "SG", das mit einem "F" gekennzeichnet ist. 
    Die Entität "STUDIENGANG" ist in einem blauen Rechteck dargestellt und 
    enthält folgende Attribute: ein Primärschlüsselattribut "SGID", gefolgt 
    von "NAME" und "STANDORT". Die Beziehung zwischen den beiden Entitäten 
    wird durch eine Linie mit einem Pfeil dargestellt, der von "STUDENT" zu 
    "STUDIENGANG" zeigt, was darauf hindeutet, dass "STUDENT" in einem 
    "STUDIENGANG" eingeschrieben ist.

Darstellung mit Datentypen


    Die Abbildung zeigt ein Entity-Relationship-Diagramm mit zwei Entitäten: 
    "STUDENT" und "STUDIENGANG". Die Entität "STUDENT" hat die Attribute 
    "SID" (INTEGER), "MATNR" (VARCHAR2(10)), "NAME" (VARCHAR2(200)), 
    "VORNAME" (VARCHAR2(200)), "IMMADATUM" (DATE), "EXMDATUM" (DATE) und ist 
    mit einem Primärschlüssel "P" bei "SID" und einem Fremdschlüssel "F" bei 
    "SG" gekennzeichnet. Die Entität "STUDIENGANG" hat die Attribute "SGID" 
    (INTEGER), "NAME" (VARCHAR2(200)) und "STANDORT" (VARCHAR2(50)) und ist 
    mit einem Primärschlüssel "P" bei "SGID" gekennzeichnet. Zwischen 
    "STUDENT" und "STUDIENGANG" besteht eine Beziehung, die auf Studiengang 
    zeigt.
  • Werkzeug: sqldeveloper
  • Andere Werkzeuge liefern andere Darstellungen
  • Fremdschlüssel in Krähenfuß-Notation
  • Krähenfuß auf der N-Seite
  • Pfeilspitze auf 1-Seite
  • Primärschlüssel: P
  • Fremdschlüssel: F
  • Not Null: Sternchen (rot)

Code-Erzeugung


Gleiche Abbildung, nur mit Datentypen. Datentypen: siehe folgender SQL-Code.
CREATE TABLE ucla.student (
  sid INTEGER NOT NULL,
  matrnr VARCHAR2(10) NOT NULL,
  name VARCHAR2(200) NOT NULL,
  vorname VARCHAR2(200) NOT NULL,
  immadatum DATE NOT NULL,
  exmadatum DATE,
  sg INTEGER NOT NULL
);

ALTER TABLE ucla.student 
  ADD CONSTRAINT pk_student PRIMARY KEY ( sid );
CREATE TABLE ucla.studiengang (
  sgid INTEGER NOT NULL,
  name VARCHAR2(200) NOT NULL,
  standort VARCHAR2(50) NOT NULL
);

ALTER TABLE ucla.studiengang 
  ADD CONSTRAINT pk_studiengang 
  PRIMARY KEY ( sgid );

Fremdschlüsselvariante 1


Gleiche Abbildungg.
CREATE TABLE ucla.student (
  ...
  sg INTEGER NOT NULL
);
CREATE TABLE ucla.studiengang (
      sgid INTEGER NOT NULL,
      ...
);
ALTER TABLE ucla.student 
  ADD CONSTRAINT fk_student_sg FOREIGN KEY ( sg ) REFERENCES ucla.studiengang ( sgid );

Fremdschlüsselvariante 2


Gleiche Abbildung, aber zwischen "STUDENT" und "STUDIENGANG" besteht 
eine Beziehung, die durch eine gestrichelte Linie mit einer Raute am 
Ende dargestellt wird, was auf eine n-zu-1-Beziehung hinweist. Ein 
STUDENT kann hier einen oder keinen STUDIENGANG haben.
CREATE TABLE ucla.student (
  ...
  sg INTEGER
);
CREATE TABLE ucla.studiengang (
      sgid INTEGER NOT NULL,
      ...
);
ALTER TABLE ucla.student 
  ADD CONSTRAINT fk_student_sg FOREIGN KEY ( sg ) REFERENCES ucla.studiengang ( sgid );

Fremdschlüsselvariante 3


Gleiche Abbildung, aber die Beziehung zwischen STUDENT und STUDIENGANG 
wird durch eine (1:n)-Assoziation dargestellt, wobei ein STUDIENGANG 
mehrere STUDENTen haben kann, aber jeder STUDENT genau einem STUDIENGANG 
zugeordnet ist. Dies ist gekennzeichnet durch ein Rotes Asterisk neben 
dem Attribut "SG" in der Entität "STUDENT". Ein Kreuz neben "STUDENT" 
auf der Beziehung zu "STUDIENGANG" markiert, dass ein Student gelöscht 
wird, wenn der dazugehörige Studiengang gelöscht wird.
CREATE TABLE ucla.student (
  ...
  sg INTEGER NOT NULL
);
CREATE TABLE ucla.studiengang (
      sgid INTEGER NOT NULL,
      ...
);
ALTER TABLE ucla.student 
  ADD CONSTRAINT fk_student_sg FOREIGN KEY ( sg ) REFERENCES ucla.studiengang ( sgid )
    ON DELETE CASCADE;

Fremdschlüsselvariante 4


Gleiche Abbildung, aber mit der gestrichelten Beziehungslinie.
CREATE TABLE ucla.student (
  ...
  sg INTEGER
);
CREATE TABLE ucla.studiengang (
      sgid INTEGER NOT NULL,
      ...
);
ALTER TABLE ucla.student 
  ADD CONSTRAINT fk_student_sg FOREIGN KEY ( sg ) REFERENCES ucla.studiengang ( sgid )
    ON DELETE CASCADE;

Datenmanipulation (DML-Befehle)

  • Einfügen (INSERT)
  • Ändern (UPDATE)
  • Löschen (DELETE)

INSERT


Die Tabelle "STUDENT" in der Ansicht des SQL Developers, mit den drei 
Studierenden May, Özedem und Phan.
INSERT INTO STUDENT(SID, MATRNR, NAME, VORNAME, IMMADATUM, SG)
  VALUES (4, '505790', 'Al-Hasan', 'Mohammed', '01.10.2023', 1)

Die Tabelle nach dem INSERT INTO command. Al-Hasan wurde hinzugefügt mit 
der "SID" 4, "MATRNR" 505790, "NAME" Al-Hasan, "VORNAME" Mohammed, 
"IMMADATUM" 01.10.23, "EXMADATUM" (null) und "SG" 1.

UPDATE


Die gleiche Tabelle mit dem neuem Datensatz für Al-Hasan
UPDATE STUDENT SET VORNAME='Mohamed' WHERE SID=4

Die gleiche Tabelle mit dem geänderten Vornamen Mohamed, nun mit einem 
"m" statt zwei.

DELETE


Die gleiche Tabelle wie vorher.
DELETE FROM STUDENT WHERE SID=4

Die gleiche Tabelle nach dem DELETE command. Die Zeile mit dem 
Studierenden Mohamed wurde gelöscht und ist nicht mehr vorhanden.