Relationsdatabas design är baserad på tre viktiga tekniker : en- till - många-relation , kopplingen bordet , och många - till - många-relation . Att förstå relationsdatabas design, är det viktigt att känna till dessa tekniker , samt specifika begrepp rörande nyckeln fältet . One -to -relation
Den vanligaste relationsdatabas teknik är en - till - många-relation . Detta ansluter en enda post i den primära tabellen ( det är , en platt - fil databas av poster och fält ) , med valfritt antal poster i en sekundär tabell . En - till - många relationer kännetecknas av unika anslutningar i den sekundära tabellen , var och en av dessa register kan inte ha mer än en relaterad post i den primära tabellen Dessa anslutningar görs med hjälp av " nyckelområden "
, . vilka är unika poster i den primära tabellen , vanligen dessa områden skapas och upprätthålls genom att automatiskt tilldela ett sekventiellt serienummer till varje ny post . Varje post i den sekundära tabellen som delar denna unika data kommer att relateras till en primär post . Nu
, utforska detta med ett exempel adressbok databas . Säg att du vill ha en design som gör alla i databasen för att ha flera telefonnummer . Detta är det vanligaste sättet att åstadkomma detta :
Människor tabell : Post 1 : ( PersonID : 1 Namn : " Franklin Roosevelt " ) Record 2 : ( PersonID : 2 , Namn : " Lyndon Johnson " )
Telefoner tabell : Post 1 : ( PersonID : 1 , Tel : " 202-555-1932 " ) Record 2 : ( PersonID : 1 , Tel : " 202-555-1936 " ) Record 3 : ( PersonID : 2 , Tel : " 202-555-1964 " ) katalog
När dessa två tabeller är relaterade med PersonID nyckeln fältet , kommer Franklin ha två telefonnummer , men Lyndon har bara en . Likaså är varje telefonnummer entydigt förknippad med en enda person i People tabellen .
Gå Tabeller
En andra tekniken kallas en " gå med bord " , som är används för poster som dras från två andra tabeller . Detta används ofta när data ska väljas från fasta bord , koppla tabeller kan bara hålla relationell data , in så alla uppgifter i dem måste dras från existerande tabeller
till exempel anta att du vill lägga till . ett " arbete " eller " hem " etikett på varje telefonnummer i exemplet databasen . Gör detta genom att skriva om relationen som en join tabell :
Människor tabell : Post 1 : ( PersonID : 1 Namn : " Franklin Roosevelt " ) Record 2 : ( PersonID : 2 , Namn : " Lyndon Johnson " )
Telefoner tabell : Post 1 : ( PhoneID : 1 , Tel : " 202-555-1932 " ) Record 2 : ( PhoneID : 2 , Tel : " 202-555-1936 " ) Record 3 : ( PhoneID : 3 , Tel : " 202-555-1964 " ) katalog
PhoneType tabell : Post 1 : ( PhoneTypeID : 1 , typ : " arbete " ) Record 2 : ( PhoneTypeID : 2 , Typ : " Home " )
Gå tabellen : Post 1 : ( PersonID : 1 , PhoneID : 1 , PhoneTypeID : 1 ) Spela in 2 : ( PersonID : 2 , PhoneID : 2 , PhoneTypeID : 2 ) Spela in 3 : ( PersonID : 3 , PhoneID : 3 , PhoneTypeID : 1 ) katalog
i denna databas , alla relationer ansluta till kopplingen bordet , vilket gör allt arbete att relatera ett namn till ett telefonnummer , och båda dessa till ett telefonnummer typ . En mer effektiv version kan använda två koppla tabeller , eftersom personens namn behöver inte vara direkt relaterade till den typ av telefon : PersonID och PhoneID i join tabell 1 , PhoneID och PhoneTypeID in med tabell 2
.
Använda Gå tabeller att skapa många - till -många-relationer
koppla tabeller , är det en - till - många-relation inte längre tillämpas . Om vi vill , kan vi använda samma telefonnummer för många människor , eller " hem " eller " arbete " etikett till så många telefoner som vi gillar . Detta gör att vi kan ställa upp många - till - många-relationer , där någon post i en tabell kan ansluta till flera poster i andra tabeller . Detta är en kraftfull databas teknik , men eftersom det kan skapa komplicerade förhållanden mellan data , bör den endast användas om en en- till - många-relation inte kommer att räcka .