Lena

Aus ProgrammingWiki
Archivierte Version vom 2026-02-05T09:52:13+00:00. Aktuelle Version

Inhaltsverzeichnis

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

Lena._Kino_ERM.jpg

Kardinalitäten

Kino/Film Kardinalität: 1:n Ein Kino spielt mehrere Filme. Ein Film wird von einem Kino gespielt (zu einer bestimmten Uhrzeit und in einem bestimmten Saal). Zwar werden die Filme in mehreren Kinos gezeigt, aber jeder Film hat seine eigene Filmnummer wegen unterschiedlichen Saalplanungen und Spielzeiten, deswegen ist die Zuordnung eindeutig.

Kino/Mitarbeiter Kardinalität: 1:n Ein Kino hat/beschäftigt mehrere Mitarbeiter. Ein Mitarbeiter wird von nur einem Kino beschäftigt. Im Normfall sind die Mitarbeiter fest an einem Standort angestellt, weshalb sie eindeutig zuordbar sind.

Kino/Mitarbeiter Kardinalität: n:m Ein Kino verkauft mehrere Artikel. Ein Artikel wird von mehreren Kinos verkauft. Anders als bei Filmen sind die Artikelnummern in jedem Kino die gleichen, wenn man davon ausgeht, dass alle Kinos zu einer Kette gehören. Da die Beziehung mehrdeutig ist, muss eine zusätzliche Tabelle erzeugt werden, damit zugeordnet werden kann welche Artikel in welchem Kino verkauft wurden.

Normalformen

  1. Jede meiner Tabellen entspricht der ENF, denn in jeder Spalte steht nur eine Information, damit ist die Atomatisierung eingehalten. Ein Beispiel wäre die Adresse des Kinos, die sich in Straße, Hausnummer, Postleitzahl und Standort teilt. Es gibt auch eine Ausnahme bei der Tabelle Artikel, auf die ich in der Reflexion eingehe.
  2. Durch die Kardinalitäten wird die eindeutige Zuordnung gewährleistet und damit ist auch die ZNF erfüllt. In jeder Tabelle gibt es den Primärschlüssel (immer die jeweilige Nummer) und wenn notwendig ist auch den Fremdschlüssel.
  3. Die DNF beseitigt alle Abhängigkeiten, die von keinem Primärschlüssel sind. Auch dies ist erfüllt, weil eine neue Tabelle für Artikel und Kino Zugehörigkeit erstellt wurde.

Transformation in RM

Theorie

  1. Entität wird Tabellenkopf
  2. Attribute als Tabelleninhalt
    • Primärschlüssel besonders hervorhaben (Dick)
  3. Kardinalitäten beachten
    • Primärschlüssel ggf. als Fremdschlüssel in Tabellen ergänzen (Dick und Kursiv)

Praktische Umsetzung

  • Kino (Kino_Nr, K_Straße, K_Hausnummer, K_Standort, K_Postleitzahl)
  • Artikel (Artikel_Nr, A_Preis, A_Art, A_Lager)
  • Film (Film_Nr, F_Name, F_FSK, F_Länge, F_Start, F_Saal, Kino_Nr)
  • Mitarbeiter (Mitarbeiter_Nr, M_Vorname, M_Nachname, M_Verfügbarkeiten, M_Position, M_Arbeitszeit, Kino_Nr)
  • Kino_Artikel (Kino_Nr, Artikel_Nr)

Datenbank

Datenbank_Einträge

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);

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, '4,50€', 'Getränk, klein', 'ja'); INSERT INTO Artikel VALUES (206, '7€', 'Getränk, groß', 'ja'); INSERT INTO Artikel VALUES (207, '%', 'Gutschein', 'nein');

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

