русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Моделирование БД. Нарушение целостности


Дата добавления: 2015-07-09; просмотров: 529; Нарушение авторских прав


С точки зрения логики, любое преобразование БД должно переводить одно состояние БД в другое (декомпозиция). Любое преобразование должно сохранять это отношение (декомпозицию). (То есть таблица®таблица).

В реляционных БД в реальности модификация понимается как модификация таблиц. Декларативные реляционные языки содержат команды, выполняющие именно такие преобразования (SQL).

Таблицы состоят из записей. Можно понимать преобразование таблиц как реализацию некоторых алгоритмов обработки записей. Такой подход характерен для процедурно-реляционных языков (xBase, dBase, FoxPro). Эти языки ближе к реализации, здесь таблица есть файл, то есть последовательность реализации.

В любом случае реализация преобразований допускает некорректное состояние. Разумеется, что проблема неспецифична для СУБД. Но именно здесь она приобретает наибольшую остроту – СУБД изначально ориентированы на хранение данных; их корректность имеет наивысший приоритет.

Переход базы в некорректное, с точки зрения логики, состояние называется нарушением её целостности (база содержит неправильные данные). Такие нарушения могут происходить по нескольким причинам: нарушение уровня поля - неточное описание доменов – области допустимых, с точки зрения логики, значений полей.

Пример. Описать в терминах БД понятие «прямоугольник».

RÌD2 – множество всех точек.

x, y

x³x1 & x£x2

y³y1 & y£y2

Соответственно таблица с заданными полями x, y – вещественных чисел. Такое определение допускает появление в базе некорректных точек (не входящих в прямоугольник). Проблема решается указанием не только типа, но и условия назначения поля. Вторая проблема: нарушение уровня записи. Может оказаться, что домен каждого из полей описан точно, но значение записи в целом некорректно.

Пример. Описать круг в терминах БД



RÌD2

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

Классификация допустимости преобразований «уровня отношений» (уровня БД) практически не существует, что, очевидно, вызвано тем, что в реляционных БД отношения имеют, в физическом смысле, мнимый характер. Есть отношения допустимости преобразований как сохраняющих отношения ключей – ссылочная целостность (referential integrity). Преобразования не сохраняют ссылочною целостность, если оставляют сирот, то есть записи дочерних таблиц, содержащих ссылку на несуществующее значение ключа материнской таблицы. Среди преобразований, сохраняющих ссылочную целостность, выделяются каскадные (cascades) – модификация родительских таблиц продолжается на дочерние записи. Например, каскадное удаление – удаление родительской записи влечёт удаление всех дочерних – каскадное изменение ключа. Нулевое изменение (nulls) – изменение родительской записи с изменением внешнего ключа дочерних на значение null. Например, нулевое удаление – удаление родительской записи влечёт установку внешнего ключа дочерней со значением «ноль». Ограниченное (restricted) изменение родительской записи возможно лишь в случае, когда дочерние записи не существуют. В противном случае оно запрещено. Например, ограниченное удаление – удаляются только родительские записи, у которых нет дочерних.

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

 



<== предыдущая лекция | следующая лекция ==>
Нормализация баз данных | К эволюции сетевых БД (этапы)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.03 сек.