
- •Системы управления базами данных Учебное пособие
- •Системы управления базами данных
- •169300, Г. Ухта, ул. Первомайская, д. 13.
- •Часть 1. Рабочая программа по системам управления базами данных
- •Часть 2. Теоретические сведения
- •Глава 1. Основы построения баз данных (бд)
- •1.1. Базы данных и информационные системы (общие понятия)
- •Режимы работы с базами данных
- •Классификация современных субд
- •1.2. Модели данных: реляционная, иерархическая, сетевая
- •1.3. Понятие отношения
- •Глава 2. Проблемы проектирования баз данных
- •2.1. Проектирование баз данных
- •2.2. Обеспечение целостности баз данных
- •2.3. Язык запросов sql
- •Операторы определения данных (ddl)
- •Операторы манипулирования данными (dmp)
- •Язык запросов (dql)
- •Средства управления транзакциями
- •Средства администрирования данных
- •Программный sql
- •Глава 3. Субд Access
- •Общие понятия и возможности субд Access
- •3.2.Интерфейс Access. Режимы работы
- •3.2.1. Рабочая среда Access
- •3.2.2. Окна рабочей среды Access
- •3.2.3. Меню и панели инструментов
- •3.2.4. Окно базы данных
- •3.2.5. Использование справочной системы
- •3.2.6. Вызов окна справки
- •3.3. Объекты Access
- •Глава 4. Создание базы данных в Access. Таблицы и формы
- •4.1. Создание структуры базы данных
- •4.2. Типы полей базы данных
- •4.3. Создание таблиц
- •4.4. Приёмы работы с таблицами. Изменение структуры таблицы
- •4.4.1. К одному из приёмов работы с таблицами можно отнести автоматический ввод в поле значения по умолчанию
- •4.4.3. Как избежать опечаток и смысловых ошибок?
- •4.4.4. Маски ввода
- •4.4.5. Управление размерами поля
- •4.4.6. Специальные размеры полей с числовым типом данных
- •4.5. Поиск и отбор данных
- •4.6. Сортировка в режиме таблицы
- •4.7. Индексирование. Ключи
- •Глава 5. Запросы в субд Access
- •Что такое – запрос?
- •Быстрое построение запросов с помощью мастера Простой запрос
- •Выполнение запроса
- •Отбор записей с помощью запросов
- •Выбор полей, выводимых в запросе
- •Сортировка
- •Условия отбора записей
- •Использование в запросе всех полей
- •Добавление в запрос таблиц
- •Объединение таблиц
- •Универсальные запросы с параметрами
- •Использование нескольких параметров
- •Изменение порядка следования параметров
- •Вычисление значений по полям
- •Установка свойств
- •Групповая обработка данных
- •Свойства запроса
- •Создание перекрестных запросов
- •Фильтры и запросы
- •Что дальше?
- •Глава 6. Связи в таблицах Создание связей между таблицами
- •Глава 7. Отчеты
- •7.1. Создание отчетов
- •7.1.1. Автоматическое создание отчета на основе таблицы или запроса
- •7.1.2. Создание отчета с помощью Мастера отчетов
- •7.2. Преобразование отчетов
- •7.2.1. Преобразование отчета в формат документов Word и Excel
- •7.2.2. Преобразование отчета в другие форматы
- •7.2.3. Снимки отчетов
- •7.3. Режимы работы с отчетами
- •7.3.1. Режим Предварительного просмотра
- •7.3.2. Режим Просмотра образца
- •7.3.3. Режим Конструктора
- •Инструментальные средства режима Конструктора
- •Панель инструментов Конструктор отчетов
- •Панель элементов
- •7.4. Просмотр и печать отчетов
- •Часть 3. Пример выполнения задания
- •4 Июня 2006 г. Страница 1 из 1
- •Часть 4. Варианты заданий
- •Часть 5. Контрольные вопросы к зачёту
- •Часть 6. Глоссарий (Словарь терминов)
- •Библиографический список
2.2. Обеспечение целостности баз данных
Одним из основополагающих понятий в технологии баз данных является понятие целостности. В общем случае, это понятие, прежде всего, связано с тем, что база данных отражает в информационном виде некоторый объект реального мира или совокупность взаимосвязанных объектов реального мира. В реляционной модели объекты реального мира представлены в виде совокупности взаимосвязанных отношений. Целостность базы данных – это правила и средства, обеспечивающие надежную реализацию установленных межтабличных связей между всеми данными, содержащимися в базе. Поддержание целостности данных является достаточно серьезным и сложным вопросом. При эксплуатации базы данных ее повреждение может возникнуть по нескольким причинам: при сбое компьютера, вследствие ошибок в программном обеспечении, из-за некорректных действий пользователя.
Любое изменение в предметной области, значимое для построенной модели, должно отражаться в базе данных, и при этом должна сохраняться однозначная интерпретация информационной модели в терминах предметной области.
Поддержка целостности в реляционной модели данных в ее классическом понимании, включает в себя 3 аспекта.
Во-первых, это поддержка структурной целостности, которая трактуется как то, что реляционная СУБД должна допускать работу только с однородными структурами данных типа «реляционное отношение». При этом понятие «реляционного отношения» должно удовлетворять всем ограничениям, накладываемым на него в классической теории реляционной БД. Отсутствие дубликатов кортежей (строки отношений), соответственно, обязательное наличие первичного ключа (один или несколько столбцов (атрибутов), которые однозначно идентифицируют каждую запись в таблице, т.е. позволяют четко отличить одну запись от другой), отсутствие понятия упорядоченности кортежей.
В дополнение к структурной целостности необходимо рассмотреть проблему неопределенных Null значений. Неопределенное значение в реляционной базе данных интерпретируется как значение, неизвестное на данный момент времени. Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение.
Во-вторых, это поддержка языковой целостности, которая состоит в том, что реляционная СУБД должна обеспечивать языки описания и манипулирования данными не ниже стандарта SQL. Не должны быть доступны иные низкоуровневые средства манипулирования данными, не соответствующие стандарту.
Именно поэтому доступ к информации, хранимой в базе данных, и любые изменения этой информации могут быть выполнены только с использованием операторов языка SQL.
В-третьих, это поддержка ссылочной целостности (Declarative Referential Integrity, DRI), означает обеспечение одного из заданных принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений:
кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения, связанного с ним;
кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ним, при этом на месте ключа родительского отношения ставится неопределенное Null значение.
Ссылочная целостность обеспечивает поддержку непротиворечивого состояния БД в процессе модификации данных при выполнении операций добавления или удаления.
Кроме указанных ограничений целостности, которые в общем виде не определяют семантику БД, вводится понятие семантической поддержки целостности.
Структурная, языковая и ссылочная целостности определяют правила работы СУБД с реляционными структурами данных. Требования поддержки этих трех видов целостности говорят о том, что каждая СУБД должна уметь это делать, а разработчики должны это учитывать при построении БД с использованием реляционной модели. Эти три аспекта никак не касаются содержания БД. Для определения некоторых ограничений, которые связаны с содержанием БД, требуются другие методы. Именно эти методы и сведены в поддержку семантической целостности.
Семантическая поддержка может быть обеспечена двумя путями:
декларативный, выполняемый средствами языка SQL;
процедурный, выполняемый посредством триггеров и хранимых процедур.
Декларативный путь связан с наличием механизмов в рамках СУБД, обеспечивающих проверку и выполнение ряда декларативно заданных правил-ограничений, называемых чаще всего «бизнес-правилами» (Business Rules) или декларативными ограничениями целостности.
Выделяются следующие виды декларативных ограничений целостности:
ограничения целостности атрибута: значение по умолчанию, задание обязательности или необязательности значений (Null), задание условий на значения атрибутов. Задание значения по умолчанию означает, что каждый раз при вводе новой строки в отношение, при отсутствии данных в указанном столбце этому атрибуту присваивается именно значение по умолчанию;
ограничения целостности, задаваемые на уровне доменов, при поддержке доменной структуры. Эти ограничения удобны, если в БД присутствуют несколько столбцов разных отношений, которые принимают значения из одного и того же множества допустимых значений;
ограничения целостности, задаваемые на уровне отношения. Некоторые семантические правила невозможно преобразовать в выражения, которые будут применимы только к одному столбцу;
ограничения целостности, задаваемые на уровне связи между отношениями: задание обязательности связи, принципов каскадного удаления (при удалении записи в главной таблице обеспечивает удаление всех связанных записей в подчиненной таблице) и каскадного изменения данных (при изменении значения ключевого поля в главной таблице обеспечивает обновление всех связанных записей в подчиненной таблице), задание поддержки ограничений по мощности связи. Эти виды ограничений могут быть выражены заданием обязательности или необязательности значений внешних ключей (одного или нескольких полей в таблице, которые содержат ссылку на поле (поля) первичного ключа в другой таблице во взаимосвязанных отношениях).
Целостность данных в Access
В Access используется система правил, предназначенных для поддержания устойчивых и корректных связей между записями в связанных таблицах, а также обеспечивающих защиту от случайного удаления или изменения связанных данных. Для этого установлены следующие ограничения:
связанное поле главной таблицы является ключевым полем или имеет уникальный индекс;
связанные поля имеют один тип данных;
если таблицы являются связанными, то они должны быть таблицами базы данных Access. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно. Для обеспечения целостности база данных, в которой находятся таблицы, должна быть открыта.
Для соблюдения этих правил в Access отслеживаются и блокируются следующие действия:
нельзя ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод значений Null, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую книгу, написанную несуществующим автором, но можно создать запись для книги, которая пока не отнесена ни к одному из авторов, если ввести значение Null в ключевое поле id_aвтopa;
нельзя удалить запись из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы Издательства, если в таблице Документы имеются книги, выпущенные этим издательством;
нельзя изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью. Например, невозможно изменить код сотрудника в таблице Авторы, если в таблице Документы имеются книги этого автора.