Дерекқордың реляциялық және қатынастық терминдері кестелердегі деректердің қосылу жолын сипаттайды. Реляциялық мәліметтер базасы белгілі бір кілтпен байланысқан екі немесе одан да көп кестелер сериясынан тұрады. Реляциялық дерекқор үлкен деректер бастамаларында жиі кездесетін құрылымдалмаған дерекқорлардан ерекшеленеді. Реляциялық дерекқорлар әдетте кестелер қалай анықталатыны және кестелер арасындағы жарамды қатынасты құрайтыны туралы қатаң ережелерді талап етеді.
Дерекқор қатынастарының түрлері
Қарым-қатынастар дерекқор кестелері арасындағы байланыстарды күшті жолдармен сипаттауға мүмкіндік береді. Бұл қатынастарды JOIN деп аталатын қуатты кестеаралық сұрауларды орындау үшін пайдалануға болады.
Дерекқор қатынасының үш түрі бар, олардың әрқайсысы қатынасқа қатысатын кесте жолдарының санына сәйкес аталады. Осы үш қатынас түрінің әрқайсысы екі кесте арасында бар.
- Бірге-бір қарым-қатынастар бірінші кестедегі әрбір жазбаның екінші кестеде тек бір аналогы болғанда орын алады. Барлық ақпаратты бір кестеге қою жиі тиімдірек болғандықтан, жеке қарым-қатынастар сирек қолданылады. Кейбір дерекқор құрастырушылары басқа кестедегі деректердің жиынын қамтитын кестелерді жасау арқылы осы қатынастың артықшылығын пайдаланады.
- Бірден көпке қатынас дерекқор қатынасының ең көп тараған түрі. Олар А кестесіндегі әрбір жазба В кестесіндегі бір немесе бірнеше жазбаларға сәйкес болғанда орын алады, бірақ В кестесіндегі әрбір жазба А кестесіндегі бір ғана жазбаға сәйкес келеді. Мысалы, бастауыш мектептегі Мұғалімдер кестесі мен Оқушылар кестесі арасындағы қатынас дерекқор бір-көп қатынасы болуы мүмкін, себебі әр студентте бір ғана мұғалім бар, бірақ әр мұғалімде бірнеше оқушы бар. Бұл бір-көп дизайны қайталанатын деректерді жоюға көмектеседі.
- Көптен көпке қатынас А кестесіндегі әрбір жазба В кестесіндегі бір немесе бірнеше жазбаларға, ал В кестесіндегі әрбір жазба бір немесе бірнеше жазбаларға сәйкес болғанда орын алады. А кестесінде. Мысалы, Мұғалімдер кестесі мен Курстар кестесінің арасындағы қатынас көптен көпке дейін болуы мүмкін, себебі әр мұғалім бірнеше курсқа нұсқау беруі мүмкін және әр курста бірден көп нұсқаушы болуы мүмкін.
Төменгі жол
Өзіне-өзі сілтеме жасайтын қарым-қатынастар тек бір кесте қатысқан кезде пайда болады. Жалпы мысалдардың бірі - әрбір қызметкердің жетекшісі туралы ақпаратты қамтитын Қызметкерлер кестесі. Әрбір басшы да қызметкер болып табылады және оның жетекшісі бар. Бұл жағдайда «бірден көпке» өзін-өзі сілтейтін қатынас бар, өйткені әрбір қызметкерде бір жетекші болады, бірақ әр басшының бірнеше қызметкері болуы мүмкін.
Шетелдік кілттермен қарым-қатынас жасау
Сіз сыртқы кілтті көрсету арқылы кестелер арасында қарым-қатынас жасайсыз. Бұл кілт реляциялық дерекқорға кестелердің қалай байланысты екенін айтады. Көптеген жағдайларда А кестесіндегі баған В кестесінен сілтеме жасалған негізгі кілттерді қамтиды.
Мұғалімдер мен студенттер кестелерінің мысалын қарастырайық. Мұғалімдер кестесінде идентификатор, атау және курс бағаны бар:
ОқытушыID | Мұғалім_аты | Курс |
001 | Джон Доу | ағылшын |
002 | Джейн Шмое | Математика |
Студенттер кестесінде идентификатор, атау және шетелдік кілт бағаны бар:
Студенттік ID | Студенттің_аты | Мұғалім_ФК |
0200 | Лоуэлл Смит | 001 |
0201 | Брайан Шорт | 001 |
0202 | Қорки Мендес | 002 |
0203 | Моника Джонс | 001 |
Студенттер кестесіндегі Мұғалім_ФК бағаны Мұғалімдер кестесіндегі нұсқаушының негізгі кілт мәніне сілтеме жасайды. Көбінесе дерекқор дизайнерлері бастапқы кілтті немесе сыртқы кілт бағанын анықтау үшін баған атауында PK немесе FK пайдаланады.
Бұл екі кесте мұғалімдер мен студенттер арасындағы «бірден көпке» қатынасты көрсетеді.
Қарым-қатынастар және анықтамалық тұтастық
Кестеге сыртқы кілтті қосқаннан кейін екі кесте арасындағы сілтеме тұтастығын қамтамасыз ететін дерекқор шектеуін жасаңыз. Бұл қадам кестелер арасындағы қатынастардың тұрақты болуын қамтамасыз етеді. Бір кестеде басқа кестенің сыртқы кілті болса, сілтеме тұтастығы В кестесіндегі кез келген сыртқы кілт мәні А кестесіндегі бар жазбаға сілтеме жасауды талап етеді.
Қарым-қатынасты іске асыру
Дерекқорға байланысты кестелер арасындағы қарым-қатынастарды әртүрлі жолдармен жүзеге асырасыз. Microsoft Access кестелерді байланыстыруға және анықтамалық тұтастықты қамтамасыз етуге мүмкіндік беретін шеберді ұсынады.
Егер SQL тілін тікелей жазып жатсаңыз, алдымен идентификатор бағанын негізгі кілт деп жариялай отырып, Мұғалімдер кестесін жасаңыз:
Кесте жасау Мұғалімдер (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Мұғалім_аты VARCHAR(100), Курс VARCHAR(100));
Студенттер кестесін жасаған кезде, Teacher_FK бағанын Мұғалімдер кестесіндегі InstructorID бағанына сілтеме жасайтын шетелдік кілт деп жариялайсыз:
Кесте жасау Оқушылар (StudentID INT AUTO_INCREMENT PRIMARY KEY, Студент_аты VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Мұғалімдер));
Кестелерге қосылу үшін қатынастарды пайдалану
Дерекқорда бір немесе бірнеше қатынастарды жасағаннан кейін бірнеше кестелердегі ақпаратты біріктіру үшін SQL JOIN сұрауларын пайдалану арқылы олардың күшін пайдаланыңыз. Біріктірудің ең көп тараған түрі - қарапайым біріктіру болып табылатын SQL INNER JOIN. Біріктірудің бұл түрі бір немесе бірнеше кестелердің қосылу шартына сәйкес келетін барлық жазбаларды қайтарады.
Мысалы, бұл JOIN шарты Студенттің_Атын, Мұғалімнің_атын және Курсты қайтарады, мұнда Оқушылар кестесіндегі сыртқы кілт Мұғалімдер кестесіндегі негізгі кілтке сәйкес келеді:
Студенттерді ТАҢДАУ. Студенттің_аты, Мұғалімдер. Мұғалім_аты, Курс
Студенттерден
INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;
Бұл мәлімдеме келесідей кестені шығарады:
Студенттің_аты | Мұғалім_аты | Курс |
Лоуэлл Смит | Джон Доу | ағылшын |
Брайан Шорт | Джон Доу | ағылшын |
Қорки Мендес | Джейн Шмое | Математика |
Моника Джонс | Джон Доу | ағылшын |