Wie eine SQL-Datenbank zum Design

Der erste Schritt jeder Datenbank in SQL zu entwerfen, ist zu erkennen, was zu enthalten und was nicht enthalten. Die nächsten Schritte beinhalten die Entscheidung, wie die darin enthaltenen Elemente miteinander in Beziehung stehen und dann Tabellen entsprechend einrichten.

Um eine Datenbank in SQL entwerfen, die folgenden grundlegenden Schritte:

  1. Entscheiden Sie, welche Objekte Sie in Ihrer Datenbank aufnehmen möchten.

  2. Bestimmen Sie, welche dieser Objekte Tabellen sein sollte und die in diesen Tabellen werden Spalten sollten.

  3. Definieren Sie Tabellen basierend darauf, wie Sie die Objekte organisieren müssen.

    Optional können Sie eine Tabellenspalte oder eine Kombination von Spalten als Schlüssel zu bezeichnen wollen.

Schritt 1: Definieren Sie Objekte

Der erste Schritt, eine Datenbank, in der Gestaltung ist zu entscheiden, welche Aspekte des Systems sind wichtig genug in das Modell einzubeziehen. Behandeln Sie jeden Aspekt als Objekt und erstellen Sie eine Liste aller Objekte, die Sie sich vorstellen können. In dieser Phase, versuchen Sie nicht, um zu entscheiden, wie diese Objekte miteinander in Beziehung stehen. Versuchen Sie einfach, sie alle aufzuzählen.

Wenn Sie einen einigermaßen vollständigen Satz von Objekten haben, gehen Sie zum nächsten Schritt: die Entscheidung, wie diese Objekte miteinander in Beziehung stehen. Einige der Objekte sind die wichtigsten Instanzen, die Sie geben die Ergebnisse entscheidend sind Sie wollen. Weitere Aufgaben sind Tochtergesellschaft auf diese großen Einheiten. Letztlich können Sie entscheiden, dass einige Objekte gehören gar nicht in das Modell.

Schritt 2: Identifizieren von Tabellen und Spalten

Wichtige Einrichtungen übersetzen in Datenbanktabellen. Jede größere Unternehmen hat eine Reihe von Attribute - die Tabellenspalten. Viele Business-Datenbanken, zum Beispiel, haben einen Kunden-Tabelle, die "Spur der Kunden Namen, Adressen und andere permanente Informationen hält. Jedes Attribut eines Kunden - wie Name, Straße, Ort, Bundesland, Postleitzahl, Telefonnummer und E-Mail-Adresse - wird eine Spalte (und eine Spaltenüberschrift) in der CUSTOMER-Tabelle.

Wenn Sie hoffen, eine Reihe von Regeln zu finden, um Sie zu identifizieren, welche Objekte Tabellen sein sollte und welche der Attribute in dem System gehören, die Tabellen zu, denken Sie noch einmal: Sie können einige Gründe für ein bestimmtes Attribut einer Tabelle zugeordnet werden und andere Gründe für die Zuordnung das gleiche Attribut an einen anderen Tisch. Sie müssen Ihr Urteil auf zwei Ziele zugrunde:

  • Die Informationen, die Sie möchten, erhalten aus der Datenbank

  • Wie Sie wollen, dass die Informationen zu verwenden,

Bei der Entscheidung, wie Datenbanktabellen zu strukturieren, werden künftige Nutzer der Datenbank sowie die Menschen, die Entscheidungen auf der Grundlage von Datenbankinformationen zu machen. Wenn Sie kommen mit dem, was Sie denken, eine vernünftige Struktur ist, aber es ist nicht die Art und Weise im Einklang, dass die Menschen die Informationen verwenden, wird Ihr System frustrierend sein, bestenfalls zu verwenden - und könnte sogar falsche Informationen produzieren, die sogar noch schlimmer .

Werfen Sie einen Blick auf ein Beispiel. Angenommen, Sie gerade etablierte VetLab, eine klinische Labor für Mikrobiologie, die biologische Proben von Tierärzten geschickt in Tests. Sie wollen mehrere Dinge zu verfolgen, darunter die folgenden:

  • Clients

  • Tests, die Sie ausführen

  • Mitarbeiter

  • Bestellungen

  • Ergebnisse

Schritt 3: Definieren Tabellen

