|
friese-total.de |
|
|
Wirtschaftsinformatik I - Übung 4
Thema: ER-Modellierung, Relationenmodell, SQL-Statemants
Aufgabe 1:
Erstellen Sie für die folgende Problemstellung
ein Entity-Relationship-Modell und bilden es in Form eines Chen-Diagramms
ab:
Eine Unternehmung mit mehreren Niederlassungen will ihre Personalverwaltung
mit Hilfe eines EDV-Systems durchführen. Die Niederlassungen sind
in Abteilungen untergliedert, die jeweils durch einen Abteilungsleiter
geführt werden.
Fügen Sie geeignete Attribute zu Ihren Objekten hinzu.
Aufgabe 2:
a) Erstellen Sie das ER-Modell
samt Komplexitäten zur Verwaltung von Stücklisten. Als relevante
Attribute müssen neben den Schlüsselattributen die Dispositionsstufe,
die Kennzeichnung, ob ein Teil fremdbezogen oder eigenerstellt wird und
die Produktionskoeffizienten verwaltet werden.
b) Leiten Sie die Relationstypen
aus Ihrem ER-Modell von a) ab.
Teil (TeilNr, TeilName, Bezug, DispoStufe)
Struktur (OberteilNr, UnterteilNr, ProduktKoeffizient)
Diese Entität und Relation wird in die Tabelle übertragen
(Aufgabe 3 c) ).
c) Gegeben ist der folgende Gozintograph:
Nehmen Sie auf der Basis der Informationen, die
Ihnen der Gozintograph liefert, Eintragungen in die von Ihnen abgeleiteten
Tabellen vor. Gehen Sie davon aus, daß lediglich die Einzelteile
E1 bis E3 und B2 fremdbezogen werden.
| Teil |
| TeilNr |
TeilName |
Bezug |
DispoStufe |
| P |
Stuhl |
eigen |
0 |
| B1 |
Verschraubter Sitz und Stuhlbeine |
eigen |
1 |
| B2 |
Lehne |
fremd |
1 |
| E1 |
Stuhlbein |
fremd |
2 |
| E2 |
Sitz |
fremd |
2 |
| E3 |
Schrauben |
fremd |
2 |
| Struktur |
| OberteilNr |
UnterteilNr |
Produktkoeffizient (Menge) |
| P |
B1 |
1 |
| P |
B2 |
1 |
| P |
E3 |
10 |
| B1 |
E1 |
4 |
| B1 |
E2 |
1 |
| B1 |
E3 |
8 |
Aufgabe 3:
Erstellen Sie basierend auf der Aufgabe
2 für folgende Probleme entsprechende SQL-Statements:
Einige Bemerkungen zu den Zusammenhängen vorweg:
| Aufgabe 2 a) |
ER-Modell |
sachlogische
Abhängigkeiten |
| |
 |
|
| Aufgabe 2 b) |
Relationenmodell |
Datenbankmodell |
| |
 |
