PMG1719/DB Beleg/Lea

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
=='''Ziel meiner Datenbank'''==
Bei der Datenbank "Familienvideothek" geht es darum schnell abrufen zu können welche Filme oder Serien vorhanden sind, wem sie gehören oder welche Laufzeit sie haben.
Es kann auch nach einem bestimmten Genre oder einem Jahr gesucht werden, in dem ein Film erschienen ist, um eine gute Auswahl passender Filme angezeigt zu bekommen.
Ebenso wird das Format der Filme angezeigt (z.B.Blue-Ray, MP-4 Datei, DVD,...)

=='''Modellierung als ERM'''==
[[Bild:Lpalme_Datenbank_Film.jpg]]

=='''Transformation in das Relationenmodell'''==
[[Bild:Lpalme_Diagramm1.jpg]]
=='''Erstellen der Datenbank'''==
Tabellen erstellen
<code id="5c383d46d27db">
CREATE TABLE Familienvideothek(FV_ID INTEGER PRIMARY KEY , Größe INTEGER);

CREATE TABLE Familienmitglied(Alt INTEGER, FM_ID INTEGER PRIMARY KEY , FM_Name VARCHAR(255));

CREATE TABLE Film(F_ID INTEGER PRIMARY KEY , Name VARCHAR(255), Laufzeit INTEGER, Genre VARCHAR(255),
Erscheinungsjahr INTEGER, Format VARCHAR(255), FM_ID, FV_ID);

CREATE TABLE Serie(S_ID INTEGER PRIMARY KEY , Name VARCHAR(255), Anzahl_der_Staffeln INTEGER, Genre VARCHAR(255),
Ungefähre_Laufzeit_gesamt INTEGER, FM_ID, FV_ID);
</code>
 
Eingaben

<code id="5c4185cbb9be6">
INSERT INTO Film VALUES (1, 'Venom', 140, 'Science-Fiction', 2017, 'Blue-Ray', 201, 999);
INSERT INTO Film VALUES (2, 'Avatar-Aufbruch nach Pandora', 162, 'Fantasy', 2009, 'DVD', 201, 999); 
INSERT INTO Film VALUES (3, 'Wolverine: Weg des Kriegers', 138,  'Science-Fiction', 2013, 'DVD',202, 999);
INSERT INTO Film VALUES (4, 'Prinz Charming', 90, 'Fantasy', 2018, 'DVD',201, 999);
INSERT INTO Film VALUES (5, 'Doctor Strange', 115, 'Fantasy', 2016, 'Blue-Ray',202,999);
INSERT INTO Film VALUES (6, 'The Green Mile', 189, 'Drama', 2000, 'MP4-Video',203,999);
INSERT INTO Film VALUES (7, 'Titanic', 195, 'Drama', 1997, 'MP4-Video',203,999);
INSERT INTO Film VALUES (8, 'Slumdog Millionär', 120, 'Drama', 2008, 'DVD',203,999);
INSERT INTO Film VALUES (9, 'Edge of Tomorrow', 113, 'Science-Fiction', 2014, 'Blue-Ray',202,999);
INSERT INTO Film VALUES (10, 'Ralph Reichts', 108, 'Fantasy', 2012, 'Blue-Ray',202,999);
INSERT INTO Film VALUES (11, 'Chaos im Netz', 116, 'Fantasy', 2018, 'Blue-Ray',202,999);
INSERT INTO Film VALUES (12, 'The Boss Baby', 97, 'Fantasy', 2017, 'DVD',201,999);
INSERT INTO Film VALUES (13, 'Pets', 100, 'Abenteuer', 2016, 'MP4-Video',201,999);
INSERT INTO Film VALUES (14, 'Deadpool 2', 134, 'Fantasy', 2018, 'MP4-Video',202,999);
-----------------------------------------------------------------------------------------------------------
INSERT INTO Serie VALUES (101, 'The Mentalist', 7, 'US-Krimiserie', 6191, 201,999);
INSERT INTO Serie VALUES (102, 'Castle', 8, 'US-Krimiserie', 7439,201,999);
INSERT INTO Serie VALUES (103, 'Winx Club', 8, 'Zeichentrickserie', 5112,201,999);
INSERT INTO Serie VALUES (104, 'The Walking Dead', 9, 'Drama', 5270,202,999);
-----------------------------------------------------------------------------------------------------------
INSERT INTO Familienmitglied VALUES ( 18,201, 'Lea');
INSERT INTO Familienmitglied VALUES ( 28, 202, 'Tim');
INSERT INTO Familienmitglied VALUES ( 45, 203, 'Eltern');
-----------------------------------------------------------------------------------------------------------
INSERT INTO Familienvideothek VALUES (999, 18)