INSERT INTO Mitarbeiter VALUES (1, 'Anna', 'Müller', 'Mo,Mi,Fr', 'Theke', 20, 101); INSERT INTO Mitarbeiter VALUES (2, 'Lukas', 'Schmidt', 'Di,Do,Sa', 'Saalreinigung', 15, 101); INSERT INTO Mitarbeiter VALUES (3, 'Sophie', 'Weber', 'Mo,Di,Mi,Do', 'Techniker', 35, 101); INSERT INTO Mitarbeiter VALUES (4, 'Jonas', 'Fischer', 'Fr,Sa,So', 'Serviceleitung', 25, 101); INSERT INTO Mitarbeiter VALUES (5, 'Lea', 'Becker', 'Mo,Mi,Sa', 'Theke', 18, 101); INSERT INTO Mitarbeiter VALUES (6, 'Tim', 'Koch', 'Di,Do', 'Saalreinigung', 10, 101); INSERT INTO Mitarbeiter VALUES (7, 'Marie', 'Hoffmann', 'Mo,Di,Do,Fr', 'Serviceleitung', 30, 101); INSERT INTO Mitarbeiter VALUES (8, 'Paul', 'Neumann', 'Mi,Sa,So', 'Techniker', 22, 101); INSERT INTO Mitarbeiter VALUES (9, 'Tom', 'Schulz', 'Mo,Mi,Fr', 'Theke', 20, 102); INSERT INTO Mitarbeiter VALUES (10, 'Julia', 'Lang', 'Di,Do,Sa', 'Saalreinigung', 15, 102); INSERT INTO Mitarbeiter VALUES (11, 'Marc', 'Keller', 'Mo,Di,Mi,Do', 'Techniker', 35, 102); INSERT INTO Mitarbeiter VALUES (12, 'Laura', 'Berg', 'Fr,Sa,So', 'Serviceleitung', 25, 102); INSERT INTO Mitarbeiter VALUES (13, 'Kevin', 'Fuchs', 'Mo,Mi,Sa', 'Theke', 18, 102); INSERT INTO Mitarbeiter VALUES (14, 'Sarah', 'Meier', 'Di,Do', 'Saalreinigung', 10, 102); INSERT INTO Mitarbeiter VALUES (15, 'Daniel', 'Richter', 'Mo,Di,Do,Fr', 'Serviceleitung', 30, 102); INSERT INTO Mitarbeiter VALUES (16, 'Nina', 'Schmidt', 'Mi,Sa,So', 'Techniker', 22, 102); INSERT INTO Mitarbeiter VALUES (17, 'Peter', 'Wolf', 'Mo,Mi,Fr', 'Theke', 20, 103); INSERT INTO Mitarbeiter VALUES (18, 'Lisa', 'Hahn', 'Di,Do,Sa', 'Saalreinigung', 15, 103); INSERT INTO Mitarbeiter VALUES (19, 'Sebastian', 'Krause', 'Mo,Di,Mi,Do', 'Techniker', 35, 103); INSERT INTO Mitarbeiter VALUES (20, 'Clara',' Jung', 'Fr,Sa,So', 'Techniker', 25, 103); INSERT INTO Mitarbeiter VALUES (21, 'Felix', 'Brandt', 'Mo,Mi,Sa', 'Theke', 18, 103); INSERT INTO Mitarbeiter VALUES (22, 'Emma', 'Lorenz', 'Di,Do', 'Saalreinigung', 10, 103); INSERT INTO Mitarbeiter VALUES (23, 'Jonas', 'Bauer', 'Mo,Di,Do,Fr', 'Serviceleitung', 30, 103); INSERT INTO Mitarbeiter VALUES (24, 'Mara', 'Hoffmann', 'Mi,Sa,So', 'Serviceleitung', 22, 103);


Abfragen

Es sollen alle Informationen aus der Datenbank ausgegeben werden in einzelnen Tabellen:

Wo sind die Kinos? Welche Nummer hat das Kino in Bautzen?

Welche Artikel sind am teuersten? Wie viel kosten kleine Natchos mit großem Popcorn und großem Getränk?

Welcher Film ist höchstens FSK 12? Welche Filme laufen im Kino Bautzen in Saal 2?

Wer kann am Wochenende arbeiten? Wer ist stellvertretender Chef im Kino Bautzen?

Quellen

Wiki Hilfe https://programmingwiki.de/Hilfe:Inhaltsverzeichnis Farben https://informatik.fandom.com/de/wiki/Farbentabelle