PMG2022/DB Beleg/Carl
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
Sammelkarten Datenbank mit verschiedenen Karten, Kunden und Interresenten
==Ziel der Datenbank==
[[Bild:Carl_Pokémon-TCG-First-Edition-Base-Set-PSA10-Charizard.png| right| thumb| Diese Karte wurde für 220000$ verkauft]]
Mit meiner Datenbank möchte ich eine Handelsplatform zwischen Sammelkarten Käufern und Verkäufern schaffen.
Ich habe dieses Thema gewählt, da ich in meiner Kindheit selbst Sammelkarten gesammelt habe, heute sammel ich zwar keine Karten mehr, aber mich fasziniert mitlerweile die Preisentwicklung verschiedener Karten und auch die unterschiedlichen Gründe für den Preisverlauf dieser. Zum einen gibt es einen reinen Sammlerwert der Karten (wie wertvolle Kunstwerke o.ä.) und zum anderen haben viele Karten auch einen spielerischen Wert, da bei so gut wie allen Karten ein Spielprinzip dahinter ist und dieses Spiel auch meist professionell gespielt wird und manche Karten durch ihre guten Fähigkeiten allein schon einen hohen Wert haben.
==ERM Model==
[[Bild:Carl_Image.png]]
==Relationenmodel==
[[Bild:Carl_Unbenannt.png]]
==Datenbank==
<code id="62344745ed69f">
DROP TABLE IF EXISTS phy_Karte;
CREATE TABLE phy_Karte (
ID varchar(6),
KartenID varchar(9),
KundenID varchar(8),
Zustand varchar(10),
Wert decimal(10)
);
Insert into phy_Karte Values ("000000", "000000", "00000", "gut",0.27) ;
Insert into phy_Karte Values ("000001", "000001", "00000", "schlecht",1) ;
Insert into phy_Karte Values ("000002", "000003", "00001", "mittel",6) ;
Insert into phy_Karte Values ("000005", "000003", "00002", "schlecht",2) ;
Insert into phy_Karte Values ("000006", "000003", "00002", "gut",6) ;
Insert into phy_Karte Values ("000007", "000003", "00003", "sehr gut",15) ;
Insert into phy_Karte Values ("000008", "000003", "00002", "gut",6) ;
Insert into phy_Karte Values ("000009", "000003", "00000", "gut",7) ;
Insert into phy_Karte Values ("0000010", "000003", "00000", "super",19.99) ;
Insert into phy_Karte Values ("000003", "000002", "00001", "mittel",4.15) ;
Insert into phy_Karte Values ("000004", "000004", "00001", "super",220000) ;
DROP TABLE IF EXISTS Kunde;
CREATE TABLE Kunde(
ID varchar(8),
Name varchar(20),
Vorname varchar(20),
Wohnort varchar(40),
Strasse varchar(40),
Land varchar(20),
Hausnummer varchar(3)
);
Insert into Kunde Values ("00000", "Mueller", "Heinz","Dresden","Lindenstrasse", "Germany", "5");
Insert into Kunde Values ("00001", "Smith", "Will","London","Downing_street", "UK", "5");
Insert into Kunde Values ("00002", "Lillard", "Samuel","Housten","Houstenroad", "USA", "5");
Insert into Kunde Values ("00003", "Rotriges", "Fernando","Madrid","Gran_Via", "Spain", "5");
DROP TABLE IF EXISTS vir_Karte;
CREATE TABLE vir_Karte (
ID varchar(9),
MarkenID varchar(5),
Name varchar(25),
Erscheinungsjahr varchar(4)
);
Insert into vir_Karte Values ("000000", "00001", "Gilde Lotus", "2018");
Insert into vir_Karte Values ("000001", "00002", "General Grievous", "2010");
Insert into vir_Karte Values ("000002", "00002", "Obi-Wan-Kenobi", "2010");
Insert into vir_Karte Values ("000003", "00000", "Charizard", "2022");
Insert into vir_Karte Values ("000004", "00000", "Charizard", "1996");
DROP TABLE IF EXISTS Interesse;
CREATE TABLE Interesse (
ID varchar(9),
ExemplarID varchar(9),
KundenID varchar(9)
);
Insert into Interesse Values ("000000", "000004", "00001");
Insert into Interesse Values ("000001", "000003", "00000");
Insert into Interesse Values ("000002", "000001", "00003");
DROP TABLE IF EXISTS Marke;
CREATE TABLE Marke(
ID varchar(5),
HerausgeberID varchar(9),
Name varchar(15),
Erscheinungsjahr varchar(4)
);
Insert into Marke Values ("00000", "00000", "Pokemon","1996") ;
Insert into Marke Values ("00001", "00000", "Magic:The_Gathering","1993") ;
Insert into Marke Values ("00002", "00001", "Star_Wars","2010") ;
DROP TABLE IF EXISTS Herausgeber;
CREATE TABLE Herausgeber(
ID varchar(5),
Firmensitz varchar(15),
Name varchar(20),
Gruendungsjahr varchar(4)
);
Insert into Herausgeber Values ("00000", "Renton", "Wizards_of_the_Coast","1990") ;
Insert into Herausgeber Values ("00001", "New_York_City", "Topps","1938") ;
</code>
==Abfragen==
Einfache Abfrage: Es sollen alle Kartenmarken der Spielefirma "Wizards of the Coast" gesucht werden
<run id="623448a2f3540">
Select m.Name,m.Erscheinungsjahr from Herausgeber as h, Marke as m where h.Name = "Wizards_of_the_Coast" and m.HerausgeberID = h.ID;
</run>
Mittelschwere Abfrage: Es sollen alle möglichen Physischen Karten angezeigt werden, bei welchen der Nutzer mit der ID "00000" Interesse hat
<run id="623dd209a4276">Select vk.Name, pk.Zustand, pk.Wert as "Wert in $", k2.Name as "Verkäufername", k2.Vorname as "Verkäufervorname", k2.Wohnort as "Ort", k2.Land
from Kunde as k, phy_Karte as pk, Interesse as i, Kunde as k2, vir_Karte as vk where
i.KundenID = k.ID and i.ExemplarID = pk.KartenID and k.ID = "00000" and k2.ID = pk.KundenID and vk.ID = pk.KartenID;</run>