Ergebnisse der Datenbank – Gruppe - webshop

Werbung
Ergebnisse der Datenbank – Gruppe
Ron Ewald
Kevin Rohrbeck
Thomas Bauske
Raimund Damitz
Robert Zimmermann
1
2
3
4
5
Analysephase ...................................................................................................... 3
1.1
Nutzerverwaltung ......................................................................................... 3
1.2
Inserate ........................................................................................................ 3
ER – Modell ......................................................................................................... 4
Relationales Datenbankmodell ............................................................................ 5
Normalisierung .................................................................................................... 5
4.1
1. Normalform:.............................................................................................. 5
4.2
2. Normalform:.............................................................................................. 6
4.3
3. Normalform:.............................................................................................. 6
Implementierung der Datenbank ......................................................................... 7
2
1
Analysephase
Nach der Gruppeneinteilung und ersten Überlegungen haben wir auf die
Analyseergebnisse der Analysegruppe gewartet. Nach einiger Verzögerung
bekamen wir dann unzureichende Informationen über den möglichen Aufbau
und den möglichen Inhalten für eine Datenbank.
Nach einer Überarbeitung in Zusammenarbeit mit der Analysegruppe
wurden folgende Eckdaten vereinbart:
1.1 Nutzerverwaltung




Registrierung nur für die Inseratersteller notwendig, Interessenten
tauchen somit nicht in der Datenbank auf
wichtige Eigenschaften der Inserenten: Benutzername, Name,
Vorname, E-Mail-Adresse, Passwort
sofern die Zeit ausreicht, ist ein Loginsystem zu implementieren, über
welches sich Inserenten einloggen können
jeder Inserent hat die Möglichkeit, Inserate zu erstellen, zu bearbeiten
und zu löschen
1.2 Inserate



