Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Datenbankentwurfskonzepte mit SQL Server Management Studio (SSMS) Teil 1

Dieser Artikel ist in erster Linie für Anfänger geschrieben. Dennoch behandelt es einige interessante und oft vergessene Datenbankdesignkonzepte, die für SQL-Datenbankprofis gleichermaßen attraktiv sind.

Der aktuelle Teil konzentriert sich auf die Datenbankentwurfskonzepte und ihre Zuordnung zu SQL-Datenbanktabellen, -spalten und -beziehungen. Wenn Sie die Hintergründe der Datenbanken und Tools verstehen, die wir verwenden werden, werden Sie Ihre erste SQL-Datenbank mit Zuversicht entwerfen.

Voraussetzungen

Bevor wir fortfahren, vergewissern Sie sich, dass die folgenden Dinge vorhanden sind:

  1. SQL Server 2016/2017/2019 Express/Developer Edition ist auf Ihrem Computer installiert
  2. SSMS (SQL Server Management Studio) ist installiert

Außerdem müssen Sie über Grundkenntnisse in Datenbanken und den oben genannten Tools verfügen.

Es ist kein Problem, wenn Sie nicht über die neuesten Versionen von SQL Server und SSMS verfügen. Es wird jedoch dringend empfohlen, die neueren Versionen, wenn nicht sogar die aktuellsten, zur Verfügung zu haben. Sie können die erforderlichen Versionen aus den folgenden Ressourcen beziehen:

  • Laden Sie die SQL Server 2017 Developer Edition herunter.
  • Laden Sie SQL Server 2019 herunter (alternativ, um die neueste SQL Server Express/Developer Edition zu erhalten).
  • Oder laden Sie eine kostenlose Spezialversion von Developer oder Express SQL Server herunter.
  • Laden Sie SSMS (SQL Server Management Studio) herunter

Beachten Sie, dass diese Links zum Zeitpunkt des Schreibens dieses Artikels alle einwandfrei funktionierten. Wenn Microsoft beschließt, sie zu ersetzen, laden Sie bitte die dann verfügbare neuere Version herunter.

Über das Design von SQL-Datenbanken

Um mit dem Entwerfen Ihrer SQL-Datenbank mit SQL Server Management Studio (SSMS) zu beginnen, müssen Sie einen Entwurfsplan im Kopf haben.

Es ist nicht einfach, ohne die Kernkonzepte des Datenbankdesigns zu kennen. Sobald Sie jedoch diese Konzepte und ihre Implementierung erhalten haben, beginnen Sie natürlich, den Designprinzipien zu folgen. Es ist bei fast allen Datenbankentwicklern üblich.

Lassen Sie uns zuerst einige Kernkonzepte des Datenbankdesigns durchgehen. Es ist nicht einfach, sie alle in einem Artikel zu behandeln, aber wir brauchen einen Ausgangspunkt.

Unter einer typischen Datenbank verstehen wir folgende Dinge:

  1. Entitäten
  2. Attribute
  3. Beziehungen

Was ist eine Entität?

Eine Entität ist alles, was das Unternehmen oder eine Einzelperson in einer Datenbank speichern möchte. Zum Beispiel:

  1. Kunde.
  2. Bestellung.
  3. Produkt.

Wir können sagen, dass ein Kunde ist eine Entität, wenn das Unternehmen sie für Transaktions-, Analyse- und Berichtszwecke in einer Datenbankstruktur speichern möchte. Ebenso eine Bestellung vom Kunden platziert ist auch eine Entität, wenn das Unternehmen diese Informationen sehen möchte. Daher müssen diese Informationen Teil der Datenbank sein.

Allerdings eine Bestellung macht ohne ein Produkt wenig Sinn . Ein dem Kunden angebotenes Produkt ist ebenfalls eine Einheit.

Wie wird die Entität der Datenbank zugeordnet?

Aus Datenbankperspektive kann eine Entität einer Tabelle zugeordnet werden. Wenn also ein Unternehmen die Entitäten Kunde, Bestellung und Produkt benötigt, kann der Datenbankentwickler diese als drei Tabellen abbilden.

