Rezumat: În proiectarea sistemelor informatice, aria de subiecte este reprezentată de modele de date de mai multe nivele. În orice caz, ar trebui să existe un nivel logic și fizic. La nivel logic, obiectele din spațiul de stat sunt entități și sunt legate între ele prin relații. Pe plan fizic, entitățile sunt reprezentate sub formă de tabele, iar relațiile sunt reprezentate ca constrângeri cheie străine. În lecție, există un material teoretic vast care vă permite să înțelegeți mai bine principiile construirii relațiilor, să înțelegeți tipurile acestora și să determinați ce tip de relație este cel mai potrivit pentru a rezolva problemele practice.
Veți învăța:
- creați o atitudine;
- schimbați raportul;
- redenumiți relația;
- eliminați relația.
Conceptul relațiilor
Cele mai multe baze de date sunt concepute pentru a modela o parte a lumii reale, care se numește spațiu de problemă. La nivel logic, obiectele din spațiul de stare sunt entități și sunt legate prin relații. La nivel fizic, Microsoft SQL Server prezintă entități sub formă de tabele, iar relațiile sunt sub formă de constrângeri cheie străine. care definesc cheile externe.
Mulți oameni cred că bazele de date relaționale sunt numite "relaționale", deoarece relațiile sunt stabilite între tabele. De fapt, acest nume provine de la termenul englez "relationship", adică "atitudine", introdus de Dr. EF Codd pentru a descrie un obiect care este implementat în SQL Server ca tabel.
Există trei tipuri de relații: unu-la-unu. unde fiecare rând al tabelului este asociat cu zero sau cu un rând dintr-un alt tabel; Unu-la-mulți. unde fiecare rând al tabelului este asociat cu zero, unul sau mai multe rânduri dintr-un alt tabel; și multe la multe, în care fiecare rând al primei mese este asociat cu zero, unul sau mai multe rânduri din a doua tabelă și fiecare rând din al doilea tabel poate fi asociat cu zero, unul sau mai multe rânduri din primul tabel.
Relațiile one-to-one sunt rare. În mod obișnuit, ele sunt utilizate atunci când un set de atribute este aplicat unui număr mic de instanțe entitate. De exemplu, doar o mică parte din echipa de angajați a companiei pot fi membri ai echipei softball. Designerul bazei de date poate pune toate atributele echipei de softball într-un tabel separat și apoi poate crea o relație unu-la-unu între ea și tabela angajatului.
Pe de altă parte, relațiile unu-cu-multe sunt destul de răspândite. În exemplul nostru de bază de date există o relație one-to-many între tabelul PlantParts și tabelul Oils - orice rând din tabelul PlantParts poate fi asociat cu zero, unul sau mai multe rânduri din tabelul Oils.
Relațiile multi-la-multe, de asemenea, apar destul de des. În exemplul nostru, relația multi-multi există între tabelul Proprietăți și tabelul de uleiuri - orice tip de ulei poate avea mai multe proprietăți, iar orice proprietate se poate referi la mai multe tipuri de ulei.
SQL Server. la fel ca și alte sisteme de gestionare a bazelor de date relaționale, formalizează direct relațiile one-to-one și one-to-many și utilizează o tabelă de noduri pentru a implementa mai multe relații. Tabelul de noduri constă din cheile primare ale tabelelor de pe fiecare parte a relației. Se stabilește o relație una cu mai multe între tabelul nodurilor și fiecare dintre tabelele originale. Relațiile multi-la-multe sunt rezolvate utilizând o masă nodală.
Întoarceți relația
Majoritatea relațiilor din baza de date sunt stabilite între două tabele diferite. Cu toate acestea, se întâmplă atunci când masa este asociată cu ea însăși fie printr-o relație one-to-one, fie printr-o relație unu-la-multe. Astfel de relații se numesc relații de întoarcere.
Relațiile de întoarcere sunt cele mai des folosite pentru a implementa ierarhiile. Un exemplu tipic este ierarhia angajaților din cadrul organizației. Angajatul poate fi subordonat managerului, iar managerul, la rândul său, poate ca angajat să aibă un manager superior. Această relație este formalizată prin includerea cheii primare a tabelului angajatului ca coloană de tabelă și prin stabilirea unei relații de întoarcere de la un utilizator la altul.
La nivel de masă, relația este formalizată prin includerea unui identificator unic, de obicei cheia primară, din tabelul de pe o parte (tabela principală sau tabelul cheii primare) în tabela de mai multe părți (tabelă dependentă sau tabelă de chei străine). Acest identificator este numit o cheie străină.
Notă. Un identificator unic care este folosit ca o cheie străină este, de obicei, cheia primară a tabelului principal, dar poate fi și orice coloană sau grup de coloane care au fost declarate unice.
SQL Server poate monitoriza relațiile pe care le-ați stabilit în baza de date, menținând integritatea relației. În mod implicit, SQL Server va respinge orice modificare a cheii rând primare din tabela principală care are rânduri asociate în tabelul dependent.
Atenție, vă rog. Unele scheme de baze de date pot fi destul de complexe. Utilizarea ștergeri cascadă și modificări pot facilita întreținerea structurilor de date complexe, dar SQL Server cere ca cascada nu a fost circulară. De exemplu, ștergerea unui rând din tabelul A poate duce la linia de îndepărtare în tabelul B, care, la rândul său, va determina eliminarea unei linii din tabelul C. Cu toate acestea, nu este permis să instaleze un astfel de mod în cascadă, în care linia de îndepărtare în tabelul C duce la linia de demontare în tabelul A.