PMG2426 1/DB Beleg/Lena

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
= Datenbank Kino=
== Themenwahl ==
Meine Datenbank soll helfen, die Kino Website zu verbessern. Informationen zum Kino selbst, zu den Filmen, die gespielt werden, und zu den Artikeln, die verkauft werden, sollen schneller und einfacher durch die Datenbank angezeigt werden. Bisher gibt es keine Option die Filme nach selbstgewählten Artikeln zu sortieren oder sich die Preise von Artikeln anzeigen zu lassen. Auch das Mitarbeiter-Management soll über die Website erleichtert werden, indem die Mitarbeiter selbst unkompliziert ihre Dienste und Verfügbarkeiten anschauen können. All diese Abfragen sollen den Kinobesuch entspannter gestalten. Meine Datenbank soll dafür eine Lösung bieten.

== Datenbank im ERM ==
[[Bild:Lena._ERM.Kino.jpeg | 750px ]]

== Transformation in RM ==
===Theorie===
# Entität wird Tabellenkopf 
# Attribute als Tabelleninhalt 
#* Primärschlüssel besonders hervorhaben
# Kardinalitäten beachten 
#* Primärschlüssel ggf. als Fremdschlüssel in Tabellen ergänzen

===Praktische Umsetzung===
*<font color=#1874CD>Kino</font> ('''Kino_Nr''', K_Straße, K_Hausnummer, K_Standort, K_Postleitzahl)
*<font color=#1874CD>Artikel</font> ('''Artikel_Nr''', A_Preis, A_Art, A_Lager, '''''Kino_Nr''''')
*<font color=#1874CD>Film</font> ('''Film_Nr''', F_Name, F_FSK, F_Länge, F_Start, F_Saal, '''''Kino_Nr''''')
*<font color=#1874CD>Mitarbeiter</font> ('''Mitarbeiter_Nr''', M_Vorname, M_Nachname, M_Verfügbarkeiten, M_Position, M_Arbeitszeit, '''''Kino_Nr''''')

==Datenbank==

<popup label="Datenbank_Erweiterung">
<code id="6924155bc9ceb">
DROP TABLE IF EXISTS Kino;
CREATE TABLE Kino (
  Kino_Nr int PRIMARY KEY,
  K_Straße varchar(255),
  K_Hausnummer int,
  K_Standort varchar(30),
  K_Postleitzahl int
); 

INSERT INTO Kino VALUES (101, 'Tuchmacherstraße', 37, 'Bautzen', 02627);
INSERT INTO Kino VALUES (102, 'Jakobstraße', 16, 'Görlitz', 02826);
INSERT INTO Kino VALUES (103, 'Markt', 9, 'Zittau', 02763);

DROP TABLE IF EXISTS Artikel;
CREATE TABLE Artikel (
  Artikel_Nr int PRIMARY KEY,
  A_Preis varchar(255),
  A_Art varchar(255),
  A_Lager varchar(255),
  FOREIGN KEY (Kino_Nr) REFERENCES Kino(Kino_Nr)
);
 
INSERT INTO Artikel VALUES (201, '7€', 'Natchos, klein', 'ja');
INSERT INTO Artikel VALUES (202, '9€', 'Natchos, groß', 'ja');
INSERT INTO Artikel VALUES (203, '5€', 'Popcorn, klein', 'ja');
INSERT INTO Artikel VALUES (204, '7€', 'Popcorn, groß', 'ja');
INSERT INTO Artikel VALUES (205, '5€', 'Getränk, klein', 'ja');
INSERT INTO Artikel VALUES (206, '5€', 'Getränk, groß', 'ja');
INSERT INTO Artikel VALUES (207, '%', 'Gutschein', 'nein');

DROP TABLE IF EXISTS Film;
CREATE TABLE Film (
  Film_Nr int PRIMARY KEY,
  F_Saal,
  F_Start time,
  F_Länge int,
  F_FSK,
  F_Name varchar(255),
  FOREIGN KEY (Kino_Nr) REFERENCES Kino(Kino_Nr)
);  

INSERT INTO Film VALUES (301, 1, '14:30:00', 95,  0,  'Mein erster Kinotag');
INSERT INTO Film VALUES (302, 2, '14:30:00', 110, 6,  'Abenteuer im Zauberwald');
INSERT INTO Film VALUES (303, 3, '14:30:00', 125, 12, 'Der letzte Horizont');
INSERT INTO Film VALUES (304, 1, '20:15:00', 98,  16, 'Zwischen zwei Welten');
INSERT INTO Film VALUES (305, 2, '21:30:00', 142, 18, 'Nacht über Berlin');
INSERT INTO Film VALUES (306, 2, '18:15:00', 105, 12, 'Echo der Vergangenheit');
INSERT INTO Film VALUES (302, 3, '16:30:00', 110, 6, 'Abendteuer im Zauberwald');
INSERT INTO Film VALUES (303, 1, '17:00:00', 125, 12, 'Der letzte Horizont');

DROP TABLE IF EXISTS Mitarbeiter;
CREATE TABLE Mitarbeiter (
  Mitarbeiter_Nr int PRIMARY KEY,
  M_Vorname varchar(255),
  M_Nachname varchar(255),
  M_Verfügbarkeiten varchar(255),
  M_Position varchar(255),
  M_Arbeitszeit int,
  FOREIGN KEY (Kino_Nr) REFERENCES Kino(Kino_Nr)
);

INSERT INTO Mitarbeiter VALUES (1, 'Anna',   'Müller',   'Mo,Mi,Fr',        'Theke',          20);
INSERT INTO Mitarbeiter VALUES (2, 'Lukas',  'Schmidt',  'Di,Do,Sa',        'Saalreinigung',  15);
INSERT INTO Mitarbeiter VALUES (3, 'Sophie', 'Weber',    'Mo,Di,Mi,Do',     'Serviceleitung', 35);
INSERT INTO Mitarbeiter VALUES (4, 'Jonas',  'Fischer',  'Fr,Sa,So',        'Techniker',      25);
INSERT INTO Mitarbeiter VALUES (5, 'Lea',    'Becker',   'Mo,Mi,Sa',        'Theke',          18);
INSERT INTO Mitarbeiter VALUES (6, 'Tim',    'Koch',     'Di,Do',           'Saalreinigung',  10);
INSERT INTO Mitarbeiter VALUES (7, 'Marie',  'Hoffmann', 'Mo,Di,Do,Fr',     'Serviceleitung', 30);
INSERT INTO Mitarbeiter VALUES (8, 'Paul',   'Neumann',  'Mi,Sa,So',        'Techniker',      22);
</popup>
<br>

== Abfragen==
Es sollen alle Informationen aus der Datenbank ausgegeben werden in einzelnen Tabellen:
<run id="69835cb1aa54d">
select *
from Kino;

select *
from Artikel;

select *
from Film;

select *
from Mitarbeiter;
</run>

Welche Nummer hat das Kino in Bautzen?
<run id="6983627ce838b">
select Kino_Nr
from Kino
where K_Standort = "Bautzen";
</run>

Welche Artikel sind am teuersten?
<run id="6983652e83520">

</run>
==Quellen==
Wiki Hilfe [[https://programmingwiki.de/Hilfe:Inhaltsverzeichnis]]
Farben [[https://informatik.fandom.com/de/wiki/Farbentabelle]]