|
| Aufgabe 3 |
Umsetzung mit SQL-Anweisungen |
Implementierung |
Die wichtigsten Befehle sind im folgenden kurz zusammengefasst:
Der Link SQL-Statements gibt eine komplette Übersicht
inkl. der Syntax.
a) Anlegen aller relevanten Relationen aus Aufgabe
2b).
CREATE TABLE Teil
(TeilNr CHAR(3) NOT NULL,
TeilName CHAR(34) NOT NULL,
DispoStufe INTEGER,
Bezug CHAR(10) NOT NULL,
CONSTRAINT PS_Teil
CONSTRAINT Bezug_Teil
CHECK (Bezug IN ('eigen', 'fremd')))
CREATE TABLE Struktur
(OberteilNr CHAR(3),
UnterteilNr CHAR(3),
Produktkoeffizient INTEGER,
CONSTRAINT PS_Struktur
PRIMARY KEY (OberteilNr, UnterteilNr),
CONSTRAINT Schlüssel_Prüf1
FOREIGN KEY (OberteilNr)
REFERENCES Teil (TeilNr),
CONSTRAINT Schlüssel_Prüf2
FOREIGN KEY (UnterteilNr)
REFERENCES Teil (TeilNr))
b) Einfügen der Datensätze in die Relation
"Teil".
INSERT INTO Teil VALUES
('P', 'Stuhl', 0, 'eigen');
INSERT INTO Teil VALUES
('B1', 'Verschraubter Sitz und Stuhlbeine', 1, 'eigen');
INSERT INTO Teil VALUES
('B2', 'Lehne', 1, 'fremd');
INSERT INTO Teil VALUES
('E1', 'Stuhlbein', 2, 'fremd');
INSERT INTO Teil VALUES
('E2', 'Sitz', 2, 'fremd');
INSERT INTO Teil VALUES
('E3', 'Schrauben', 2, 'fremd');
c) Ausgabe aller Teile mit ID und Bezeichnung
(z.B. B2, Lehne) der Dispositionsstufe 1 (Hinweis: Die Numerierung
der Dispositionsstufen erfolgt von 0 beginnend mit dem Endprodukt P.).
SELECT TeilNr, TeilName FROM Teil
Ergebnis liefert :
-
B1, Verschraubter Sitz und Stuhlbeine
-
B2, Lehne
d) Verändern der Eintragungen, weil nun statt
ursprünglich 10 Schrauben zur Verschraubung der Sitzfläche mit
der Lehne 5 Stück und für die Verschraubung der Stuhlbeine mit
der Sitzfläche 4 Stück benötigt werden.
UPDATE Struktur
SET Produktkoeffizient = 5
WHERE ((OberteilNr = 'P') AND (UnterteilNr = 'E3'))
UPDATE Struktur
SET Produktkoeffizient = 4
WHERE ((OberteilNr = 'B1') AND (UnterteilNr = 'E3'))
Aufgabe 4:
Gegeben sind die folgenden Relationen:
| MitNr |
MitName |
| 1 |
Matjes, Petra |
| 2 |
Scholle, Guideon |
| 3 |
Brandherd, Wolfram |
| 4 |
Schmidt, Reiner |
| 5 |
Tilde, Christian |
| MitNr |
PrNr |
EinDatum |
| 1 |
1 |
21.03.95 |
| 2 |
1 |
15.09.95 |
| 3 |
2 |
20.02.95 |
| 4 |
3 |
15.02.95 |
| PrNr |
PrStart |
PrEnde |
PrName |
| 1 |
21.03.95 |
21.09.96 |
CBT_NN |
| 2 |
20.02.97 |
- |
CBT_PPS |
| 3 |
15.02.97 |
20.06.97 |
CBT_DM |
Formulieren Sie folgende SQL-Statements:
a) Ausgabe aller Projekte, mit Nummer (PrNr) und Name (PrName), die 1997
begonnen wurden.
SELECT PrNr, PrName FROM Projekte
WHERE ((PrStart >= 01.01.97) AND (PrStart <= 31.12.97))
b) Eintragen des Projektendes für das Projekt
CBT_PPS mit 20.06.97.
UPDATE Projekte SET (PrEnde = '20.06.97')
WHERE (PrName = 'CBT_PPS')
c) Ausgabe der Anzahl der Mitarbeiter in Projekt
1.
SELECT COUNT MitNr
FROM Zuordnung
WHERE (PrNr = 1)
d) Ausgabe aller Mitarbeiter mit Nummer und Name
(MitNr, MitName), die in keinem Projekt arbeiten.
SELECT Mitarbeiter.MitNr, Mitarbeiter.MitName
FROM Mitarbeiter
WHERE Mitarbeiter.MitNr NOT IN
(SELECT DISTINCT Zuordnung.MitNr FROM Zuordnung)
e) Ausgabe der Mitarbeiter mit Nummer (MitNr)
und Name (MitName), die seit dem Starttermin an einem Projekt arbeiten.
SELECT Mitarbeiter.MitNr, Mitarbeiter.MitName
FROM Mitarbeiter, Zuordnung, Projekte
WHERE (Zuordnung.EinDatum = Projekte.PrStart)
AND (Mitarbeiter.MitNr = Zuordnung.MitNr)
AND (Zuordnung.PrNr = Projekt.PrNr)
Zur Übersicht Nächstes
Übungsblatt
Bitte lesen: Wichtige Hinweise zu diesen Seiten!
|
| |
|