About SW-Quality Safety SW-Entwicklung UML Nachschlagen Programme
.NET
JAVA
HTML http
XML
SQLXML
Datenbanken
CVS
SQL
UML für Datenbankdesign DB-Access mit Java JAVA-DB Beispiel MySQL
 
UML für Datenbankdesign UML --> DB Mapping
Table Student:
Name I-Nummer
Maria D 123456
Stefan K 987654
Tobi A 543221
.. ..
Geht man von einer relationalen Datenbank aus (RDBMS), so kann man die objektorientierte Modellierung auf die Tabellen und Relationen abbilden.
  • Bei komplexeren Architekturen sollte das Datenbankmodell gewissenhaft überprüft werden. Die automatische Abbildung kann zu mehr Overhead und Laufzeitproblemen führen. 
  • Nur Klassen mit Persistenz sind relevant.
  • Pro Klasse eine Tabelle.
  • Für jedes Attribut eine Spalte.
  • Jedes Objekt dieser Klasse (bzw. dessen Attribute) wird dann in einer Zeile abgespeichert.
Table Student:
Name iNummer ID_Planung
(Fremdschlüssel)
Maria D 123456 1
Stefan K 987654 99
Tobi A 543221 3
.. .. ..

Table Planung:

ID_Planung
(PrimaryKey)
Semester
3 Sommer03
1 Winter02
99 Sommer03
.. ..

 

  • Assoziationen können über Primarykeys und Fremdschlüssel umgesetzt werden.
  • Über den Fremdschlüssel  als Primärschlüssel einer anderen Tabelle können die Daten referenziert werden.
  • Meist ist es wesentlich performanter, die Schlüssel als Zahlenwerte statt als String zu definieren.
  • UML Tools können aus Klassendiagrammen DTD Beschreibungen erzeugen. Die DTD kann als Input für Datenbanksysteme verwendet werden um die Datenbanktabellen zu erzeugen. Eine nachträgliche Änderung der Datenbanktabellen ist meist nicht automatisch möglich!
DTD verzeugt von Together
 
CREATE TABLE Student
(
  inummer bigint(1),
  name varchar(1),
  ID_Planung int(1) NOT NULL
)
CREATE TABLE Planung
(
  ID_Planung int(1) NOT NULL,
  semester varchar(1),
  CONSTRAINT PK_Planung PRIMARY KEY (ID_Planung)
)
ALTER TABLE Student ADD CONSTRAINT lnkPlanung 
FOREIGN KEY (
  ID_Planung
)
REFERENCES Planung (
  ID_Planung
)
DTD erzeugt von ROSE
  • Rose verzichtet auf die automatische Umsetzung von Klassendiagrammen in Datenbankschemas. 
  • Es steht eine manuelle Möglichkeit zur Verfügung um Datenbanktabellen zu definieren. 
  • Die DDL von Together kann nicht in Rose eingelesen werden (parsing error). Getestet wurde die DDL für Oracle 7x und MySQL. 
  • Rose unterstützt keine DDL ausgabe für  MySQL, evtl. kann jedoch ein anderes Exportformat auch für MySQL verwendet werden.
Stored Procedures
  • Die Datenbank selbst kann Aufgaben übernehmen. Dazu können Skripte erstellt und als Stored Procedures in der Datenbank abgelegt werden. 
Vorteile:
  • Schnelle Berechnung, wenn viele Werte verwendet werden müssen.
  • Gut für Plausibilitätsprüfung  über mehrere Tabellen hinweg.
  • Netzwerklast wird reduziert (die Daten bleiben in der Datenbank).
  • Verarbeitung auf dem Server.
Nachteile:
  • Es entsteht eine "denkende" Datenbank. Diese versteckte Logik kann zu scherwiegenden Problemen führen.
  • Es entsteht eine verteilte Programmlogik. Ein Teil der Logik wird in der Datenbank versteckt.
  • Abhängig von der verwendeten Datenbank.
Tip: Nur Einsetzen, wenn wegen Performance notwendig.
 

 
©; created Mon Aug 07 22:31:53 CEST 2006; eMail