Datenmodellierung 101

Inhaltsverzeichnis

1. Was ist die Datenmodellierung?

Datenmodellierung ist der Akt der datenorientierten Strukturen zu erkunden. Wie andere Modellierungs Artefakte Datenmodelle können für eine Vielzahl von Zwecken verwendet werden, von High-Level-konzeptuelle Modelle zu physischen Datenmodelle. Aus der Sicht eines objektorientierten Modellierungs Entwickler Daten zur Klasse Modellierung vom Konzept her ähnlich. Mit Datenmodellierung identifizieren Sie Entitätstypen während bei Klasse Modellierung von Klassen zu identifizieren. Datenattribute werden Entitätstypen zugeordnet wie Sie Attribute und Operationen zu Klassen zuordnen würde. Es gibt Verbindungen zwischen Einheiten, ähnlich wie die Assoziationen zwischen Klassen - Beziehungen, Vererbung, Komposition und Aggregation sind alle anwendbaren Konzepte in der Datenmodellierung.

Traditionelle Datenmodellierung unterscheidet sich von Class Lösungen für Modellierung, da sie sich ausschließlich auf Daten konzentriert - Klasse Modelle können Sie sowohl das Verhalten und die Daten Aspekte Ihrer Domain erkunden, mit einem Datenmodell können Sie nur Datenprobleme erkunden. Aufgrund dieses Fokus Datenmodellierer eine Tendenz hat, viel besser sein auf die Daten „rechts“ als Objekt-Modellierer zu bekommen. Allerdings werden einige Leute Datenbank Methoden modellieren (gespeicherte Prozeduren, gespeicherte Funktionen und Trigger), wenn sie die Modellierung physikalische Daten sind. Es hängt von der Situation natürlich, aber ich persönlich denke, dass dies eine gute Idee ist und das Konzept in meinem UML-Datenmodellierungsprofil (mehr dazu später) fördern.

Obwohl der Schwerpunkt dieses Artikels Datenmodellierung ist, gibt es oft Alternativen zu datenorientierten Artefakte (nie Agile Modellierung Multiple Modelle Prinzip vergessen). Zum Beispiel, wenn es konzeptuellen Modellierung ORM Diagramme kommt nicht Ihre einzige Option - Zusätzlich LDMS es durchaus üblich ist für Leute, UML-Klassendiagramme zu erstellen und sogar Klasse Verantwortung Collaborator (CRC) Karten statt. In der Tat, meine Erfahrung ist, dass CRC-Karten zu ORM Diagramme überlegen sind, weil es sehr einfach ist Projektbeteiligten aktiv an der Erstellung des Modells zu beteiligen. Statt eines traditionellen, Analyst -LED Sitzung zeichnen können Sie stattdessen erleichtern Akteure durch die Schaffung von CRC-Karten.

1.1 Wie werden die Datenmodelle in der Praxis?

Obwohl Methodik Fragen werden später behandelt. Wir müssen darüber diskutieren, wie Datenmodelle können besser in der Praxis eingesetzt werden, um sie zu verstehen. Sie sind wahrscheinlich drei grundlegende Arten von Datenmodell, um zu sehen:

  • Konzeptionelle Datenmodelle. Diese Modelle, manchmal auch als Domain-Modelle, werden in der Regel zu erkunden Domänenkonzepte mit Projektbeteiligten verwendet. Auf Agile Teams konzeptionelle High-Level-Modelle werden häufig als Teil Ihrer ursprünglichen Anforderungen erstellt Vorstellungsvermögen Anstrengungen, wie sie die High-Level-statischen Geschäftsstrukturen und Konzepte zu erforschen verwendet. Auf traditionelle Teams konzeptuelle Datenmodelle werden häufig als Vorstufe zu LDMs oder als Alternativen zu LDMs erstellt.
  • Logische Datenmodelle (LDMs). LDMs werden verwendet, um die Domain-Konzepte und ihre Beziehungen zu erforschen, Ihre Problemdomäne. Dies könnte für den Rahmen eines einzelnen Projekts oder für das gesamte Unternehmen durchgeführt werden. LDMs zeigt die logischen Entitätstypen, in der Regel einfach als Entity-Typ bezeichnet, Attribute die Daten diejenigen Entitäten zu beschreiben, und die Beziehungen zwischen den Entitäten. LDMs werden selten auf Agile Projekte verwendet, obwohl häufig auf traditionelle Projekte sind (wo sie scheinen selten viel Wert in der Praxis hinzufügen).
  • Physische Datenmodelle (PDMS). PDMS verwendet, um das interne Schema einer Datenbank zu entwerfen, die Datentabellen zeigt, die Datenspalten der Tabellen und die Beziehungen zwischen den Tabellen. PDMs erweisen sich oft als nützlich auf beiden Agile und traditionellen Projekten sein, und als Ergebnis wird der Schwerpunkt dieses Artikels ist auf die physikalische Modellierung.

