
- •Глава 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.7. Работа в распределенной среде при использовании субд Access
10.7.1. Способы совместного использования данных в Access
Access, как известно, относится к классу настольных СУБД. Естественно, что сетевые возможности наиболее развиты в корпоративных СУБД, но в связи с повсеместной распространенностью сетевых технологий настольные СУБД также обеспечивают работу в многопользовательском режиме.
Access, как и большинство других СУБД, тоже обеспечивает возможность многопользовательской работы с базой данных. Допускается до 255 одновременно работающих с базой данных пользователей.
Кроме самостоятельного использования Access может применяться как средство проектирования при создании РБнД, а также в качестве интерфейсного средства при работе в гетерогенном РБнД; как правило, Access используется совместно с MS SQL-сервером.
Как указывалось выше, в Access используется своеобразное понятие базы данных: базы данных включают в своем составе не только таблицы и связи между ними (что традиционно считается базой данных), но и запросы, отчеты, модули, макросы и другие объекты. В связи с этим при работе в многопользовательском режиме возникают дополнительные проблемы и имеются специальные средства для их разрешения.
Существует несколько способов совместного использования данных в многопользовательской среде.
Совместное использование всей базы данных Microsoft Access.
Совместное использование таблиц базы данных Microsoft Access.
Совместное использование объектов базы данных Microsoft Access или страниц доступа к данным в Интернете.
Репликация базы данных Microsoft Access.
Создание приложения в архитектуре «клиент-сервер».
Различие в первых двух возможностях обусловлено особенностями архитектуры Access и является специфичным именно для этой СУБД. Напомним, что в Access база данных - это не только таблицы с данными, но и формы, отчеты, запросы, макросы и модули.
Можно поместить всю базу данных Access (т.е. базу данных, содержащую все эти объекты) на сетевой сервер или в общую папку. Далее следует убедиться, что для базы данных задано открытие в режиме совместного доступа. Этот режим используется по умолчанию. Чтобы установить этот режим, необходимо в меню Сервис выбрать команду Параметры, затем на вкладке Другие в группе параметров Режим открытия по умолчанию выбрать параметр общий доступ (рис. 10.8).
Путем соответствующей настройки можно также определить параметры, управляющие блокировкой данных и обновлением данных в общей базе данных, такие, как «блокировка по умолчанию» (определяет блокируемую информационную единицу), «число повторов обновления» (определяет число попыток обновления записи, если она оказалась заблокированной) и некоторые другие.
Совместное использование всей базы данных является наиболее простым способом организации совместного доступа. Все работают с одними и теми же данными, формами, отчетами, запросами, макросами и модулями. Это приемлемо, когда информационные потребности всех пользователей совпадают.
Существует и другой путь - разделение базы данных Microsoft Access на две части: собственно данные и остальные объекты базы данных Microsoft Access. В этом случае можно поместить на сетевой сервер только таблицы базы данных, а остальные объекты хранить на компьютерах пользователей. При этом работа с базой данных Access происходит быстрее, так как по сети передаются только данные. Если разделить базу данных на серверную часть (таблицы) и клиентскую часть, пользователь получит возможность изменять формы, отчеты и другие объекты в собственной клиентской базе данных, не влияя при этом на других пользователей.
Для того чтобы выполнить разделение баз данных, необходимо выполнить следующие шаги:
в меню Сервис выбрать команду Служебные программы и подкоманду Разделение баз данных;
в ответ на вопрос Мастера «Разделить базу данных» указать место на диске, где будет размещена отделенная БД, т.е. часть исходной базы данных, которая содержит таблицы.
При формировании запросов таблицы, к которым они относятся, могут находиться в другой БД. При этом используется так называемое присоединение таблиц. Администратор сети может создать несколько копий стандартной БД с присоединенными таблицами или позволить пользователю создавать собственные БД и присоединять таблицы самостоятельно. Пользователи могут корректировать данные в присоединенной таблице, но не могут менять ее структуру.
Преимущества использования присоединения:
доступ к БД осуществляется быстрее, поскольку отсутствуют траты времени на передачу объектов по сети;
резервирование данных и обновление других объектов упрощается, если таблицы хранятся отдельно от остальных объектов БД;
пользователь может менять свои формы и отчеты, не оказывая влияние на компоненты, разработанные другими пользователями.
Присоединенные таблицы могут находиться не только в другой БД Access, но даже в БД других СУБД.
Распределенные базы данных могут быть расположены как в локальной, так и в глобальной сети. Обеспечить совместное использование данных из БД при работе в Интернете можно несколькими способами. Имеется возможность вывести один (или несколько) объект базы данных в формате статического HTML или генерируемого сервером HTML, а также создать страницы доступа к данным, а затем отображать их в обозревателе, например в Microsoft Internet Explorer, в Интернете.
Существуют различные способы выполнения репликации и синхронизации баз данных в Access:
портфельная репликация;
команды репликации в меню Сервис Microsoft Access;
репликация в проекте Microsoft Access;
программная репликация;
диспетчер репликации Microsoft.
При использовании нескольких компьютеров, например стоящего в офисе и переносного, имеется возможность создавать с помощью портфеля Microsoft Windows реплики базы данных Microsoft Access и поддерживать синхронизацию этих реплик. При этом находящиеся в разных местах пользователи могут одновременно работать каждый со своей копией, а затем синхронизировать их через подключение удаленного доступа или через Интернет.
При работе в среде «клиент-сервер» можно использовать имеющиеся дополнительные возможности и способы защиты, обеспечиваемые сервером. Данные сохраняются в таблицах на сервере базы данных, например на Microsoft SQL Server, а не в локальных таблицах в Microsoft Access. Приложение Access (клиент) принимает требующиеся ему данные с сервера. Сервер поддерживает целостность данных и выполняет любые запросы, которые он может распознать.
При открытии файла базы данных Access (.mdb) в режиме общего доступа Microsoft Access создает файл сведений о блокировке (.ldb) с тем же именем (например, Учебная.ldb) и в той же папке, что и файл базы данных. В файле сведений о блокировке сохраняются имя компьютера и имена всех совместно работающих пользователей базы данных в системе защиты. Microsoft Access использует эти сведения для управления совместной работой. В большинстве случаев Microsoft Access автоматически удаляет файл сведений о блокировке при закрытии файла базы данных последним пользователем.
В многопользовательской среде с одними и теми же записями могут одновременно работать несколько человек. Поскольку в то время, когда один пользователь пытается редактировать записи, другие пользователи также могут вносить в них изменения или даже удалять данные, при работе иногда возникают противоречия.
Microsoft Access позволяет отслеживать состояние записей во время внесения в них изменений и обеспечить использование самых свежих данных. Если два (или более) пользователя пытаются внести изменения в одну и ту же запись, на экране появляется сообщение, помогающее разрешить конфликт. Например, при попытке сохранить запись, заблокированную другим пользователем, на экране появляется имя заблокировавшего ее пользователя.
Чтобы облегчить отслеживание состояния записей, Microsoft Access отображает специальные маркеры в области выделения текущей записи, которые позволяют понять, в каком состоянии находится запись.
Одной из возможностей поддержки удаленных пользователей с помощью реплицирования в СУБД Access является использование команды Репликация в меню Сервис Microsoft Access. Для этого в меню Сервис следует выбрать позицию Репликация, а затем - Создать реплику (рис. 10.9). Реплицировать можно только закрытую базу данных. При этом она не должна быть защищена паролем.
Реплицирование может применяться не только при работе нескольких пользователей в сети, но и, например, при использовании как настольного, так и переносного компьютера. При этом на переносном компьютере создается «оторванная» реплика, с которой можно работать автономно. Впоследствии, когда появится возможность, в случае необходимости (если в реплику вносились изменения, которые должны быть учтены в основной базе данных) можно произвести синхронизацию.
Поскольку исходная БД при репликации изменяется, то Перед созданием реплики следует создать резервную копию исходной базы данных.
Реплицирование может использоваться не только при работе нескольких пользователей в сети, но и, например, при использовании как настольного, так и переносного компьютера.
В Microsoft Access 2000 и более поздних версиях реплике в наборе реплик при ее создании назначается приоритет, и в случае конфликта синхронизации применяется реплика с наивысшим приоритетом. При равенстве приоритетов используется реплика с минимальным значением свойства «ReplicalD».