PMG2224 1/DB Beleg/Ella

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
<center> 
'''''Vom ERM über das Relationshipmodell zur Datenbank'''''

'''Verbildlichung am Aufbau eines Reitvereins''' 
<br>

</center>


=='''Welche Vorlage bietet ein Reitverein für eine Datenbank?'''== 

Ein größerer Reitverein setzt sich aus vielen verschiedenen Komponenten zusammen. Er ist also zum einen sehr vielfältig aber vor allem ist auch jeder Verein für sich einmalig. Diese Komplexität und Individualität bietet sich perfekt dafür an, um den Sachverhalt in ein strukturiertes ERM, RM und später in eine Datenbank zu transformieren. <br> 
> Was nutzt eine Datenbank einem Reitverein? <br>
Das Erstellen einer solchen Datenbank kann auch durchaus für einen bestehenden Verein interessant und nützlich sein. Wie bereits angedeutet, könnten große Datenmengen übersichtlich dargestellt werden. So kann der Vorstand schnell darauf zurückgreifen. Eine effiziente, dauerhafte und fehlerfreie Speicherung von Daten kann gewährleistet werden. Hat man alle Informationen an einem Ort können somit auch Veränderungen, wenn z.B. ein Mitglied den Verein verlassen hat, leicht notiert werden. Eine bedarfsgerechte Bereitstellung von spezifischen Daten ist also durchaus von Nutzen.
<br>
<br>

=='''Modellierung in einem ERM'''==

[[Bild:EllaH_1.03._fertig.PNG]]
<br>

=='''Transformation in ein Relationenmodell'''==

[[Bild:EllaH_08.03..PNG]]
<br>

=='''Erstellen der Datenbank'''==

<code id="65bc9f20a0b3e">
CREATE TABLE Vorstand(
V_Vorname varchar(30),
V_Nachname varchar(30),
V_Geburtsjahr int(4),
V_Nummer int(10),
PRIMARY KEY (V_Nummer)
);

CREATE TABEL Trainer(
T_Spitzname varchar(30),
T_Nachname varchar(30),
T_Vereinszugehörigkeit int(4),
T_Geburtsjahr int(4),
T_Nummer int(10),
PRIMARY KEY (T_Nummer),
FOREIGN KEY (V_Nummer) REFERENCES Vorstand(V_Nummer)
);

CREATE TABLE Vereinsmitglied(
VM_Vorname varchar(30),
VM_Nachname varchar(30),
VM_Geburtsjahr int(4),
VM_Lieblingspferd varchar(30),
VM_Nummer int(60),
PRIMARY KEY (VM_Nummer),
FOREIGN KEY (T_Nummer) REFERENCES Trainer(T_Nummer)
);

INSERT INTO Vorstand VALUES ('Jürgen', 'Jürgenson', '1989', 1111111111);
INSERT INTO Vorstand VALUES ('Sonja', 'Soße'; '1940', 1111111112);

INSERT INTO Trainer VALUES ('Siggi', 'Siegbert', '2000', '1982', 2222222222, 1111111111);
INSERT INTO Trainer VALUES ('Louis', 'Lunte', '1991', '1961', 2222222223, 1111111111);
INSERT INTO Trainer VALUES ('Cani', 'Camembert', '2020', '2000', 2222222224, 1111111112);
INSERT INTO Trainer VALUES ('Cloedia', 'von Rungs', '2015', '1989', 2222222225, 1111111112);

INSERT INTO Vereinsmitglied VALUES ('Hanne', 'Hannelise', '2010', 'PandaPoo', 0000000000, 2222222222);
INSERT INTO Vereinsmitglied VALUES ('Annika', 'Anabell', '2007', 'Rüdiger Ross', 0000000001, 2222222222);
INSERT INTO Vereinsmitglied VALUES ('Johanna', 'Johannisbeere', '2009', 'PandaPoo', 0000000002, 2222222223);
INSERT INTO Vereinsmitglied VALUES ('Ursula', 'Ufo', '2009', 'PandaPoo', 0000000003, 2222222225);
INSERT INTO Vereinsmitglied VALUES ('Dieter', 'Dung', 2008', 'Böhnchen', 0000000004, 2222222224);
INSERT INTO Vereinsmitglied VALUES ('Lara', 'Luftpumpe', '2005', 'Rüdiger Ross', 0000000005,2222222224);
INSERT INTO Vereinsmitglied VALUES ('Fiona, 'Luftpumpe', '2005', 'Rüdiger Ross', 0000000006, 2222222224);

</code>
<br>
=='''Erstellen von Abfragen'''==

Alle Vereinsmitglieder anzeigen lassen
<run id="65bc9f20a0b83">
SELECT * FROM Vereinsmitglied;
</run>
<br>
Alle Trainer beim Vorstand Sonja anzeigen lassen
<run id="65bc9f20a0b83">
SELECT * FROM Trainer,Vorstand WHERE Trainer.V_Nummer = Vorstand.V_Nummer and V_Vorname = 'Sonja';
</run>
<br>
Alle Vereinsmitglieder mit dem Lieblingspferd PandaPoo anzeigen lassen
<run id="65bc9f20a0b83">
SELECT * FROM Vereinsmitglied WHERE VM_Lieblingspferd = 'PandaPoo';
</run>
<br>

=='''Kritische Reflexion'''==

Welche Probleme könnten in Zukungt mit dem Code auftreten? <br>
Die ersten Probleme entstehen, wenn sich die Beziehung zwischen dem Vorstand und den Trainern oder den Trainern und den Vereinsmitgliedern ändert. Wenn also aus den 1 zu n Beziehungen n zu m Beziehungen werden. Sprich wenn ein Trainer weiterhin mehrere Vereinsmitglieder trainiert, aber die Vereinsmitglieder nun auch mehrere Trainer haben, welche sich unterrichten. Dann fehlt eine jeweils dritte Tabelle, die die Verbindungen herstellt, wodurch ein solcher Sachverhalt nicht abgefragt werden könnte. Wenn man nur die Abfragen betrachtet, dann könnte es außerdem problematisch werden, wenn es z.B. zwei 'Vorständler' gibt die Sonja heißen. Es wird dann kompliziert, wenn man alle Trainer ausgegeben bekommen möchte, die Sonja als Vorstand haben, von welcher es zwei gibt. Man müsste die gesuchte Sonja danndirekt mit ihrer Vorstandsnummer suchen. 

=='''Quellen'''==

https://erdplus.com/