/ / Relație mulți la mulți: un exemplu în Access, în SQL. Cum să faci o relație de la mulți la mulți?

Relație mulți-mulți: un exemplu în Access, în SQL. Cum să faci o relație de la mulți la mulți?

În toate SGBD (sisteme de gestionare a bazelor de date)există mai multe tipuri de relații între tabele. Acestea includ unu-la-unu, unu-la-mulți, mulți la unu (unii au tendința de a echivala cei doi ca unul) și mulți-la-mulți. Un exemplu al acestuia din urmă, explicația și aplicarea acestuia în diverse SGBD, cum ar fi Access sau SQL, vor fi discutate în acest articol.

definiție

O relație mulți-mulți este definită capotrivirea oricăreia dintre instanțele uneia dintre entitățile tuturor instanțelor celeilalte. Cu alte cuvinte, fiecare câmp din primul (al doilea) tabel este asociat cu toate câmpurile din al doilea (primul) tabel.

Diagrama prezentată reflectă în mod clar esența acestei relații.

exemplu de relație mulți la mulți

Când poate fi utilizată o relație mulți-mulți?

Un exemplu de relație de la mulți la mulți este studentulgrup și grup de profesori. Fiecare dintre studenți învață de la mai mulți profesori simultan, care, la rândul lor, țin mai mulți studenți. Imaginea arată diferența dintre o relație de la unu la mulți și o relație de la mulți la mulți.

cum să faci o relație de la mulți la mulți

Comunicarea mulți la mulți este adesea necesară atunci cândcompilarea bazelor de date la scară largă, mici exemple ilustrative sunt utilizate de obicei numai în scopuri educaționale, în practica reală rezultă că cu cât sunt mai multe entități din baza de date și cu cât sunt mai multe relații între ele, cu atât este mai probabil să se refere frecvent la -multă relație.

Cum să faci o relație de la mulți la mulți?

Exemple de relații în cauză vor fi în continuareadăugat în cursul articolului, dar este important nu numai să înțelegeți ce este, ci și cum îl puteți implementa. Detaliile acestui proces depind în mod direct de SGBD ales pentru lucrare, în timp ce principiul rămâne același pentru toată lumea.

Microsoft Access

Produs software Office de la Microsofteste cunoscut pe piața software-ului de ceva timp. Vine cu editorul de text Worfd, procesorul de foi de calcul Excel și altele din linia „office”. Accesul (citit ca „acces”, traducere literală - „acces”) poate fi achiziționat separat de „colegii” săi. Este recomandat să cumpărați, desigur, software licențiat, dar nu este un secret pentru nimeni câte repachete piratate pot fi găsite pe Internet, sub formă de fișiere obișnuite sau distribuții torrent. Microsoft Access este chiar disponibil într-o versiune portabilă. Ea, care nu necesită instalare și abilități speciale în lucrul cu un computer, este cea mai bună pentru a alege dacă software-ul nu va fi folosit mult timp și des.

exemplu de relație multi-la-mulți sql

Din context este clar că Microsoft Access esteSistemul de gestionare a bazelor de date. Și unul dintre cele mai populare. Este relațional, ceea ce înseamnă că se bazează pe un model de date logice, care în cursul lucrării sale se referă la teoria mulțimilor și logica de ordinul întâi. Comunicarea mulți la mulți în Access (exemple vor fi date în timpul explicației) este foarte, foarte simplu de implementat. Ia in considerare.

Există două mese ..

Pentru a nu veni cu nimic nou, să luăm dejadat pentru a clarifica relația dintre mulți, exemplul este despre corpul studențesc. Trebuie să creați un tabel „Studenți” și un tabel „Profesori”. Atât prima, cât și a doua au chei primare. Pentru a combina instanțele acestor două entități, este necesar și un alt tabel, ale cărui câmpuri sunt cheile primei și celei de-a doua tabele.

Având în vedere un alt exemplu:De exemplu, jucători și echipe (ținând cont că cel puțin unul dintre jucători a jucat pentru echipe diferite și fiecare echipă are unsprezece jucători), esența construirii unei conexiuni nu se va schimba. De asemenea, vor fi necesare trei mese. Dintre aceștia, „Fotbaliști” și „Echipe” sunt principalele și unul intermediar.

Schema de date

Relațiile dintre tabele în Microsoft Accesssunt implementate folosind fila „Schema de date”. Toate entitățile necesare sunt adăugate la panoul apărut (în cazul nostru, toate cele trei tabele). Relația mulți-mulți va fi creată folosind două relații unu-la-mulți între principal („Studenți” și „Profesori”) și un tabel intermediar. Pentru a face acest lucru, trebuie să conectați cheile primare corespunzătoare împreună.

relație mulți-mulți în exemple de acces

Ilustrația de mai sus arată cum arată fila Relathionships. Numărul de tabele adăugate la panou este nelimitat. Locația este complet ajustabilă de utilizator.

SQL

