YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Erhard Künzel für Info 9. Klasse:

© Erhard Künzel für digitale-schule-bayern

Page 2: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

0 Realisierung von Beziehungen durch Fremdschlüssel

1 Konsistenzprobleme bei Fremdschlüsseln

2 Möglichkeiten, die das Datenbankmanagement-system bietet (Cascade ...).

© Erhard Künzel für digitale-schule-bayern

Page 3: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Eine dynamisch aufgebaute SeiteEine dynamisch

aufgebaute Seite

Dahinter steckt sicher eine Datenbank

Dahinter steckt sicher eine Datenbank

© Erhard Künzel für digitale-schule-bayern

Bildquelle: shop.hm.com

Page 4: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Wir interessieren uns für

Sonderangebote

Wir interessieren uns für

Sonderangebote

Aber nicht nur für Männer

Aber nicht nur für Männer

© Erhard Künzel für digitale-schule-bayern

Bildquelle: shop.hm.com

Page 5: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Stöbere ein wenig im Outlet

Stöbere ein wenig im Outlet

Überlege dann, welche

Datentabellen du anlegen würdest.

Überlege dann, welche

Datentabellen du anlegen würdest.

Schreibe drei Klassen auf!Schreibe drei Klassen auf!

© Erhard Künzel für digitale-schule-bayern

Bildquelle: shop.hm.com

Page 6: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Herren……

Oberteile

……

Unterteile

……

Hemd……

Blazer……

© Erhard Künzel für digitale-schule-bayern

Bildquelle: shop.hm.com

Page 7: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

……

KUNDENTYP 1 <für

braucht> n

……

KATEGORIE

……

ARTIKEL hat > n

1 <gehörtZu

Herren

……

Oberteile

……

Unterteile

……

Hemd

……

Blazer

……

© Erhard Künzel für digitale-schule-bayern

Page 8: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

TID: 2TID: 2Damen

Name: DamenName: Damen

… …

KID: 17KID: 17Tops

Name: TopsName: Tops

TID: 2 TID: 2

AID: 562AID: 562Trägertop

Name: TrägertopName: TrägertopKID: 17 KID: 17

TID TID Name …Name …

KUNDENTYP

INTINT VARCHAR…VARCHAR…

2 2 Damen Damen

KID KID NameName

INTINT VARCHARVARCHAR

17 17 TopsTops

TIDTID

INTINT

22

KATEGORIE

AID AID Name …Name …

INTINT VARCHARVARCHAR

562562 Trägertop… Trägertop…

KID KID

INTINT

17 17

ARTIKEL

Fehlerquelle: Der

Fremdschlüssel hat den gleichen

Datentyp wie der

referenzierte Primärschlüss

el!

Fehlerquelle: Der

Fremdschlüssel hat den gleichen

Datentyp wie der

referenzierte Primärschlüss

el!

Ändern der TID ?

Ändern der TID ?

Löschen dieses

Datensatzes?

Löschen dieses

Datensatzes?

© Erhard Künzel für digitale-schule-bayern

Einfügen der Kategorie Tops wenn es den

Kundentyp „Damen“ noch nicht gibt?

Einfügen der Kategorie Tops wenn es den

Kundentyp „Damen“ noch nicht gibt?

Page 9: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

CREATE TABLE Typ ( TID int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(30) DEFAULT NULL) ENGINE=InnoDB;CREATE TABLE Kategorie ( KID int NOT NULL AUTO_INCREMENT PRIMARY

KEY, Name varchar(30) DEFAULT NULL,

TID int, KEY (TID),CONSTRAINT FOREIGN KEY (TID) REFERENCES typ (TID) ON DELETE RESTRICT ON UPDATE RESTRICT

) ENGINE=InnoDB;

© Erhard Künzel für digitale-schule-bayern

Page 10: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

CREATE TABLE artikel ( AID int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(30) DEFAULT NULL,

KID int, KEY (KID),CONSTRAINT FOREIGN KEY (KID) REFERENCES kategorie (KID) ON DELETE RESTRICT ON UPDATE RESTRICT

) ENGINE=InnoDB;

Füge mindestens drei Datensätze in jede Tabelle ein. Mache dann einen SQL-Dump damit du nach Löschen

wieder deine Tabellen und Daten hast.

© Erhard Künzel für digitale-schule-bayern

Page 11: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Versuche in Kundentyp und in Kategorie Datensätze zu löschen, auf die sich andere Datensätze mit Fremdschlüsseln beziehen.

Statt ON DELETE RESTRICT probiere dann ON DELETE NO ACTION oder ON DELETE SET NULL oder ON DELETE CASCADE.

Du solltest bei jeder Variante erst die Datentabellen mit dem SQL-Dump neu erstellen.