Zu einem Inserat gehören Kategorie sowie Stichwörter, welche der
Inserent selbst wählt. Damit ist gewährleistet, dass Inserate über eine
simple Suchmaschine gefunden werden können.
einige, allgemeine Kategorien, jedoch keine Unterkategorien
(Grund: Werden Kategorien noch durch Unterkategorien oder durch
weitere Attribute unterteilt, wird für jede Kategorie eine eigene
Entitätsmenge notwendig, was den Rahmen dieses Projektes
sprengt.)
weitere wichtige Eigenschaften: Bezeichnung, Beschreibung,
Artikelstandort, Preis, verhandelbar (ja oder nein), Einstelldatum
(Begründung:
Artikelstandort - alternativ kann auch der Wohnort des Inserenten
festgehalten werden, dieser muss aber nicht immer mit dem
Artikelstandort übereinstimmen
Einstelldatum - jedes Inserat soll nach einer bestimmten Zeit
automatisch entfernt werden (Aktualität), daher muss das
Einstelldatum festgehalten werden, so ist außerdem eine bessere
Sortierung der Inserate möglich.)
3
2
ER – Modell
Mit den Daten aus der Analysephase ist folgendes Entity Relationship
Modell entstanden:
Kunde
erstellt
Benutzername
Inserat
InsID
Stichwort1
PW
Stichwort2
GeburtsDat
Stichwort3
ArtikelName
Name
Beschreibung
Vorname
ErstellDat
Händlerart
Preis
Adresse
Kategorie
InsArt
Legende
Adresse:
Strasse
PLZ
Ort
eMail
4
3
Relationales Datenbankmodell
Nach der Erstellung des ERM kann nun aufbauend ein relationales
Datenbankmodell erstellt werden.
Kunde Benutzername Name Vorname
Typ
Char(12)
Auto_Inc no
Null
no
PW
GeburtsDat Strasse
PLZ
Ort
eMail
Char(30) Char(30) Char(30) Date
Char(45) Char(5) Char(30) Char(40)
no
no
no
no
no
no
no
no
no
yes
no
no
yes
yes
yes
no
Inserat InsID Stichwort1 Stichwort2 Stichwort3 ArtikelName Beschreibung ErstellDat
Typ
Int(6) Char(20)
Auto_Inc yes
Null
no
Preis
Verhandelbar Kategorie InsArt Kunde
Char(20)
Char(20)
Char(30)
Text
Date
Float(6,2) Bool
Set
Set
Char(12)
no
no
no
no
no
no
no
no
no
no
no
no
yes
yes
no
yes
no
no
no
no
no
no
Kategorie KatID KatName
Typ
Set
Auto_Inc No
Null
No
Char(20)
No
No
Erläuterung:
1. Kategorie (Set) besteht aus Auto, Wohnen, Heimtechnik,
Unterhaltungsmedien und Freizeit
2. InsArt (Set) besteht aus Kaufen und Verkaufen
4
Normalisierung
Mit Hilfe der Normalformen sollen Redundanzen vermieden werden und die
Performance erhalten bleiben bzw. optimieren.
Unter dem Normalisieren versteht man die Einhaltung bestimmter Regeln
bei der Definition von Tabellen.
Dabei werden die Abhängikeiten zwischen den Feldern einer Tabelle
untersucht.
4.1 1. Normalform:
Es darf keine zusammengesetzten Werte geben
Bsp.:
Adresse
Müllerstraße 3, 12345 Berlin
Name
Müller
Vorname
Max
Adresse besteht aus Straße Hausnummer Postleizahl Ort
Nach der 1.Normalform sähe es wie folgt aus
Straße
Müllerstraße
Hausnummer
3
Postleizahl
12345
5
Ort
Berlin
Name
Müller
Vorname
Max
4.2 2. Normalform:
In einem Datensatz muss von jedem Attribut auf das gesamte
Schlüsselattribut geschlossen werden können. Nur bei
zusammengesetzten Schlüsseln relevant.
1.NF + Nichtschlüsselmerkmale sind von allen Schlüsselmerkmalen voll
funktional abhängig.
Die Bank ist nur von der Bankleitzahl und nicht von der eindeutigen
Kontonummer (Schlüssel) abhängig.
Kundentabelle (Ausschnitt):
KtoNr.
2134
1354
1564
Bank
Berliner Sparkasse
Spardabank
Berliner Bank
BLZ
10050000
21005000
15025750
KdNr
123
124
125
KdName
Meier
Müller
Schulze
Die Bank ist nur von der Bankleitzahl und nicht von der eindeutigen
Kontonummer (Schlüssel) abhängig.
Auflösung nach 2. Normalform:
Kundentabelle
KtoNr.
2134
1354
1564
BLZ
10050000
21005000
15025750
KdNr
123
124
125
KdName
Meier
Müller
Schulze
Banken
BLZ
10050000
21005000
15025750
Bank
Berliner Sparkasse
Spardabank
Berliner Bank
4.3 3. Normalform:
Kein Nichtschlüsselmerkmal ist von einem Schlüssel abhängig.
In diesem Fall ist der Kundenname über den Umweg Kundennummer vom
Schlüssel Kontonummer abhängig
Kundentabelle
KtoNr.
2134
1354
1564
BLZ
10050000
21005000
15025750
KdNr
123
124
125
Banken
BLZ
10050000
21005000
15025750
Bank
Berliner Sparkasse
Spardabank
Berliner Bank
6
KdName
Meier
Müller
Schulze
Auflösung in die 3. Normalform:
Kundenkonten:
KtoNr.
2134
1354
1564
BLZ
10050000
21005000
15025750
KdNr
123
124
125
Kundentabelle (Ausschnitt):
KdNr
123
124
125
5
KdName
Meier
Müller
Schulze
Implementierung der Datenbank
Aus den gegebenen Relationstabellen wird nun eine SQL-Abfrage formuliert.
Um beide Tabellen zu erstellen, muss die Abfrage folgendermaßen
aussehen:
CREATE DATABASE isk91_webshop;
USE webshop;
CREATE TABLE Kunde
(
Benutzername char(12) NOT NULL,
Name char(30) NOT NULL,
Vorname char(30),
PW char(12) NOT NULL,
GeburtsDat DATE NOT NULL,
Strasse CHAR(45),
PLZ CHAR(5),
Ort CHAR (30),
Email CHAR(40) NOT NULL,
PRIMARY KEY (Benutzername)
);
CREATE TABLE Inserat
(
InsID INT(6) AUTO_INCREMENT NOT NULL,
Stichwort1 char(20),
Stichwort2 char(20),
Stichwort3 char(20),
Artikelname char(30) NOT NULL,
Beschreibung text(300),
ErstellDat DATE NOT NULL,
Preis FLOAT(6,2) NOT NULL,
VB SET("ja","nein"),
KatID Int(1) NOT NULL,
InsArt SET("Verkauf","Gesuch"),
PRIMARY KEY (InsID)
);
CREATE TABLE Kategorie
(
KatID Int(1) AUTO_INCREMENT NOT NULL,
Kategorie Char(20) NOT NULL,
Primary Key(KatID)
);
7
Für den Anfang werden nun Beispieldatensätze eingefügt. Dies geschieht
mit folgender Abfrage:
INSERT INTO Kategorie(KatName)
VALUES
("Auto"),
("Wohnen"),
("Heimtechnik"),
("Unterhaltungsmedien"),
("Freizeit");
INSERT INTO Inserat(Stichwort1, Stichwort2, Stichwort3, Artikelname,
Beschreibung, ErstellDat, Preis, VB, Kategorie, InsArt)
VALUES
("Auto", "gebraucht", "blau", "Blauer VW Polo, gebraucht", "Ich verkaufe
hier meinen gebrauchten VW Polo aus dem JAhre 1722. ",
"2010-06-20", "2127.55", "ja", "1", "Verkauf"),
("Fernseher", "gebraucht", "gelb", "TV - gebraucht", "Suche gelben
Fernseher", "2010-06-20", "21.99", "nein", "5", "Gesuch");
INSERT INTO
Kunde(Benutzername,Name,Vorname,GeburtsDat,Strasse,PLZ,Ort,Email)
VALUES
("Testuser1","Mustermann","Max","2000-01-01","Musterweg
1","12345","Musterland","[email protected]"),
("Testuser2","Musterfrau","Maxi","2002-02-02","Musterweg
2","54321","Musterland","[email protected]");
8
Herunterladen