MySQL Normalisierung. Stefan Maihack Dipl. Ing. (FH) Datum: 22.04.2015



Ähnliche Dokumente
Datenbanksysteme Teil 3 Indizes und Normalisierung. Stefan Maihack Dipl. Ing. (FH) Datum:

Übungen Teil 2: Normalisierung und ER-Modell. Dozent: Stefan Maihack Dipl. Ing. (FH)

Normalisierung. Dipl.-Ing. Jörg Höppner

Datenbankdesign - Normalisierung

Es werden drei Datensätze vorgestellt. Die Bezeichner der Domänen sind fett dargestellt, ihre Werte erscheinen nach einem Doppelpunkt 1.

Normalisierung So wahr mir Codd helfe

D1: Relationale Datenstrukturen (14)

Die Bestellungen eines Schreibwarengeschäftes sollen auf eine aktuelle Form mit Hilfe einer zeitgemäßen Datenbank umgestellt werden.

Prof. Dr. Rolf Lauser

Datenbanksysteme I. FB Automatisierung und Informatik: Datenbanksysteme I

Informatik 10 Mar Datenbanken: RDM Normalisierung April 2014

4. Normalformen. Qualitätsanforderungen an Tabellen. Klassische Normalformen (1,. 2., 3.) Spezielle Normalformen. Datenbanken

Aufgabe 1: Kanonische Überdeckung

Erstellen von relationalen Datenbanken mit Hilfe der Nomalisierung

Entwurf von Relationalen Datenbanken (1) (mit dem Entity-Relationship-Modell)

Datenbank Grundlagen. Normalisierungsprozess

Rückblick: Relationales Modell

5. Relationale Entwurfstheorie

Aufgabe 1) Übung 4: 1.2

Normalisierung Szenario [nach Zehnder; Informationssysteme und Datenbanken. Teubner, 1989]

3. Übungsblatt (Testatwoche: Mai 2010) Einführung in Datenbanksysteme Datenbanken für die Bioinformatik

Themenfeld Datenbanken

Anwendungsentwicklung Datenbanken Datenbankentwurf. Stefan Goebel

Entitätstypen, Attribute, Relationen und Entitäten

3. Relationales Modell & Algebra

Informatik Datenbanken

Relationales Datenmodell

Fachbereich Wirtschaftswissenschaften Campus Sankt Augustin

Theorie zur Übung 8 Datenbanken

Introduction to Data and Knowledge Engineering Lösungsvorschlag zu Tutorium KE TUD SG 1

Ministerium für Schule und Weiterbildung NRW IF GK HT 6 Seite 1 von 7. Unterlagen für die Lehrkraft. Abiturprüfung Informatik, Grundkurs

Kapitel 11. Normalisierung

Datenbanken. Teil 2: Informationen. Kapitel 2: Einführung. Zusammenfassung der Grundbegriffe. Übersicht über wichtige Grundbegriffe:

13. Führen sie die Abfrage aus. Speichern und schließen sie die Abfrage.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

S(tructured)Q(uery)L(anguage)

Übungen Teil 1: ER-Modelle. Dozent: Stefan Maihack Dipl. Ing. (FH)

ER-Modell, Normalisierung

4. Normalformen. Qualitätsanforderungen an Tabellen. Klassische Normalformen (1,. 2., 3.) Spezielle Normalformen

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Disclaimer. 1 Allgemeine Grundlagen (8 Punkte) (3 Punkte) (3 Punkte) (2 Punkte)... 2

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Da ist zunächst der Begriff der Menge.

Normalisierung. Dortmund, Oktober 1998

Datenbank Modellierung - Normalisierung

ABTEILUNGS- ABTEILUNGS- LEITER NAME

4. Datenabfrage mit QBE

Vorlesung Software-Engineering I

Abhängigkeiten und Normalisierung

-08- Arbeitsunterlagen

ACCESS. Berechnete Felder in Tabellen TABELLEN ENTWERFEN BERECHNETE FELDER IN TABELLEN BASICS

OpenOffice - Base G. Laner 1

PD Dr.-Ing. F. Lobeck. Seite 6

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Informatik IIa: Modellierung

Datenbankentwicklung

Objektorientierter Software-Entwurf Ergebnisse der funktionalen Zerlegung 3 1. Die Zerlegungsmethoden sollen in zwei Dimensionen betrachtet werden:

Kapitel 6 Normalisierung Seite 1

8. Tutorübung zu Grundlagen: Datenbanken

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Arbeiten mit einer Datenbank 1

Rückblick: Datenbankentwurf

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Veranstaltung Pr.-Nr.: Normalisierung. Veronika Waue WS 07/08

Microsoft Access 2010 SQL nutzen

Wirtschaftsinformatik

Abfragen aus mehreren Tabellen (mit join)

Gesamtbeispiel Sporthaus

