- •Глава 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.3. Сравнение методик построения er-моделей
ER-модели широко используются в практике создания баз данных. Причем они применяются как при ручном, так и при автоматизированном проектировании. Чаще всего для представления ER-модели используются графические языки. Мы в основном будем рассматривать именно их. Изобразительные средства и методики графического представления ER-моделей, используемые в разных системах автоматизации проектирования, а также в разных литературных источниках, несколько отличаются друг от друга.
Далее мы рассмотрим особенности представления ER-моделей на примере нескольких наиболее известных систем автоматизации проектирования (CASE-систем): ProKit*WORKBENCH, Design/IDEF, CASE Oracle (Designer/2000), Power Designer (новое название, используемое для последних версий системы S-Designor), ERWin, SILVERRUN, ERStudio и др., а также методологий, изложенных в некоторых литературных источниках.
Можно выделить целый ряд признаков для сравнения систем моделирования предметных областей и последующего проектирования автоматизированных информационных систем. Часть из них одинаково применима как для ручного, так и для автоматизированного проектирования, другие признаки имеют значение только при использовании автоматизированных инструментальных средств проектирования.
Сначала рассмотрим аспекты, присущие обоим способам создания ИС.
Прежде всего остановимся на различиях в использовании изобразительных средств. Можно выделить несколько категорий различий в изображении ER-моделей.
2.3.1. Несущественные различия в использовании условных обозначений
Для обозначения простого объекта в разных системах используются прямоугольники, блоки с закругленными углами, овалы и т.д.
Наблюдаются различия в способе изображения характера связей между объектами (использование «стрелок», «лапок», «точек» и т.п. для отображения «множественного» конца связи). Такого рода различия можно продолжить. Они не накладывают никакого отпечатка на методологию построения концептуальной модели и алгоритм последующего перехода к даталогической модели.
Желательно, чтобы используемые обозначения были интуитивно понятными, излишне не загромождали модель, были просты в изображении. Часто предпочтения разработчиков в использовании тех или иных обозначений определяются просто привычкой. По возможности следует стремиться к использованию стандартизированных или широко распространенных обозначений.
В некоторых методиках при изображении связи между объектами в разъеме отображающей ее линии предлагается изображать ромб и внутри него или рядом с ним писать название связи (модель Чена) (рис. 2.26).
Рис. 2.26. Диаграмма Чена.
Условные обозначения:
а - зависимая сущность; б - независимая
Другие способы изображения не требуют использования ромбов или требуют их изображения не всегда, а только при наличии определенных ситуаций в отображаемой предметной области. Если модель допускает связывание только пары объектов (т.е. поддерживает изображение только бинарных связей) и не допускает фиксирование дополнительных свойств для связей, то введение дополнительного обозначения только загромождает модель и не дает никаких дополнительных преимуществ.
Поскольку в разных методологиях проектирования используются разные условные обозначения для отображения одного и того же явления в предметной области (т.е. фактически наблюдается синонимия в графическом языке описания предметной области), то некоторые системы автоматизации проектирования, например ProKit*WORKBENCH, предоставляют пользователю возможность выбрать из множества допустимых обозначений те, которые ему больше нравятся или более привычны. В этой системе, к примеру, для обозначения вида связей между объектами могут использоваться условные обозначения, представленные на рис. 2.27, а сама модель может изображаться в стиле Чена, Бахмана или в реляционном виде. Наиболее предпочтительный для пользователей системы стиль изображения должен быть выбран перед построением модели.
Рис. 2.27. Изображение связей между объектами
в системе ProKit*WORKBENCH
Рассмотрим некоторые из указанных выше различий более подробно.
Для отображения обязательности вхождения объектов в связь («класс принадлежности») в разных системах моделирования используются разные условные обозначения. Так, в CASE Oracle класс принадлежности передается следующим образом: с той стороны связи, с которой элемент может не обязательно входить в связь, используется пунктирная линия, а там, где членство обязательное, - сплошная линия. С учетом класса членства возможны типы отношений, представленные на рис. 2.28.
Рис. 2.28. Варианты изображения типа связи
и класса членства в CASE Oracle
В [15] для отображения класса принадлежности используется маленький прямоугольник, который рисуется внутри блока, изображающего объект. Если класс принадлежности объекта в связи является обязательным, то внутри этого прямоугольника ставится точка. Если класс принадлежности необязательный, то точка ставится вне блока или вообще не ставится (рис. 2.29).
Рис. 2.29. Варианты изображения типа связи и класса членства
(Г. Джексон): обязательный класс членства с одной стороны (а)
и с обеих сторон (б)
Используемые в CASE Oracle обозначения более удобны, так как если объект участвует в большом количестве связей, то дополнительные прямоугольники с точками становится неудобно располагать на рисунке.
В Design/IDEF1X характер принадлежности в связи изображается, как показано на рис. 2.30. Точка на конце линии обозначает множественную связь. Если около точки не стоит никакой буквы, то это означает нуль, один или более объектов в связи; P(positive) - один или много, Z (zero) - нуль или один, N (целое положительное число) - мощность связи в точности равна некоторому числу.
Наблюдаемые в Design/IDEFIX отличия от базовой и других рассмотренных выше моделей являются более существенными, чем просто различия в используемых условных обозначениях, поскольку это не только другой способ обозначения, но и другое «множество» возможных сочетаний «тип связи»-«класс принадлежности». Поэтому эти различия следует отнести ко второму типу различий - существенным различиям, влияющим на процесс моделирования предметной области.
В Power Desinger используются обозначения, представленные на рис. 2.31.
Рис. 2.30. Изображение класса членства в Design/IDEF1X
Рис. 2.31. Обозначения, использующиеся в Power Desinger:
а - связь М:М, связь от Объекта_1 к Объекту_2 необязательная;
б - связь 1:1, обязательный класс членства с обоих концов;
в - связь М:М, класс членства обязательный с обоих концов;
г - изображение зависимой по идентификации сущности
В Paradigma Plus для характеристики связи используется термин multiplicity (множественность): Каждый конец связи имеет аннотацию, обозначающую множественность. Различают следующие разновидности множественности: one (один), many (много), optional (необязательный), one or more (один или больше), zero or more (нуль или больше).
На первый взгляд кажется, что подходы, используемые в Design/IDEF и Paradigma Plus, схожи между собой. Но в них есть существенное различие: в Paradigma Plus, так же как и в нашей базовой модели, тип связи и кардинальность относятся к каждой стороне связи (т.е. характер связи задается в прямом и обратном направлении), в Design/IDEF - только в прямом. Поэтому в Design/IDEF нельзя выразить, например, связь М:М, в которой с одной стороны связи наблюдается обязательный класс принадлежности, а с другой - необязательный.
Подход, принятый в базовой модели для отображения характера связи, представляется более продуктивным (экономичным и наглядным), так как для всего множества возможных сочетаний (с учетом направления связи их может быть 16) используется всего четыре условных обозначения.
Чаще всего для обозначения какого-либо явления в предметной области в конкретной методологии используется одно определенное обозначение. Но, как отмечалось выше, некоторые CASE-средства позволяют пользователю выбрать ту нотацию языка, которая является для него наиболее привычной.
Свойства объекта иногда не отображаются на той же схеме, что сами объекты и связи между ними, а перечень и описания этих свойств приводятся отдельно. Часто описание свойств представляют в табличной или иной аналитической форме, а не в графическом виде.
Поскольку рассматриваемые различия не являются существенными, то легко выполнить преобразование из одной формы представления в другую, что и позволяют автоматически делать многие CASE-средства.