Abbildung 1: Ein einfaches logisches Datenmodell.

Abbildung 2. Ein einfaches physikalisches Datenmodell.

Wenn eine relationale Datenbank für die Datenspeicherung Projektteams verwendet wird, sind am besten beraten PDMS zu schaffen, um ihr internes Schema zu modellieren. Meine Erfahrung ist, dass ein PDM ist oft einer der kritischen Design-Artefakte für Geschäftsanwendungsentwicklungsprojekte.

2.2. Was über Konzeptionelle Modelle?

Datenmodellierung 101

2.3. Gemeinsame Datenmodellierung Notationen

Abbildung 4: die Syntax von gemeinsamen Datenmodellierungs Notationen vergleicht.

Tabelle 1 Diskussion gemeinsame Notationen Modellierungsdaten.

Sehr gute praktische Bücher über Datenmodellierung sind Joe Celko Data - Datenbanken und Datenmodellierung für Informationsspezialisten wie sie konzentrieren sich sowohl auf praktische Probleme mit der Datenmodellierung. Die Datenmodellierung Handbuch und Datenmodell Patterns sind beide exzellente Ressourcen, wenn Sie die Grundlagen gemeistert haben. Eine Einführung in den Datenbanksystemen ist eine gute akademische Abhandlung für jeden, der ein Datenspezialisten zu werden.

3.1 Identifizieren Entitätstypen

Eine Art Einheit, auch einfach als Einheit (nicht genau genaue Terminologie, aber sehr häufig in der Praxis), ist ähnlich konzeptionell die zu Objektorientierung Konzept einer Klasse - ein Entitätstyp stellt eine Sammlung von ähnlichen Objekten. Ein Entitätstyp eine Sammlung von Menschen, Orte, Dinge, Ereignisse oder Konzepte darstellen. Beispiele für Entitäten in einem Auftragseingabesystem würden die Kunden. Adresse. Auftrag. Artikel. und Steuern. Wenn Sie Class Lösungen für Modellierung wäre, würde man erwarten, dass Klassen mit den exakt gleichen Namen zu entdecken. Allerdings ist der Unterschied zwischen einer Klasse und einem Entitätstyp, dass Klassen sowohl Daten als auch Verhalten haben, während Entitätstypen nur Daten.

Im Idealfall soll ein Unternehmen normal sein. die Datenmodellierung weltweit Version von Zusammenhalt. Eine normale Einheit stellt ein Konzept, wie ein zusammenhängende Klasse Modelle ein Konzept. Zum Beispiel Kunden- und Auftrags sind eindeutig zwei verschiedene Konzepte; Daher macht es Sinn, sie als getrennte Einheiten zu modellieren.

3.2 Identifizieren Attribute

Jeder Entitätstyp wird ein oder mehr Datenattribute. Zum Beispiel in Abbildung 1 gesehen, dass der Kunde Entitätsattribute wie Vorname und Nachname und in Abbildung 2 hat, dass die tCustomer Tabellendaten entsprechenden Spalten CUST_FIRST_NAME und CUST_SURNAME hatte (eine Spalte die Implementierung eines Datenattribut in einer relationalen Datenbank ist) .

3.3 Anwenden Datennamenskonventionen

Ihre Organisation sollte von Ihrem Unternehmensadministratoren zu erhalten (wenn sie Sie sollten etwas in Kraft gesetzt haben, nicht existieren Lobby) hat Standards und Richtlinien für Datenmodellierung, was Sie in der Lage sein sollten. Diese Leitlinien sollten Namenskonventionen für beide sind logische und physikalische Modellierung, die logischen Namenskonventionen sollten auf die menschliche Lesbarkeit ausgerichtet werden, während die physikalischen Namenskonventionen technischen Überlegungen widerspiegeln. Man kann deutlich sehen, dass unterschiedliche Namenskonventionen siehe wurden in den Figuren 1 und 2 angelegt.

Wie Sie in Einführung in Agile Modellierung sah. AM beinhaltet die Praxis Modellierungsstandards Nehmen. Die Grundidee ist, dass die Entwickler zustimmen sollten und einen gemeinsamen Satz von Modellierungsstandards auf einem Software-Projekt folgen. Genau wie es Wert ist Konventionen in folgenden gemeinsame Codierung, sauberer Code, der die gewählten Code-Richtlinien folgt, ist leichter zu verstehen und als Code zu entwickeln, der nicht den Fall ist, gibt es ähnlichen Wert in folgenden gemeinsame Modellierungskonventionen.