Jetzt wollen Sie für jede Entität und eine Spalte für jedes Attribut eine Tabelle zu definieren.

TabelleSpalten
KLIENTKundenname
Adresse 1
Adresse 2
Stadt
Bundesland
Postleitzahl
Telefon
Fax
Gesprächspartner
TESTSTestname
Standard-Lade
MITARBEITERMitarbeitername
Adresse 1
Adresse 2
Stadt
Bundesland
Postleitzahl
Festnetztelefon
Office-Erweiterung
Anstellungsdatum
Job Classification
Stündlich / Gehalt / Kommission
ORDERSBestellnummer
Kundenname
Test bestellt
Verantwortlich Verkäufer
Auftragsdatum
ERGEBNISSEErgebnis Nummer
Bestellnummer
Ergebnis
Datum des Berichts
Vorläufige / Jahres

Sie können die Tabellen hier, indem Sie entweder eine schnelle Anwendungsentwicklung (RAD) Tool oder mithilfe von SQL des Language (DDL) Datendefinition definiert erstellen, wie im folgenden Code dargestellt:

CREATE TABLE-Client (Client CHAR (30) NOT NULL, Address1 CHAR (30), Address2 CHAR (30), CityCHAR (25), StateCHAR (2), Postal CHAR (10), PhoneCHAR (13), FaxCHAR (13), Contact CHAR (30)) -create TABLE-Tests (Testname CHAR (30) NOT NULL, StandardCharge CHAR (30)) -create TABLE EMPLOYEE (EmployeeName CHAR (30) NOT NULL, Address1 CHAR (30), Address2 CHAR (30), CityCHAR (25), StateCHAR (2), Postal CHAR (10), Homephone CHAR (13), OfficeExtension CHAR (4), HireDate DATE, JobClassification CHAR (10), HourSalComm CHAR (1)) -create TABLE ORDERS (Auftragsnummer INTEGER NOT NULL, Client CHAR (30), TestOrdered CHAR (30), Verkäufer CHAR (30), Orderdate DATE) -create TABLE ERGEBNISSE (ResultNumber INTEGER NOT NULL, Auftragsnummer INTEGER, Ergebnis CHAR (50), DateReported DATE, PrelimFinal CHAR (1 )) -

Diese Tabellen beziehen sich auf einander durch die Attribute (Spalten), die sie teilen, wie die folgende Liste beschreibt:

  • Die Client-Tabelle Links auf die ORDERS-Tabelle durch die Kundenname Spalte.

  • Die Tests Tabelle Links auf die ORDERS-Tabelle durch die Testname (TestOrdered) Spalte.

  • Die Tabelle EMPLOYEE Links auf die ORDERS-Tabelle durch die EmployeeName (Verkäufer) Spalte.

  • Die Ergebnistabelle Links auf die ORDERS-Tabelle durch die Bestellnummer Spalte.

Wenn Sie eine Tabelle dienen als integraler Bestandteil einer relationalen Datenbank wollen, verknüpfen die Tabelle zu mindestens einer anderen Tabelle in der Datenbank, eine gemeinsame Spalte.

bild0.jpg

Die Links zeigen vier verschiedene one-to-many Beziehungen. Der Diamant in der Mitte jeder Beziehung zeigt die maximale Kardinalität von jedem Ende der Beziehung. Die Zahl 1 bezeichnet das # 147-one # 148- Seite der Beziehung, und N bezeichnet die # 147-viele # 148- Seite.

  • Ein Kunde kann viele Aufträge zu machen, aber jeder Auftrag wird durch einen, und nur einen Client.

  • Jeder Test kann auf viele Aufträge erscheinen, aber jeder Auftrag fordert eine, und nur eine Prüfung.

  • Jeder Auftrag wird von einem genommen, und nur einen, Mitarbeiter (oder Verkäufer), aber jeder Verkäufer kann mehrere Aufträge nehmen.

  • Jeder Auftrag kann mehrere vorläufige Testergebnisse erzeugen und ein Endergebnis, aber jedes Ergebnis wird im Zusammenhang mit einem, und nur eine Ordnung.

Das Attribut, das einem Tisch zum anderen Links können in jeder Tabelle einen anderen Namen haben. Beide Attribute müssen jedoch haben zusammenpassende Datentypen.

Menü