«Реляциялық» немесе «қатынас» дерекқорының терминдері кестелердегі деректердің байланысқан жолын сипаттайды.
Дерекқорлар әлеміне жаңадан келгендер көбінесе дерекқор мен электрондық кестенің арасындағы айырмашылықты көре алмайды. Олар деректер кестелерін көреді және дерекқорлар деректерді жаңа жолдармен ұйымдастыруға және сұрауға мүмкіндік беретінін біледі, бірақ олардың атауын салыстырмалы дерекқор технологиясы беретін деректер арасындағы қатынастардың маңыздылығын түсінбейді.
Қатынастар түрлі дерекқор кестелерінің арасындағы байланыстарды қуатты тәсілдермен сипаттауға мүмкіндік береді. Бұл қарым-қатынастар қосылыстар деп аталатын күшті кесте сұрауларын орындау үшін қажет болуы мүмкін.
Дерекқор қатынастарының түрлері
Деректер қоры қарым-қатынастарының үш түрі бар, олардың әрқайсысы қарым-қатынасқа тартылуы мүмкін кесте жолдарының санына сәйкес аталады. Осы үш қатынас типтерінің әрқайсысы екі кестенің арасында бар.
- Алғашқы кестедегі әрбір енгізудің біреуі, ал екінші кестеде біреуі ғана болғанда, жеке қатынастар орын алады. Жеке-дара қатынастар сирек пайдаланылады, себебі барлық мәліметтерді бір кестеде жай ғана қою тиімдірек. Кейбір дерекқордың дизайнерлері басқа қатынастар кестесіндегі деректердің жиынын қамтитын кестелерді жасау арқылы осы қатынасты пайдаланады.
- Көптеген қатынастар дерекқор қатынастарының ең көп таралған түрі болып табылады. Олар A кестесіндегі әрбір жазба В кестесіндегі бір немесе бірнеше жазбаларға сәйкес келгенде орын алады, бірақ К кестесіндегі әрбір жазба А кестесіндегі бір ғана жазбаға сәйкес келеді. Мысалы, мұғалімдер кестесі мен бастауыш мектептегі Оқушылар кестесі арасындағы байланыс деректер базасы бір-біріне көптеген қатынастар болуы мүмкін, себебі әрбір студентте тек бір мұғалім ғана бар, бірақ әрбір мұғалімде бірнеше оқушы бар. Бұл бір-көпше дизайн қайталанатын деректерді жоюға көмектеседі.
- Көптеген аралық қатынастар А кестесіндегі әрбір жазба В кестесіндегі бір немесе одан көп жазбаларға сәйкес келгенде орын алады және Кестедегі әрбір жазбаның Кестедегі бір немесе бірнеше жазбаларына сәйкес келеді. Мысалы, мұғалімдер мен курстар кесте әр-түрлі болуы мүмкін, себебі әр мұғалім бірден көп курстарға нұсқау бере алады және әрбір курсқа біреуден артық нұсқаушы болуы мүмкін.
Өзін-өзі сілтейтін қарым-қатынастар: арнайы жағдай
Өзін-өзі сілтейтін қарым-қатынастар тек бір кесте болған кезде пайда болады. Бір мысал - әрбір қызметкердің жетекшісі туралы ақпаратты қамтитын Қызметкерлер кестесі. Әрбір супервайзер-ақ қызметкер және оның жетекшісі. Бұл жағдайда әрбір қызметкердің бір жетекшісі болғандықтан, біреуден көпге өздігінен сілтеме қатынастары бар, бірақ әрбір жетекшіде бірнеше қызметкер болуы мүмкін.
Шетелдік кілттермен қарым-қатынас жасау
Сіз шетел кілтін көрсетіп, кестелер арасындағы қатынастарды жасайсыз. Бұл кілт кестелердің қалай байланысатындығын дерекқорға сілтеме жасайды. Көптеген жағдайларда А кестесіндегі баған К кестесінен анықталатын бастапқы кілттерді қамтиды.
Мұғалімдер мен студенттердің кестелерін қайталаңыз. Мұғалімдер кестесінде тек идентификатор, атау және курс бағаны бар:
Оқытушы идентификаторы | Teacher_Name | Курс |
---|---|---|
001 | Джон Ду | Ағылшын тілі |
002 | Джейн Шмое | Математика |
Студенттік кестеде идентификатор, атау және сыртқы кілт бағаны бар:
StudentID | Student_Name | Teacher_FK |
---|---|---|
0200 | Лоуэлл Смит | 001 |
0201 | Брайан Шорт | 001 |
0202 | Қорқыт Мендес | 002 |
0203 | Моника Джонс | 001 |
Оқушылар кестесіндегі Teacher_FK бағаны Мұғалімдер кестесіндегі нұсқаушының негізгі кілтінің мәнін көрсетеді.
Дерекқор дизайнерлері бастапқы кілт немесе шетел кілтінің бағанын оңай анықтау үшін баған атауында «PK» немесе «FK» сөзін пайдаланады.
Бұл екі кестеде мұғалімдер мен оқушылар арасында бір-біріне көптеген қатынастар бар екенін ескеріңіз.
Қатынастар және референттік тұтастық
Кестеге шетел кілтін қосқаннан кейін, екі кесте арасындағы сілтеме тұтастығын қамтамасыз ететін дерекқор шектеулігін жасай аласыз. Бұл кестелер арасындағы байланыстар сақталып қалуын қамтамасыз етеді. Бір кестеде басқа кестеге шетел кілті болғанда, анықтамалық тұтастық тұжырымдамасы Кестедегі кез-келген шетелдік кілт мәні А кестесіндегі бар жазбаға сілтеме жасайтынын көрсетеді.
Қатынастарды жүзеге асыру
Дерекқорыңызға байланысты кестелер арасындағы қарым-қатынастарды әртүрлі жолдармен жүзеге асырасыз. Microsoft Access бағдарламасы кестелерді байланыстыруға және сілтеме тұтастығын қамтамасыз етуге мүмкіндік беретін оңай шеберді қамтамасыз етеді.
Егер сіз SQL-ті тікелей жазсаңыз, алдымен мұғалімдер кестесін жасайсыз, идентификатор бағанын алғашқы кілт деп жариялайсыз:
ТАҚЫРЫПТЫҢ ЖАСАУЫ Мұғалімдер (
InstructorID INT AUTO_INCREMENT PRIMARY KEY,
Оқытушы_Name VARCHAR (100),
Курс VARCHAR (100)
);
Оқушылар кестесін жасаған кезде Teacher_FK бағанын Мұғалімдер кестесіндегі InstructorID бағанына сілтеме жасайтын шетел кілтін жариялаңыз:
Студенттерді (
StudentID INT AUTO_INCREMENT БАСТЫ КЛУБЫ,
Student_Name VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) СІЛТЕМЕЛЕР Оқытушылар (нұсқаушы ИД))
);
Кестелерге қосылу үшін қатынастарды пайдалану
Дерекқорыңызда бір немесе бірнеше қатынастар жасағаннан кейін, бірнеше кестелерден ақпаратты біріктіру үшін SQL JOIN сұрауларын пайдалану арқылы өз күштерін пайдалануға болады. Біріктірудің ең кең таралған түрі - SQL INNER JOIN немесе қарапайым қосылу. Біріктірудің бұл түрі бірнеше кестеден біріктіру шартына сәйкес келетін барлық жазбаларды қайтарады. Мысалы, бұл JOIN күйі Student_Name, Teacher_Name және Course кестесіндегі шетел кілті Мұғалімдер кестесіндегі негізгі кілтге сәйкес келетін курсты қайтарады:
Студенттерді таңдау.Студенттің аты, Мұғалімдер. Тағайындау коды, Мұғалімдер
Студенттерден
ІШКІ ОҚЫТУШЫЛАР
Студенттерге арналған. Teacher_FK = Teachers.InstructorID;
Бұл мәлімдеме мына кестені жасайды:
SQL біріктіру мәлімдемесінен қайтарылған кесте
Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish