Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно-ориентированные ИС (Моор).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.91 Mб
Скачать

1.2. Недостатки реляционных субд

Реляционная модель имеет строгое теоретическое обоснование. Эта теория способствовала созданию декларативного языка SQL, который в настоящее время стал стандартным в отношении определения и манипулирования реляционными базами данных. Другие сильные стороны реляционной модели — простота, пригодность для систем интерактивной обработки транзакций (OLTP), обеспечение независимости от данных. Однако реляционная модель данных и реляционная СУБД, в частности, имеют и определенные недостатки. Наиболее значительными из них являются:

  • неадекватное представление сущностей реального мира;

  • семантическая перегрузка;

  • слабая поддержка ограничений целостности и корпоративных ограничений;

  • однородная структура данных;

  • ограниченный набор операций;

  • сложности при обработке рекурсивных запросов;

  • проблема рассогласования типов данных;

  • другие проблемы реляционных СУБД, связанные с параллельным выполнением, изменениями схемы и неразвитыми средствами доступа.

Неадекватное представление сущностей реального мира

Процесс нормализации обычно приводит к созданию отношений, которые не соответствуют сущностям "реального мира". Фрагментация сущности "реального мира" на несколько отношений с физическим представлением, которое отражает эту структуру, является неэффективной и приводит к необходимости выполнения многих соединений в процессе обработки запросов. А соединение - это одна из наиболее дорогостоящих операций реляционной алгебры.

Семантическая перегрузка

Реляционная модель обладает только одной конструкцией для представления данных и связей между данными — отношением. Например, для представления связи "многие ко многим" (*:*) между двумя сущностями А и В необходимо создать три отношения: два для представления сущностей А и В, а третье — для представления связи. При этом не существует никакого механизма установления различий между сущностями и связями или между разными типами связей, заданными между сущностями. Например, связь "один ко многим" (1:*) может иметь разный смысл: Has (имеет), Owns (владеет), Manages (управляет) и т.д.

Если бы была возможность отразить подобные различия в схеме, то операциям можно было придать определенный смысл. Из-за отсутствия подобных возможностей говорят, что реляционная модель семантически перегружена.

Для решения этой проблемы было предпринято много попыток создания семантических моделей данных, т.е. моделей, которые несут большую смысловую нагрузку, чем просто значения данных. Однако реляционная модель не полностью лишена семантических возможностей. Например, в ней имеются домены и ключи, а также функциональные многозначные зависимости и зависимости соединения.

Слабая поддержка ограничений целостности и корпоративных ограничений

Целостность означает истинность и непротиворечивость хранимых данных и выражается обычно в виде ограничений, отражающих те правила непротиворечивости, которые нельзя нарушать в используемой базе данных. В курсе «Базы данных» были рассмотрены определения понятий целостности сущностей и целостности связей, и рассматривались домены, которые также являются некоторыми типами ограничений. К сожалению, многие коммерческие системы не полностью поддерживают эти ограничения, и их приходится встраивать в приложения.

Безусловно, это небезопасно и может привести к дублированию усилий или, что еще хуже, появлению противоречивых данных. Более того, в реляционной модели не предусмотрены средства поддержки корпоративных ограничений, что опять же означает необходимость их встраивания в СУБД или в приложение.