• Keine Ergebnisse gefunden

Versuchsziele Vertiefung in der ERM-Modellierung. Benutzen eines Designers.

N/A
N/A
Protected

Academic year: 2021

Aktie "Versuchsziele Vertiefung in der ERM-Modellierung. Benutzen eines Designers."

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Hochschule Harz FB Automatisierung und Informatik Versuch:

ERM-Modell

Grundlagen der Informatik III Thema: Grundlagen der Datenbanken

Versuchsziele

Vertiefung in der ERM-Modellierung. Benutzen eines Designers.

Aufgabenstellung:

Entwickeln Sie mit Hilfe des Designers ein ERM-Diagramm und erzeugen damit eine Datenbank unter Firebird. Mit dem Designer soll eine Datenbank für eine Buchhandlung entwickelt werden.

Dabei kann ein Kunde mehrere Exemplare eines Buches bestellen. Auch soll eine Zuordnung Kunde zu Verkäufer realisiert werden. Jede Bestellung muss gespeichert werden, damit Ende des Jahres für gute Kunden Weihnachtskarten verschickt werden können. Unterscheiden Sie zwischen Rechnung und Bestellung.

Versuchsdurchführung

1) Skizzieren Sie einen Grobentwurf auf Papier.

2) Kopieren Sie den Ordner „C:\Programme\wilhelm\designer“ nach c:\Daten 3) Rufen Sie den Designer auf und entwickeln ein konzeptionelles Modell (mit n×m-

Beziehungen (Entity, Attribute und Beziehungen), Kurztaste STRG+M.

Beachten Sie: Es dürfen keine Fremdschlüssel eingetragen werden. Dies trägt der Designer automatisch in die Entities ein.

4) Entwickeln Sie die Beziehungen zwischen den Entities.

5) Lassen Sie den Entwurf überprüfen.

6) Mit der Taste „F9“ wird der konzeptionelle Entwurf in ein logisches Modell umgewandelt.

Die n×m-Beziehung wurde durch zwei hierarchische Beziehung ersetzt. Diese können durch das logische Modell abgebildet werden. Die Fremdschlüssel werden automatisch

übernommen. Man sollte das Entity danach umbenennen.

7) N×M-Beziehungen werden durch zwei neue Beziehungen ersetzt. Der Designer verwendet dazu die Kurznamen.

Beispiel:

Kunde (n) kauft (m) Bücher Ein Kunde kann mehrere Bücher kaufen.

Ein Buch kann von mehrere Kunden gekauft werden

Im konzeptionellen Modell kann man hier eine n×m-Beziehung eintragen.

Im logischen Modell erhält man das neue „Entity“ KD_BCH. Dieses hat mit beiden Entities jeweils eine hierarchische Beziehungen.

(2)

9) Rufen Sie die „IBOConsole“ auf und erzeugen eine neue Datenbank (siehe Anlage) 10) Lassen Sie die Create-Table Scripte durchlaufen.

11) Tragen Sie die Fremdschlüssel-Beziehungen ein.

12) Tragen Sie Daten in die Tabellen ein.

Bestimmen Sie vorher die Reihenfolge des Eintragens!

13) Prüfen Sie diese mit einigen Abfragen (siehe Beispielabfragen) 14) Ändern Sie den Namen des Kunden „Bach“ in „Bollrich“.

Hinweise:

Syntax der „CREATE TABLE“ Anweisung:

CREATE TABLE [schema.] table (column datatype [DEFAULT expr], …);

In der Syntax ist:

table ist der Name der Tabelle.

DEFAULT expr gibt einen Standardwert an, falls die INSERT-Anweisung keinen Wert enthält.

column ist der Name der Spalte.

Datatype ist der Datentyp und die Länge der Spalte.

Datentypen Interbase

Datentyp Beschreibung

SMALLINT Ganzzahlig im Bereich –32768 bis +32767

INTEGER Ganzzahlig im Bereich -2.147.483.648 .. 2.147.483.647

NUMERIC(P,S) P-Stellen Gesamt. s-Stellen nach dem Komma. Berechnung ohne Komma und Vorzeichen

FLOAT Nachkommazahlen im Bereich 1.5*10-45 .. 3.4*1038. Die Mantisse hat 7-8 Stellen

DOUBLE PRECISION Nachkommazahlen im Bereich 5.0*10-324 .. 1.7*10308. Die Mantisse hat 15-16 Stellen

VARCHAR(s) Zeichenwert variabler Länge mit einer maximalen Größe von s CHAR(s) Zeichenwert fester Länge mit einer Größe von s

DATE Datumswert zwischen dem 1. Januar 4712 v. Chr. und dem 31. Dezember 9999 n.

Chr.

TIME Zeitwert zwischen dem 1. Januar 4712 v. Chr. und dem 31. Dezember 9999 n.

Chr.

TIMESTAMP Datum- und Zeitwert zwischen dem 1. Januar 4712 v. Chr. und dem 31.

Dezember 9999 n. Chr.

CURRENCY Währung. Zweistelliger Numerikwert

Beispiel für Tabelle EMP:

create table emp

( empno number(4), ename varchar2(10), job varchar2(9),

mgr number(4),

hiredate date default sysdate, sal number(7,2),

comm number(7,2), deptno number(2),

constraint emp_pk primary key (empno),

constraint emp_fk_emp foreign key (mgr) references emp(empno), constraint emp_fk_dept foreign key (deptno) references dept(deptno) );

(3)

Syntax der „INSERT INTO“ Anweisung:

