Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция для колледжа_4.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
166.4 Кб
Скачать

Принципы поддержки целостности в реляционной модели данных.

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

Любое изменение в предметной области, значимое для построенной модели, должно отражаться в базе данных, и при этом должна сохраняться однозначная интерпретация информационной модели в терминах предметной области.

Поддержка целостности включает в себя следующие аспекты:

  • поддержка структурной целостности

  • поддержка языковой целостности

  • поддержка ссылочной целостности

  • поддержка семантической целостности.

Поддержка структурной целостности:

реляционная СУБД должна допускать работу только с однородными структурами данных типа «реляционное отношение» т.е.

  • отсутствие дубликатов кортежей,

  • соответственно обязательное наличие первичного ключа,

  • отсутствие понятия упорядоченности кортежей.

Проблема неопределенных Null значений:

При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению.

Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты:

  • <имя атрибута> IS NULL

  • <имя атрибута> IS NOT NULL.

Таблица истинности для NULL значений:

Поддержка языковой целостности:

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

Поддержка ссылочной целостности:

  • означает обеспечение одного из заданных принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений:

  • кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения, связанного с ними.

  • кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношений ставится неопределенное Null значение.

Семантическая поддержка целостности:

  • Семантическая поддержка может быть обеспечена двумя путями:

  • Декларативным и

  • процедурным путем.

  • Декларативный путь связан с наличием механизмов в рамках СУБД, обеспечивающих проверку и выполнение ряда декларативно заданных правил-ограничений, называемых чаще всего «бизнес-правилами» (Business Rules)

Виды декларативных ограничений целостности:

1. Ограничения целостности атрибута:

  • значение по умолчанию,

  • задание обязательности или необязательности значений (Null),

  • задание условий па значения атрибутов.

2. Ограничения целостности, задаваемые на уровне доменов (при поддержке доменной структуры).

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

  • Некоторые СУБД поддерживают подобную доменную структуру, то есть разрешают определять отдельно домены, задавать тип данных для каждого домена и задавать соответственно ограничения в виде бизнес-правил для доменов.

  • А для атрибутов задается не примитивный первичный тип данных, а их принадлежность тому или другому домену.

3. Ограничения целостности, задаваемые на уровне отношения.

  • Некоторые семантические правила невозможно преобразовать в выражения, которые будут применимы только к одному столбцу.

4. Ограничения целостности, задаваемые на уровне связи между отношениями:

  • задание обязательности связи,

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

  • задание поддержки ограничений по мощности связи.

  • Эти виды ограничений могут быть выражены заданием обязательности или необязательности значений внешних ключей во взаимосвязанных отношениях.

Пример проектирования базы данных.

База данных «Библиотека»

1. Выполнить проектирование и создать базу данных «Библиотека» для автоматизации учета выдачи книг в библиотеке.

2. Анализ и описание предметной области

Обосновать актуальность разработки базы данных и автоматизированной системы.

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

Например, вариант такого описания.

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

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

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

Могут существовать следующие ограничения при работе библиотеки:

  1. Книга может не иметь ни одного автора, например, сборник тезисов научной конференции;

  2. Каждая книга может относиться к множеству областей знаний и к каждой области знаний относится множество книг;

  3. Книги, изданные до 1970 года, должны быть списаны и в библиотеке их нет;

  4. Читатели старше 17 лет;

  5. Каждый читатель может иметь на руках не более 5 книг;

  6. Каждый читатель должен иметь рабочий или домашний телефон;

и т. д. Таких ограничений может быть и больше, они могут быть другими или их вообще может не быть, в зависимости от библиотеки, для которой разрабатывается база данных.

Работать с базой данных «Библиотека» будут следующие пользователи:

библиотекари;

читатели;

дирекция библиотеки.

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

Читатель должен иметь возможность просматривать каталоги книг по разделам, по авторам и получать информацию о наличие книги и возможности ее получения.

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