Relationaler Datenbankentwurf

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

profil datendesigner Datenbanken entwerfen das sollte ich können... Datendesigner und der Entwurf:

Datenbanksysteme: Entwurf

Name:.../ Semester:...

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung

Das relationale Datenmodell

Datenorganisation. Februar bis Mai Dipl.-Oek. Patrick Bartels Institut für Wirtschaftsinformatik Universität Hannover

Entity Relationship Modell (ERM) (Konzeptueller Datenbankentwurf)

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Medizininformatik Software Engineering

1 hat * Transformation des vorigen Entity-Relationship-Diagramms in ein Datenbankschema

Datenbanken und SQL. Kapitel 3. Datenbankdesign Teil 1: Normalformen. Edwin Schicker: Datenbanken und SQL

Relationale Datenbanken

Datenmanagement Übung 5

Nutzung der Oracle Database InMemory Option für SAP BW

Normalisierung I. Ziele

ER-Modell. Das Relationenmodell

Rückblick: Relationale Entwurfstheorie

Grundlagen zu Datenbanken zu Beginn der Jgst. 13

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Zweite Klassenarbeit der Jahrgangsstufe 1 (Wirtschaftsgymnasium) Thema: Relationale Datenbanken

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

E-R-Modell zu Relationenschema

Informatik IIa: Modellierung

Betriebssicherheit durch Datenbank-Normalisierung. S&Z Z EDV Solutions Hochheim Taunusstraße Mainz Fr.-Naumann

Datenbanksysteme Teil 2. Stefan Maihack Dipl. Ing. (FH)

Datenbanken. Zusammenfassung. Datenbanksysteme

(Vektor-)Datenhaltung I (relational)

Relationale Datenbanken

Transkript:

MySQL Normalisierung Stefan Maihack Dipl. Ing. (FH) Datum: 22.04.2015 1

Allgemeines Durch die Normalisierung von Tabellen soll folgendes erreicht werden Redundanzfreie, beziehungsweise redundanzarme Speicherung der Daten. Inkonsistenzen; Vermeidung von Datenbank-Anomalien. Logische Strukturierung der Daten. Vereinfachte Speicherung der Daten. Datenbankdesign und Normalisierung sind eng miteinander verzahnte Prozesse. Große Tabellen die nicht normalisiert sind, kosten Systemleistung. Die Aufteilung, in sehr viele kleinere Tabellen (extreme Normalisierung) kompliziert die Abfragen, was ebenso die Systemleistung reduziert. Man muss einen Mittelweg finden. Z.B. Tabellen die selten angesprochen werden, nicht weiter normalisieren. 2

Normalisierungsregeln: 1NF 1. NF: Die 1. NF ist notwendig, ein relationales Datenmodell zu haben. Sie fordert, dass alle Attribute einer Entity in atomarer Form vorliegen. Ein atomarer Wert, wie beispielsweise eine Zahl, eine Zeichenkette oder ein Datum, nicht aber eine Liste. Z.B. in der Tabelle Personal ist die Spalte Angestellte aufgeteilt in Angestellte1, Angestellte2 AngestellteN. Die Attribute sind zwar atomar, aber nicht im Sinne der ersten Normalform, da es sich eigentlich wieder um eine Liste handelt. Abhilfe: Die Liste muss in eine eigene Relation umgewandelt werden. Dazu muss man die Beziehung kennen. Falls es eine 1... N Beziehung ist, heißt das, dass jeder Datensatz der neuen Relation mit einem Datensatz der alten Relation in Beziehung steht. Die neue Relation hat als Fremdschlüssel den Primärschlüssel der alten Relation. 3

Das Bild kann zurzeit nicht angezeigt werden. MySQL Normalisierung Normalisierungsregeln: 1NF 4

Normalisierungsregeln: 2NF 2. NF: Relationen müssen sich in der 1. NF befinden. Kein Attribut darf existieren, das nicht zum Schlüssel gehört und nur von einem Teil des Schlüssels voll funktional abhängig ist. Oder: Jeder Datensatz bildet nur einen Sachverhalt ab. Liegen in einer Tabelle Daten vor, die nicht nur ein Sachverhalt abbilden, werden diese Daten in einzelne thematische Tabellen unterteilt. Daraus folgt: Besitzt eine Relation in erster Normalform nur einen einstelligen Schlüssel (Schlüssel besteht nur aus einem Attribut), dann befindet sie sich automatisch auch in der 2. NF. Ein Nichtschlüssel-Attribut steht in einer 1:1 Beziehung zu einem Teil des Schlüssels. Die 2. NF hat die Aufgabe, Teilabhängigkeiten zu eliminieren, indem sie aus diesen eigene Relationen erstellt. 5