Was ist ein Attribut?

Ein Attribut ist eine Beschreibung einer Entität. Zum Beispiel:

  1. Kundenname
  2. Auftragstyp
  3. Produktname

Wenn der Kunde eine juristische Person ist, der Name des Kunden (CustomerName ) ist ein Attribut. Dieses Attribut beschreibt unsere Entität (Kunde ). Ebenso OrderType ist ein Attribut der Order Entität und ProductName ist ein Attribut des Produkts Entität.

Wie wird das Attribut der Datenbank zugeordnet?

Ein Attribut wie Kundenname beschreibt den Kunden Tabelle und kann einer Spalte in dieser Tabelle zugeordnet werden.

Eine Entität mit mehreren Attributen

Es ist in Ordnung, wenn eine Entität mehrere Attribute hat. Daher können wir viele Spalten (Attribute) in einer Tabelle (Entität) haben.

Entitätsbeziehungen

Eine Entität kann durch Beziehungen mit einer anderen Entität in Beziehung stehen. Eine Tabelle kann mit einer anderen Tabelle verknüpft sein. Es gibt viele Arten von Entitäten oder tabellarischen Beziehungen:

Kundenauftragsbeziehung (Eins-zu-Viele)

Ein Kunde (Entität/Tabelle) kann aus folgenden Gründen mit einer Bestellung (Entität/Tabelle) in Beziehung stehen:

  1. Ein Kunde kann eine Bestellung aufgeben.
  2. Ein Kunde kann viele Bestellungen aufgeben.

Das Gegenteil gilt auch:

  1. Viele Bestellungen können von einem Kunden aufgegeben werden.
  2. Ein Kunde kann eine Bestellung aufgeben.

Dies ist ein Beispiel für eine Eins-zu-Viele-Beziehung :Ein Kunde kann viele Bestellungen aufgeben und viele Bestellungen können von einem Kunden aufgegeben werden.

Produkt-Bestell-Beziehung (Eins-zu-Viele)

Ein Produkt (Entität/Tabelle) kann wie folgt mit einer Bestellung (Entität/Tabelle) in Verbindung gebracht werden:

  1. Ein Produkt kann einer Bestellung zugeordnet werden.
  2. Ein Produkt kann mehreren Bestellungen zugeordnet werden.

Ähnlich:

  1. Einem Produkt können mehrere Bestellungen zugeordnet werden.
  2. Eine Bestellung kann ein Produkt enthalten.

Es besteht eine 1:n-Beziehung zwischen Produkt und Bestellung .

Kunden-Produkt-Beziehung (Viele-zu-Viele)

Nun wird die Beziehung zwischen Kunde und Produkt wie folgt erklärt:

  1. Ein Kunde kann ein Produkt kaufen.
  2. Ein Kunde kann mehr als ein Produkt kaufen.
  3. Ein Produkt kann von einem Kunden gekauft werden.
  4. Ein Produkt kann von mehr als einem Kunden gekauft werden.

Viele Produkte können von vielen Kunden gekauft werden, was bedeutet, dass der Kunde und Produkt Beziehung ist viele-zu-viele .

Schauen Sie sich die folgende Abbildung an:

Schüler-Lehrer-Designszenario

Betrachten wir ein anderes Datenbankentwurfsszenario. Sie implementieren es mit SSMS (SQL Server Management Studio) im anderen Teil dieses Artikels.

Geschäftsanforderungen

Angenommen, Sie müssen eine Datenbank entwerfen, die die folgenden Informationen speichert:

  1. Student(en).
  2. Trainer.
  3. Studenten, denen ein Kursleiter zugewiesen wurde.
  4. Lehrkräfte, die den Schülern zugeordnet sind.

Vorläufige Analyse

Bei näherer Betrachtung werden Sie etwas sehr Interessantes über die oben genannten Anforderungen entdecken. „Die Kursteilnehmer, die einen Kursleiter zugewiesen haben“ und „Die Kursleiter, die den Kursteilnehmern zugewiesen wurden“ sind die gleichen Anforderungen.

