Relații multe-la-multe: un exemplu în Access, în SQL. Cum sa faci o relatie multi-multi?

În toate DBMS (sisteme de gestionare a bazelor de date)

Există mai multe tipuri de relații între mese. Printre ei unu-la-unu, unu-la-mulți, mulți-la-unu (unii sunt înclinați să identifice aceste două tipuri într-o singură) și mulți-la-mulți. Un exemplu al acestuia din urmă, explicația și aplicarea acestuia în diverse DBMS, cum ar fi Access sau SQL, vor fi discutate în acest articol.

definiție

Relația multi-multi este definită ca potrivirea oricărei instanțe a uneia dintre entitățile tuturor instanțelor celeilalte. Cu alte cuvinte, fiecare câmp din prima (a doua) tabelă este asociat cu toate câmpurile din al doilea (primul).

Diagrama prezentată arată clar esența acestei relații.relații multi-la-multe

Când se poate utiliza comunicarea între mai mulți?

Un exemplu de relație multi-multi este un grup de studenți și un grup de profesori. Fiecare elev învață de la câțiva profesori care, la rândul lor, dau prelegeri câtorva studenți. Imaginea prezintă diferența dintre unul-la-mulți și mulți-la-mulți.cum să faceți relații multe-la-multe

Mulți-la-multe relație este adesea necesară în pregătirea bazelor de date pe scară largă, mici exemple ilustrative utilizate în mod obișnuit, numai în scopuri educaționale, în realitate, în practică se dovedește că mai multe entități în baza de date și mai multe relații între ele - cu atât mai mult probabilitatea de a recurge frecvent la multi-la-multi atitudine.

Cum sa faci o relatie multi-multi?

Exemple de această relație vor fi adăugate în cursul articolului, dar este important nu numai să înțelegem ce este, dar și modul în care poate fi implementat. Detaliile acestui proces depind direct de baza de date aleasă pentru lucrare, în timp ce principiul rămâne unul pentru toți.

Microsoft Access

Software-ul de birou de la Microsoft este cunoscut pe piața software-ului de ceva timp. Se livrează cu un editor de text Worfd, un procesor Excel și cu restul liniei "office". Este posibil să Accesați (este citit ca "acces", traducere literală - "acces") pentru a obține și separat de colegii săi. Se recomandă să cumpărați, bineînțeles, software licențiat, dar nu este un secret pentru cineva cât de multe reparații de piraterie puteți găsi pe Web, sub formă de fișiere obișnuite sau distribuții de torente. "Microsoft Access" este disponibil chiar și într-un ansamblu portabil. Acesta, care nu necesită instalare și abilități speciale de lucru cu un PC, este cel mai potrivit pentru a alege dacă software-ul nu este folosit de mult timp și de multe ori.mulți la mulți exemplu sql

Din context, este clar că "Microsoft Access" este sistem de gestionare a bazelor de date. Și unul dintre cele mai populare. Este relațional, ceea ce înseamnă că se bazează pe o logică model de date, care se referă în cursul lucrărilor sale teoria seturilor și prima logică. Comunicarea de la mulți la Acces (exemplele vor fi date în timpul explicației) este implementată foarte, foarte simplu. Luați în considerare.

Există două mese ..

Pentru a nu inventa ceva nou, hai să luăm pe cel menționat deja pentru a clarifica relația dintre mulți, un exemplu de corp de elevi. Este necesar să creați o masă "Studenți" și o tabelă "Profesori". La fel ca în primul și în cel de-al doilea dintre ele există chei primare. Pentru a combina instanțele acestor două entități, este necesar un tabel suplimentar, câmpurile cărora sunt cheile primului și al doilea tabel.

Dacă luăm în considerare un alt exemplu: să spunem, jucătorii și echipa (având în vedere faptul că cel puțin unul dintre jucătorii care joacă pentru echipe diferite, și fiecare echipă este compusă din unsprezece jucători), construiesc o conexiune nu se va schimba. De asemenea, vor fi necesare trei tabele. Dintre aceștia, "Fotbalistii" și "Echipele" ca principal și unul intermediar.