Normalisierungsregeln: 2NF Beispiel zur 2. NF: PersNr ProjNr ProjName AuftragVom BearbBeginn 1001 50 HTML-Seiten 10.01.2004 01.02.2004 1005 50 HTML-Seiten 10.01.2004 01.02.2004 1002 51 Datenbank 15.02.2004 01.03.2004 1005 51 Datenbank 15.02.2004 15.03.2004 Primärschlüssel: PersNr und ProjNr ProjName und AuftragVom sind charakteristische Projekteigenschaften, die unabhängig vom Mitarbeiter sind, der das Projekt bearbeitet. Mit anderen Worten, sie sind funktional abhängig von der Projektnummer (ProjNr) einem Teil des Schlüssels. Überführung in die 2. NF - Umwandeln in zwei Relationen (Tabellen). 6

Normalisierungsregeln: 2NF In der 2. Normalform befindliche Tabellen: Tabelle Projektbearbeitung in der 2.NF PersNr ProjNr BearbBeginn 1001 50 01.02.2004 1005 50 26.01.2004 1002 51 01.03.2004 1005 51 15.03.2004 Tabelle Projekte in der 2.NF ProjNr Projektname AuftragVom 50 HTML-Seiten 10.01.2004 51 Datenbank 15.02.2004 7

Normalisierungsregeln: 2NF 8

Normalisierungsregeln: 3NF Die 3. NF fordert, dass sich eine Relation in der 2. NF befindet und alle Attribute, die nicht zum Schlüssel gehören, nur vom Schlüssel abhängig sind. Mit anderen Worten, es darf keine Abhängigkeiten zwischen Attributen geben. Alle Attribute sind direkt vom Schlüssel abhängig. Beispiel: In der Tabelle Bestellungen werden alle Bestellungen eines Buchversenders gespeichert. Diese Relation besitzt die Attribute BestellNr, Datum, ISBN und Titel. Das Attribut BestellNr ist der Primärschlüssel. Titel ist abhängig von ISBN BestellNr Datum ISBN Titel 101 10.04.2004 3827291054 Mogel-Power 2004 102 10.04.2004 3827257174 Jetzt lerne ich HTML 103 11.04.2004 3827257174 Jetzt lerne ich HTML 104 11.04.2004 3827291062 Black&White Alle Attribute sind zwar charakteristisch für eine Bestellung, aber nicht direkt, denn das Attribut Titel ist abhängig von ISBN. 9

Normalisierungsregeln: 3NF Lösung: Aus ISBN und Titel wird eine weitere Relation erstellt. In der Tabelle Bestellungen bleibt ISBN als Fremdschlüssel. Tabelle: Bestellungen BestellNr Datum ISBN 101 10.04.2004 3827291054 102 10.04.2004 3827257174 103 11.04.2004 3827257174 104 11.04.2004 3827291062 Tabelle: Bücher ISBN Titel 3827291054 Mogel-Power 2004 3827257174 Jetzt lerne ich HTML 3827291062 Black&White 10

Normalisierungsregeln: 3NF 11

Zusammenfassung Fazit der Normalisierung: Redundanzfreie, beziehungsweise redundanzarme Speicherung der Daten Vermeidung von Datenbank-Anomalien Logische Strukturierung der Daten Vereinfachte Speicherung der Daten Datenbankdesign und Normalisierung sind eng mit einander verzahnte Prozesse. 12

In die Praxis gebracht 4 Regeln sind zu beachten: 1. Eliminierung sich wiederholender Gruppen. Für jede Gruppe von Daten, die sich wiederholen, legt man eine eigene Tabelle an. Z.B.: ID Vorname Nachname BestellNr ArtikelNr Preis Artikel Daraus entstehen 3 Tabellen: Artikel, Bestellungen und Adressen. Jede Tabelle bekommt einen eindeutigen Schlüssel. 2. Eliminierung redundanter Daten. Wenn eine Eigenschaft mehrere Werte annehmen kann, bringt man diese in eine eigene Tabelle. Z.B.: Wenn Artikel mehrere Preise haben kann, bringt man diese in eine eigene Tabelle. 13

In die Praxis gebracht 3. Eliminieren von Spalten, die von keinem Schlüssel abhängen. Wenn Eigenschaften keinen Zusammenhang mit dem Schlüsselfeld haben, also nicht ebenso eindeutig zugeordnet werden können, überträgt man diese Eigenschaft in eine eigene Tabelle. Z.B. Wenn man 2 Adressen pro Kunde hat (Lieferanschrift und Rechnungsanschrift), können die Adressen nicht mehr eindeutig einem Schlüsselfeld Kunden-ID zugeordnet werden. Anschriften der Kunden in weitere Tabellen aufteilen. 4. Isolieren von unabhängigen Beziehungen. Keine Tabelle darf 2 oder mehrere Beziehungen haben, die nicht direkt abhängig sind. Wie viele Tabellen würden sie daraus machen? ID Vorname Nachname BestellNr ArtikelNr Preis Artikel Mindestens 3 Tabellen daraus machen. 14