3.4 Identifizieren Beziehungen

In der realen Welt Entitäten haben Beziehungen mit anderen Unternehmen. Zum Beispiel, LIVE Kunden Bestellungen, Kunden AT Adressen und Positionen GEHöREN Aufträgen. Place, Leben zu, und ist Teil sind alle Begriffe, die Beziehungen zwischen den Entitäten definieren. Die Beziehungen zwischen den Entitäten sind vom Konzept her identisch mit den Beziehungen (Assoziationen) zwischen Objekten.

Abbildung 5. Eine logische Datenmodell (Information Engineering-Notation).

Sie müssen auch die Mächtigkeit und Optionalität eine Beziehung identifizieren (die UML verbindet die Konzepte der Optionalität und Mächtigkeit in den einzelnen Begriff des Viel). Cardinality stellt das Konzept der „wie viele“, während Optionalität stellt das Konzept des „ob Sie etwas haben muss.“ Zum Beispiel ist es nicht genug, dass die Kunden Aufträge erteilen kennen. Wie viele Aufträge kann ein Kunde statt? Keine, eine oder mehrere? Darüber hinaus Beziehungen sind zwei Einbahnstraßen: nicht nur die Kunden Bestellungen, aber Bestellungen von Kunden sind. Dies führt zu Fragen wie: Wie viele Kunden können in beliebiger Reihenfolge eingeschrieben sein und ist es möglich, sich für eine Bestellung ohne Kunden zu haben? Abbildung 5 zeigt, dass die Kunden platzieren null oder mehr Aufträge und dass eine bestimmte Reihenfolge von einem Kunden und einem Kunden nur platziert wird. Es zeigt auch, dass ein Kunde an einer oder mehr Adressen lebt und dass eine bestimmte Adresse hat null oder mehr Kunden in sie leben.

Obwohl die UML zwischen verschiedenen Arten von Beziehungen unterscheidet - Assoziationen, Vererbung, Aggregation, Komposition und Abhängigkeit - Datenmodellierer sind oft nicht so besorgt mit diesem Thema so viel wie Objekt-Modellierer sind. Subtyping, eine Anwendung der Vererbung, wird häufig in Datenmodellen, von denen ein Beispiel gefunden ist das eine Beziehung zwischen Artikel und es ist zwei „Untereinheiten“ Service und Produkt. Aggregation und Komposition ist viel seltener und in der Regel muss von der implizit Datenmodell, wie Sie mit dem Teil der Rolle zu sehen, dass Einzelposten nimmt mit Order. UML Abhängigkeiten sind in der Regel ein Software-Konstrukt und damit auf einem Datenmodell nicht erscheinen würde, es sei denn natürlich ist es eine sehr detailreiche physikalische Modell war, das zeigte, wie views, Trigger, oder abhängig von gespeicherten Prozeduren auf andere Aspekte des Datenbankschemas.

3.5 Anwenden Datenmodell Patterns

3.6 Assign Keys

Es gibt zwei grundlegende Strategien für die Schlüssel zu den Tabellen zuweisen. Erstens könnte man einen natürlichen Schlüssel zuordnen, die ein oder mehr bestehende Datenattribute, die auf das Business-Konzept einzigartig sind. Die Customer-Tabelle von 6 gab es zwei Schlüsselkandidaten, in diesem Fall Kundennummer und Social. Zweitens könnten Sie eine neue Spalte einzuführen, eine so genannte Ersatzschlüssel, der ein Schlüssel ist, die keine betriebswirtschaftliche Bedeutung hat. Ein Beispiel davon ist die AddressID Spalte der Adresstabelle in Abbildung 6. Adressen eine „easy“ nicht natürliche Schlüssel haben, weil Sie alle Spalten der Adresstabelle verwenden müssten, um für sich selbst einen Schlüssel zu bilden (man könnte der Lage sein, nur mit der Kombination von Straße wegzukommen und ZipCode auf Ihrem Problembereich abhängig), also ein Ersatzschlüssel ist eine viel bessere Option in diesem Fall einzuführen.

3.7 Normalisieren Datenredundanz zu reduzieren

7 zeigt ein Datenbankschema in ONF während 8 ein normalisiertes Schema in 3NF darstellt. Lesen Sie die Einführung in die Datennormalisierungs Aufsatz für weitere Einzelheiten.

