PMG2224 1/DB Beleg/Camillo

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
= Datenbankbeleg =

== Ziel der Datenbank ==

Das Ziel dieses Datenbankmanagementsystems für ein Veranstaltungsmanagementsystem ist es, eine effiziente und organisierte Methode zur Verwaltung von Veranstaltungen zu bieten. Es ermöglicht die Speicherung und Abfrage von Daten zu Veranstaltungen, Veranstaltern, Teilnehmern, Tickets und Sponsoren. Mit diesem System können Benutzer Informationen über verschiedene Veranstaltungen abrufen, die Details der Teilnehmer verwalten, Tickets für Veranstaltungen ausstellen und die Beiträge von Sponsoren verfolgen. Es erleichtert auch die Verknüpfung von Veranstaltungen mit ihren jeweiligen Veranstaltern und Sponsoren. Insgesamt soll dieses DBMS die Effizienz und Produktivität von Veranstaltungsmanagementprozessen verbessern.

== Modellierung in einem ERM ==

[[Bild:Camillo_Image.png]]

== Transformation in das Relationenmodell ==

[[Bild:Camillo_R_Modell.png]]

== Erstellen der DB (Struktur/notwendige Datensätze) ==

<code id="65bca1ef36650">
CREATE TABLE Veranstaltungen (
    VeranstaltungsID INT PRIMARY KEY,
    Name VARCHAR(100),
    Datum DATE,
    Ort VARCHAR(255),
    VeranstalterID INT,
    FOREIGN KEY (VeranstalterID) REFERENCES Veranstalter(VeranstalterID)
);

CREATE TABLE Veranstalter (
    VeranstalterID INT PRIMARY KEY,
    Name VARCHAR(100),
    Adresse VARCHAR(255),
    Telefonnummer VARCHAR(15)
);

CREATE TABLE Teilnehmer (
    TeilnehmerID INT PRIMARY KEY,
    Name VARCHAR(100),
    Email VARCHAR(255)
);

CREATE TABLE Tickets (
    TicketID INT PRIMARY KEY,
    VeranstaltungsID INT,
    TeilnehmerID INT,
    Preis DECIMAL(5,2),
    FOREIGN KEY (VeranstaltungsID) REFERENCES Veranstaltungen(VeranstaltungsID),
    FOREIGN KEY (TeilnehmerID) REFERENCES Teilnehmer(TeilnehmerID)
);

CREATE TABLE Sponsoren (
    SponsorID INT PRIMARY KEY,
    Name VARCHAR(100),
    Betrag DECIMAL(7,2)
);

CREATE TABLE Veranstaltung_Sponsor (
    VeranstaltungsID INT,
    SponsorID INT,
    FOREIGN KEY (VeranstaltungsID) REFERENCES Veranstaltungen(VeranstaltungsID),
    FOREIGN KEY (SponsorID) REFERENCES Sponsoren(SponsorID),
    PRIMARY KEY (VeranstaltungsID, SponsorID)
);
</code>


----

<code id="65c5d16b3fb56">
INSERT INTO Veranstaltungen VALUES (1, 'Freiluftkonzert', '22-02-24', 'Dresden', 1);
INSERT INTO Veranstaltungen VALUES (2, 'Szenische Lesung', '28-02-24', 'Kamenz', 2);
INSERT INTO Veranstaltungen VALUES (3, 'Freiluftkonzert', '01-03-24', 'Dresden', 1);

INSERT INTO Veranstalter VALUES (1, 'Dresdner Philharmonie', 'Schlossstraße 2 Dresden', 12345678);
INSERT INTO Veranstalter VALUES (2, 'Leseclub Kamenz', 'Hauptstraße 12 Kamenz', 87654321);
INSERT INTO Veranstalter VALUES (3, 'Deutsch-sorbisches Volkstheather Bautzen', 'Theaterplatz 1 Bautzen', 18273645);

INSERT INTO Teilnehmer VALUES (1, 'Ad Rian', 'rianad@jan.is');
INSERT INTO Teilnehmer VALUES (2, 'Wol Tär', 'woltaer123@pmg-bautzen.lernsax.de');
INSERT INTO Teilnehmer VALUES (3, 'Deez Who', 'illegal@gmail.com');

INSERT INTO Tickets VALUES (1, 1, 1, 90.00);
INSERT INTO Tickets VALUES (2, 2, 2, 00.00);
INSERT INTO Tickets VALUES (3, 3, 2, 40.00);

INSERT INTO Sponsoren VALUES (1, 'Hallsonde Gesellschaft', 800.00);
INSERT INTO Sponsoren VALUES (2, 'Kompression INC.', 1200.00);
INSERT INTO Sponsoren VALUES (3, 'DOS GmbH', 2.00);

INSERT INTO Veranstaltung_Sponsor VALUES (1, 1);
INSERT INTO Veranstaltung_Sponsor VALUES (2, 2);
INSERT INTO Veranstaltung_Sponsor VALUES (3, 1);
INSERT INTO Veranstaltung_Sponsor VALUES (3, 3);
</code>

== Erstellen von verschiedenen Abfragen ==

'''Alle Teilnehmer ausgeben'''
<run id="65bca1ef3669f">
SELECT * FROM Teilnehmer;
</run>

----

'''Alle Veranstaltungen am 22.02.2024 ausgeben'''
<run id="65c5d73253b92">
SELECT * FROM Veranstaltungen WHERE Datum='22-02-24'; 
</run>

----

'''Email aller Teilnehmer, die ein Ticket im Wert von über 50 € besitzen, ausgeben'''
<run id="65c5d7f20140f">
SELECT Teilnehmer.Email FROM Teilnehmer, Tickets WHERE Teilnehmer.TeilnehmerID = Tickets.TeilnehmerID AND Tickets.Preis > 50;
</run>


----

'''Alle Veranstaltungen mit mehr als einem Sponsor ausgeben'''
<run id="65c5dacf8d0a5">
SELECT V.Name FROM Veranstaltungen V WHERE (SELECT COUNT(*) FROM Veranstaltung_Sponsor VS WHERE V.VeranstaltungsID = VS.VeranstaltungsID) > 1;
</run>

== kritische Reflexion zu Modellierung und Umsetzung ==

Das DBMS erfüllt die Zielstellung einer effizienten Veranstaltungsorganisation

== verwendete Quellen, Tools, etc. ==

* ERDplus