PMG1617/DB Beleg/Tom
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
'''Datenbank-Projekt: Online Vertrieb von Videospielen'''
== Grundlagen der Datenbank ==
===Themenbegründung===
Ich habe eine Datenbank erstellt, die sich um einen Online-Videospiel-Versand handelt.
Aufgrund der vielen Bestellungen lohnt es sich für eine Übersicht dieser Datenbank.
Es sind schnell Informationen zu finden, wie beispielsweise die Vorratsmenge, die hinterlegten Postdaten, Mengen und was ein Kunde für Artikel bestellte.
Ebenfalls habe ich selbst Bestellungen bei solchen Online-Vertrieben getätigt und dabei handelt es sich um ein sehr aktuelles Thema, da sich immer mehr Leute damit auseinandersetzen.
Das Ziel dieser Datenbank ist, eine genaue Übersicht von den Daten der Käufer und der bestellten Produkte/Artikel.
===Grundlagen===
Datenbasis: Datenmaterial, strukturierte Daten
Datenbankmanagementsystem (DBMS): dient der Sortierung und Verwaltung von Daten
Datenbank: Datenbasis und Datenbankmanagementsystem (DBMS) in Verbindung
===Kardinalitäten===
1:1-Beziehung: Jeder Entität der Entitymenge A wird genau eine Entität der Entitymenge B zugeordnet und umgekehrt.
1:n-Beziehung: Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden, umgekehrt kann jedoch jeder Entität der Menge B nur genau eine Entität der Menge A zugeordnet werden.
m:n-Beziehung: Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden und umgekehrt.
===Normalformen===
ENF/1NF - Erste Normalform: jeder Spalte wird nur eine Information zugeordnet. Dadurch werden erst Abfragen ermöglicht, da es keine Komplikationen bei der Suche gibt.
ZNF/2NF - Zweite Normalform: simultane Aufteilung der Entitäten und Entitymengen in Tabellen. Jede Relation modelliert nur einen Sachverhalt. Das Verständnis der Datenbank Strukturen wird so erleichtert. Außerdem wird Redundanz (Dopplungen) vermieden.
===Entity Relationship Modell===
[[Bild:PlayerTH_SQL.jpg]]
===Relationship Modell===
Primärschlüssel -> gelb
'''Artikel/Ware''' (A_ID, FSK, Preis, Genre, Name, Plattform)
'''Logistikunternehmen''' (K_ID, A_ID, Abholdatum, Lieferdatum, Liefernummer)
'''Unternehmen''' (A_ID, K_ID)
'''Kunde''' (K_ID, Name, Vorname, Adresse, PLZ, Rechnungsnummer, Hausnummer)
== Datenbank ==
'''Tabellenerstellung und Füllung'''
<code id="5aa648935f113">
Create table T_Kunde
K_ID integer,
Vorname varchar (100),
Name varchar (100),
Adresse varchar (5),
Geburtsdatum integer,
PLZ integer,
Rechnungsnummer integer,
Hausnummer integer,
Primary Key (K_ID) ;
Create table T_Unternehmen
K_ID integer,
A_ID integer,
Primary Key (K_ID,A_ID) ;
Create table T_Logistikunternehmen
K_ID integer,
A_ID integer,
Lieferdatum integer,
Abholdatum integer,
Liefernummer integer,
Primary Key (A_ID) ;
Create table T_Artikel
K_ID integer,
Preis decimal,
Genre varchar,
Plattform varchar,
FSK varchar,
Primary Key (K_ID) ;
INSERT INTO T_Kunde (K_ID, Name, Vorname, Adresse, PLZ, Rechnungsnummer, Hausnummer)
VALUES ('1','Mustermann', 'Max', 'Bautzener Str.', '02625', '12345', '04');
INSERT INTO T_Kunde (K_ID, Name, Vorname, Adresse, PLZ, Rechnungsnummer, Hausnummer)
VALUES ('2','Müller', 'Peter', 'Dresdener Str.', '02625', '56789', '06');
INSERT INTO T_Kunde (K_ID, Name, Vorname, Adresse, PLZ, Rechnungsnummer, Hausnummer)
VALUES ('3','Hänsel', 'Klaus', 'Teich Str.', '02625', '54321', '10');
INSERT INTO T_Artikel (A_ID, Plattform, Preis, Genre, FSK)
VALUES ('1', 'PC', '30€', 'Sport', 'FSK 0);
INSERT INTO T_Artikel (A_ID, Plattform, Preis, Genre, FSK)
VALUES ('2', 'XBOX', '20€', 'Shooter', 'FSK 18);
INSERT INTO T_Artikel (A_ID, Plattform, Preis, Genre, FSK)
VALUES ('3', 'PS4', '60€', 'Sport', 'FSK 0);
INSERT INTO T_Logistikunternehmen (K_ID, A_ID. Lieferdatum, Abholdatum, Liefernummer)
VALUES ('1', '2', '23.05', '20.05', '54321');
INSERT INTO T_Logistikunternehmen (K_ID, A_ID. Lieferdatum, Abholdatum, Liefernummer)
VALUES ('2', '3', '03.08', '01.08', '98765');
INSERT INTO T_Logistikunternehmen (K_ID, A_ID. Lieferdatum, Abholdatum, Liefernummer)
VALUES ('3', '4', '05.03', '01.03', '46843');
INSERT INTO T_Unternehmen (K_ID, A_ID)
VALUES ('1', '2');
INSERT INTO T_Unternehmen (K_ID, A_ID)
VALUES ('2', '3');
INSERT INTO T_Unternehmen (K_ID, A_ID)
VALUES ('3', '4');
</code>
== Abfragen ==
<run id="5ab8aea0854a7">
SELECT FROM T_Kunde
</run>
<run id="5ab8aea085517">
SELECT FROM T_Artikel
</run>
<run id="5ab8aea08557c">
SELECT FROM T_Logistikunternehmen
</run>
<run id="5ab8aea0855e0">
SELECT FROM T_Unternehmen
</run>
== kritische Reflexion zu Modellierung und Umsetzung ==