
- •Глава 1 введение в банки данных 12
- •Глава 2 концептуальное проектирование 72
- •Глава 3 даталогическое проектирование 183
- •Глава 4 целостность базы данных 233
- •Глава 5 создание и ведение баз данных 251
- •Глава 6 язык запросов qbe 294
- •Глава 7 язык sql 347
- •Глава 8 создание экранных форм и страниц доступа 400
- •Глава 9 создание отчетов 441
- •Глава 10 распределенные банки данных 474
- •Предисловие
- •Глава 1 введение в банки данных
- •1.1. Понятие банка данных
- •1.2. Компоненты банка данных
- •1.2.1. Информационный компонент
- •1.2.2. Программные средства БнД
- •1.2.3. Языковые средства БнД
- •1.2.4. Технические средства БнД
- •1.2.5. Организационно-методические средства
- •1.2.6. Администраторы банка данных
- •1.2.7. Взаимодействие компонентов БнД
- •1.3. Классификация банков данных
- •1.3.1. Классификация баз данных
- •1.3.2. Классификации субд
- •1.3.3. Классификационные группировки, относящиеся к БнД в целом
- •1.4. Выбор субд
- •1.4.1. Тенденции развития субд
- •1.4.2. Общая характеристика проблемы выбора субд
- •1.4.3. Факторы влияния на выбор субд
- •1.4.4. Выбор субд
- •1.5. Уровни моделей и этапы проектирования бд
- •1.5.1. Уровни моделей
- •1.5.2. Взаимосвязь этапов проектирования бд
- •1.5.3. Факторы влияния на проектирование бд
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 2 концептуальное проектирование
- •2.1. Общие сведения о моделировании предметной области
- •2.1.1. Уточнение понятия концептуальной модели
- •2.1.2. Основные компоненты концептуальной модели
- •2.1.3. Требования, предъявляемые к концептуальной модели
- •2.1.4. Преимущества использования er-моделирования
- •2.2. Описание базовой er-модели
- •2.2.1. Понятия «объект» и «класс объектов»
- •2.2.2. Разновидности объектов
- •2.2.3. Изображение простого объекта
- •2.2.4. Описание свойств объекта. Разновидности свойств
- •2.2.5. Алгоритмические зависимости
- •2.2.6. Интегральные характеристики класса объектов
- •2.2.7. Связи между объектами
- •2.2.8. Сложные объекты
- •2.2.9. Рекомендации по построению базовой er-модели
- •2.3. Сравнение методик построения er-моделей
- •2.3.1. Несущественные различия в использовании условных обозначений
- •2.3.2. Различия в использовании и изобразительных средств, приводящие к изменениям в методике построения модели
- •2.3.3. Пространственное размещение элементов er-модели
- •2.3.4. Отсутствующие возможности
- •2.3.5. Различия в классификации объектов и отношений между ними
- •2.3.6. Терминологические различия
- •2.3.7. Соглашения по именованию элементов er-модели
- •2.3.8. Дополнительные характеристики case-средств
- •2.3.9. Использование графических пп для изображения er-моделей
- •2.4. Особенности методологии построения er-моделей
- •2.5. Использование Design/idef для проектирования баз данных
- •2.5.1. Построение er-модели при использовании Design/idef Общая характеристика
- •Описание сущности
- •Описание связи
- •Описание обобщенного объекта
- •2.5.2. Методология построения er-модели при использовании Design/idef
- •2.6. Особенности моделирования в erWin
- •2.6.2. Построение логической модели Создание новой сущности
- •Описание свойств сущности
- •Дополнительные свойства атрибутов
- •Описание обобщенных объектов
- •Задание связей между сущностями
- •2.6.3. Особенности методологии моделирования
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 3 даталогическое проектирование
- •3.1. Общие сведения о даталогическом проектировании
- •3.1.1. Исходные данные для даталогического проектирования
- •3.1.2. Результат даталогического проектирования
- •3.1.3. Подход к даталогическому проектированию
- •3.1.4. Определение состава базы данных
- •3.1.5. Введение искусственных идентификаторов
- •3.1.6. Критерии оценки бд
- •3.2. Особенности даталогических моделей
- •3.2.1. Внутризаписная структура
- •3.2.2. Межзаписная структура
- •3.3. Проектирование логической структуры реляционной базы данных
- •3.3.1. Вводные положения
- •3.3.2. Алгоритм перехода от базовой er-модели к схеме реляционной базы данных
- •Отображение простых объектов
- •Отображение связи между объектами
- •Отображение сложных объектов
- •Использование дополнительных характеристик концептуальной модели
- •Дополнительные рекомендации по проектированию бд
- •3.4. Создание физической модели в erWin
- •3.4.1. Выбор целевой субд
- •3.4.2. Нотации, используемые при построении физической модели
- •3.4.3. Уровни просмотра физической модели
- •3.4.4. Сравнение логической и физической моделей
- •3.4.5. Создание хранилищ данных
- •3.4.6. Переход к даталогической модели
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 4 целостность базы данных
- •4.1. Классификация ограничений целостности
- •4.2. Er-модели и ограничения целостности
- •4.3. Задание ограничений целостности в erWin
- •4.3.1. Обязательный атрибут
- •4.3.2. Ограничения целостности связи
- •4.3.3. Триггер ссылочной целостности
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 5 создание и ведение баз данных
- •5.1. Описание структуры баз данных. Общие сведения
- •5.2. Создание бд в Microsoft Access
- •5.2.1. Создание новой таблицы путем описания ее структуры
- •Описание полей таблицы
- •Определение ключа таблицы
- •Свойства полей
- •Сохранение описания таблицы
- •Создание таблиц для контрольного примера
- •5.2.2. Изменение структуры таблиц
- •5.2.3. Другие способы создания таблиц
- •5.2.4. Связывание таблиц
- •5.2.5. Просмотр связанных таблиц
- •5.2.6. Задание ограничений целостности в Access
- •Ограничения, относящиеся к полю
- •Ограничения, относящиеся к записи
- •Целостность связи
- •5.3. Организация ввода и корректировки данных в бд
- •5.3.1. Общие сведения
- •5.3.2. Возможности ввода данных в Access
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 6 язык запросов qbe
- •6.1. Общая характеристика языка qbe
- •6.2. Реализация ове в Access
- •6.2.1. Общие сведения
- •Добавление таблиц в запросе
- •Удаление таблицы из запроса
- •6.2.4. Включение полей в запрос
- •6.2.5. Поля, выводимые в ответ
- •6.2.6. Управление выводом повторяющихся строк
- •6.2.7. Простые запросы
- •6.2.8. Сложные запросы
- •6.2.9. Просмотр ответа
- •6.2.10. Определение числа записей, выводимых в ответ
- •6.2.11. Формирование запросов к связанным таблицам
- •6.2.12. Выполнение агрегирующих операторов
- •6.2.13. Вычисляемые поля
- •6.2.14. Перекрестные запросы
- •6.2.15. Создание запроса с параметрами
- •6.2.16. Корректирующие запросы
- •6.2.17. Запрос на создание таблицы
- •6.2.18. Специальные запросы
- •6.2.19. Режим сводной таблицы и сводной диаграммы
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 7 язык sql
- •7.1. Общая характеристика sql
- •7.2. Описание базы данных
- •7.2.1. Описание таблиц
- •7.2.2. Ограничения целостности
- •7.3. Запросы на выборку
- •7.4. Возможности корректировки хранимых данных
- •7.5. Создание представлений (view)
- •7.6. Создание и использование курсоров
- •Управление транзакциями
- •7.8. Стандартный sql-92
- •7.8.1. Создание объектов Виды объектов
- •Определение таблицы
- •Определение домена
- •7.8.2. Запросы Оператор select
- •Запросы, затрагивающие несколько таблиц
- •Корректирующие операторы
- •7.8.3. Создание представлений (view) Оператор create view
- •Цели использования представлений
- •Ограничения при использовании представлений
- •Создание представлений с использованием erWin
- •7.8.4. Курсоры
- •7.9. Ms Jet Access sql
- •7.9.1. Оператор select Общая характеристика оператора
- •Предложение select
- •Предложение from
- •Предложение where
- •Предложение group by
- •Предложение having
- •Предложение order by
- •7.9.2. Подчиненные запросы sql
- •7.9.3. Корректирующие операторы Добавление
- •Обновление
- •Удаление записей
- •7.9.4. Запрос к серверу
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 8 создание экранных форм и страниц доступа
- •8.1. Понятие, классификация и роль экранных форм
- •8.2. Рекомендации по созданию форм
- •8.3. Создание экранных форм в субд Access
- •8.3.1. Выбор способа создания формы
- •8.3.2. Создание форм с помощью Мастера Создание простой связанной формы с помощью Мастера
- •Создание многотабличной формы с помощью Мастера
- •8.3.3. Корректировка формы в режиме Конструктор
- •Изменения, связанные с уже включенными в форму элементами управления
- •Включение новых элементов в форму
- •Изменение типа элемента управления
- •Создание форм, состоящих из нескольких страниц
- •Последовательность обхода полей
- •Свойства формы
- •Задание ограничений целостности при создании форм
- •Добавление кнопок в форму
- •8.3.4. Кнопочная форма
- •8.3.5. Возможные случаи возникновения ошибок
- •8.3.6. Открытие формы в режиме сводной таблицы или в режиме диаграммы
- •8.3.7. Создание страниц доступа
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 9 создание отчетов
- •9.1. Общая характеристика отчетов
- •9.2. Создание отчетов в системе Access
- •9.2.1. Выбор способа создания отчета
- •9.2.2. Создание отчетов с использованием Мастера отчетов
- •9.2.3. Корректировка отчета в режиме Конструктор Переход в режим Конструктор
- •Корректировка отчета
- •Вычисления в отчете
- •Ввод нового поля в отчет
- •Группировка
- •Использование графических элементов
- •Задание номеров страниц
- •9.2.4. Создание отчета, базирующегося на нескольких таблицах
- •9.2.5. Создание сложных отчетов
- •9.2.6. Свойства
- •9.2.7. Создание отчета анкетной формы
- •9.2.8. Совместная работа с другими приложениями ms Office
- •На это следует обратить внимание
- •Контрольные вопросы
- •Глава 10 распределенные банки данных
- •10.1. Основные понятия
- •10.2. Классификация рБнД
- •10.3. Транзакции
- •10.3.1. Понятие транзакции
- •10.3.2. Плоские транзакции
- •10.3.3. Контрольные точки
- •10.3.4. Многозвенные транзакции
- •10.3.5. Вложенные транзакции
- •10.4. Проблемы параллелизма и пути их решения
- •10.4.1. Параллелизм
- •10.4.2. Блокировки
- •10.4.3. Режимы доступа к информации
- •10.4.4. Уровни изоляции в sql
- •10.4.5. Использование хранимых процедур и триггеров для контроля целостности бд
- •10.5. Тиражирование данных
- •10.5.1. Основные понятия
- •10.5.2. Преимущества и недостатки тиражирования
- •10.5.3. Виды тиражирования
- •10.6. Обеспечение целостности и безопасности данных в рбд
- •10.6.1. Особенности обеспечения целостности в рбд
- •10.6.2. Средства защиты данных Способы защиты данных
- •Создание и удаление пользователей
- •Определение и отмена привилегий
- •10.7. Работа в распределенной среде при использовании субд Access
- •10.7.1. Способы совместного использования данных в Access
- •10.7.2. Виды блокировок
- •10.7.3. Проекты Microsoft Access
- •10.7.4. Средства защиты Microsoft Access Управление правами доступа пользователей
- •Средства защиты бд
- •На это следует обратить внимание
- •Контрольные вопросы
- •Приложения
- •1. Основные понятия реляционной модели данных
- •1. Информационные единицы.
- •2. Ключи.
- •3. Связи.
- •2. Сквозной пример использования er-моделирования для проектирования бд
- •Глоссарий
- •Литература
- •Сокращения
2.5. Использование Design/idef для проектирования баз данных
2.5.1. Построение er-модели при использовании Design/idef Общая характеристика
Design/IDEF является комплексной системой автоматизации проектирования ИС. Она объединяет в себе несколько методологий, каждая из которых предназначена для построения моделей определенного типа. Для построения ER-модели используется методология IDEF1X.
Нотация языка ER-моделирования, алгоритм проектирования целевой реляционной модели и, как следствие, подход к моделированию существенно отличаются от базовой модели. Изобразительные средства нотации языка ER-моделирования в Design/IDEF более бедные, чем в базовой модели. Процесс построения ER-модели в Design/ IDEF практически сводится к описанию реляционной модели данных другими изобразительными средствами (каждому объекту ER-модели в Design/IDEF соответствует таблица реляционной базы данных). В связи с этим рекомендуется сначала изучить главу 3, а потом, используя эти знания, строить ER-модель в нотации Design/IDEF.
Укрупненная схема работы с Design/IDEF при построении ER-модели показана на рис. 2.39.
После загрузки Design/IDEF и выбора команды File/New экран имеет вид, изображенный на рис. 2.40. В окне Methodology будет высвечиваться название той методологии, с которой работали в предыдущем сеансе. Если это не методология IDEF1X, то следует нажать на кнопку в правой стороне этого окна, из ниспадающего списка выбрать требуемую методологию (рис. 2.41).
Начальный экран проектирования после выбора методологии IDEF1X изображен на рис. 2.42.
После этого можно приступить к построению ER-модели, а можно сначала выбрать целевую СУБД - ту СУБД, для которой ведется проектирование базы данных. Для этого следует выбрать команду Edit/ Set Options. В появившемся окне IDEF Options следует активизировать переключатель IDEF1X (рис. 2.43) и в окне Target Datadase выбрать нужную СУБД из ниспадающего списка поддерживаемых системой СУБД. Выбор целевой СУБД окажет влияние на список допустимых типов данных при описании атрибутов. На методологию построения модели этот выбор влияния не оказывает. Выбор целевой СУБД можно провести на любом этапе проектирования. При этом типы данных будут автоматически преобразованы в соответствующие им типы в новой целевой СУБД.
Описание сущности
Построение новой ER-модели можно начать только с создания новой сущности. Для того чтобы построить новую сущность, надо щелкнуть по третьей кнопке сверху (прямоугольник, разделенный на два сектора) на панели инструментального меню, изображенного слева на экране (или выполнить команду Create/Entity, или нажать комбинацию клавиш [Ctrl] +[Е]), и, позиционировав курсор с «прикрепленным» к нему квадратом в нужном месте экрана, нажать левую кнопку мыши. На экране появится окно определения сущности (Define Entity), изображенное на рис. 2.44. Система автоматически присваивает каждой создаваемой сущности уникальный идентификатор (Entity ID). В поле Name следует указать имя сущности. Кроме основного имени можно задать еще и Aliases (псевдоним) - имя, используемое в качестве синонима
Рис. 2.39. Укрупненная схема создания модели Design/IDEF
Рис. 2.40. Вид экрана после загрузки системы Design/IDEF
и выбора команды File/New
Рис. 2.41. Вид окна при выборе методологии
Рис. 2.42. Начальный вид окна проектирования
после выбора методологии IDEF1X
Рис. 2.43. Вид окна задания опций
.
Рис. 2.44. Вид окна определения сущности
В окне Definition можно дать описание сущности. Такие описания важны для документирования модели, уточнения терминологии, используемой в проекте, но на проектировании структуры базы данных они не скажутся.
После этого следует перейти к описанию атрибутов сущности и щелкнуть по кнопке Add в окне определения сущности. При этом появится окно определения атрибута (Define Attribute), изображенное на рис. 2.45.
Рис. 2.45. Вид окна определения атрибута
В поле Name следует записать наименование атрибута, в поле Data Туре - выбрать тип, присущий данному атрибуту. Список доступных типов полей зависит от выбранной целевой СУБД. Как известно, некоторые типы полей имеют фиксированную длину, и для них нет нужды указывать длину (Length), для других - должна указываться длина; для числовых полей с дробной частью нужно указывать точность (Precision).
В реляционной теории есть понятия «ключ» и «вероятный ключ». Эти понятия характеризируют не предметную область, а именно таблицу реляционной базы данных. При преобразовании ER-модели в схему реляционной базы данных в Design/IDEF каждой сущности ставится в соответствие таблица реляционной базы данных, и при описании сущности требуется определить, какой атрибут (или несколько атрибутов) выбран в качестве первичного ключа. Эти атрибуты должны быть помечены галочкой в переключателе Primary Key.
Для нескольких атрибутов можно указать, что он является РК. На самом деле это означает, что каждый из таким образом обозначенных атрибутов является элементом составного ключа, а не самостоятельным ключом, что с точки зрения реляционной теории принципиально важно различать.
Если есть несколько альтернативных (вероятных) ключей, то нужно все остальные описать как альтернативные. Вероятные ключи помечаются галочкой в переключателе Alternate Key. Так как вероятных ключей может быть несколько, то в поле справа от свойства Alternate Key необходимо поставить порядковый номер. Если альтернативный ключ является составным, то все составляющие его атрибуты следует пометить одним и тем же номером в поле рядом с переключателем Alternate Key.
При проектировании баз данных учитывается множество разных факторов, и в том числе характер запросов. Если по какому-либо полю часто осуществляется выборочный поиск, то по такому полю обычно проводят индексирование. Такие проиндексированные поля иногда называют «инверсным входом». При описании сущности именно такие атрибуты следует пометить галочкой в переключателе Inversion Entry. Инверсных входов, так же как и вероятных ключей, может быть несколько. Поэтому в поле справа от свойства Inversion Entry необходимо поставить порядковый номер.
Как известно (см. разд. 2.2), объекты бывают не только простыми, но и обобщенными. То свойство, по которому классы делятся на подклассы, в Design/IDEF называется «дискриминатором» (Discriminator). При описании соответствующего свойства следует это отметить галочкой в переключателе Discriminator.
Назначение свойств Name и Aliases в окне определения атрибута аналогично соответствующим характеристикам, задаваемым при описании самого объекта в окне определения сущности.
После описания очередного атрибута следует опять щелкнуть по кнопке Add и задать описание следующего атрибута. После того как определены все атрибуты описываемого объекта, щелкните по кнопке ОК.
На рис. 2.46 приведен фрагмент описания сущности СОТРУДНИК. Если на этом завершить описание атрибутов и щелкнуть по кнопке ОК, то получим графическое представление описанного объекта (рис. 2.47).
Рис. 2.46. Экран описания объекта (пример)
Рис. 2.47. Пример изображения объекта (вариант 1)
В общем виде графическое представление сущности отражено на рис. 2.48. Для обозначения сущности используют прямоугольник, разделенный на два сектора; в верхнем секторе записываются ключевые атрибуты, в нижнем - все остальные. Рядом с атрибутами, являющимися альтернативными ключами, в скобках ставятся буквы (АК).
Рис. 2.48. IDEF1X ERD. Обозначение объекта
Если вы уверены, что ФИО вместе с Датой_рождения является уникальной совокупностью атрибутов и их следует описать как вероятный ключ, то графическое представление подобного объекта будет таким, как это показано на рис. 2.49. Несмотря на то, что в данном примере ФИО вошло в альтернативный ключ, его следует оставить и как инверсный вход, поскольку по ФИО часто осуществляется поиск.
Рис. 2.49. Пример изображения объекта (вариант 2)
Предыдущий пример следует рассматривать именно как технический пример создания составного альтернативного ключа и не более того. В реальной жизни вряд ли целесообразно создавать такой альтернативный ключ. Нужно понимать, что не все потенциальные альтернативные ключи реляционной таблицы следует обозначать в ER-модели. Это надо делать только тогда, когда есть необходимость контролировать уникальность альтернативного ключа.
Альтернативных ключей у одной сущности может быть несколько (рис. 2.50). Обратите внимание на разницу в изображении сущностей на рис. 2.49 и 2.50. В первом случае сущность имеет один составной альтернативный ключ, во втором - два простых.
Рис. 2.50. Изображение сущности КАФЕДРА