- •Глава 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-моделирования для проектирования бд
- •Глоссарий
- •Литература
- •Сокращения
10.2. Классификация рБнД
При классификации РБнД будут рассмотрены только характеристики, присущие именно распределенным ИС. На рис. 10.1 приведена обобщенная схема классификации РБнД.
РБнД реализуются в компьютерных сетях, причем это могут быть как локальные, так и глобальные сети. Вид сети, используемые сетевые операционные системы, безусловно, оказывают существенное влияние на проектирование и функционирование РБнД, но классификация систем по этим признакам выходит за рамки данного учебника.
Как пояснялось при введении понятия РБнД, предполагается, что в РБнД базы данных могут быть как централизованными, так и распределенными. В РБнД с распределенными базами данных используются разные технологии распределения данных по узлам сети. Различают подходы, основанные на фрагментации БД и на тиражировании данных.
При использовании фрагментации единая логическая БД разбивается по каким-либо признакам на составные части (фрагменты), хранящиеся в разных узлах сети.
В РБД могут использоваться разные типы фрагментации. По операциям над таблицами различают горизонтальное, вертикальное и смешанное фрагментирование. Разбиение БД на фрагменты может проводиться по разным признакам. Наиболее часто используются следующие критерии разбиения: территориальный, функциональный, временной.
При использовании технологии тиражирования создаются и поддерживаются в согласованном состоянии копии всей БД или ее фрагментов в нескольких узлах сети. Копия базы данных, являющаяся членом набора других копий, которые могут быть синхронизированы между собой, называется репликой.
Технология тиражирования по характеру организации данных близка к применению локальных баз данных (так как каждый пользователь использует собственную копию БД), но отличается от децентрализованных систем по способу создания локальных копий и технологии поддержания целостности. Полностью децентрализованная система не предполагает использование специализированных программно-технических средств, поддерживающих целостность БД.
При сравнении децентрализованных и распределенных систем (табл. 10.2) знаком «+» отмечены лучшие значения характеристики.
Таблица 10.2
Характеристика
|
Система | |
децентрализованная |
распределенная | |
Возможность совместного использования данных |
|
+ |
Сложность используемых программных средств |
+ |
|
Возможность централизованного обеспечения целостности данных |
|
+ |
Сложность проектирования |
+ |
|
Сложность поддержания безопасности |
+ |
|
Гибкость и эффективность использования вычислительных ресурсов |
|
+ |
В РБнД с централизованной БД (много клиентов/один сервер) проблемы управления базой данных решаются относительно просто, поскольку вся она хранится на одном сервере. Задачи, с которыми приходится здесь сталкиваться, - это блокировки при одновременном обращении к данным, управление буферами клиентов и кэширование данных. Управление данными реализуется централизованно на одном сервере.
В системах с распределенной базой данных и проектирование БД, и реализация запросов, и управление системой представляют собой более сложные задачи, но, с другой стороны, такие системы обеспечивают большую гибкость, надежность и быстродействие. В табл. 10.3 приведено сравнение централизованных и распределенных систем.
Таблица 10.3
Характеристика
|
Система | |
централизованная |
распределенная | |
Сложность используемых программных средств |
+ |
|
Уязвимость БД |
|
+ |
Потери на непроизводительные (накладные) расходы |
+ |
|
Ограничение пропускной способности |
|
+ |
Модульность, возможность расширения системы |
|
+ |
Сложность проектирования |
+ |
|
Сложность поддержания актуальности БД |
+ |
|
Сложность поддержания целостности БД |
+ |
|
Сложность поддержания безопасности |
+ |
|
Возможность уменьшения сетевого трафика |
|
+ |
Распределение рабочей нагрузки естественным образом на несколько компьютеров |
|
+ |
Соотношение показателя «стоимость/ эффективность» |
|
+ |
Требования к аппаратной платформе |
|
+ |
Сложность администрирования |
+ |
|
Используемые технологии распределения данных видоизменяют преимущества и недостатки этих систем. Так, одно из основных преимуществ баз данных, обусловленных интегрированным хранением данных, - сокращение степени дублирования - теряется при использовании технологии тиражирования. Но при этой технологии, в отличие от использования децентрализованных систем, сохраняются возможности контроля целостности данных для системы в целом.
При технологии фрагментации созданные фрагменты могут быть пересекающиеся и непересекающиеся. Наличие пересекающихся фрагментов делает схожей эту технологию с технологией тиражирования.
На выбор способа организации БД оказывают влияние следующие факторы:
число пользователей;
степень пересечения информационных потребностей пользователей;
объем данных;
квалификация персонала;
ограничения (стоимость, время отклика, актуальность информации);
наличие существующей системы обработки информации и ее характеристика.
Несмотря на то что при использовании распределенных систем используется более сложное и дорогое программное обеспечение, более совершенные технические средства, наибольшие затраты здесь приходятся на эксплуатационные расходы. По данным фирмы Microsoft14, структура затрат в централизованных и распределенных системах выглядит следующим образом:
в централизованных системах около половины (48%) средств расходуется на аппаратное обеспечение, 14% составляют затраты на программное обеспечение и 28% - на поддержку системы;
в распределенных системах основные затраты (77%) связаны с поддержкой системы, расходы на аппаратное обеспечение составляют 15%, а на программное обеспечение - только 6% общей стоимости системы.
В распределенных системах расширяется состав и увеличивается объем метаинформации, повышается значимость ее эффективной организации. Могут использоваться разные способы организации метаинформации:
централизованный каталог;
полностью реплицированный каталог;
секционированный каталог;
комбинированный (1 и 3).
По способу взаимодействия функциональных компонентов различают файл-серверную и клиент-серверную архитектуру РБнД. На рис. 10.2 представлена принципиальная схема обработки данных в архитектуре «файл-сервер». При использовании такой архитектурной модели основная обработка данных проводится на рабочей станции. Такая модель приводит к необходимости передачи больших объемов данных по сети, что увеличивает трафик, а это, в свою очередь, может привести к замедлению обработки данных, увеличению стоимости, снижению надежности и другим недостаткам.
В системах с «клиент-серверной» архитектурой (рис. 10.3) основная обработка данных проводится на сервере.
«Клиент-серверные» системы имеют следующие преимущества:
снижение сетевого трафика за счет выполнения запросов на сервере;
оптимизация выполнения запросов;
возможность хранения бизнес-правил на сервере (ограничения целостности, хранимые процедуры, отражающие логику обработки);
возможность использования CASE-средств для генерации кодов серверных объектов (триггеров, хранимых процедур, текстов SQL-запросов);
управление пользовательскими привилегиями и правами доступа;
широкие возможности резервного копирования и архивации данных.
Сравнительные характеристики технологий «файл-сервер» и «клиент-сервер» приведены в табл. 10.4.
Таблица 10.4
Характеристика |
«Файл-сервер» |
«Клиент-сервер» |
Интенсивность сетевого трафика |
|
+ |
Обеспечение целостности данных |
|
+ |
Обеспечение безопасности данных |
|
+ |
Устойчивость к сбоям |
|
+ |
Сложность проектирования |
+ |
|
Сложность эксплуатации системы |
+ |
|
Ограничения на число пользователей |
|
+ |
При обработке данных в сетевой среде выделяют следующие основные группы выполняемых функций:
презентационная логика (Presentation Layer - PL);
бизнес-логика (Business Layer - BL);
логика доступа к ресурсам (Access Layer - AL).
По характеру распределения функций между клиентом и сервером различают системы с тонким клиентом, толстым клиентом и системы с трехслойной (трехуровневой) архитектурой.
Модель с тонким клиентом стала активно использоваться в корпоративной среде в связи с распространением интернет-технологий, и в первую очередь Web-браузеров. В этом случае клиентское приложение обеспечивает реализацию PL, а сервер объединяет BL и AL.
Модель с толстым клиентом наиболее часто встречается в уже внедренных и активно используемых системах. Такая модель подразумевает объединение в клиентском приложении как PL, так и BL. Серверная часть при описанном подходе представляет собой сервер баз данных, реализующий AL. К описанной модели часто применяют аббревиатуру RDA - Remote Data Access.
В модели с трехуровневой архитектурой физически выделяется «сервер бизнес-логики», на котором и выполняются пользовательские приложения (блок BL).
Как видно из вышеизложенного, существует множество разнообразных технологий работы в распределенной среде.
Некоторые из них представляют собой реализацию на новом технологическом уровне ранее использовавшихся подходов к организации обработки информации.
РБнД могут быть реализованы на однородных элементах (гомогенные системы) или на разнородных (гетерогенные системы). Поскольку процесс создания информационной системы практически непрерывен, то обычно эти системы являются гетерогенными. Разнородными могут быть ЭВМ, ОС, СУБД.
Для обеспечения возможности работы в разнородной среде используются разнообразные категории программных средств:
собственные сетевые драйверы (native software drivers);
шлюзы (gateways);
промежуточное программное обеспечение (middleware).