Skip to main content

Úvod do databázových vztahů

VOD MARS 218 - BATTLE OF THE SEXE (Smět 2025)

VOD MARS 218 - BATTLE OF THE SEXE (Smět 2025)
Anonim

Databázový termín "relační" nebo "vztah" popisuje způsob připojení dat v tabulkách.

Nově příchozí do světa databází mají často těžké vidět rozdíl mezi databází a tabulkou. Vidí tabulky dat a rozpoznávají, že databáze umožňují organizovat a dotazovat data novým způsobem, ale nedokážou pochopit význam vztahů mezi daty které poskytují relační databázové technologii své jméno.

Vztahy umožňují efektivní popis spojení mezi různými databázovými tabulkami. Tyto vztahy pak mohou být využívány k provádění výkonných dotazů přes tabulky, známých jako spojení.

Typy databázových vztahů

Existují tři různé typy databázových vztahů, z nichž každý je pojmenován podle počtu řádků tabulky, které mohou být ve vztahu zahrnuty. Každý z těchto tří typů vztahů existuje mezi dvěma tabulkami.

  • Vztahy mezi námi dojde-li k tomu, že každý záznam v první tabulce obsahuje jednu a pouze jednu protistranu ve druhé tabulce. Vztahy mezi jednotlivými uživateli jsou zřídka využívány, protože je často mnohem efektivnější jednoduše umístit všechny informace do jedné tabulky. Někteří návrháři databází využívají tohoto vztahu vytvořením tabulek, které obsahují podmnožinu dat z jiné tabulky.
  • Jedno-k-mnoho vztahů jsou nejběžnějším typem databázového vztahu. Objevují se, když každý záznam v tabulce A odpovídá jedné nebo více záznamům v tabulce B, ale každý záznam v tabulce B odpovídá pouze jednomu záznamu v tabulce A. Například vztah mezi tabulkou učitelů a tabulkou studentů na základní škole databáze by pravděpodobně byla vztahem one-to-many, protože každý student má pouze jednoho učitele, ale každý učitel má více studentů. Tento návrh typu one-to-many pomáhá eliminovat duplicitní data.
  • Vztah mezi mnoha a mnoha dochází, když každý záznam v tabulce A odpovídá jedné nebo více záznamům v tabulce B a každý záznam v tabulce B odpovídá jedné nebo více záznamům v tabulce A. Například vztah mezi učiteli a tabulkou kurzů by pravděpodobně byl mnoho- protože každý učitel může poučit více než jeden kurz a každý kurz může mít více než jednoho instruktora.

Samoreferenční vztahy: Zvláštní případ

Samoreferenční vztahy se vyskytují, když se jedná pouze o jednu tabulku. Jedním z obvyklých příkladů je tabulka Zaměstnanci, která obsahuje informace o nadřízeném zaměstnance. Každý nadřízený je také zaměstnanec a má svého nadřízeného. V tomto případě existuje vztah one-to-many self-referencing, protože každý zaměstnanec má jednoho supervizora, ale každý nadřízený může mít více než jednoho zaměstnance.

Vytváření vztahů se zahraničními klíči

Vytvořit vztahy mezi tabulkami zadáním cizího klíče. Tento klíč informuje relační databázi, jak se vztahují tabulky. V mnoha případech sloupec v tabulce A obsahuje primární klíče, které jsou uvedeny v tabulce B.

Znovu zvážíme příklad tabulí učitelů a studentů. Tabulka Učitelé obsahuje pouze ID, název a sloupec kurzu:

Učitelé
InstructorIDJméno učiteleChod
001John DoeAngličtina
002Jane SchmoeMatematika

Tabulka studentů obsahuje sloupec ID, název a cizí klíč:

Studenti
StudentIDJméno studentaTeacher_FK
0200Lowell Smith001
0201Brian Short001
0202Corky Mendez002
0203Monica Jonesová001

Sloupec Teacher_FK v tabulce Studenti odkazuje na hodnotu primárního klíče instruktora v tabulce Učitelé.

Často návrháři databází použijí v názvu sloupce "PK" nebo "FK" pro snadnou identifikaci sloupce primárního nebo cizího klíče.

Všimněte si, že tyto dvě tabulky ilustrují vztah mezi učiteli a studenty.

Vztahy a referenční bezúhonnost

Jakmile přidáte do tabulky cizí klíč, můžete vytvořit vazbu databáze, která vynucuje referenční integritu mezi oběma tabulkami. To zajistí, že vztahy mezi tabulkami zůstanou konzistentní. Pokud má jedna tabulka cizí klíč v jiné tabulce, pojem referenční integrity uvádí, že jakákoli hodnota cizího klíče v tabulce B musí odkazovat na existující záznam v tabulce A.

Provádění vztahů

V závislosti na vaší databázi implementujete vztahy mezi tabulkami různými způsoby. Aplikace Microsoft Access poskytuje průvodce, který snadno umožňuje propojení tabulek a také vynucení referenční integrity.

Pokud píšete SQL přímo, nejprve vytvořte tabulku Učitelé a deklarujete sloupec ID jako primární klíč:

CREATE TABLE Učitelé (

Instruktor ID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR (100), Kurz VARCHAR (100));

Když vytvoříte tabulku studentů, deklarujete sloupec Teacher_FK jako cizí klíč odkazující na sloupec InstructorID v tabulce učitelů:

CREATE TABLE Studenti ( StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR (100), Teacher_FK INT, ZAHRANIČNÍ KEY (Teacher_FK) REFERENCE Učitelé (InstructorID)));

Použití vztahů k připojení tabulky

Jakmile vytvoříte jeden nebo více vztahů ve své databázi, můžete využít jejich sílu pomocí dotazů SQL JOIN pro kombinování informací z více tabulek. Nejběžnějším typem spojení je SQL INNER JOIN nebo jednoduchý spoj. Tento typ spojení vrací všechny záznamy, které splňují podmínky spojení z více tabulek.Například tato podmínka JOIN vrátí Student_Name, Teacher_Name a Course, kde cizí klíč v tabulce Students odpovídá primárnímu klíči v tabulce Teachers:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.CourseFROM StudentsINNER JOIN UčiteléON Students.Teacher_FK = Teachers.InstructorID;

Toto prohlášení vytváří tabulku takto:

Vrácený tabulka z příkazu SQL Join Statement

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish