I alla DBMS (databashanteringssystem)det finns flera typer av samband mellan tabeller. Dessa inkluderar en-till-en, en-till-många, många-till-en (vissa tenderar att likställa de två som en) och många-till-många. Ett exempel på det senare, dess förklaring och tillämpning i olika DBMS, såsom Access eller SQL, kommer att diskuteras i denna artikel.
En många-till-många relation definieras sommatcha någon av instanserna av en av enheterna i alla instanser av den andra. Med andra ord är varje fält från den första (andra) tabellen associerat med alla fält från den andra (första).
Det presenterade diagrammet återspeglar tydligt essensen i detta förhållande.
Ett exempel på en mång-till-många relation är studentgrupp och grupp lärare. Var och en av eleverna lär sig av flera professorer samtidigt, som i sin tur håller föreläsningar för flera studenter. Bilden visar skillnaden mellan ett en-till-många-förhållande och ett många-till-många-förhållande.
Många-till-många-kommunikation är ofta nödvändig närkompilering av storskaliga databaser, små illustrativa exempel används vanligtvis endast för utbildningsändamål, i verkligheten visar det sig att ju fler enheter i databasen och ju fler relationer mellan dem, desto mer sannolikt är det att ofta hänvisa till många -många förhållanden.
Exempel på förhållandet i fråga kommer fortfarande att finnasläggs till under artikeln, men det är viktigt att inte bara förstå vad det är, utan också hur du kan implementera det. Detaljerna i denna process beror direkt på det DBMS som valts för arbetet, medan principen förblir densamma för alla.
Office -mjukvaruprodukt från Microsofthar varit känd på mjukvarumarknaden ganska länge. Den levereras med Worfd -textredigerare, Excel -kalkylprocessor och andra från "office" -raden. Access (läs som "access", bokstavlig översättning - "access") kan köpas separat från dess "kollegor". Det rekommenderas naturligtvis att köpa licensierad programvara, men det är ingen hemlighet för någon hur många piratkopierade repack som finns på Internet, i form av vanliga filer eller torrentdistributioner. Microsoft Access är till och med tillgängligt i en bärbar version. Det, som inte kräver installation och speciella färdigheter i att arbeta med en PC, är bäst för att välja om programvaran inte kommer att användas under lång tid och ofta.
Det framgår av sammanhanget att Microsoft Access ärdatabashanteringssystem. Och en av de mest populära. Det är relationellt, vilket betyder att det är baserat på en logisk datamodell, som i sitt arbete refererar till uppsättningsteori och första ordningens logik. Många-till-många-relationer i Access (exempel kommer att ges under förklaringen) är väldigt, väldigt enkelt att implementera. Överväg det.
För att inte komma med något nytt, låt oss ta det redanges för att klargöra förhållandet många-till-många, exemplet handlar om studentkåren. Du måste skapa en tabell "Studenter" och en tabell "Lärare". Både den första och den andra har primära nycklar. För att kombinera instanser av dessa två enheter krävs också en annan tabell, vars fält är nycklarna till den första och andra tabellen.
Med tanke på ett annat exempel:Till exempel spelare och lag (med tanke på att minst en av spelarna spelade för olika lag, och varje lag har elva spelare), kommer kärnan i att bygga en anslutning inte att förändras. Tre bord kommer också att behövas. Av dessa, "Fotbollsspelare" och "Lag" som de viktigaste, och en mellanliggande.
Förhållanden mellan tabeller i Microsoft Accessimplementeras med hjälp av fliken Dataskema. Alla nödvändiga enheter läggs till i panelen (i vårt fall alla tre tabellerna). Många-till-många-förhållandet kommer att skapas med två en-till-många-relationer mellan huvudet ("Studenter" och "Lärare") och en mellanliggande tabell. För att göra detta måste du länka motsvarande primära nycklar tillsammans.
Illustrationen ovan visar hur fliken Relationer ser ut. Antalet tabeller som läggs till i panelen är obegränsat. Platsen är helt användarjusterbar.
Att designa SQL -databaser är en utmaningsvårare än på "Access". Om en Microsoft-produkt är fullt anpassad för en kontorsmiljö, har en enorm och, med varje version och uppdatering, alla utökningsbara funktioner, men samtidigt ett gränssnitt som är bekvämt för en enkel användare, är SQL en separat icke-procedurell programmeringsspråk med hjälp av vilka på olika plattformar du kan arbeta med databaser. Känd programvara för denna uppgift: Oracle MySQL och DB2 (populärt, men inte unikt). Trots att var och en av dem har sina egna finesser och nyanser, "förenar" SQL -språket dem. Efter att ha lärt sig att arbeta med minst en av dem blir det mycket lättare att hantera den andra.
Skapande, fyllning och direkta handlingaröver en befintlig databas i SQL behöver du genom speciella koder eller skript. Men de som redan har kommit till avsnittet "Många-till-många-kommunikation", ett exempel på detta i detta programmeringsspråk kommer att ges nedan, bör åtminstone känna till de grundläggande kommandona och principerna för att använda SQL-språket.
En lång introduktion kan vara något förvirrande och"att dölja", men i själva verket förblir principen för genomförandet av anslutningen densamma. För att många-till-många-relationstypen ska kunna implementeras i praktiken, inte bara i "Access", utan också i SQL, krävs det att man inledningsvis skapar två grundtabeller och en mellanliggande. Situationen är liknande med nycklar: huvudenheter har huvudfält, som var och en är inspelad i en kopplingstabell. Vilket innebär att SQL många-till-många-förhållandet inte skiljer sig fundamentalt från "Access".
Att implementera många-till-många kommunikation i skriptSQL använder FOREIGN KEY liknande de ursprungliga nycklarna i huvudtabellerna. De spelas in tillsammans med alla fält när de skapas och / eller redigeras.
Generellt förhållanden mellan enheter i databaseranvänds för integriteten hos den information som lagras i dem. Endast en väl utformad databas med alla nödvändiga anslutningar garanterar lagringssäkerhet, användarvänlighet och är en struktur som är resistent mot yttre påverkan och förändringar. Vanligtvis, om en databas innehåller data om en hel organisation, företag eller företag, innehåller den många enheter med olika instanser.
Och det betyder att när du skapar ett dataschema (i"Access") eller skript (i "Oracle" eller "DiBiTu") kommer det att finnas minst en många-till-många-relation. Ett exempel på SQl som ofta används i Database Organization -kursen är King's Database.
Denna exempeldatabas ger information om King Corporation. Bland borden:
Små tabeller med högst två eller tre fält är associerade med högst en tabell i en en-till-en eller en-till-många-relation.
Skala tabeller, till exempel "anställdaföretag "," köpföretag "," försäljningskontrakt "och" säljhandlingar "är kopplade till flera enheter samtidigt, och med vissa-med hjälp av" mellanhänder "en många-till-många-relation. Tabellen" företag-köpare "är i sig själv en mellanhand, eftersom den har många fält lånade från andra tabeller och är främmande nycklar. Dessutom är skalan och sammankopplingen av King's Corporation -databasen sådan att alla relationer är oupplösligt korrelerade med varandra och påverkar varandra. en av dem kommer att leda till att hela databasens integritet förstörs.
När man genomför ett många-till-många-förhållande, utanförberoende på vilket DBMS som används är det mycket viktigt att korrekt bestämma nycklarna som relationen ska kompileras med. En felaktigt implementerad anslutning kommer inte att uppfylla sitt huvudsakliga syfte, nämligen att säkerställa bordets integritet, och som ett resultat, istället för den förväntade komforten, kommer användaren tvärtom att få olägenheter och ytterligare problem, särskilt när du fyller i tabeller och redigera data i dem.