- •Раздел 1. Проектирование баз данных. 2
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi. 25
- •Раздел 1. Проектирование баз данных.
- •1.1. Основы построения баз данных. Модели данных.
- •1.1.1. Реляционная модель данных.
- •1.1.2. Нормализация базы данных.
- •1.2. Проектирование базы данных методом “сущность-связь”.
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi.
- •2.1. Технология создания информационной системы.
- •2.1.1.Создание таблиц базы данных в Database Desktop.
- •2.1.2. Целостность базы данных.
- •Программа bde Administrator и модули данных.
- •Компоненты доступа и работы с данными. Тема: Наборы данных. Состояние и режимы наборов данных.
- •Тема: Объекты поля. Операции с полями.
- •Тема. Отображение и выбор значения поля.
- •Тема. Визуальные компоненты отображения записей из набора данных.
- •Закладки.
- •Тема. Ограничения на вводимые значения.
- •Тема. Сортировка набора данных.
- •Тема. Операции с таблицей базы данных.
- •Тема. Фильтрация записей.
- •Тема. Поиск записей.
- •Тема. Модификация набора данных.
- •Тема. Работа с отчетами
- •Отчет для связанных наборов данных
- •Составной отчет
- •Модули данных
- •Конструктор отчетов Rave Report
- •Реляционный способ доступа к данным.
- •Основные сведения о языке sql.
- •Оператор выбора Select.
- •Агрегирование и группирование записей.
- •Объединение таблиц.
- •Вложенные запросы.
- •Модификация записей.
- •Примеры баз данных
2.1.2. Целостность базы данных.
Целостность – это свойство базы данных, которое означает, что она содержит полную, непротиворечивую и адекватно отражающую предметную область информацию. Различают физическую и логическую целостность. Физическая означает наличие физического доступа к данным и то, что они не утрачены. Логическая означает отсутствие логических ошибок в базе данных (нарушение структуры БД или ее объектов, удаление или изменение установленных между объектами связей). Целостное состояние БД задается с помощью ограничений целостности, основными из которых являются ограничения значений атрибутов отношений и структурные ограничения на кортежи отношений.
Задание ограничений на значения полей. Установленные ограничения будут заданы на физическом уровне (уровне таблицы) и действуют для любых программ, выполняющих операции с таблицей (Database Desktop, Delphi). Для установки ограничений нужно:
выбрать пункт Validity Checks (проверка значений),
задать:
Required Field (обязательное поле)
Minimum Value
Maximum Value
Default Value
Picture (маска ввода)
Кнопка Assist.. (помощь).
Для маски используются следующие символы:
# цифра
? – любая буква (регистр не учитывается);
& - любая буква (преобразуется к верхнему регистру),
~ - любая буква (преобразуется к нижнему регистру),
@ - любой символ,
! - любой символ (преобразуется к верхнему регистру),
; - за этим символом следует буквенный символ,
* - число повторов следующего символа,
[a, b, c] или {a, b, c} – любой из приведенных символов (a, b, c), значения перечисляются через запятую без пробелов.
Маску можно вводить вручную или с помощью кнопки Assist.., и в появившемся окне Picture Assistance ввести или откорректировать маску.
Например,
телефон: [(*3{#})]*3{#}-*4{#}
дата {0,1,2,3}#.{0,1}{0,1,2}.*4{#}
имя &*14?
Структурные ограничения определяют требования целостности сущностей и целостности ссылок. Целостность сущностей означает, что любой кортеж отношения должен быть отличим от любого другого кортежа этого отношения, то есть любое отношение должно обладать первичным ключом. Понятие целостности ссылок связано с понятием внешнего ключа, который служит для связи отношений между собой. Отношение (родительское), в котором определен внешний ключ, ссылается на отношение (дочернее), в котором этот же атрибут является первичным ключом.
Требование целостности ссылок состоит в том, что для каждого значения внешнего ключа родительской таблицы должна найтись строка в дочерней таблице с таким же значением первичного ключа.
Родительская таблица |
Дочерняя таблица |
|||
|
|
|
||
|
|
|||
|
|
|||
|
|
|||
|
|
* |
|
Doljn |
Oklad |
A, 10 |
$ |
Prep |
1000 |
St_prep |
1500 |
* |
|
|
|
FIO |
Doljn |
Staj |
Otdel |
A, 30 |
A, 10 |
N |
A, 20 |
Ivanov |
Prep |
3 |
3 |
Petrov |
Prep |
7 |
3 |
Sedov |
St_prep |
10 |
4 |
|
Внешний ключ |
|
Первичный ключ |
Задание ссылочной целостности. Это понятие относится к связанным таблицам и проявляется в следующем:
запрещается изменение поля связи или удаление записи главной таблицы, если для нее имеются записи в подчиненной таблице,
при удалении записи в главной таблице автоматически удаляются соответствующие ей записи в подчиненной таблице (каскадное удаление).
Условие ссылочной целостности задается для подчиненной таблицы и определяется следующими элементами:
полями связи подчиненной табицы,
именем главной таблицы,
полями связи главной таблицы,
параметрами.
Для задания условия ссылочной целостности нужно:
выбрать пункт Referential Integrity (ссылочная целостность),
нажать кнопку Define,
в появившемся окне в списке Fields выбрать поле и перевести его в список Child Fields (дочерние поля). В списке Table указывается главная таблица, имена таблиц выбираются из рабочего каталога программы Database Desktop. !!! Главная таблица должна быть закрыта. Параметры: Update rules (правила изменения), Cascade – режим каскадного удаления записей, в подчиненной таблице при удалении соответствующей записи главной таблицы, Prohibit – запрещение изменения поля связи или удаления записи главной таблицы, для которой имеются записи в подчиненной таблице.
Нажать Ok.
В появившемся окне Save Referential Integrity As задать имя условия, например, riDoljn. После кнопки Ok, сформированное условие ссылочной целостности добавляется к таблице.
!!! Условия ссылочной целостности задаются на физическом уровне (уровне таблицы) и действуют для любых программ, выполняющих операции с таблицей (Database Desktop, Delphi).