PMG/Kurs 11/D Beleg/Maximilian
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
'''Anforderungen an das Datenbank-Projekt'''
Bearbeiten Sie ein Datenbank-Projekt zu einem Thema Ihrer Wahl.
Dazu gehören:
* Ziel der Datenbank ("Begründung" der Themenwahl)
* Modellierung in einem ERM
* Transformation in das Relationenmodell
* Erstellen der DB (Struktur/notwendige Datensätze)
* Erstellen von verschiedenen Abfragen (unterschiedlicher „Schwierigkeit“)
'''Das Projekt ist komplett im PWiki zu bearbeiten.''' <br>
Dabei arbeitet jeder auf einer eigenen Seite (siehe Links unten). <br>
Wichtige Merkmale der Modelle (Kardinalität, Normalform, ...) sind zu erläutern.<br>
Das ERM ist als Bild (erzeugt mit dem Tool "Dia") einzufügen.
Bearbeitung des Projekts während der Unterrichtsstunden.
== Datenbank ==
=== Thema ===
'''Softwarebestellungen bei einem Vertriebsladen für Software'''<br>
Das Ziel dieser Datenbank ist es, ein System zu simulieren, welches z.B von einer Firma verwendet werden könnte, die Software an verschiedene Kunden vertreibt.
=== ERM ===
<popup label="ERM-Modell">
[[Bild:Max 232_Software-Datenbank.png]]
</popup>
=== Relationenmodell ===
Kunden (<u>Kundennr</u>, Name, Vorname, Straße, Ort, Telefonnr)<br>
Bestellungen (<u>Bestellungsnr</u>, Bestellungsanzahl, Lieferadresse, Lieferstadt, <span style="border-bottom:1px dashed#000000;">Kundennr, Artikelnr</span>)<br>
Lagerbestand (Artikelname, Artikelanzahl, Artikelpreis, <span style="border-bottom:1px dashed#000000;">Artikelnr, Herstellernr</span>)<br>
Softwarehersteller (<u>Herstellernr</u>, Herstellername, Herstelleradresse, Herstellerstadt, Herstellertelefonnr)<br>
Artikel (<u>Artikelnr</u>, Artikelname, Einkaufspreis, Artikelanzahl, <span style="border-bottom:1px dashed#000000;">Herstellername</span>)<br>
=== Datenbank ===
<popup label="Datenbank">
<code id="512cf7b996042">
Drop Table if exists Kunden;
Create Table Kunden (
Kundennr varchar (7),
Name varchar (30),
Vorname varchar (30),
Straße varchar (30),
Ort varchar (20),
Telefonnr varchar (16),
PRIMARY KEY (Kundennr));
Drop Table if exists Bestellungen;
Create Table Bestellungen (
Bestellungsnr varchar (7),
Bestellungsanzahl varchar (30),
Lieferadresse varchar (30),
Lieferstadt varchar (30),
Kundennr varchar (20),
Artikelnr varchar (16),
PRIMARY KEY (Bestellungsnr));
Drop Table if exists Lagerbestand;
Create Table Lagerbestand (
Artikelname varchar (30),
Artikelanzahl varchar (30),
Artikelpreis varchar (30),
Artikelnr varchar (30),
Herstellernr varchar (20));
Drop Table if exists Softwarehersteller;
Create Table Softwarehersteller (
Herstellernr varchar (7),
Herstellername varchar (30),
Herstelleradresse varchar (30),
Herstellerstadt varchar (30),
Herstellertelefonnr varchar (30),
PRIMARY KEY (Herstellernr));
Drop Table if exists Artikel;
Create Table Artikel (
Artikelnr varchar (7),
Artikelname varchar (30),
Einkaufspreis varchar (30),
Artikelanzahl varchar (30),
Herstellernr varchar (30),
PRIMARY KEY (Artikelnr));
INSERT INTO Kunden Values ('001', 'Schmidt', 'Hans', 'Alphastraße 1', 'Bautzen', '03591111111');
INSERT INTO Kunden Values ('002', 'Müller', 'Karl', 'Betastraße 2', 'Bautzen', '03591111112');
INSERT INTO Kunden Values ('047', 'Meier', 'Gretel', 'Gammastraße 4', 'Bautzen', '03591111113');
INSERT INTO Kunden Values ('009', 'Neumann', 'Fritz', 'Deltastraße 61', 'Bautzen', '03591111114');
INSERT INTO Bestellungen Values ('2343', '2', 'Talallee 4', 'Droben', '001', '01111');
INSERT INTO Bestellungen Values ('2344', '5', 'Betastraße 2', 'Bautzen', '002', '01112');
INSERT INTO Bestellungen Values ('2345', '200', 'Hafengasse 1', 'München', '009', '01115');
INSERT INTO Bestellungen Values ('2346', '21', 'Talallee 4', 'Droben', '001', '01114');
INSERT INTO Bestellungen Values ('2347', '1', 'Bautzner Straße 5', 'Kamenz', '047', '01111');
INSERT INTO Lagerbestand Values ('Fluch der Karibik 5 - The Game', '100', '15,00', '01111', 'ab34');
INSERT INTO Lagerbestand Values ('Ghostbusters 6 - The Game', '99', '25,00', '01112', 'ab34');
INSERT INTO Lagerbestand Values ('Imprisoned', '100', '16,00', '01113', 'ab32');
INSERT INTO Lagerbestand Values ('Death Race', '200', '15,00', '01114', 'ab34');
INSERT INTO Lagerbestand Values ('Eternity', '364', '14,99', '01115', 'ab35');
INSERT INTO Softwarehersteller Values ('ab32', 'Albina', 'Münchnerstraße 2', 'München', '7893215641');
INSERT INTO Softwarehersteller Values ('ab33', 'Beta-Gaming', 'Münchnerstraße 3', 'München', '7893215642');
INSERT INTO Softwarehersteller Values ('ab34', 'Chorus-Programming', 'Münchnerstraße 4', 'München', '7893215643');
INSERT INTO Softwarehersteller Values ('ab35', 'Draconius', 'Münchnerstraße 5', 'München', '7893215644');
INSERT INTO Artikel Values ('01111', 'Fluch der Karibik 5 - The Game', '10,00', '100', 'ab32');
INSERT INTO Artikel Values ('01112', 'Ghostbusters 6 - The Game', '10,00', '99', 'ab33');
INSERT INTO Artikel Values ('01113', 'Imprisoned', '10,00', '100', 'ab32');
INSERT INTO Artikel Values ('01114', 'Death Race', '10,00', '200', 'ab32');
INSERT INTO Artikel Values ('01115', 'Eternity', '10,00', '364', 'ab35');
</code>
</popup>
=== Abfragen ===
<run id="512db274e7ad8">
Select Kundennr, Name, Vorname, Bestellungen.*
From Kunden, Bestellungen
Where Kunden.Kundennr = Bestellungen.Kundennr
</run>
<run>
Select Artikel.*, Lagerbestand.Artikelpreis
From Artikel, Lagerbestand
Where Artikel.Artikelnr = Lagerbestand.Artikelnr
</run>