Database
 sql >> Datenbank >  >> RDS >> Database

So erstellen Sie ein Datenbankmodell von Grund auf neu

Sie möchten also Ihr erstes Datenbankmodell erstellen, wissen aber nicht, wie Sie anfangen sollen? Lesen Sie weiter!

Ich nehme an, Sie wissen bereits ein wenig über Tabellen, Spalten und Beziehungen. Wenn nicht, sehen Sie sich unsere Video-Tutorials an, bevor Sie fortfahren.

Beginnen Sie mit einer Systembeschreibung

Beginnen Sie die Erstellung eines Datenbankmodells immer mit einer Beschreibung eines Systems. In einer Unterrichtssituation erhalten Sie von einem Lehrer eine Systembeschreibung. Im wirklichen Leben ist das Erstellen einer Beschreibung ein Prozess in seinem eigenen Recht. Ich gehe einfach davon aus, dass Sie die Beschreibung haben. Es spielt keine Rolle, ob es Ihnen von Ihrem Kunden, Ihrem Chef, Ihrem Lehrer gegeben wurde oder Sie es selbst geschrieben haben.

Sehen Sie sich die Beschreibung an und markieren Sie alle Substantive . Die Substantive in der Beschreibung können grob in drei Kategorien eingeteilt werden:Tabellen, Attribute und Beispiele.

  • Tabellen stellen primäre Entitäten im System dar:Personen, physische Objekte, Ereignisse, Transaktionen usw.
  • Attribute sind Eigenschaften, die einer primären Entität zugeordnet sind. Sie beschreiben Merkmale Ihrer Entität. Im Datenbankmodell sind dies die Spalten in Ihren Tabellen.
  • Beispiele sind nur Beispiele. Sie helfen Ihnen, die Datentypen zu verstehen bestimmter Attribute und sie helfen Ihnen, die Beziehung zu verstehen zwischen verschiedenen Entitäten.

Mit einer Beschreibung zu beginnen, hat den Vorteil, dass Sie gezwungen sind, dasselbe Glossar zu verwenden als Ihre Benutzer. Wenn Sie ein System für eine Grundschule erstellen, sollten Sie über Schüler sprechen. Wenn Sie ein ähnliches System für eine Universität erstellen, sollten Sie über Studenten sprechen.

Tabellen, Beziehungen, Spalten

  1. Sobald Ihre Substantive hervorgehoben sind, identifizieren Sie die Tabellen . Sie müssen nicht alles auf einmal modellieren. Konzentrieren Sie sich zuerst auf die Kernfunktionalität des Systems.
  2. Wenn Sie die Tabellen haben, finden Sie die Beziehungen heraus zwischen den Tischen. Dieser Schritt könnte zur Einführung neuer Zwischentabellen (Verbindungstabellen) führen.
  3. Fügen Sie abschließend die Spalten hinzu zu den Tischen.

An dieser Stelle sollten Sie die Beschreibung noch einmal lesen und nachsehen, ob etwas fehlt. Ich versichere Ihnen, dass es etwas hinzuzufügen gibt. Fügen Sie die neuen Tabellen, die neuen Beziehungen und die neuen Spalten hinzu. Lies die Beschreibung noch einmal...

Was Sie beachten sollten

Das Erstellen eines Datenbankmodells ist eine Iteration Prozess. Versuchen Sie nicht, alles auf einmal zu modellieren. Beginnen Sie mit den Kerneinheiten Ihres Systems. Sie können später weitere Details hinzufügen.

Es ist in Ordnung, Fragen zu stellen . Egal wie genau die Beschreibung ist, Sie werden immer einige Zweifel haben. Irgendetwas wird immer unterspezifiziert sein. Stellen Sie Fragen zu Dingen, bei denen Sie sich nicht sicher sind. Wenn Sie keine Fragen stellen können, treffen Sie eine vernünftige Annahme und notieren Sie Ihre Annahme.

Es gibt immer mehr als einen Weg jedes System zu modellieren. Einige Modelle sind eindeutig schlecht, aber bei den meisten anderen ist es schwierig zu beurteilen, ob sie richtig oder falsch sind. Das Modell hängt davon ab, was der Zweck des Systems ist, wie Daten in das System kommen, sogar vom persönlichen Geschmack des Designers. Je mehr Erfahrung Sie sammeln, desto sicherer können Sie Ihre Designentscheidungen treffen.

Beispiel:Mietwagensystem

Als Beispiel erstellen wir ein Datenbankmodell für ein Mietwagensystem. Sehen Sie sich zuerst eine Beschreibung des Systems an:

Eine Autovermietung vermietet Autos an Kunden. Das Unternehmen besitzt mehrere Autos. Jedes Auto hat eine Marke, einen Modellnamen, ein Produktionsjahr, einen Kilometerstand, eine Farbe und so weiter. Autos werden in verschiedene Kategorien eingeteilt:kleine, mittelgroße, große, Limousinen.

Das Unternehmen hat viele Standorte, an denen Sie ein Auto mieten können. Die Mietstationen befinden sich in verschiedenen Städten im ganzen Land. In einer Stadt kann es mehr als einen Unternehmensstandort geben.

