PMG2224 4/DB Beleg/Larissa
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
== '''Datenbank Autohaus''' ==
'''Ziel der Datenbank'''
Die Datenbank dient dem Autohaus als ein strukturiertes System, um Fahrzeuge, Kunden, Mitarbeiter und andere wichtige Daten zu speichern und zu verwalten. Es ermöglicht dem Autohaus schnell und effizient auf wichtige Informationen zuzugreifen und ist dementsprechend essentiell in einem Unternehmen wie diesem. Mit dem Datenbankmodell soll die Komplexität eines Unternehmens anhand des Beispiels "Autohaus" dargestellt werden.
== Modellierung ERM ==
[[Bild:Lalie_Image.png]]
Im Datenbankmodell sind:
Fahrzeuge - KFZ (KFZ_ID, Modellname, Preis, Farbe, Kraftstoff, Marke, Jahr, Leistung)
Kunden - KUNDE (K_ID, Name, Vorname, Telefon, Wohnort)
Mitarbeiter - VERKÄUFER (V_ID, Name, Vorname)
== Transformation in Relationenmodell ==
[[Bild:Lalie_Image_(1).png]]
== Erstellen DB ==
<code id="65ba3455cad1d">
DROP TABLE IF EXISTS KFZ; -- Fals eine Tabelle bereits existiert -löschen
CREATE TABLE KFZ (
Modellname varchar(30), -- alle Datenfelder die wir brauchen - Attribute/Eigenschaften
Marke varchar(30) ,
Preis varchar(10),
Leistung varchar(10),
Kraftstoff varchar (10),
Farbe varchar(10),
Jahr varchar(10),
KFZ_ID varchar(10),
PRIMARY KEY (KFZ_ID) -- primärschlüssel
);
INSERT INTO KFZ VALUES ('Golf 7', 'Volkswagen', '10.850€', '85', 'Benzin', 'weiß', '2014', '11234' );
INSERT INTO KFZ VALUES ('SLC 180 AMG', 'Mercedes-Benz', '34.790€', '155', 'Benzin', 'schwarz', '2019', '11278');
INSERT INTO KFZ VALUES ('Up!', 'Volkswagen', '10.690€', '60', 'Benzin', 'rot', '2018', '11233' );
INSERT INTO KFZ VALUES ('Golf 7', 'Volkswagen', '18.130€', '185', 'Diesel', 'weiß', '2017', '11265' );
INSERT INTO KFZ VALUES ('Q3', 'Audi', '20.540€', '150', 'Diesel', 'weiß', '2017', '11236' ); -- Trennung mit Komma und in '(...)'
INSERT INTO KFZ VALUES ('Vito Tourer', 'Mercedes-Benz', '29.230€', '163', 'Diesel', 'schwarz', '2016', '11298' );
INSERT INTO KFZ VALUES ('Civic', 'Honda', '19.090€', '126', 'Benzin', 'rot', '2020', '11261' );
INSERT INTO KFZ VALUES ('A1', 'Audi', '13.960€', '95', 'Benzin', 'rot', '2018', '11237' );
DROP TABLE IF EXISTS KUNDE;
CREATE TABLE KUNDE (
Name varchar(30),
Vorname varchar(30),
Telefon varchar(30),
Wohnort varchar(30),
K_ID varchar(10),
PRIMARY KEY (K_ID)
);
INSERT INTO KUNDE VALUES ('Hoffmann','Julia','089886019','München','1120');
INSERT INTO KUNDE VALUES ('Müller','Steffen','0911119057','Fürth','1121');
INSERT INTO KUNDE VALUES ('Decker','Peter','040337048','Hamburg','1122');
INSERT INTO KUNDE VALUES ('Bader','Lukas','0211328460','Düsseldorf','1123');
INSERT INTO KUNDE VALUES ('Bergmann','Kerstin','089408527','München','1124');
INSERT INTO KUNDE VALUES ('Wolf','Marina','0941334276','Regensburg','1125');
DROP TABLE IF EXISTS VERKÄUFER;
CREATE TABLE VERKÄUFER (
Name varchar(30),
Vorname varchar(30),
V_ID varchar(30),
PRIMARY KEY (V_ID)
);
INSERT INTO VERKÄUFER VALUES ('Ackermann','Laura','12');
INSERT INTO VERKÄUFER VALUES ('Ackermann','Maximilian','10');
INSERT INTO VERKÄUFER VALUES ('Schwarz','Jonas','13');
INSERT INTO VERKÄUFER VALUES ('Schmidt','Klaus','14');
</code>
'''Abfragen'''
Liste alle Fahrzeuge. Kunden und Verkäufer des Autohaus auf.
<run id="65ba3455cad63">SELECT * FROM KFZ; SELECT * FROM KUNDE; SELECT * FROM VERKÄUFER;</run>
Nenne alle Fahrzeuge die mehr als 15.000€ kosten.
<run id="65ba3455cad63">SELECT * FROM KFZ WHERE Preis > '15.000€' </run>
Nenne alle Autos deren Kraftstoff Diesel ist.
<run id="65ba3455cad63">SELECT * FROM KFZ WHERE Kraftstoff = 'Diesel' </run>
Nenne alle Kunden die aus München und Hamburg kommen.
<run id="65ba3455cad63">SELECT * FROM KUNDE WHERE Wohnort = 'München' OR Wohnort = 'Hamburg' </run>
== kritische Reflexion zu Modellierung und Umsetzung ==
Die Modellierung der Datenbank eines Autohauses ist hier relativ vereinfacht dargestellt, da nur die Fahrzeuge, Kunden und Mitarbeiter im Verhältnis dargestellt sind.
Ein Autohaus bezieht sich jedoch auf weitaus mehr Bereiche, wie zum Beispiel Reparaturen und Verkäufe. Dementsprechend wäre mein Datenbank noch mit weiteren Tabellen zu ergänzen. Des Weiteren besitzt ein Autohaus für gewöhnlich mehr Autos und Kunden als im Modell veranschaulicht sind, weshalb die Datenmengen deutlich größer wären. Ebenso kann es zu Dopplungen einiger Autos kommen, da diese die gleiche Marke, Farbe, Leistung etc. besitzen. Trotzdem ist eine genaue Identifikation durch die individuelle KFZ_ID gewährleistet.
Zwischen Kunde und KFZ gibt es eine 1:n Beziehung, da ein Kunde mehrere Autos kaufen kann, aber ein Modell nur von einem Kunden gekauft werden kann.
Außerdem gibt es eine 1:n Beziehung zwischen Verkäufer und Kunde, bei dem ein Verkäufer mehrere Kunden hat, aber ein Kunde nur von einem Verkäufer beraten wird.
Mit der 1:n Kardinalität kann der Datensatz in einer Tabelle mit einem oder mehreren Datensätzen in einer anderen Tabelle verknüpft werden. Neben der Identifizierung der Tabellen durch den Primärschlüssel gibt es noch den Fremdschlüssel welcher die Tabellen miteinander verbindet.
== Quellen / Tools ==
https://erdplus.com/
Word