</code>
<run id="5c383d46d2842">

</run>

=='''Verschiedene Abfragen'''==

Ein Film, der nach dem Jahr 2011 erschienen ist und dem Genre Fantasy angehört, soll angezeigt werden mit Name, Laufzeit und dem Format.
<popup name="Lösung">
SELECT Name, Laufzeit, Format FROM Film WHERE 'Erscheinungsjahr'>2011
 </popup>
<run id="5c4ab2cdc1615">  </run>

Alle Serien, die Tim(FM_ID=202) gehören sollen angezeigt werden ,aber nur mit Name und dem Genre.
<popup name="Lösung">
SELECT Name, Genre FROM Serie WHERE FM_ID=202
 </popup>
<run id="5c4abb92d6864">  </run>

Die Größe der Familienvideothek soll angezeigt werden.
<popup name="Lösung">
SELECT Größe FROM Familienvideothek
 </popup>
<run id="5c4ac35824435">  </run>

Ich möchte mir einen Film anzeigen lassen, welcher zwischen 2010 und 2017 erschienen ist, der aber eine Laufzeit von weniger als 120min hat. Davon möchte ich den Namen, das Genre und das Format gezeigt bekommen.
<popup name="Lösung">
SELECT Name, Genre,Format FROM Film WHERE 'Erscheinungsjahr'>2009 AND 'Erscheinungsjahr'<2018 AND 'Laufzeit'<120
 </popup>

<run></run>

=='''Kritische Reflexion'''==
Mit dem erstellen des ERM´s und des RM´s hatte ich keinerlei Probleme.
Bei der Erstellung der Tabellen gab es dann schon einige kleine Probleme. 

Ich wollte auch, dass man sich einen Film anzeigen lassen kann, welchem dann nicht nur die FM_ID beigefügt wird sondern auch gleich der Name,was mir aber nicht gelang.
Auch konnte ich es nicht schaffen, dass aus der Tabelle Film und aus der Tabelle Serie alle aus einem bestimmten Genre angezeigt werden.

Da das Erstellen der Tabellen hat die meiste Zeit in Anspruch genommen,erstens weil viele Informationen zu einem Eintrag gehören, und zweitens da manchmal die Zeichensetzung nicht auf anhieb korrekt war.

Letztendlich würde ich sagen, dass das meiste ganz gut funktioniert hat, da ich aber noch nie viel mit SQL programmiert habe war es schon eine Herausforderung, weswegen es auch alles eine gewisse Zeit gedauert hat.


Bei meiner letzten Abfrage gibt es ein Problem, ich weiß aber nicht welches, da es eigentlich so funktionieren müsste.

=='''Verwendete Quellen & Tools'''==

Als Quelle habe ich größtenteils meine Filme und Serien von Zuhause verwendet. Teilweise habe ich zusätzliche Informationen über diese aus dem Internet, bzw. direkt von Google abgefragt. 
Eine weitere Quelle ist das ProgrammingWiki, von welchem ich Informationen zur Erstellung einer Datenbank und weitere Hilfen habe.

Das ERM und das RM habe ich mit dem Tool "Dia" erstellt.