© Erhard Künzel für digitale-schule-bayern

Page 12: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

TID TID Name …Name …

KUNDENTYP

2 2 Damen Damen

KID KID NameName

17 17TopsTops

TIDTID

22

KATEGORIE

AID AID Name …Name …

562562 Trägertop … Trägertop …

KID KID

17 17

ARTIKEL

3 3 Herren Herren 2323HosenHosen22

2525SportSport22

693693 Pulli … Pulli … 17 17

448448 Jogginghose Jogginghose2525

© Erhard Künzel für digitale-schule-bayern

Page 13: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

TID TID Name …Name …

KUNDENTYP

2 2 Damen Damen

KID KID NameName

17 17TopsTops

TIDTID

22

KATEGORIE

AID AID Name …Name …

562562 Trägertop … Trägertop …

KID KID

17 17

ARTIKEL

3 3 Herren Herren 2323HosenHosen22

2525SportSport22

693693 Pulli … Pulli … 17 17

448448 Jogginghose Jogginghose2525

Löschen dieses

Datensatzes ist unmöglich

Löschen dieses

Datensatzes ist unmöglich

Der könnte noch gelöscht

werden

Der könnte noch gelöscht

werden

Kann nicht in 4 geändert

werden

Kann nicht in 4 geändert

werden

© Erhard Künzel für digitale-schule-bayern

Page 14: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

KID KID NameName

17 17TopsTops

TIDTID

22

KATEGORIE

AID AID Name …Name …

562562 Trägertop … Trägertop …

KID KID

17 17

ARTIKEL

2323HosenHosen22

2525SportSport22

693693 Pulli … Pulli … 17 17

448448 Jogginghose Jogginghose2525

Tops für ???Tops für ???

© Erhard Künzel für digitale-schule-bayern

Page 15: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

KID KID NameName

17 17TopsTops

TIDTIDNULLNULL

KATEGORIE

AID AID Name …Name …

562562 Trägertop … Trägertop …

KID KID

17 17

ARTIKEL

2323HosenHosenNULLNULL

2525SportSportNULLNULL

693693 Pulli … Pulli … 17 17

448448 Jogginghose Jogginghose2525

SELECT * FROM KATEGORIEWHERE TID IS NULL

SELECT * FROM KATEGORIEWHERE TID IS NULL

© Erhard Künzel für digitale-schule-bayern

Page 16: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

© Erhard Künzel für digitale-schule-bayern

TID TID Name …Name …

KUNDENTYP

KID KID NameNameTIDTID

KATEGORIE

AID AID Name …Name …KID KID

ARTIKEL

3 3 Herren Herren

Damen gelöschtDamen gelöscht

Alle referenzierten Kategorien weg!

Alle referenzierten Kategorien weg!

Auch alle referenzierten Artikel weg!

Auch alle referenzierten Artikel weg!

Page 17: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

TID TID Name …Name …

KUNDENTYP

55 Damen Damen

KID KID NameName

17 17TopsTops

TIDTID

55

KATEGORIE

AID AID Name …Name …

562562 Trägertop … Trägertop …

KID KID

17 17

ARTIKEL

3 3 Herren Herren 2323HosenHosen55

2525SportSport55

693693 Pulli … Pulli … 17 17

448448 Jogginghose Jogginghose2525

© Erhard Künzel für digitale-schule-bayern

Wenn man das ändert, …Wenn man das ändert, …

… dann ändert sich das automatisch!

… dann ändert sich das automatisch!

Page 18: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Das Datenbankmanagementsystem überwacht Änderungen an Daten, auf die sich Fremdschlüssel beziehen.

Bei Restrict erlaubt es Änderungen / Löschungen nicht (meist die beste Wahl).

No Action ist selten sinnvoll. On Update Cascade kann sinnvoll sein, On

Delete Cascade kann viel löschen (Programmierer feuern!).

On Delete Set Null ist oft die beste Alternative zu On Delete Cascade.

© Erhard Künzel für digitale-schule-bayern

Page 19: Erhard Künzel für Info 9. Klasse: © Erhard Künzel für digitale-schule-bayern.

Wir prüfen, wie bei Set-Angeboten (Hose + Top als 1:1-Beziehung zwischen Artikeln) die Fremdschlüssel behandelt werden sollten.

Auf einer Bestellung stehen mehrere Artikel, ein Artikel kann auf mehreren Bestellungen stehen. Diese m:n-Beziehung sollst du untersuchen. Wo sind Fremdschlüssel? Was macht das System beim Löschen eines Artikels oder einer Bestellung bei Restrict oder Cascade?

© Erhard Künzel für digitale-schule-bayern


Related Documents