Benutzer-Werkzeuge

Webseiten-Werkzeuge


se:datenbankentwicklung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
se:datenbankentwicklung [2008-09-14 18:24]
stefan
se:datenbankentwicklung [2014-04-05 11:42] (aktuell)
Zeile 383: Zeile 383:
  
 ===== Modellierung ===== ===== Modellierung =====
 +  * Kenntnis der Grammatik <> Fähigkeit zur angemessenen Formulierung von Lösungen -> Berücksichtigung von Empfehlungen
 +    - Kann ein Informationselement näher beschrieben werden, ist es Basis für eine neue Objektklasse. Beschreibt es jedoch eine andere Objektklasse näher, ist es dieser als Attribut zuzuordnen.
 +    - Der Objektklassenname sollte sich von den tatsächlich in dieser Klasse zusammengefassten Objekten ableiten. Eine Objektklasse sollte nie nach ihrem identifizierenden Attribut benannt werden.
 +    - Gibt es Objekte einer Objektklasse,​ denen bezüglich eines Attributs mehrere Attributwerte zuzuordnen wären, so ist dieses Attribut als eigene Objektklasse zu modellieren. Dies gilt auch, wenn diese neue Objektklasse keine weiteren beschreibenden Attribute besitzt. Diese neu eingeführte Objektklasse wird über eine Beziehungsobjektklasse an die Ausgangsobjektklasse angebunden.
 +    - Besteht zwischen einem Attribut einer Objektklasse und einer anderen Objektklasse eine Beziehung, so ist dieses Attribut als eigene Objektklasse zu modellieren,​ auch wenn diese neue Objektklasse keine weiteren beschreibenden Attribute besitzt.
 +    - Kann ein Informationselement mehreren Objektklassen als beschreibendes Attribut zugeordnet werden, so ist für die Zuordnung die Objektklasse zu wählen, für die die Modellaussage die reale Ausgangssituation möglichst gut trifft.
 +    - Zusammengesetzte Objektklassenschlüssel sollten möglichst vermieden werden.
 +    - Bei einer Zusammenfassung von Objektklassen in einer Generalisation müssen Attributzuordnungen überprüft werden.
 +    - Für Beziehungen zwischen Objektklassen muss festgelegt werden: ​
 +      * die beteiligten Objektklassen und ihre Rollen
 +      * der Name der Beziehung
 +      * die verallgemeinerten Kardinalitäten der einzelnen Rollen (Beziehungstyp und Art der Objektbeteiligung).
 +    - Zwischen Objektklassen kann es mehr als eine Beziehung geben. Beziehungen zwischen Objektklassen heißen redundant, wenn sie in der gleichen Bedeutung gebraucht werden. Redundante Beziehungen sind zu eliminieren.
 +    - Mehrfachbeziehungen (Grad > 2) sind streng zu überprüfen,​ inwieweit sie durch zwei oder mehr Beziehungen geringeren Grades zu ersetzen sind.
 +  * Typische Modellierungssituationen ​
 +    * Formulierung von Wertebereichen
 +      * Geschickte Festlegung von Wertebereichs-Objektklassen kann den Gebrauchswert eines Datenmodells und des daraus entstehenden Tools deutlich erhöhen.
 +      * Für das Verständnis eines Modells ist es wichtig, die Bedeutung einzelner Objektklassen,​ auch durch treffende Namensgebung,​ möglichst gut abzugrenzen.
 +    * Formulierung von Hierarchien
 +      * Hierarchien drücken nichts anderes als Enthaltenseins-Beziehungen zwischen betrachteten Objekten aus.
 +      * Hierarchiebeziehungen können durch rekursive Beziehungen ausgedrückt werden.
 +      * Falls Objekte verschiedener Hierarchiestufen sich unterscheiden,​ kann dies durch eine entsprechende Generalisation ausgedrückt werden.
 +      * Die Teilobjektklassen der Generalisation müssen sich nicht notwendigerweise exakt an der Hierarchistruktur orientieren.
 +      * Es ist stets genau zu analysieren,​ ob die Objekte selbst die Hierarchie begründen, oder ob die Objekte einer oder mehreren bestehenden Hierarchien zugeordnet werden können.
 +    * Formulierung von Historie
 +      * Modellierung von Zeitaspekten kommt häufig vor. Es ist zu entscheiden,​ ob der Zeitaspekt beschreibenden Charakter hat oder zum Aufbau einer Historie dienen soll.    ​
 +      * Semantische Datenmodelle bestimmen nicht nur die Tabellenstruktur,​ sondern machen auch sehr differenziert Aussagen über die Tabellenschlüssel.
 +      * Eine Objektklasse Datum muss nicht notwendigerweise in eine Tabelle Datum übertragen werden.
 +    * Unterscheidung von Instanz und Typ
 +      * Instanz: Eine Instanz ist die letzte noch aufgelöste / wahrgenommene Objektart in einem Klassifikationsverfahren.
 +        * Der Grad der Wahrnehmung ist projektspezifisch und in einem Datenmodell evtl. uneinheitlich durch unterschiedliches Anforderungsprofil. ​   ​
 +    * Unterscheidung von Grad und Optionalität
 +      * Die Optionalitäten-Kennzeichnung von Rollen hat keine frei wählbare Reduzierung des Grades der Beziehung zur Folge.
 +      * Eine als optional gekennzeichnete Rolle kann nur in Ausnahmefällen mit NULL-Werten belegt werden.
 +    * Formulierung von Versionen
 +      * Eine angemessene Formulierung von Versionen gelingt mit Hilfe schwacher Objektklassen. ​   ​
 +    * Mehrfachbeziehung / Gerund
 +    * Flexible Zuordnung von Eigenschaften
 +      * Immer wieder sind Objekteigenschaften in einem Datenmodell zu berücksichtigen,​ die noch nicht in vollem Umfang bekannt sind, oder sich mit der Zeit verändern können.
 +      * Aufgabe der Datenmodellierung ist es, möglichst große Flexibilität in das Datenmodell '​einzubauen'​ und damit eine möglichst lange und wartungsarme Nutzung der Datenbankapplikation zu ermöglichen (Zukunftssicherheit).
 +      * Ziel ist bei künftigen Veränderungen in den Anforderungen Modifikationen in der Datenstruktur zu vermeiden und Anpassungen im Bereich der üblichen Datenbankbenutzung (Einfügen, Ändern, Löschen von Datensätzen) abzufangen.
 +      * Flexibilität im Datenmodell wird durch einen höheren Grad an Abstraktion erkauft.
 +  * klassische Datenstrukturen ​
 +    * Array
 +    * Array of Records
 +    * varianter Record
 +    * Liste
 +    * Baum
 +    * Graph
 +    * {{:​se:​klassischedatenstrukturen.jpg|}}  ​   ​
 +    * Vererbung (gerichteter,​ azyklischer Graph) ​   ​
 +    * {{:​se:​vererbung.jpg|}}
 +  * Änderungen am Datenmodell
 +    * Veränderung der Daten- / Wissensbasis:​ Einfügen, Aktualisieren,​ Löschen von Daten (Information)
 +    * Veränderung der Funktionalität:​ Ergänzen, Löschen von Objektklassen und / oder Beziehungen
 +    * Veränderung der Beschreibungskriterien:​ neue Sachverhalte bedingen eine Überarbeitung des Schemas  ​
 +    * {{:​se:​aenderungendatenmodell.jpg|}}
 +  * Modellierungskonzept
 +    * {{:​se:​modellierungsphasen.jpg|}}
 +    - Informationen über die reale Welt
 +    - semantisches Datenmodell
 +      * technische und Anwendungsrandbedingungen berücksichtigen
 +      * Ziel Redundanzfrieheit -> Normalisierung
 +      * Ziel Performance -> Denormalisierung  ​   ​
 +    - relationales Schema
 +    - physische Datenstruktur ​  
 +  * Fazit
 +    * Informationssysteme haben eine lange Lebensdauer und einen hohen Wert -> richtige Modellierung ist enorm wichtig -> Spezialisten einsetzen ​  
 +
  
 ===== ToDo ===== ===== ToDo =====
-  * Unterschiede Host- (auch Bind-/​Global-),​ User-, Substitution-Variablen+  * <del>Unterschiede Host- (auch Bind-/​Global-),​ User-, Substitution-Variablen</​del>​
se/datenbankentwicklung.1221409450.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)