Warum Datennormalisierung? Der Vorteil ein sehr normalisierte Datenschema ist, dass Informationen an einem Ort und einen Ort nur dann gespeichert werden, die Möglichkeit, inkonsistenter Daten zu reduzieren. Darüber hinaus sind hoch normalisierten Datenschemata im Allgemeinen näher konzeptuell zu objektorientiertem Schema, da die objektorientierten Ziele von hohen Kohäsion und lose Kopplung zwischen den Klassen führen zu ähnlichen Lösungen fördern (zumindest von einem Datum Sicht). Diese Regel macht es einfacher, Ihre Objekte in Ihrer Datenschema abzubilden. Leider Normalisierung kommt in der Regel bei einer Leistungskosten. Mit dem Datenschema von 7 alle Daten für einen Auftrag in einer Zeile gespeichert werden (unter der Annahme Bestellungen im Wert von bis zu neun Auftragspositionen), so dass es auf dem Zugang sehr einfach. Mit dem Datenschema von 7 Abbildung können Sie schnell den Gesamtbetrag der Bestellung bestimmen, indem die einzelnen Zeilen aus der Order0NF Tabelle zu lesen. Um dies zu tun mit dem Datenschema von 8 müßten Sie Daten aus einer Zeile in der Bestelltabelle zu lesen, Daten aus allen Zeilen aus der OrderItem Tabelle für diesen Auftrag und Daten aus den entsprechenden Zeilen in der Artikel-Tabelle für jede Bestellposition . Für diese Abfrage liefert das Datenschema von 7 sehr wahrscheinlich eine bessere Leistung.

In der Klasse Modellierung, gibt es ein ähnliches Konzept namens Klasse Normalisierungs obwohl das sprengt den Rahmen dieses Artikels.

3.8 denormalisieren zur Verbesserung der Leistung

5. Evolutionary / Agile Datenmodellierung

Evolutionary Datenmodellierung ist die Datenmodellierung in einer iterativen und inkrementellen Weise durchgeführt. Der Artikel evolutionäre Entwicklung erforscht evolutionäre Softwareentwicklung im Detail. Agile Datenmodellierung ist evolutionär Datenmodellierung in einer kollaborativen Weise. Der Artikel Agile Datenmodellierung: Von Domain Modelling Physical Modelling arbeitet durch eine Fallstudie, die zeigt, wie die Datenmodellierung einen agilen Ansatz.

6. Wie Bei Modellierung der Daten besser werden

Wie schätzen Sie Ihre Datenmodellierung Fähigkeiten verbessern? Üben, üben, üben. Jedes Mal, wenn Sie eine Chance bekommen sollten Sie eng mit Agile DBAs arbeiten, um Freiwillige mit ihnen Daten zu modellieren. und ihnen Fragen stellen, wie die Arbeiten voranschreiten. Agile DBAs wird die AM-Practice-Modell mit anderen werden folgende so sollte die Hilfe sowie die Fragen gern gesehen -. Eine der besten Möglichkeiten, um wirklich Ihr Handwerk zu lernen, ist, jemanden zu haben, wie: „Warum sind Sie es auf diese Weise tun“ sollten Sie sein Lage als auch physikalische Datenmodellierung Fähigkeiten von Agile DBAs und oft logische Datenmodellierung Fähigkeiten zu erlernen.

Ebenso sollten Sie die Gelegenheit nutzen, mit den Enterprise-Architekten in Ihrer Organisation zu arbeiten. Wie Sie in Agile Enterprise Architecture sahen sollten sie eine aktive Rolle auf dem Projekt nehmen, Ihr Projektteam in der Enterprise-Architektur Mentoring (falls vorhanden), können Sie bei der Modellierung und architektonischen Fähigkeiten Mentoring, und in Ihrem Team Modellierung und Entwicklungsanstrengungen unterstützen. Wieder einmal Freiwillige mit ihnen zu arbeiten und Fragen stellen, wenn Sie so tun. Enterprise-Architekten in der Lage, Ihnen konzeptionelle und logische Datenmodellierung Fähigkeiten sowie vermitteln eine Anerkennung für Unternehmen Fragen zu unterrichten.

Sie müssen auch einige Lesung tun. Obwohl dieser Artikel ist ein guter Anfang ist es nur eine kurze Einführung. Der beste Ansatz ist, einfach die Agile DBAs zu stellen, mit denen Sie arbeiten, was sie denken, sollten Sie lesen.





Mit Freunden teilen:

Lassen Sie uns helfen

Literatur-Empfehlungen

Ich habe auch eine agile Datenbank Bücher Seite halten, die viele Bücher Übersichten Sie interessant finden.

In Verbindung stehende Artikel