Dat sind wir ...
 

 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:
 
Erstellen von Tabellen CREATE TABLE ...
Auswählen von Datensätzen SELECT ... FROM ... WHERE ...
Aktualisierung von Tabellen UPDATE ...
Einfügen von Tabellen INSERT ...
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
      PRIMARY KEY (TeilNr),
     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
    WHERE Dispstufe = 1;
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!