Schema de date

Legăturile dintre tabele din baza de date Microsoft Access sunt implementate utilizând fila Date Schema. Panoul rezultat adaugă toate entitățile necesare (în acest caz toate cele trei tabele). Crearea unei relații multi-multi se va realiza prin două relații unu-multe dintre principalele ("Studenți" și "Profesori") și masa intermediară. Pentru a face acest lucru, trebuie să conectați tastele primare corespunzătoare.comunicații de la mulți la mulți în exemplele de acces



Imaginea de mai sus arată modul în care apare fila "Schema de date" (Relații). Numărul de tabele adăugate în panou este nelimitat. Locația este complet reglabilă de utilizator.

SQL

Proiectarea bazelor de date pe SQL - sarcina este mai complicată decât pe "Acces". Dacă produsul maykrosoftovskih este adaptat la mediul de birou, are o foarte mare și, cu fiecare lansare și să actualizeze toate funcționalitățile extensibile, dar în același timp convenabil pentru simplu interfața cu utilizatorul, SQL - este un limbaj separat de programare non-procedurală, cu care pe platforme diferite puteți lucra cu bazele de date. Software cunoscut pentru această sarcină: Oracle MySQL și DB2 (popular, dar nu și singurul de acest gen). În ciuda faptului că fiecare dintre ele are propriile subtilități și nuanțe, limba SQL le "unește". După ce sa învățat să lucreze cu cel puțin una dintre ele, va fi mult mai ușor să se ocupe de celălalt.

Crearea, umplerea și acțiunea directă pe o bază de date existentă în SQL este necesară prin coduri sau scripturi speciale. Cu toate acestea, cei care l-au făcut deja la secțiunea „mulți-la-mulți“, un exemplu de care, în acest limbaj de programare este prezentată mai jos, trebuie să cunoască cel puțin comenzile de bază și principiile limbajului SQL.

Principiul creării unei relații multi-la-multe

O introducere de lungă durată ar fi fost oarecum jenantă și "prinsese o ceață", dar, în realitate, principiul comunicării rămâne același. Pentru a introduce o relație mulți-la-mulți a fost pus în aplicare în practică, nu numai în „Acces“, dar, de asemenea, SQL, trebuie să creați inițial două tabele de bază și una - intermediare. În mod similar, cazul este cu cheile: entitățile principale au câmpurile principale, fiecare dintre acestea fiind înscrisă în tabela de link-uri. Ce inseamna ca multi-la-multi SQL-comunicare nu difera fundamental de la "Access".multe până la multe exemple

Implementarea comunicării

Pentru a implementa comunicarea de la mulți la mulți în script-uri SQL, utilizați chei străine (FOREIGN KEY) similare cu tastele originale din tabelele principale. Acestea sunt scrise împreună cu toate câmpurile atunci când sunt create și / sau editate.

Rolul comunicării de la mulți la mulți

În general, relațiile dintre entitățile din baze de date Ele sunt folosite pentru integritatea informațiilor stocate în ele. Numai o bază de date bine concepută, cu toate conexiunile necesare, garantează securitatea depozitării, confortul muncii și este o structură care este rezistentă la influențele și schimbările externe. De obicei, dacă baza de date conține date despre o întreagă organizație, companie sau firmă, aceasta conține multe entități cu instanțe diferite.sql multe-la-multe relații

Acest lucru înseamnă că, în prepararea acestor scheme ( „Acces“) sau scrierea de scripturi (în „Oracle“ sau „DiBiTu“) va fi prezent cel puțin un multi-la-mulți. Un exemplu de SQl, utilizat adesea în cursul cursului "Organizarea bazelor de date" - DB King.

Baze de date ale regelui