Es kommt häufig vor, dass sich zwei unterschiedlich aussehende Anforderungen im Kontext des Datenbankdesigns als identisch herausstellen.

Entitäten identifizieren

Aus den Anforderungen lassen sich auf Anhieb folgende Entitäten entnehmen:

  1. Schüler
  2. Lehrer

Eine weitere Entität dient jedoch dazu, uns Informationen über die den Schülern zugeordneten Dozenten zu liefern.

Erinnern wir uns an das erste Beispiel, in dem wir eine Order-Tabelle verwendet haben – viele Kunden können viele Orders in der Customer-Order-Beziehung kaufen. Es ist ähnlich wie bei unserem Schüler-Lehrer tabellarischer Zusammenhang – viele Dozenten können vielen Studenten zugeordnet werden.

Attribute identifizieren

Wir können gemäß diesem Kundenauftragsszenario nützliche Attribute für die identifizierten Entitäten auswählen:

  1. Student:Studentenausweis, Name.
  2. Kursleiter:Kursleiter-ID, Name.
  3. Schüler-Lehrer:Schüler-Lehrer-ID, Schüler-ID, Lehrer-ID.

Identitätsbeziehungen:

Identifizieren Sie die Entitätsbeziehungen:

  1. Student -> Student-Dozent (eins-zu-viele).
  2. Lehrkraft->Student-Lehrkraft (eins-zu-viele).
  3. Student -> Dozent (many-to-many).

Denken Sie daran, dass wir immer einen Mitteltisch verwenden, um die Viele-zu-Viele-Beziehung aufzulösen. Aus diesem Grund haben wir die Einheit Student-Instructor in den Plan aufgenommen.

Zuordnen von Entitäten und Attributen zu Tabellen und Spalten

Jetzt können wir die Entitäten Tabellen zuordnen. Daher werden wir die folgenden drei Tabellen erstellen:

  1. Schüler.
  2. Lehrer.
  3. Schüler-Lehrer.

Ebenso lauten die Attribute dieser Entitäten, wenn sie den Spalten zugeordnet werden, wie folgt:

  1. Student:StudentID, Name.
  2. Kursleiter:Kursleiter-ID, Name.
  3. Schüler-Lehrer:StudentInstructorId, StudentId, InstructorId.

Beachten Sie die folgende Abbildung:

Herzliche Glückwünsche! Sie haben die Konzepte des Datenbankentwurfs erfolgreich erlernt. Wir sind vertraut mit Entitäten, Attributen und Beziehungen und den Schritten, um sie Tabellen und Spalten in der Datenbank zuzuordnen.

Die nächsten Artikel führen Sie durch die Schritte zum Datenbankdesign mit SSMS (SQL Server Management Studio).

Dinge zu tun

Nachdem Sie nun die Grundlagen des Datenbankdesigns verstanden haben, versuchen Sie Folgendes, um Ihre Fähigkeiten weiter zu verbessern:

  1. Versuchen Sie, eine andere Entität namens Supplier hinzuzufügen mit den Attributen SupplierId und SupplierName. Überprüfen Sie, ob Sie die folgenden Beziehungen richtig identifizieren können:
    1. Lieferanten-Bestellung;
    2. Lieferant-Kunde;
    3. Lieferanten-Produkt.
  2. Entwerfen Sie eine Datenbank zusammen mit der Identifizierung von Entitäten, Attributen und Beziehungen für eine Bibliothek. Hinweis:Bücher werden an die Mitglieder ausgegeben, und Mitglieder leihen sich Bücher aus der Bibliothek aus. Mitglied, Buch, Ausgestellt können Entitäten sein.
  3. Identifizieren Sie den Typ der folgenden tabellarischen Beziehungen für die oben erwähnten Entitäten:
    1. Vom Mitglied ausgestellt;
    2. Buchausgabe;
    3. Mitgliederbuch;
    4. Buchmitglied.

Lesen Sie auch

Datenbankdesign mit SQL Server Management Studio (SSMS) lernen – Teil 2