PMG2022/DB Beleg/Adrian
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
=='''Idee und Ziel der Datenbank'''==
[[Bild:NFL_Logo.png | right | 200px]]
Idee: Verknüpfung von NFL Spielen, dem Team für das Sie spielen und den bisher erreichten Errungenschaften.
Ich musste nicht lange überlegen, über was ich eine Datenbank erstellen möchte. Ich bin ein großer NFL Fan und dieser Sport begleitet mich schon eine längere Zeit. Da uns für die Auswahl unseres
Themas der Datenbank keine Grenzen gesetzt wurden, war mir sofort klar über was meine Datenbank handeln soll.
=='''ERM-Modell'''==
[[Bild:AdrianP_ERM.GIF|1000px]]
=='''Relationenmodell'''==
[[Bild:Relationsmodell3.GIF]]
=='''Datenbanken'''==
<code id="623d846e40909">
DROP TABLE IF EXISTS Spieler;
CREATE TABLE Spieler(
Spielernummer integer,
Geburtsdatum date (50),
Vorname varchar (50),
Nachname varchar (50),
Status varchar (50),
Spielzeit integer,
Teamnummer integer
);
INSERT INTO Spieler Values (1, '1995-09-17', 'Patrick', 'Mahomes', 'aktiv', 5, 1);
INSERT INTO Spieler Values (2, '1977-08-03', 'Tom', 'Brady', 'aktiv', 22, 6);
INSERT INTO Spieler Values (3, '1976-03-24', 'Payton', 'Manning', 'aufgehört', 19, '-');
INSERT INTO Spieler Values (4, '1989-08-05', 'Travis', 'Kelce', 'aktiv', 10, 1);
INSERT INTO Spieler Values (5, '1990-08-30', 'Björn', 'Werner', 'aufgehört', 5, '-');
INSERT INTO Spieler Values (6, '1990-03-02', 'Malcom', 'Butler', 'aktiv', 8, 2);
INSERT INTO Spieler Values (7, '1997-12-14', 'DK', 'Matcalf', 'aktiv', 4, 3);
INSERT INTO Spieler Values (8, '1999-08-03', 'Zach', 'Wilson', 'aktiv', 2, 4);
INSERT INTO Spieler Values (9, '1992-12-24', 'Davante', 'Adams', 'aktiv', 9, 5);
DROP TABLE IF EXISTS Team;
CREATE TABLE Team (
Teamnummer integer,
Trainer varchar (50),
Super Bowl wins integer,
Name varchar (50),
Gründungsjahr integer
);
INSERT INTO Team Values (1, 'Andy Reid', 2, 'Chiefs', 1960);
INSERT INTO Team Values (2, 'Bill Belichick', 6, 'Patriots', 1959);
INSERT INTO Team Values (3, 'Pete Carroll', 1, 'Seahawks', 1974);
INSERT INTO Team Values (4, 'Robert Saleh', 1, 'Jets', 1960);
INSERT INTO Team Values (5, 'Josh McDaniels', 3, 'Raiders', 1960);
INSERT INTO Team Values (6, 'Bruce Arians', 2, 'Buccaneers', 1974);
DROP TABLE IF EXISTS Errungenschaften;
CREATE TABLE Errungenschaften (
Spielernummer integer,
Art varchar (50),
Jahr integer
);
INSERT INTO Errungenschaften Values (1, 'Super Bowl MVP', 2020);
INSERT INTO Errungenschaften Values (1, 'NFL MVP', 2018);
INSERT INTO Errungenschaften Values (1, 'NFL Offensiv Player of the Year', 2018);
INSERT INTO Errungenschaften Values (2, 'Super Bowl MVP', 2002);
INSERT INTO Errungenschaften Values (2, 'Super Bowl MVP', 2005);
INSERT INTO Errungenschaften Values (2, 'SI NFL Player of the Year', 2005);
INSERT INTO Errungenschaften Values (3, 'Super Bowl MVP', 2007);
INSERT INTO Errungenschaften Values (3, 'AP NFL MVP', 2003);
INSERT INTO Errungenschaften Values (3, 'AP FNDL Comeback Player of the Year', 2012);
INSERT INTO Errungenschaften Values (4, 'Pro Bowl MVP', 2016);
INSERT INTO Errungenschaften Values (4, 'First-Team All-Pro', 2016);
INSERT INTO Errungenschaften Values (4, 'First-Team All-Pro', 2020);
INSERT INTO Errungenschaften Values (6, 'Pro Bowl', 2015);
INSERT INTO Errungenschaften Values (6, 'Super Bowl Champion', 2017);
INSERT INTO Errungenschaften Values (6, 'AFC Champion', 2016);
INSERT INTO Errungenschaften Values (7, 'Pro Bowl', 2020);
INSERT INTO Errungenschaften Values (8, 'Famous Idaho Potato Bowl MVP', 2018);
INSERT INTO Errungenschaften Values (8, 'Boca Raton Bowl Offensiv MVP', 2020);
INSERT INTO Errungenschaften Values (9, 'Pro Bowl', 2017);
INSERT INTO Errungenschaften Values (9, 'Pro Bowl', 2019);
INSERT INTO Errungenschaften Values (9, 'First-Team All-Pro', 2020);
DROP TABLE IF EXISTS Instagram;
CREATE TABLE Instagram (
Spielernummer integer,
Follower integer,
Beiträge integer
);
INSERT INTO Instagram Values (1, 4.9, 591);
INSERT INTO Instagram Values (2, 11.7, 727);
INSERT INTO Instagram Values (3, 0.081 , 1);
INSERT INTO Instagram Values (4, 1.5, 798);
INSERT INTO Instagram Values (5, 0.188, 538);
INSERT INTO Instagram Values (6, 0.430, 20);
INSERT INTO Instagram Values (7, 1.7, 191);
INSERT INTO Instagram Values (8, 0.310, 84);
INSERT INTO Instagram Values (9, 1, 650);
</code>
<run id="623d846e4097a">select * from Spieler;
select * from Team;
select * from Errungenschaften;
select * from Instagram;
-- Welcher Spieler spielt schon 5 Jahre oder länger? --
select Vorname,Nachname,Spielzeit From Spieler
where Spieler.Spielzeit >= 5;
-- Welche Spieler spielen bei den Chiefs und wie oft haben sie den Super Bowl gewonnen? --
select Team.Teamnummer,Name,Super, Vorname, Nachname From Team, Spieler
where Team.Teamnummer = '1' and Spieler.Teamnummer = 1 and Team.Super = '2';
-- Welcher Spieler, der weniger als 10 Jahre spielt hat mehr als 1 mio. Follower auf Instagram? --
select distinct Vorname, Nachname, Spielzeit, Follower, Beiträge From Spieler, Instagram
where Spielzeit <= 10 and Follower >= 1 and Spieler.Spielernummer = Instagram.Spielernummer;
-- Wer hat welche Auszeichnung vor 2010 erhalten und ist noch aktiv? --
select Vorname, Nachname, Status, Art, Jahr, Name From Spieler, Team, Errungenschaften
where Jahr <= 2010 and Status = 'aktiv' and Spieler.Spielernummer = Errungenschaften.Spielernummer and Spieler.Teamnummer = Team.Teamnummer;
</run>
=='''Reflexion'''==
Man muss sagen, da jedes Team einen Kader von bis zu 53 Man hat und es insgesamt 32 Teams gibt, bei dieser Anzahl an Spielern kann man nicht alle in die Datenbank eintragen. Die Anzahl der Spieler und Teams in meiner Datenbank sind dennoch ausreichend und umfangreich, wenn auch noch ausbaufähig. Die gewählten Abfragen sind unterschiedlich komplex und umfassen verschiedene Bereiche meine Datenbank und es werden auch alle Tabellen und Einträge, in die Abfragen, eingebunden.
Verbessern könnte man zum einen die Komplexität der Grundidee und der Relationen. Auch könnten die Relationen noch etwas tiefgründiger zwischen einander sein. Zu den Datenbanken lässt sich sagen, diese sind beliebig oft und groß erweiterbar. Dennoch könnte man die Spieler- und Teamnummern jewals mit unterschiedlichen Werten belegen. Beide beginnen jewals mit 1 und man könnte die Teamnummern bei 900 beginnen, damit man den Unterschied zwischen Spielernummern und Teamnummern anhand der Zahlen bereits erkennen kann.
=='''Quellen'''==
==='''SQL-Befehle :'''===
<li>http://volker-janssen.info/BuchDB/Kapitel_10_SQL/10e_SQL_Befehlsübersicht.pdf
==='''Informationen zu Spieler, Team etc. :'''===
<li>https://www.chiefs.com ,
https://de.wikipedia.org/wiki/Patrick_Mahomes ,
https://de.wikipedia.org/wiki/Travis_Kelce
<li>https://www.buccaneers.com ,
https://de.wikipedia.org/wiki/Tom_Brady
<li>https://www.newyorkjets.com ,
https://de.wikipedia.org/wiki/Zach_Wilson
<li>https://www.patriots.com ,
https://de.wikipedia.org/wiki/Malcolm_Butler_(Footballspieler)
<li>https://www.raiders.com ,
https://de.wikipedia.org/wiki/Davante_Adams
<li>https://www.seahawks.com ,
https://de.wikipedia.org/wiki/D._K._Metcalf
<li>https://de.wikipedia.org/wiki/Peyton_Manning
<li>https://de.wikipedia.org/wiki/Björn_Werner
<li> Die Angaben zu der Tabele Instagram sind jewals den Instagram Profilen der jeweiligen Spieler entnommen wurden