In die Praxis gebracht Große Tabellen die nicht normalisiert sind, kosten Systemleistung. Die Aufteilung, in sehr viel kleinere Tabellen (extreme Normalisierung) kompliziert aber auch die Abfragen, was ebenso die Systemleistung reduziert. Versuchen Sie einen Mittelweg zu finden. Z.B. Tabellen die selten angesprochen werden, nicht weiter zu normalisieren. 15

Übungen Wann sollte eine Datenbank normalisiert werden? Am besten unmittelbar sofort, nachdem heraus gearbeitet wurde, welche Tabellen man benötigt, um die Geschäftsanforderungen zu modellieren. Man kann zwar die Datenbank auch später noch normalisieren, nachdem die Anwendungsentwicklung eingesetzt hat und sogar noch nachdem das System funktioniert. Allerdings ist der Aufwand westlich höher. Vor allem, wenn Tabellen bereits mit Daten gefüllt sind. Es kann sogar sein, das die Tabellen denormalisiert werden müssen, um das System von der Geschwindigkeit her, zu optimieren. 16

Übungen Eine Sammlung von Musik-CD s soll durch eine Tabelle cds dargestellt werden. Die Tabelle soll folgende Informationen enthalten: Künstlernamen, CD-Titel, Tracks auf der CD. Stellen Sie sich die aktuelle Tabelle aus den Spalten artist, title, name_track1, name_track2 bis name_track20 vor. Bilden Sie die erste, zweite und dritte Normalform. NF1: Die Spalten name_track1, name_track2 bis name_track20 in eine andere Tabelle verschieben. NF2: Die Spalte artist in eine eigene Tabelle verschieben. Da ein Künstler in der Regel mehrere Alben aufgenommen hat. Er würde somit mehrfach in der Tabelle auftauchen. NF3: Die Tabellen befinden sich bereits in der 3. Normalform. 17

Übung 1 MySQL Bestimmen sie den Primärschlüssel/ zusammengesetzt oder einzeln A) Relation "Kunden" wohnort, vorname, nachname, land_id, kunde_id (Beispieldatensatz: 'Stuttgart', 'Herbert', 'Maier', 7, 13) B) Relation "Lagerbestand" artikel_name, regal_nummer, anzahl, artikel_nummer, einkaufspreis (Beispieldatensatz: 'Bürste', 287, 3, 1928, 6.85) C) Relation "Ausleihvorgaenge"- dvd_id, kunde_id, filiale_id, ausleihdatum, rueckgabedatum (Beispieldatensatz: 53, 1664, 2, 2010-12-01 11:23:12, 2010-12-03 11:23:12) D) Relation "Fahrraeder" hersteller, farbe, gangschaltung, fahrrad_id, bremsen (Beispieldatensatz: 17, grün, 8, 13, 56) E) Relation "Bestellungen"- rechnungssumme, kunde_id, bestelldatum (Beispieldatensatz: 89.38, 13, 2010-12-01 11:29:12) F) Relation "Bücher"- buchtitel, erscheinungsjahr, autor_name, preis, seitenzahl (Beispieldatensatz: 'Kochen für Anfänger', 1981, 'Herbert Smith', 13.95, 198) 18

Übung 2 - MySQL Aufgabe: Es soll eine Datenbank (siehe Studienarbeit) erstellt werden mit der folgende Funktionen verwaltet werden sollen: 1. Speicherung von Flurstücken (Stadt übergreifend) 2. Speicherung von Bewohnern (Stadt übergreifend) 3. Speicherung von Straßen (Stadt übergreifend) Erstellen sie das dazugehörige ER-Diagramm und normalisieren sie diese. 19

Übung 2 - MySQL Folgende Attribute soll die Datenbank besitzen: Vorname Bewohner Nachname Bewohner Strassenname Bewohner PLZ Bewohner Stadtname: Name der Stadt des Bewohners Hausnummer des Bewohners Kinderanz: Anzahl der Kinder Alter des Bewohners Eigentümer: Ist der Bewohner ein Eigentümer Einwohneranzahl Flurstücknummern Flurstückgröße: Größe der Flurstücke Lage der Flurstücke (X und Y Koordinate) PLZFLUR der Flurstücke EigentümerFLUR: Eigentümer der Flurstücke Lagestrassen der Straßen (X- und Y-Koordinate) AnzahlHausnr: Anzahl der Hausnummern der Straßen 20

Übung 2 MySQL mögliche Lösung Vorname Nachname Straßenname Straßenname Bewohner Straßen Hausnummer PLZ PLZ PLZ Städte PLZ Flurstücke Koordinaten Stadtname Flurnummern 21