
- •2. Анализ и описание предметной области
- •3. Цели и задачи создания базы данных «библиотека»
- •Проектирование базы данных
- •Читатель
- •Экземпляр
- •Книга (Шифр книги, Название, Автор, Издательство, Город издания, Год издания, Количество страниц, Количество экземпляров в библиотеке, Цена, Номер области знаний, Название области знаний)
- •Читатель
- •Экземпляр
- •Статистика
- •Количество запросов книги
Принципы поддержки целостности в реляционной модели данных.
Под целостностью будем понимать соответствие информационной модели предметной области, хранимой в базе данных, объектам реального мира и их взаимосвязям в каждый момент времени.
Любое изменение в предметной области, значимое для построенной модели, должно отражаться в базе данных, и при этом должна сохраняться однозначная интерпретация информационной модели в терминах предметной области.
Поддержка целостности включает в себя следующие аспекты:
поддержка структурной целостности
поддержка языковой целостности
поддержка ссылочной целостности
поддержка семантической целостности.
Поддержка структурной целостности:
реляционная СУБД должна допускать работу только с однородными структурами данных типа «реляционное отношение» т.е.
отсутствие дубликатов кортежей,
соответственно обязательное наличие первичного ключа,
отсутствие понятия упорядоченности кортежей.
Проблема неопределенных Null значений:
При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению.
Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты:
<имя атрибута> IS NULL
<имя атрибута> IS NOT NULL.
Таблица истинности для NULL значений:
Поддержка языковой целостности:
Реляционная СУБД должна обеспечивать языки описания и манипулирования данными не ниже стандарта SQL. He должны быть доступны иные низкоуровневые средства манипулирования данными, не соответствующие стандарту.
Поддержка ссылочной целостности:
означает обеспечение одного из заданных принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений:
кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения, связанного с ними.
кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношений ставится неопределенное Null значение.
Семантическая поддержка целостности:
Семантическая поддержка может быть обеспечена двумя путями:
Декларативным и
процедурным путем.
Декларативный путь связан с наличием механизмов в рамках СУБД, обеспечивающих проверку и выполнение ряда декларативно заданных правил-ограничений, называемых чаще всего «бизнес-правилами» (Business Rules)
Виды декларативных ограничений целостности:
1. Ограничения целостности атрибута:
значение по умолчанию,
задание обязательности или необязательности значений (Null),
задание условий па значения атрибутов.
2. Ограничения целостности, задаваемые на уровне доменов (при поддержке доменной структуры).
Эти ограничения удобны, если в базе данных присутствуют несколько столбцов разных отношений, которые принимают значения из одного и того же множества допустимых значений.
Некоторые СУБД поддерживают подобную доменную структуру, то есть разрешают определять отдельно домены, задавать тип данных для каждого домена и задавать соответственно ограничения в виде бизнес-правил для доменов.
А для атрибутов задается не примитивный первичный тип данных, а их принадлежность тому или другому домену.
3. Ограничения целостности, задаваемые на уровне отношения.
Некоторые семантические правила невозможно преобразовать в выражения, которые будут применимы только к одному столбцу.
4. Ограничения целостности, задаваемые на уровне связи между отношениями:
задание обязательности связи,
принципов каскадного удаления и каскадного изменения данных,
задание поддержки ограничений по мощности связи.
Эти виды ограничений могут быть выражены заданием обязательности или необязательности значений внешних ключей во взаимосвязанных отношениях.
Пример проектирования базы данных.
База данных «Библиотека»
1. Выполнить проектирование и создать базу данных «Библиотека» для автоматизации учета выдачи книг в библиотеке.
2. Анализ и описание предметной области
Обосновать актуальность разработки базы данных и автоматизированной системы.
Дать описание предметной области: описание объектов этой области, их свойств и связей между ними, определить круг пользователей системы и их информационные потребности.
Например, вариант такого описания.
В библиотеке хранится огромное количество книг, услугами библиотеки пользуются тысячи читателей. Для обеспечения оперативности ведения информации о книгах, читателях и местонахождении книги необходима автоматизированная система, основанная на современной базе данных. Использование базы данных и автоматизированной системы для работы с базой данных существенно сократит время обслуживания читателей и время работы работников библиотеки по систематизации информации о книгах и многие другие задачи.
В библиотеке необходимо хранить разнообразную информацию о книгах, чтобы оперативно можно было определить информацию о наличии в библиотеке книг некоторого автора, книг по определенной тематике. Необходимо учесть, что книги в библиотеке могут присутствовать в нескольких экземплярах, что книги одного автора могут иметь одинаковое название, поэтому книгам нужно присваивать некоторые уникальные шифры.
Информация о читателях должна быть полной и достаточной для определения категории читателя, его места жительства и места работы. Необходимо учесть, что среди читателей могут быть однофамильцы, поэтому у каждого читателя должен быть уникальный абонентский номер.
Могут существовать следующие ограничения при работе библиотеки:
Книга может не иметь ни одного автора, например, сборник тезисов научной конференции;
Каждая книга может относиться к множеству областей знаний и к каждой области знаний относится множество книг;
Книги, изданные до 1970 года, должны быть списаны и в библиотеке их нет;
Читатели старше 17 лет;
Каждый читатель может иметь на руках не более 5 книг;
Каждый читатель должен иметь рабочий или домашний телефон;
и т. д. Таких ограничений может быть и больше, они могут быть другими или их вообще может не быть, в зависимости от библиотеки, для которой разрабатывается база данных.
Работать с базой данных «Библиотека» будут следующие пользователи:
библиотекари;
читатели;
дирекция библиотеки.
Библиотекари должны иметь возможность систематизировать книжный фонд, т.е. распределять книги по разным каталогам, добавлять новые книги и списывать старые, вести учет выдачи и возврата книг, записывать нового читателя в библиотеку или закрывать абонент читателя.
Читатель должен иметь возможность просматривать каталоги книг по разделам, по авторам и получать информацию о наличие книги и возможности ее получения.
Дирекция должна иметь возможность получать информацию о наиболее или наименее популярных книгах, о читателях должниках, с целью взыскания денег за утерянные книги в 5-кратном размере от стоимости утерянной книги.