PMG/Kurs 11/D Beleg/Robert
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
== Datenbank einer Bürofirma ==
Ich erstelle hier eine Datenbank eines Unternehmens mit angemessenen Angestellten und ihren Löhnen, wie auch zu den Aufträgen der Firma bzw. des Unternehmens.
Dies tue ich, weil ich vielleicht mal später in so einer Art Geschäft arbeiten wöllte.
== Modellierung in einem ERM ==
[[Bild:XXxrobbe117xXx_Diagram1.png]]
Zwischen dem Unternehmen und den Angestellten gibt es die Kardinalität 1:n , da jede Firma mehrere Angestellte besitzen kann, aber jeder Angestellte nur eine Firma.
Zwischen den Angestellten und ihren Aufträgen liegt die Kardinalität 1:n vor, da ein Angestellter der Firma auch an mehreren Aufträgen sitzen kann.
Zwischen Angestellter und Lohn gibt es die Kardinalität 1:1 , da jeder Angestellte seinen eigenen Lohn erhält und nicht mehr bekommt als er verdient!
== Transformation in das Relationenmodell ==
Unternehmen (Firma-ID; Ort; Name; Straße)
Angestellte (Firma-ID; A-ID; Name; Vorname; Land)
Büromaterial (Schreibzeug; A-ID; Papier; Drucker; Geschäftsauto)
Auftrag (Auftrags-ID; Auftraggeber; Kosten; Zeitaufwand)
Firmen-Auftrag (FA-ID; Arbeitszeit-Stunden; Auftrags-ID; A-ID)
== Transformation in die Datenbank ==
<popup label="Datenbank">
<code id="50ff92acd7e00">
Drop Table if exists Unternehmen;
Create Table Unternehmen (
Firma-ID varchar (5),
Ort varchar (20),
Name varchar (30),
Straße varchar (30));
INSERT INTO Unternehmen VALUES('11112', 'Bischofswerda', 'Alpha-Corporation', 'Schnellstraße 2');
INSERT INTO Unternehmen VALUES('11121', 'Bautzen', 'U-Unternehmen', 'Hofweg 12');
INSERT INTO Unternehmen VALUES('11211', 'Berlin', 'Bär-Unternehmen', 'Kreutzigerstraße 1');
INSERT INTO Unternehmen VALUES('12111', 'Köln', 'Zug-Unternehmen', 'Unterstraße 22');
Drop Table if exists Angestellte;
Create Table Angestellte (
A-ID varchar (6),
Firma-ID varchar (5),
Name varchar (20),
Vorname varchar (20),
Ort varchar (20),
Straße varchar (20),
Land varchar (20));
INSERT INTO Angestellte VALUES('121212', '12111', 'Werner', 'Reinhard', 'Berlin', 'Gutweg 5', 'Deutschland');
INSERT INTO Angestellte VALUES('123456', '11121', 'Dieter', 'Berta', 'Hong Kong', 'Jing Jang Weg 32', 'China');
INSERT INTO Angestellte VALUES('654321', '11211', 'Udolf' , 'Udo', 'Tschernobyl', Strahlemann Weg 2', 'Russland');
INSERT INTO Angestellte VALUES('666666', '11112', 'Rudolf', 'Ludolf', 'Köln', 'Ludolf Weg', 'Deutschland');
Drop Table if exists Auftrag;
Create Table Auftrag (
Auftrags-ID varchar (5),
Auftraggeber varchar (20),
Kosten-in-€ varchar (10),
Zeitaufwand-in-Tage (10));
INSERT INTO Auftrag VALUES('99999', 'Familie Zich', '150', '5');
INSERT INTO Auftrag VALUES('98989', 'Familie Dietrich', '644', '22');
INSERT INTO Auftrag VALUES('88888', 'Familie Peterson', '333', '10');
INSERT INTO Auftrag VALUES('88899', 'Familie Ingolf', '877', '14');
INSERT INTO Auftrag VALUES('88887', 'Familie Bulli', '465', '12');
Drop Table if exists Büromaterial;
Create Table Büromaterial (
A-ID varchar (6),
Schreibzeug varchar (4),
Papier varchar (4),
Drucker varchar (4),
Geschäftsauto varchar (4));
INSERT INTO Büromaterial VALUES('654321', 'ja', 'nein', 'ja', 'ja');
INSERT INTO Büromaterial VALUES('666666', 'ja', 'ja', 'ja', 'ja');
INSERT INTO Büromaterial VALUES('121212', 'nein', 'nein', 'nein', 'ja');
INSERT INTO Büromaterial VALUES('123456', 'nein', 'ja', 'ja', 'nein');
Drop Table if exists Firmen-Auftrag;
Create Table Firmen-Auftrag (
FA-ID varchar (3),
Arbeitszeit-Stunden varchar (4),
Auftrags-ID varchar (5),
A-ID varchar (6));
INSERT INTO Firmen-Auftrag VALUES('111', '19', '99999', '11112');
INSERT INTO Firmen-Auftrag VALUES('121', '199', '99999', '11211');
INSERT INTO Firmen-Auftrag VALUES('131', '2', '88888', '11121');
INSERT INTO Firmen-Auftrag VALUES('141', '20', '88888', '12111');
INSERT INTO Firmen-Auftrag VALUES('151', '200', '98989', '11112');
INSERT INTO Firmen-Auftrag VALUES('161', '300', '88899', '11121');
INSERT INTO Firmen-Auftrag VALUES('171', '150', '88887', '11211');
</code>
</popup>
== Abfragen der Datenbank ==