PMG1719/DB Beleg/Richard
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
=Eigene Datenbank=
==Thema==
===Themenwahl===
Ich habe mich für dieses Thema des Datenbank Belegs entschieden, da ich in meiner Freizeit als Freiwilliger Feuerwehrmann tätig bin. Somit wollte ich mir annähernd einen Überblick verschaffen wie eine Datenbank der Feuerwehr aufgebaut ist. Natürlich ist dies nur ein kleiner Ausschnitt der Realität.
===Ziel der Datenbank===
Mein Persönliches Ziel war es, die Komlexität des Erstellens von Datenbanken zu erkennen, die Arbeit mit Datenbanken zu vertiefen und mein Können zu verbesssern.
==Modelle==
===Merkmale der Modelle===
====Kardinalität====
'''1:1 Beziehung''': Jeder Datensatz ist in Tabelle A genau einem Datensatz in Tabelle B zugeordnet und umgekehrt
'''1:n Beziehung''': In einem Datensatz der Tabelle A können mehrere passende Datensätze in der Tabelle B zugeordnet sein, aber einem Datensatz in Tabelle B ist nie mehr als ein Datensatz in Tabelle A zugeordnet
'''m:n Beziehung''': Jedem Datensatz in Tabelle A können mehrere passende Datensätze in Tabelle B zugeordnet sein und umgekehrt
====Normalform====
1. Normalform (1. NF): Jede Information -> eine Spalte
2. Normalform (2. NF): Primärschlüssel-> für eindeutige Zuordnung
3. Normalform (3. NF):kein Nichtschlüsselmerkmal ist von irgendeinem Schlüssel transitiv abhängig
===Entity-Relationship-Modell===
[[Bild:Rhauschild_ERM_DB-Beleg_2.jpeg]]
===Relationenmodell===
====Tabellenform====
[[Bild:Rhauschild_Relationenmodell.jpeg]]
====Zeilenform====
Primärschlüssel: Fett
Person: '''Mitgliedsnummer''', Name, Vorname, Geburtsdatum, Straße, PLZ, Wohnort, Telefonnummer
Ausbilder: '''Ausbildernummer''', Name, Vorname, Geburtsdatum, Straße, PLZ, Wohnort, Telefonnummer
Feuerwehr: '''Wehrnummer''', Name, Straße, PLZ, Ort, Telefonnummer
Lehrgang: '''Lehrgang_ID''', Name, max. Teilnehmer
==Datenbank und Abfragen==
<code id="18">
DROP TABLE IF EXISTS Person;
CREATE TABLE Person(
Mitgliedsnummer varchar (10),
Name varchar (255),
Vorname varchar (255),
Straße varchar (255),
PLZ varchar (7),
Wohnort varchar (255),
Telefonnummer varchar (255),
Geburtsdatum varchar (12),
Ausbildernummer varchar (255),
Wehrnummer varchar (255),
);
DROP TABLE IF EXISTS Ausbilder;
CREATE TABLE Ausbilder(
Ausbildernummer varchar (255),
Name varchar (255),
Vorname varchar (255),
Straße varchar (255),
PLZ varchar (7),
Wohnort varchar (255),
Telefonnummer varchar (255),
Geburtsdatum varchar (12),
Lehrgang_ID varchar (255),
);
DROP TABLE IF EXISTS Feuerwehr;
CREATE TABLE Feuerwehr(
Wehrnummer varchar (255),
Name varchar (255),
Straße varchar (255),
PLZ varchar (7),
Ort varchar (255),
Telefonnummer varchar (255),
);
DROP TABLE IF EXISTS Lehrgang;
CREATE TABLE Lehrgang(
Lehrgang_ID varchar (255),
Name varchar (255),
max. Teilnehmer varchar (255),
);
INSERT INTO Person VALUES ('001', 'Mueller', 'Hans', 'Rosenweg 14', '02625', 'Bautzen', '03591/80713', '25.06.1950', '0001', '00001');
INSERT INTO Person VALUES ('002', 'Reif', 'Jochen', 'Goethestrasse 25', '02627', 'Radibor', '035935/77315', '19.03.1983', '0002', '00002');
INSERT INTO Person VALUES ('003', 'Schmidt', 'Richard', 'Schlossweg 8', '02625', 'Bautzen', '03591/24839', '01.10.1955', '0003', '00003');
INSERT INTO Person VALUES ('004', 'Meinert', 'Ronny', 'Hauptstrasse 5', '02699', 'Neschwitz', '035933/23164', '14.02.1965', '0002', '00004');
INSERT INTO Person VALUES ('005', 'Meinert', 'Felix', 'Hauptstrasse 5', '02699', 'Neschwitz', '035933/23164', '25.11.1995', '0001', '00005');
INSERT INTO Person VALUES ('006', 'Eisner', 'Wolfgang', 'Bautzener Strasse 45', '02694', 'Grossdubrau', '035934/36646', '23.09.1979', '0003', '00006');
INSERT INTO Person VALUES ('007', 'Berndt', 'Ruediger', 'Fliederweg 3', '02625', 'Bautzen', '03591/28154', '01.12.1951', '0004', '00001');
INSERT INTO Person VALUES ('008', 'Meier', 'Katrin', 'Schlossstrasse 7', '02694', 'Malschwitz', '035932/39176', '27.10.1980', '0004', '00006');
INSERT INTO Person VALUES ('009', 'Schneider', 'Mark', 'Museumsstrasse 15', '02699', 'Koenigswartha', '035931/21034', '05.01.1991', '0002', '00005');
INSERT INTO Person VALUES ('010', 'Krause', 'Rolf', 'Wilthener Strasse 1', '02627', 'Hochkirch', '035939/10253', '02.02.1974', '0004', '00007');
INSERT INTO Ausbilder VALUES ('0001', 'Schmidt', 'Werner', 'Teichallee 8', '02625', 'Bautzen', '03591/37281', '31.05.1961', '12341');
INSERT INTO Ausbilder VALUES ('0002', 'Friedrich', 'Juergen', 'Parkweg 23', '02627', 'Radibor', '035935/28176', '24.03.1958', '12342');
INSERT INTO Ausbilder VALUES ('0003', 'Fischer', 'Friedrich', 'Hafenstrasse 3', '02625', 'Bautzen', '03591/12034', '20.01.1966', '12343');
INSERT INTO Ausbilder VALUES ('0004', 'Meier', 'Gerhard', 'Poststrasse 14', '02699', 'Neschwitz', '035933/52820', '20.06.1953', '12344');
INSERT INTO Feuerwehr VALUES ('00001', 'FFW Bautzen', 'Gesunbrunnenring 23', '02625', 'Bautzen', '03591/05033');
INSERT INTO Feuerwehr VALUES ('00002', 'FFW Radibor', 'Nagelstraße 41', '02627', 'Radibor', '035935/05827');
INSERT INTO Feuerwehr VALUES ('00003', 'FFW Neschwitz', 'Heringstraße 4', '02699', 'Neschwitz', '035933/10246');
INSERT INTO Feuerwehr VALUES ('00004', 'FFW Großdubrau', 'Lessingweg 31', '02694', 'Großdubrau', '035934/28154');
INSERT INTO Feuerwehr VALUES ('00005', 'FFW Malschwitz', 'Schulstraße 21', '02694', 'Malschwitz', '035932/10241');
INSERT INTO Feuerwehr VALUES ('00006', 'FFW Stiebitz', 'Am alten Sportlerheim 1', '02699', 'Stiebitz', '035931/44492');
INSERT INTO Feuerwehr VALUES ('00007', 'FFW Hochkirch', 'Jägerring 17', '02627', 'Hochkirch', '035939/05456');
INSERT INTO Lehrgang VALUES ('12341', 'Pressluft', '20');
INSERT INTO Lehrgang VALUES ('12342', 'Technische Hilfe', '14');
INSERT INTO Lehrgang VALUES ('12343', 'Sprechfunk', '26');
INSERT INTO Lehrgang VALUES ('12344', 'Gruppenführer', '14');
</code>
<run id="18">
Abfrage 1
</run>
<run id="18">
Abfrage 2
</run>
<run id="18">
Abfrage 3
</run>
<run id="18">
Abrage 4
</run>
==Reflexion zu Modellierung und Umsetzung==