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)
conținut
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.
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.
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.
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.
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".
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.
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.
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.
- Baza de date normalizare
- Fișier SQL. Formatul de fișier SQL: descrierea extensiei
- Cum se creează o bază de date în Access. Lucrul cu baza de date Access
- Cum se compun interogările SQL - exemple detaliate
- Bazele de date sunt relaționale. Conceptul de bază de date relațională
- Accesul-formă. Crearea formularelor pentru introducerea datelor
- DB este ... Tipuri și proprietăți ale bazei de date
- Accesul este ceea ce? Crearea unei baze de date în Microsoft Access
- MS Access. Baze de date MS Access. MS Access 2007
- ACCDB: cum se deschide un fișier
- Detalii despre ce să deschidă ACCDB
- Crearea interogărilor în Access. Tipuri de cereri
- Model de date ierarhic
- Model de date rețea
- Software de aplicație, clasificare
- Cum se creează interogări în Access: instrucțiuni pas cu pas și recomandări
- Detalii despre cum să legați tabelele de acces
- Modele de date: caracteristici, clasificare și descriere
- Concepte generale ale DBMS de acces
- DBMS este un sistem de management al datelor
- Principalele puncte pe care le are baza de date Acces