1. Понятие о базе данных. Субд. Примеры


Download 338.67 Kb.
bet45/81
Sana17.06.2023
Hajmi338.67 Kb.
#1547959
1   ...   41   42   43   44   45   46   47   48   ...   81
Bog'liq
Baza dannix Yakuniy savollar va javoblar (1)

60. Что такое аномалия?
Аномалия (anomaly) – противоречие между моделью предметной области и моделью данных, поддерживаемой средствами конкретной СУБД.
Аномалии обновления 
Различают три вида аномалий в базе данных:
аномалии включения; аномалии удаления; аномалии модификации.
Аномалии включения
Аномалии включения проявляются при вводе новых данных в отношение с избыточностью данных.
Рассмотрим аномалию включения на примере отношения «Сотрудник». Аномалия включения возникает при попытке создать «отдел внедрения разработок» и ввести ее в отношение при том условии, что в нее еще не переведен ни один сотрудник. Ввод такой информации в подобной ситуации требует присвоения значения NULL всем атрибутам описания сотрудника, в том числе и атрибуту Номер сотрудника, который является первичным ключом данного отношения. Но реализация такой попытки приведет к нарушению целостности, а значит, система ее обязана отклонить. 
Аномалии удаления
Принцип аномалии удаления состоит в том, что при удалении некоторых данных из отношения может произойти потеря других данных.
Например, вернемся к анализу отношения «Сотрудник». Предположим, что все сотрудники отдела 128 уволились в один и тот же день. После удаления кортежей этих сотрудников в БД больше не будет ни одной записи, содержащей информацию об отделе 128. Такая ситуация представляет собой аномалию удаления. 
Рассмотрим пример с поставщиками и поставками деталей. Предположим, что нам требуется хранить информацию о наименовании поставщиков, наименовании и количестве поставляемых ими деталей, причем каждый поставщик может поставлять несколько деталей и каждая деталь может поставляться несколькими поставщиками. Можно предложить хранить данные в следующем отношении:
Предположим, например Петров, временно прекратил поставки деталей? Если мы удалим все кортежи, в которых хранится информация о поставках этого поставщика, то мы потеряем данные о самом Петрове как потенциальном поставщике. Выйти из этого положения, оставив в отношении кортеж типа (2, Петров, NULL, NULL, NULL) мы не можем, т.к. атрибут "Номер детали" входит в состав потенциального ключа и не может содержать null-значений. То же самое произойдет, если некоторая деталь временно не поставляется никаким поставщиком. Получается, что мы не можем хранить информацию о том, что есть некий поставщик, если он не поставляет хотя бы одну деталь, и не можем хранить информацию о том, что есть некоторая деталь, если она никем не поставляется. 

Download 338.67 Kb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   81




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling