Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamen_33_33_33_21-40.doc
Скачиваний:
5
Добавлен:
29.09.2019
Размер:
814.08 Кб
Скачать

22. Обмеження реляційної бази даних. Їх створення та модифікація засобами sql. Приклад реалізації Data Definition Language.

Реляционная модель ограничена в представлении данных:

  • Реляционная модель данных не допускает естественного представления данных со сложной (иерархической) структурой, поскольку в ее рамках возможно моделирование лишь с помощью плоских отношений (таблиц). Все отношения принадлежат одному уровню, многие значимые связи между данными либо теряются, либо их поддержку приходится осуществлять в рамках конкретной прикладной программы.

  • По определению в реляционной модели поля кортежа могут содержать лишь атомарные значения. Однако, в таких приложениях как САПР (системы автоматизироваанного проектирования), ГИС (геоинформационные системы), искусственный интеллект системы оперируют со сложно - структурированными объектами.  Кроме того, даже в том случае, когда сложный объект удается "уложить" в реляционную базу данных, его данные распределяются, как правило, по многим таблицам. Соответственно, извлечение каждого такого объекта требует выполнения многих операций соединения (join), что значительно замедляет работу СУБД. Обойти это и предыдущее ограничения можно было бы в том случае, если бы реляционная модель допускала

    • возможность определения новых типов данных

    • определение наборов операций, связанных с данными определенного типа

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

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

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

Реализация ограничений целостности реляционной базы данных

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

1 Целостность таблицы. Обязательно должны поддерживаться: - уникальность строк таблицы. Должен быть определен первичный ключ таблицы, и значение его должно быть определено; - все уникальные (потенциальные) ключи, выявленные в ходе анализа предметной области. Эти ограничения реализуются в командах создания и модификации таблиц. Например, в языке SQL это команды Create Table, Alter Table. В этих командах для описания полей - первичных ключей используется конструкция primary key, для описания полей – уникальных ключей конструкция unique, обязательность значений полей задается конструкцией not null.

2 Декларативные ограничения данных. Так называют ограничения реляционной базы данных, объявленные предметной областью и выявленные в ходе её анализа. Задача проектировщика БД - адекватно отобразить их в БД. Самые распространенные ограничения предметной области – это ограничения на свойства объекта предметной области, далее атрибута отношения или поля таблицы: - обязательность значения поля; - тип, длина, диапазон значения поля (например, значение должно быть целым и положительным), вхождение значения в заданный список и т.п. Такие ограничения рекомендуется задавать на уровне домена в командах Create Domain, Alter Domain. Также они могут быть заданы в командах создания и модификации таблиц - Create Table, Alter Table при описании поля таблицы.

Эти ограничения также реализуются в командах создания и модификации таблиц (Create table, Alter table) при описании поля таблицы: Value  <оператор>  <значение |  Value [Not] Between <знач.1> and <знач.2> | Value [Not] In (<знач.1>[, <знач.2>,]) | Value Is [Not] Null | Value [Not] Like <знач.> [Escape <знач.>] | Value [Not] Containing <знач.> | Value [Not] Starting [With] <знач.> |

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]