Proiectarea bazelor de date SQL este o provocaremai dificil decât pe „Acces”. Dacă un produs Microsoft este complet adaptat pentru un mediu de birou, are o funcționalitate imensă și, cu fiecare versiune și actualizare, extensibilă, dar în același timp, o interfață convenabilă pentru un utilizator simplu, atunci SQL este un -limbaj de programare procesual cu ajutorul căruia pe diferite platforme puteți lucra cu baze de date. Software cunoscut pentru această sarcină: Oracle MySQL și DB2 (popular, dar nu unic). În ciuda faptului că fiecare dintre ele are propriile subtilități și nuanțe, limbajul SQL le „unește”. După ce am învățat să lucrez cu cel puțin unul dintre ei, va fi mult mai ușor să te descurci cu celălalt.

Crearea, completarea și acțiunile directepentru o bază de date existentă în SQL, aveți nevoie de coduri sau scripturi speciale. Cu toate acestea, cei care au ajuns deja la secțiunea „Comunicare de la mulți la mulți”, un exemplu în care în acest limbaj de programare va fi furnizat mai jos, ar trebui să cunoască cel puțin comenzile și principiile de bază ale utilizării limbajului SQL.

Câte relații sunt create

O lungă introducere ar putea fi oarecum confuză și„a ascunde”, dar, de fapt, principiul implementării conexiunii rămâne același. Pentru ca tipul de relație multi-la-mulți să fie implementat în practică, nu numai în Access, ci și în SQL, este necesar să se creeze inițial două tabele de bază și un tabel intermediar. Situația este similară cu cheile: entitățile principale au câmpuri principale, fiecare dintre acestea fiind înregistrat într-un tabel de joncțiune. Ceea ce înseamnă că o relație SQL mulți-la-mulți nu este fundamental diferită de Access.

exemple de relații multe-la-multe

Implementarea comunicării

Pentru a implementa comunicarea de la mai mulți la scripturiSQL folosește FOREIGN KEY similar cu tastele originale din tabelele principale. Acestea sunt înregistrate î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ăți din bazele de datesunt utilizate pentru integritatea informațiilor stocate în acestea. Doar o bază de date bine concepută, cu toate conexiunile necesare, garantează securitatea stocării, ușurința utilizării și este o structură rezistentă la influențe și modificări externe. De obicei, dacă o bază de date conține date despre o întreagă organizație, companie sau firmă, aceasta conține multe entități cu instanțe diferite.

relație sql-to-many sql

Aceasta înseamnă că atunci când se elaborează o schemă de date (în„Acces”) sau scripturi (în „Oracle” sau „DiBiTu”) va exista cel puțin o relație mulți-la-mulți. Un exemplu SQl folosit adesea în cursul Organizarea bazei de date este King's Database.

Baza de date a lui King

Acest exemplu de bază de date oferă informații despre King Corporation. Printre mese:

  • angajații companiei - conține codulangajatul, numele de familie, prenumele și inițiala de mijloc (accent pe nume străine), de asemenea, codul șefului și funcția ocupată de angajat, data admiterii sale în companie, salariul pe care îl primește și comisioanele stipulate , codul departamentului;
  • departamente corporative - printre câmpurile tabelului se află codul și numele departamentului, precum și codul locației sale;
  • locația departamentelor, care implică introducerea de informații despre codul de locație și numele orașului;
  • poziții în companie - un mic tabel cu două câmpuri ale codului de poziție și numele său oficial;
  • firme care cumpără - domenii:codul clientului și numele, adresa, orașul și statul, codul poștal și de zonă, telefonul, codul managerului serviciului pentru clienți, creditul clientului și comentarii (note și note);
  • contracte de vânzare, care conțin codul și data contractului, codul cumpărătorului, data livrării și valoarea totală a contractului;
  • certificate de vânzare - codul actului și codul contractului, care include actul, codul produsului, prețul acestuia, suma achiziționată și costul total al achiziției;
  • mărfuri - codul și numele produsului;
  • prețuri - codul produsului, prețul anunțat, prețul minim posibil, data setării și data anulării prețului.

Tabelele mici cu cel mult două sau trei câmpuri sunt asociate cu cel mult un tabel într-o relație unu-la-unu sau unu-la-mulți.

tip de relație mulți la mulți

Scaleți tabele, cum ar fi „angajațifirme "," firme de cumpărare "," contracte de vânzare "și" acte de vânzare "sunt legate de mai multe entități simultan, și cu unele - cu ajutorul„ intermediarilor ”o relație de la mulți la mulți. „este el însuși un intermediar, ca atare, deoarece are multe câmpuri împrumutate din alte tabele și sunt chei străine. În plus, scara și interconectarea bazei de date King's Corporation sunt de așa natură încât toate relațiile sunt indisolubil corelate între ele și se afectează reciproc. una dintre ele va duce la distrugerea integrității întregii baze de date.

Nuante importante

Atunci când implementați o relație mulți-mulți, în afaraîn funcție de ce SGBD este utilizat, este foarte important să determinați corect cheile cu care va fi compilată relația. O conexiune implementată incorect nu își va îndeplini scopul principal, și anume, de a asigura integritatea mesei și, ca urmare, în loc de confortul așteptat, utilizatorul va primi, dimpotrivă, inconveniente și probleme suplimentare, mai ales atunci când completează tabele și editarea datelor în ele.

a placut:
0
Postări populare
Dezvoltarea spirituală
alimente
y