INSERT INTO TABLE [(COLUMN [, COLUMN …])]

VALUES (value [, value …]);

Hinweise:

Alle Attributnamen müssen in Großbuchstaben geschrieben werden.

Jeder „Insert Into-Befehl“ muss mit einem Semikolon abgeschlossen werden.

Beispiele Insert Into:

Entity Kunde (KNr, Name, Vorname)

REM Eintragen aller Daten eines Tupels INSERT INTO KUNDE

VALUES(123,'Schmidt', 'Andreas', );

REM Eintragen zweier Daten eines Tupels INSERT INTO KUNDE ( KNR, NAME ) VALUES(123,'Schmidt' );

REM Eintragen zweier Daten eines Tupels INSERT INTO KUNDE ( NAME, KNR ) VALUES( 'Schmidt', 123 );

Syntax der „UPDATE“ Anweisung:

UPDATE tablename

SET column = value [, column = value …]) [WHERE condition(s)];

Beispiele Update:

UPDATE Kunde set Ort = 'WR' where KNR = 1;

UPDATE Kunde set Ort = 'WR'

where Name = 'Müller'; // korrekt ?

(4)

Datenbank Daten

Buch

ISBN Titel Autor

1 Buch1 Autor1

2 Buch2 Autor2

3 Buch3 Autor3

4 Buch4 Autor1

5 Buch5 Autor3

6 Buch6 Autor4

7 Buch7 Autor5

8 Buch8 Autor6

9 Buch9 Autor7

10 Buch10 Autor2

Bestellung

BESTNR ISBN ANZ RNR

1 1 1 1

2 2 10 1

3 3 11 1

4 4 1 1

5 5 2 2

6 6 4 2

7 2 3 3

8 3 2 3

9 4 1 4

Rechnung

RNR DATUM MITNR KNR

1 11.12.2004 1 1

2 04.06.2005 2 3

3 12.09.2005 1 5

4 15.10.2005 1 1

Verkäufer

MITNR NAME VORNAME

1 Müller Andrea

2 Schmidt Hans

Kunde

KNR NAME VORNAME TEL

1 Bach Babara

2 Papst Ulrike

3 Meyer Rolf

4 Schmidt Klaus

5 Brandt Willy

(5)

Beispielabfragen

1) Liste der Verkäufer

2) Auflistung aller Kunden, sortiert nach Nachnamen, absteigend 3) Welche Bücher hat der Autor “Autor1” geschrieben?

4) Welcher Autoren hat das Buch „Buch3“ geschrieben“?

5) Von welchen Autoren wurden Bücher bestellt?

a) Autorenname

b) Für Experten: Autorenname, Anzahl der Bestellung 6) Welche Kunden haben Bücher bestellt?

7) Welche Rechnungen wurde im Jahr 2005 abgegeben?

Expertenfragen:

8) Wie viele Bücher wurden insgesamt bestellt ? 9) Welche Kunden haben keine Bücher bestellt?

10) Wie viele Bücher wurden vom Autor „Autor1“ bestellt?

11) Von welchen Autoren wurden keine Bücher bestellt?

12) Wie viele Bücher hat der Verkäufer Müller „bestellt“?

13) Von welchen Autoren wurden mehr als ein Buch bestellt?

INTERBASE-Datumsfunktionen

EXTRACT(day FROM column) Liest aus dem Datum den Tag EXTRACT(month FROM column) Liest aus dem Datum den Monat EXTRACT(year FROM column) Liest aus dem Datum den Jahr

Beispiel:

Gesucht die Mitarbeiternamen und der jeweilige Tag, Monat, Jahr des Einstellungstages. Diese numerischen Werte sollen in jeweils eine eigene Spalte eingetragen werden. Wichtig sind aber nur die Mitarbeiter, der Abteilung 632. Sinnvolle Spaltennamen sollten verwendet werden.

Dazu verwendet man das Attribut „hire_date“ mit den drei EXTRACT-Methoden.

Abfrage:

SELECT full_name Name, EXTRACT(day FROM hire_date) Tag,

EXTRACT(month FROM hire_date) Monat, EXTRACT(year FROM hire_date) Jahr FROM employee

WHERE dept_no = 623

Referenzen

ÄHNLICHE DOKUMENTE

6 Certainly, a somewhat trivial conclusion of the article by Casella and Feinstein is to say that such an arrangement would be unsound because the participants would prefer

Zusammenfassend kann gesagt werden, daß sich jede beliebige Information über sämtliche Merkmale oder Merkmalsgruppen, die in ISPPRO gespeichert sind, abfragen läßt. Darüber hinaus

identification, evaluation, measurement and management of core risks, SWOT analysis, correlations and horizontal view of risks — value chain — in products and services, IT,

Erich Henschel trat in die Klasse für Druck und Reklame ein, die zu dieser Zeit von Joost Schmidt geleitet wurde.. Die wichtigste Person, die Henschel neben Schmidt

Jedes Projekt hat einen eindeutigen Namen, eine eindeutige Nummer und wird an einem einzigen Standort durchgef¨ uhrt.. • Von jedem Mitarbeiter erfassen wir

Zum anderen werden Einblicke in die Konzeption des Studiengangs gegeben sowie auf die Bewältigung einiger Herausforderungen eingegangen, die das Rollenideal des Digital Designers

Main topics included in this manual are interface standards (including both commands and subroutines), programming standards, modularity, environment independence,

the software communications region, used to keep HSLA-specific data such as status and leW pointers; and the terminal information block (TIB), the database of