Eins-zu-Eins-, Eins-zu-Viele-Tabellenbeziehungen in SQL Server

Datenbankentwürfe stehen in engem Zusammenhang mit Datenbankbeziehungen, der Zuordnung von zwei Spalten in einer oder mehreren Tabellen. Beziehungen werden auf der Grundlage übereinstimmender Schlüsselspalten definiert. In SQL Server werden diese Beziehungen mit definiert Primärschlüssel-Fremdschlüssel Einschränkungen. Eine Verbindung wird zwischen zwei Tabellen erstellt, bei denen der Primärschlüssel einer Tabelle mit dem Fremdschlüssel einer anderen Tabelle über Datenbankbeziehungen verknüpft wird.

Betrachten Sie das folgende Beispiel. Buchtabelle (pk_book_id, Titel, ISBN) wird assoziiert mit Autor (pk_author_id, autor_name, phone_no, fk_book_id). Ein Buch kann viele Autoren haben. Diese Beziehung kann mithilfe von (PK_Author_Id als Primärschlüssel) und (Fk_Author_Id als Fremdschlüssel) implementiert werden.

Arten von Beziehungen

ein. Eins-zu-eins-Beziehung (1-1-Beziehung)
b. Eins-viele-Beziehung (1-M-Beziehung)
c. Viele-Viele-Beziehung (M-M-Beziehung)

Dieses Tech-Rezept gilt nur für 1-1 und 1-M-Beziehung.

1. Eins-zu-eins-Beziehung (1-1-Beziehung)

Eine Eins-zu-Eins-Beziehung (1-1) ist definiert als die Beziehung zwischen zwei Tabellen, bei denen beide Tabellen basierend auf nur einer übereinstimmenden Zeile miteinander verknüpft werden sollten. Diese Beziehung kann mit erstellt werden Primärschlüssel - Eindeutige Fremdschlüsseleinschränkungen.

Bei einer Eins-zu-Eins-Beziehung in SQL Server kann eine Person beispielsweise nur einen Pass besitzen. Lassen Sie uns dies in SQL Server implementieren.

CREATE TABLE dbo.Person (Pk_Person_Id INT IDENTITY PRIMARY KEY, Name VARCHAR (255), EmailId VARCHAR (255),); CREATE TABLE dbo.PassportDetails (Pk_Passport_Id INT PRIMARY KEY, Passport_Number VARCHAR (255), Fk_Person_Id INT UNIQUE FOREIGN-SCHLÜSSELREFERENZEN dbo.Person (Pk_Person_Id)); INSERT in dbo.Person VALUES ('Niraj', '[email protected]'); INSERT in dbo.Person VALUES ('Vishwanath', '[email protected]'); INSERT in dbo.Person VALUES ('Chetan', '[email protected]'); GO INSERT in dbo.PassportDetails VALUES (101, 'C3031R33', 1); INSERT in dbo.PassportDetails VALUES (102, 'VRDK5695', 2); INSERT in dbo.PassportDetails VALUES (103, 'A4DEK33D', 3); GO SELECT * FROM dbo.Person SELECT * FROM dbo.PassportDetails; 

Eins-zu-Eins-Beziehung wird mit implementiert dbo.Person (Pk_Person_Id) als Primärschlüssel und dbo.PassportDetails (fk_person_id) als (Eindeutiger Schlüsseleinschränkung-Fremdschlüssel).

Daher hat es immer nur eine übereinstimmende Zeile zwischen der Tabelle "Person-PassportDetails", die auf der basiert dbo.Person (Pk_Person_Id) -dbo.PassportDetails (Fk_Person_Id) Beziehung.

1. Erstellen Sie zwei Tabellen (Tabelle A und Tabelle B) mit dem Primärschlüssel für beide Tabellen.
2. Erstellen Sie in Tabelle B einen Fremdschlüssel, der auf den Primärschlüssel von Tabelle A verweist.
3. Fügen Sie eine eindeutige Einschränkung für die Spalte Fremdschlüssel von Tabelle B hinzu.

Was passiert, wenn wir versuchen, Passdetails für dieselbe fk_person_id einzufügen, die bereits in der passportDetails-Tabelle vorhanden ist?

Wir erhalten einen Fehler wegen eindeutiger Schlüsselverletzung.

Meldung 2627, Ebene 14, Status 1, Zeile 1 Verletzung der UNIQUE KEY-Einschränkung 'UQ__Passport__04554C334F12BBB9'. Es kann kein doppelter Schlüssel in das Objekt 'dbo.PassportDetails' eingefügt werden. Der doppelte Schlüsselwert ist (3). Die Anweisung wurde beendet.

2. Eins-viele-Beziehung (1-M-Beziehung)

Die Eins-zu-Viele-Beziehung ist als eine Beziehung zwischen zwei Tabellen definiert, wobei eine Zeile aus einer Tabelle mehrere übereinstimmende Zeilen in einer anderen Tabelle enthalten kann. Diese Beziehung kann mit erstellt werden Primärschlüssel-Fremdschlüssel-Beziehung.

In der One-to-Many-Beziehung in SQL Server kann ein Buch beispielsweise über mehrere Autoren verfügen. Lassen Sie uns dies in SQL Server implementieren.

CREATE TABLE dbo.Book (Pk_Book_Id INT PRIMARY KEY, Name VARCHAR (255), ISBN VARCHAR (255)); CREATE TABLE dbo.Author (Pk_Author_Id INT PRIMARY KEY, vollständiger Name VARCHAR (255), MobileNo CHAR (10), Fk_Book_Id INT FOREIGN-KEY-REFERENZEN Book (Pk_Book_Id)); EINFÜGEN IN BUCHWERTE (1, 'Let is Snow', 'ISBN3030303'); EINFÜGEN IN BUCHWERTE (2, 'Drei Tassen Tee', 'ISBN638242'); GO INSERT in dbo. Author Werte (100, 'John Green', '30303', 1); INSERT in dbo.Author VALUES (101, 'Maureen Johnson', '4343', 1); INSERT in dbo.Author VALUES (102, 'Lauren Myracle', '76665', 1); INSERT in dbo.Author VALUES (103, 'Greg Mortenson', '6434', 2); INSERT in dbo.Author VALUES (104, 'David Oliver Relin', '72322', 2); GEHEN SIE AUS * VON dbo.Book aus; SELECT * FROM dbo.Author; 

One-to-Many-Beziehung wird mit implementiert dbo.Book (Pk_Book_Id) als Primärschlüssel und dbo.Author (Fk_Book_Id) als (Fremdschlüssel). Daher hat es immer nur One-to-Many-Zeilen (One Book-Multiple Authors) zwischen der Book-Author-Tabelle, die auf der Beziehung dbo.Book (Pk_Book_Id) -dbo.Author (Fk_Book_Id) basieren.

1. Erstellen Sie zwei Tabellen (Tabelle A und Tabelle B) mit dem Primärschlüssel in beiden Tabellen.
2. Erstellen Sie in Tabelle B einen Fremdschlüssel, der auf den Primärschlüssel von Tabelle A verweist.