MySQL-HM-Referentielle_Integrität Flashcards

1
Q

Referentielle Integrität

A
  • prüft nach “Anlegen”, “Ändern” und “Löschen” ob Datensätze weiterhin in konsitstentem Zustand sind
  • bei Inkonsistenz wird Transaktion standardmäßig nicht durchgeführt

Beispiele:

  • Auftrag von einem Kunden der nicht existiert
  • löschen eines Kunden, der schon Aufträge erteilt hat
  • Änderung der Kundennummer eines Kunden, der schon Auträge erteilt hat
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

technische Vorraussetzung

A
  • Tabellentyp: InnoDB
  • übergeordnete Tabelle (Parenttabelle) muss Primary Key besitzen
  • Verknüpfungsfeldern müssen genau gleich definiert sein (Ausnahmen: auto_increment, primary key)
  • Verknüpfungsfeld der untergeordneten Tabelle (Childtabelle) muss eine Referenz auf den eindeutigen Index der Parenttabelle haben
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Beziehung herstellen

A

Parenttabelle:

create table parent (

primärschlüssel datentyp primary key)

engine = innodb;

Childtabelle:

create table child (…

fremdschlüssel datentyp,

foreign key (fremdschlüssel)

references parent(primärschlüssel))

engine = innodb;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Foreign Key nachträglich hinzufügen

A

alter table tabellenname

add foreign key (feldname)

references parenttabelle(primärschlüssel);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Löschen / Ändern

A

on delete

  • Möglichkeit anzugeben, was beim Löschen von Datensätzen der Parenttabelle mit den Datensätzen der Childtabelle passieren soll

on update

  • Möglichkeit anzugeben, was beim Ändern Datensätzen der Parenttabelle mit den Datensätzen der Childtabelle passieren soll
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

on delete restrict

A
  • Datensatz in der Parenttabelle darf nicht gelöscht werden

foreign key (fremdschlüssel) references parenttabelle(primärschlüssel)

on delete restrict

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

on delete cascade

A
  • die Datensätze der Childtabelle werden mitgelöscht

foreign key (fremdschlüssel) references parenttabelle(primärschlüssel)

on delete cascade

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

on delete set null

A
  • das Fremdschlüssel-Feld in den Datensätzen der Childtabelle wird auf NULL gesetzt

foreign key (fremdschlüssel) references parenttabelle(primärschlüssel)

on delete set null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

on update restrict

A
  • Datensatz in der Parenttabelle darf nicht geändert werden

foreign key (fremdschlüssel) references parenttabelle(primärschlüssel)

on update restrict

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

on update cascade

A
  • die Datensätze der Childtabelle werden mit geändert

foreign key (fremdschlüssel) references parenttabelle(primärschlüssel)

on update cascade

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

on update set null

A
  • das Fremdschlüssel-Feld in den Datensätzen der Childtabelle wird auf NULL gesetzt

foreign key (fremdschlüssel) references parenttabelle(primärschlüssel)

on update set null

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Definition beider Befehle

A
  • es können auch beide Befehle zusammen verwendet werden

foreign key (fremdschlüssel) references parenttabelle(primärschlüssel)

on update option on delete option

How well did you know this?
1
Not at all
2
3
4
5
Perfectly