Деректер базасындағы қатынас шектеулері және тарату шарттары
Propagation constraint
Деректер базасындағы тарату шектеулері қатысты кестелерді жаңарту кезінде деректер сақталуын қамтамасыз етеді. Негізгі кілт-сыртқы кілт байланыстары, тұжырымдамалық тұтастық сақталады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Деректер базасы жүйелерінде таралу шектеулері "мақсатты кестедегі жолды немесе жолдарды жаңартқанда байланысты кестеге не болуы тиіс екенін егжей-тегжейлі көрсетеді" (Пол Бейнон Дэвис, 2004, 108 б.). Кестелер негізгі кілт пен сыртқы кілт қатынастары арқылы байланыстырылады. Пайдаланушылар қатынастағы бір кестені қатынас енді сәйкес келмейтіндей етіп жаңартуы мүмкін, және мұндай жағдай референциялық тұтастықты бұзу деп аталады. Референциялық тұтастықты бұзудың мысалы: егер қызметкерлер кестесінде "Үй шаруалық заттары" бөлімінің нөмірі болса, ол бөлімдер кестесіне сыртқы кілт ретінде сілтеме жасайды. Егер пайдаланушы бөлімдер кестесінен осы бөлімді өшірсе, онда "Үй шаруалық заттары" бөлімінің қызметкерлері туралы жазбалар жоқ бөлім нөміріне сілтеме жасайды. Таралу шектеулері – бұл реляциялық деректерді басқару жүйелерінде (RDBMS) кестелер арасындағы қатынастардың қатесіз сақталуын қамтамасыз ету арқылы осы мәселені шешу үшін қолданылатын әдістер. Бейнон Дэвис өзінің деректер базасы оқулығында RDBMS мақсатты және байланысты жазбаларды жоюды басқаратын үш тәсілді түсіндіреді:
In database systems, a propagation constraint "details what should happen to a related table when we update a row or rows of a target table" (Paul Beynon Davies, 2004, p.108). Tables are linked using primary key to foreign key relationships. It is possible for users to update one table in a relationship in such a way that the relationship is no longer consistent and this is known as breaking referential integrity. An example of breaking referential integrity: if a table of employees includes a department number for 'Housewares' which is a foreign key to a table of departments and a user deletes that department from the department table then Housewares employees records would refer to a non existent department number. Propagation constraints are methods used by relational database management systems (RDBMS) to solve this problem by ensuring that relationships between tables are preserved without error. In his database textbook, Beynon Davies explains the three ways that RDBMS handle deletions of target and related tuples:
Шектелген жою: Пайдаланушы мақсатты жолды оған сілтеме жасайтын барлық жолдар (сыртқы кілттер арқылы) жойылмайынша жоя алмайды. Яғни, барлық "Үй шаруалық заттары" бөлімінің қызметкерлерін жою керек немесе олардың бөлімдерін өзгерту керек, бөлімді бөлімдер кестесінен алып тастаудан бұрын. Каскадты жою: Мақсатты жолды жоюға болады, сонымен қатар оған сілтеме жасайтын барлық жолдар (сыртқы кілттер арқылы) да жойылады. Процесс шектелген жоюмен бірдей, бірақ RDBMS бөлімді алып тастамас бұрын "Үй шаруалық заттары" бөлімінің қызметкерлерін автоматты түрде жояды. Нөлдеу жою: Мақсатты жолды жоюға болады және барлық сыртқы кілттер (оған сілтеме жасай отырып) нөлге теңестіріледі. Осы жағдайда, "Үй шаруалық заттары" бөлімін жойғаннан кейін, осы бөлімде жұмыс істеген қызметкерлердің бөлімдері NULL (белгісіз) мәнін алады.
Restricted Delete the user cannot delete the target row until all rows that point to it (via foreign keys) have been deleted. This means that all Housewares employees would need to be deleted, or their departments changed, before removing the department from the departmental table. Cascades Delete can delete the target row and all rows that point to it (via foreign keys) are also deleted. The process is the same as a restricted delete, except that the RDBMS would delete the Houseware employees automatically before removing the department. Nullifies Delete can delete the target row and all foreign keys (pointing to it) are set to null. In this case, after removing the housewares department, employees who worked in this department would have a NULL (unknown) value for their department.