Această bază de date de formare este informații despre King`s Corporation. Printre mese:

  • angajații companiei - conține ID-ul angajatului, numele, prenumele și inițiala (se concentreze pe nume străine), de asemenea, codul pentru șeful și angajatul a ocupat poziția, data admiterii la firmele care primesc salariul și comisionul prevăzut, codul de departament;
  • departamentele corporației - printre câmpurile tabelului există un cod și numele departamentului, precum și codul plasamentului acestuia;
  • Plasarea departamentelor, care implică introducerea informațiilor despre codul plasamentului și numele orașului;
  • poziții în firmă - o masă mică cu două câmpuri de cod de serviciu și numele său oficial;
  • cumpărători - câmpuri: codul și numele cumpărătorului, adresa, orașul și statul, codul poștal și prefixul, numărul de telefon, codul de manager al serviciului clienți, creditul cumpărătorului și comentariile (notele și notele);
  • contracte de vânzare care conțin codul și data contractului, codul cumpărătorului, data livrării și valoarea totală a contractului;
  • acte de vânzare - codul actului și codul acordului, care include actul, codul produsului, prețul acestuia, suma achiziționată și prețul total de cumpărare;
  • mărfurile - codul și denumirea produsului;
  • prețurile - codul produsului, prețul anunțat pentru acesta, cel mai mic preț posibil, data de stabilire și data anulării prețului.

Tabelele mici, în prezența cărora nu mai mult de două sau trei câmpuri, sunt asociate cu un maxim de o masă printr-o relație unu-la-unu sau unul-la-multe.tipul de relație multi-la-mulți

Scale aceeași masă, cum ar fi „angajați ai companiei“, „societate-consumatori“, „acorduri de vânzare“ și „acte de vânzare“ sunt asociate cu mai multe entități, cu unele - cu ajutorul „intermediari“ multi-la-multe relații. Tabelul „cumpărători ai companiei“ este ea însăși un intermediar, ca atare, deoarece are multe din domeniu, preluate din alte tabele și o cheie externă. În plus, amploarea și baza de date relație „Regele Corporation“ este că toate relațiile sunt indisolubil corelate între ele și afectează unul pe altul. Distrugerea cel puțin a uneia dintre ele va duce la distrugerea integrității întregii baze de date.

Nuante importante

La implementarea unui multi-la-mulți, indiferent de sistemul de management al bazei de date este folosit, este important să se determine cheile corecte cu care vor fi elaborate atitudine. pus în aplicare în mod incorect conexiunea nu își îndeplinește scopul său principal - și anume, pentru a asigura integritatea mesei, și, ca rezultat, în loc de confortul așteptat, utilizatorul va primi, pe de altă parte, inconveniente și probleme suplimentare, evident mai ales în timpul umplerii tabelelor de editare și a datelor lor.

Distribuiți pe rețelele sociale:

înrudit
Fișier SQL. Formatul de fișier SQL: descrierea extensieiFișier SQL. Formatul de fișier SQL: descrierea extensiei
Cum se creează o bază de date în Access. Lucrul cu baza de date AccessCum se creează o bază de date în Access. Lucrul cu baza de date Access
Cum se compun interogările SQL - exemple detaliateCum se compun interogările SQL - exemple detaliate
Bazele de date sunt relaționale. Conceptul de bază de date relaționalăBazele de date sunt relaționale. Conceptul de bază de date relațională
Accesul-formă. Crearea formularelor pentru introducerea datelorAccesul-formă. Crearea formularelor pentru introducerea datelor
DB este ... Tipuri și proprietăți ale bazei de dateDB este ... Tipuri și proprietăți ale bazei de date
Accesul este ceea ce? Crearea unei baze de date în Microsoft AccessAccesul este ceea ce? Crearea unei baze de date în Microsoft Access
MS Access. Baze de date MS Access. MS Access 2007MS Access. Baze de date MS Access. MS Access 2007
ACCDB: cum se deschide un fișierACCDB: cum se deschide un fișier
Detalii despre ce să deschidă ACCDBDetalii despre ce să deschidă ACCDB
» » Relații multe-la-multe: un exemplu în Access, în SQL. Cum sa faci o relatie multi-multi?