Дерекқор қатынастарына кіріспе

«Реляциялық» немесе «қатынас» дерекқорының терминдері кестелердегі деректердің байланысқан жолын сипаттайды.

Дерекқорлар әлеміне жаңадан келгендер көбінесе дерекқор мен электрондық кестенің арасындағы айырмашылықты көре алмайды. Олар деректер кестелерін көреді және дерекқорлар деректерді жаңа жолдармен ұйымдастыруға және сұрауға мүмкіндік беретінін біледі, бірақ олардың атауын салыстырмалы дерекқор технологиясы беретін деректер арасындағы қатынастардың маңыздылығын түсінбейді.

Қатынастар түрлі дерекқор кестелерінің арасындағы байланыстарды қуатты тәсілдермен сипаттауға мүмкіндік береді. Бұл қарым-қатынастар қосылыстар деп аталатын күшті кесте сұрауларын орындау үшін қажет болуы мүмкін.

Дерекқор қатынастарының түрлері

Деректер қоры қарым-қатынастарының үш түрі бар, олардың әрқайсысы қарым-қатынасқа тартылуы мүмкін кесте жолдарының санына сәйкес аталады. Осы үш қатынас типтерінің әрқайсысы екі кестенің арасында бар.

Өзін-өзі сілтейтін қарым-қатынастар: арнайы жағдай

Өзін-өзі сілтейтін қарым-қатынастар тек бір кесте болған кезде пайда болады. Бір мысал - әрбір қызметкердің жетекшісі туралы ақпаратты қамтитын Қызметкерлер кестесі. Әрбір супервайзер-ақ қызметкер және оның жетекшісі. Бұл жағдайда әрбір қызметкердің бір жетекшісі болғандықтан, біреуден көпге өздігінен сілтеме қатынастары бар, бірақ әрбір жетекшіде бірнеше қызметкер болуы мүмкін.

Шетелдік кілттермен қарым-қатынас жасау

Сіз шетел кілтін көрсетіп, кестелер арасындағы қатынастарды жасайсыз. Бұл кілт кестелердің қалай байланысатындығын дерекқорға сілтеме жасайды. Көптеген жағдайларда А кестесіндегі баған К кестесінен анықталатын бастапқы кілттерді қамтиды.

Мұғалімдер мен студенттердің кестелерін қайталаңыз. Мұғалімдер кестесінде тек идентификатор, атау және курс бағаны бар:

Мұғалімдер
Оқытушы идентификаторы 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