Jeder über 21, der einen gültigen Führerschein hat, kann ein Auto mieten. Kunden unter 25 oder über 75 Jahren zahlen andere (höhere) Gebühren als andere Kunden.

Vor der Anmietung eines Autos nimmt ein Kunde normalerweise eine Reservierung für ein Auto vor. Ein Kunde gibt die Daten an, an denen das Auto gemietet wird, den Abholort, den Abgabeort und die Kategorie des Autos, das er mieten möchte. Ein Kunde kann angeben, dass er zusätzliche Ausstattung im Auto haben möchte, beispielsweise ein GPS, einen Autositz für ein Kind usw.

Wenn ein Kunde ein Auto mietet, gibt er den Abhol- und Rückgabeort sowie das Rückgabedatum an. Der Kunde kann verschiedene Arten von Versicherungen abschließen. Er kann auch entscheiden, dass er keine Versicherung braucht, weil die Versicherung anderweitig gedeckt ist, zum Beispiel von seinem Kreditkartenunternehmen. Der Kunde kann zusätzliche Optionen wählen, wie die Möglichkeit einer vorzeitigen Rückgabe, verschiedene Tankoptionen usw.

Der Kunde zahlt die Gebühren, wenn er das Auto zurückgibt.

Wir beginnen damit, alle Substantive hervorzuheben: 

Der nächste Schritt besteht darin, Tabellen zu finden . Wir suchen nach den grundlegenden Entitäten im System. Für den Anfang sollten Sie mindestens diese haben:Auto, Kunde, Ort, Stadt, Ausstattung, (Auto-)Kategorie, Versicherung. Wir tragen sie in das Diagramm ein. Ich habe die id hinzugefügt Spalte in jeder Tabelle, da jede Tabelle eine Art ID haben sollte. Sie können den Primärschlüssel später jederzeit ändern.




Die grundlegenden Systementitäten sind im Modell enthalten, aber Sie sollten beachten, dass uns die Kernfunktionalität des Systems fehlt:Mietwagen und Reservierungen. Denken Sie daran, was wir zu Beginn gesagt haben:Tabellen sind nicht nur physische Objekte, sondern auch Ereignisse und Transaktionen. Sie sollten reservation hinzufügen und rental auch als Tabellen. Los geht's:




Jetzt fügen wir die Referenzen zwischen den Tabellen im Modell hinzu. Ich habe die Referenzen nummeriert, als ich sie hinzugefügt habe. Der Hinweis neben jeder Referenz gibt an, wann sie hinzugefügt wurde:

  1. Jedes Auto gehört zu einer Kategorie
  2. Jede Reservierung gilt für eine Fahrzeugkategorie
  3. Jeder Standort befindet sich in einer Stadt
  4. Jede Reservierung hat einen Abhol- und einen Rückgabeort
  5. Jede Reservierung wird von einem Kunden vorgenommen
  6. Jede Anmietung erfolgt durch einen Kunden
  7. Jede Anmietung gilt für ein bestimmtes Auto
  8. Jede Anmietung hat eine Abhol- und Rückgabestelle.
  9. Jede Anmietung ist mit einer Versicherung verbunden. Aber gibt es nur eine Versicherung für jede Anmietung? Nein. Mit einer Anmietung können viele Versicherungen verbunden sein (Versicherung gegen Fahrzeugschäden, gegen Personenschäden, gegen die Verletzung des Autos eines anderen, ...). Ich habe eine Zwischentabelle namens rental_insurance hinzugefügt verbunden mit rental und insurance Tabellen.



Uns fehlt noch der Bezug zwischen Auto und Ausrüstung. Ist die Ausrüstung dauerhaft an einem Auto befestigt oder kann sie von einem Auto zum anderen bewegt werden? In der Beschreibung gibt es keine Antwort auf diese Frage, also gehen wir von einer vernünftigen Annahme aus:Ja, es kann verschoben werden. Wir fügen eine neue Tabelle car_equipment hinzu und Referenzen zwischen car und equipment .

Wir löschen das company Tisch. Der Vermieter ist im System implizit vorhanden. Schließlich wird ein anderes Unternehmen sein eigenes System und seine eigene Datenbank haben.




Schließlich fügen wir die Spalten und ihre Datentypen hinzu. Wir stellen auch fest, dass es keine Beziehung zwischen reservation gibt und equipment . Aber wird die Reservierung für ein bestimmtes Gerät vorgenommen? Nein, es ist für eine Art von Ausrüstung gemacht:Wir fügen die Tabelle equipment_category hinzu und verbinden Sie die Tische reservation und equipment dazu.




Sind wir fertig? Lies nochmal die Beschreibung. Unser Datenbankmodell lässt die Gebühren immer noch weg. Nun...

Das ist eine Übung für den Leser. (Aber wenn Sie keine Lust haben, Ihre Datenbankmodellierungsfähigkeiten zu üben, finden Sie hier eine gebrauchsfertige Datenbankstruktur für eine Autovermietung.)