- •Глава 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-моделирования для проектирования бд
- •Глоссарий
- •Литература
- •Сокращения
5.2. Создание бд в Microsoft Access
Рассматривая работу в среде MS Access, еще раз обратим внимание на использующуюся в системе терминологию. Базой данных в MS Access называется совокупность таблиц, форм, отчетов, запросов, модулей, макросов. Вся эта совокупность запоминается в одном файле базы данных, имеющем расширение (.mdb).
В контексте данного раздела под «созданием баз данных» будем понимать только создание таблиц и связей между ними. Другие компоненты, включаемые в понятие базы данных в MS Access, здесь рассматриваться не будут.
Если вы создаете новую базу данных, то надо выбрать позиции меню Файл/Создать базу данных и в появившемся окне Создание выбрать позицию «База данных» (рис. 5.1).
Рис. 5.1. Создание новой базы данных (экран 1)
В появившемся окне Файл новой базы данных (рис. 5.2) нужно задать имя файла БД и щелкнуть по кнопке Создать.
Рис. 5.2. Создание новой базы данных
(экран 2 - задание имени базы данных)
После выполнения этих шагов появится экран [название]: база данных (рис. 5.3).
Рис. 5.3. Начальный вид окна базы данных
5.2.1. Создание новой таблицы путем описания ее структуры
Создание базы данных начинается с создания таблиц, в которых и хранится информация о предметной области. База данных обычно включает несколько взаимосвязанных таблиц. Для создания новой таблицы в окне Базы данных нужно выбрать вкладку Таблица и щелкнуть по кнопке Создать - появится окно Новая таблица (рис. 5.4).
Рис. 5.4. Выбор способа создания таблицы
Создать таблицу можно в разных режимах: режиме таблицы, конструктора, мастера таблиц, импорта таблиц и связи с таблицами. Начнем рассмотрение возможностей создания таблиц с режима конструктора как наиболее часто используемого. Для этого в появившемся окне выберите режим создания нового объекта - Конструктор. После чего появится окно для описания структуры таблицы и других ее характеристик (рис. 5.5).
Рис. 5.5. Вид экрана при описании таблицы
Описание полей таблицы
В табличной форме необходимо последовательно описать все поля создаваемой таблицы. Сначала задается имя поля. Access допускает задание длинных имен с пробелами на русском языке.
В Microsoft Access действуют следующие ограничения на имена полей:
имя должно содержать не более 64 символов;
имя может включать любую комбинацию букв, цифр, пробелов и специальных символов за исключением точки (.), восклицательного знака (!), надстрочного символа (') и прямых скобок ([ ]);
имя не должно начинаться с символа пробела;
имя не должно включать управляющие символы (с кодами ASCII от 0 до 31).
Хотя пробелы внутри имен полей и являются допустимыми, они могут при некоторых обстоятельствах вызывать конфликты при работе с другими системами. Поэтому их не рекомендуется использовать. Вообще к заданию длинных имен на русском языке нужно относиться с осторожностью, особенно если есть вероятность, что создаваемое приложение будет в дальнейшем использоваться в распределенных гетерогенных системах.
Имена полей не должны совпадать с зарезервированными словами. Например, не следует давать полю имя Count, Name и т.п.
Имя поля должно быть уникальным в пределах таблицы. И хотя система не запрещает использование одинаковых имен полей в разных таблицах, избегайте использования одинаковых имен для обозначения разных по смыслу атрибутов.
Имя должно быть понятно не только в контексте данной конкретной таблицы. Так, например, если в таблице «Сотрудник» есть поле «Код» и такое же поле есть в таблице «Кафедра», то в первом случае это будет код сотрудника, а во втором - код кафедры. Многие системы (и Access в том числе) при соответствующей настройке автоматически связывают таблицы по полям, которые имеют одинаковые имя, тип и длину. Если имена даны непродуманно, то могут возникнуть неправильные связи либо процесс задания связей будет несколько сложнее, чем при правильном задании имен.
После задания имени нужно выбрать тип поля. Если щелкнуть мышью по свободной ячейке графы «Тип поля», то высветится список допустимых типов полей (см. рис. 5.5), из которого и следует выбрать подходящий для описываемого поля тип. Имя и тип поля должны задаваться обязательно.
Графа «Описание» может не заполняться. Эта графа используется в целях документирования проекта.
Допустимые типы полей в Access 2000 и их краткая характеристика приведены в табл. 5.1.
Таблица 5.1
Тип данных |
Содержимое поля |
Размер |
Текстовый |
Текст или числа, не требующие проведения расчетов (номера телефонов, коды и т. п.) |
Максимальное число символов - 255 |
Поле Мемо |
Длинный текст или комбинация текста и чисел |
До 65 535 символов |
Числовой |
Числовые данные, используемые для проведения расчетов |
1,2,4 или 8 байт |
Дата/время |
Даты и время, относящиеся к годам с 100 по 9999 включительно |
8 байт |
Денежный |
Специальный формат для представления числовых данных. Точность до 15 знаков в целой и до 4 знаков в дробной части |
8 байт
|
Счетчик |
Уникальные последовательно возрастающие (на 1) или случайные числа, автоматически вводящиеся при добавлении каждой новой записи в таблицу |
4 байта |
Логический |
Поля, которые могут содержать одно из двух возможных значений (True/False, Да/Нет) |
1 бит |
Продолжение таблицы 5.1
Поле объекта OLE |
Объект, связанный или внедренный в таблицу Microsoft Access |
До 1 Гбайта (ограничивается объемом диска) |
Гиперссылка |
Строка, состоящая из букв и цифр и представляющая адрес гиперссылки |
Может содержать до 3x2048 символов |
В списке допустимых типов полей имеется строка «Мастер подстановок». При его использовании можно создать поле, содержание которого формируется путем выбора значений из списка, содержащего набор постоянных значений или значений из другой таблицы/запроса. Если источником для подстановки выбран столбец другой таблицы, то тип и длина поля, созданного таким способом, будут определяться типом и длиной элементов, служащих источником для подстановки значений.
Выбор типа поля является важным шагом, при проектировании БД. Принятое решение оказывает влияние на выполняемый при вводе контроль правильности данных, на допустимые операции над данными и особенности их выполнения, требуемый объем памяти, скорость выполнения операций, совместимость разных частей БД при работе в гетерогенной среде.
Предположим, что создается таблица, содержащая сведения о профессорско-преподавательском составе. Состав и тип полей создаваемой таблицы представлены на рис. 5.6.
Введем описания всех полей, кроме поля «Должность», выбирая указанные на рис. 5.6 типы полей.
Рис. 5.6. Состав полей таблицы «Сотрудник»
Поле «Должность» создадим несколько иначе. Для выбранной категории сотрудников имеется всего четыре возможные должности: ассистент, старший преподаватель, доцент и профессор. Хорошо было бы заменить ввод этих значений выбором их из списка. В ранних версиях Access задавать домен (либо путем прямого ввода списка значений, либо путем связи с файлом подстановки) можно было только при создании запроса или экранной формы. В последних версиях стало возможным задать это и при описании таблицы.
Создадим поле «Должность», используя «Мастер подстановок». Для этого можно либо при выборе типа указать «Мастер подстановок» (см. последнюю строку в ниспадающем списке типов полей на рис. 5.5), либо выбрать позицию «Поле подстановки» в меню Вставка.
Последовательность шагов при создании поля подстановки отражена на рис 5.7-5.9. Имя поля сначала задавать не надо, оно будет задано позже в процессе создания поля с помощью мастера. Следует сразу перейти к столбцу «Тип данных» и выбрать в списке строку «Мастер подстановок».
Так как список, создаваемый в рассматриваемом случае, короткий и стабильный, то создадим столбец подстановки с фиксированным набором значений (рис. 5.7). В появившемся далее окне введем требуемые значения (рис. 5.8).
Рис. 5.7. Создание столбца подстановки. Начальный экран
Рис. 5.8. Создание столбца подстановки.
Столбец с введенным списком значений
Далее зададим имя этого поля (рис. 5.9).
Рис. 5.9. Создание столбца подстановки. Задание имени столбца
После создания поля таким способом его тип будет «текстовый» и длина - 50. После создания поля с использованием мастера подстановок с фиксированным набором значений его длину можно скорректировать.
При вводе данных в таблицу значения полей подстановки можно не вводить с клавиатуры, а выбирать из заданного списка. Чтобы нельзя было ввести значения, отсутствующие в списке, надо в свойствах поля на вкладке Подстановка в позиции «Ограничиться списком» задать значение Да. В этом случае использование поля подстановки обеспечит не только более эффективный ввод данных, но и более жесткий контроль целостности базы данных.
Если число значений поля подстановки достаточно велико и сами значения могут меняться со временем, то следует использовать вторую альтернативу - значения из другой таблицы/запроса (рис. 5.10). Эта возможность реализуется в нашем примере для поля «Код_кафедры», значения которого будут выбраны из таблицы «Кафедра».
Рис. 5.10. Создание поля подстановки (шаг 1)
Для создания поля подстановки, источником для которого служит другая таблица, необходимо сначала создать основную таблицу (в паре «Кафедра»-«Сотрудник» основной будет таблица «Кафедра»), связать таблицы и только потом создавать поле подстановки (в нашем случае это поле «Код_кафедры» в таблице «Сотрудник»). Если, как в нашем случае, основная таблица еще не создана, то нужно закончить описание таблицы «Сотрудник», сделать указанные выше шаги (создание таблицы «Кафедра» и связывание ее с таблицей «Сотрудник», а потом можно скорректировать описание поля «Код_Кафедры» в таблице «Сотрудник»), выбрав в столбце «Тип данных» позицию «Мастер подстановок» (рис. 5.10) и далее выполнить шаги, которые описаны ниже.
В окне Создание подстановки выбираем альтернативу «Столбец подстановки использует значения из таблицы или запроса» (рис. 5.11).
Рис. 5.11. Создание поля подстановки (шаг 2)
После этого нужно выбрать таблицу/запрос, которая будет являться источником данных для описываемого поля (рис. 5.12). В нашем примере это таблица «Кафедра».
Далее надо определить колонку таблицы-источника, значения из которой будут подставляться в описываемую колонку (рис. 5.13). В нашем примере таким полем является «Код_кафедры». Но так как пользователь вряд ли помнит коды, то желательно, чтобы при выборе нужного значения высвечивались названия кафедр. Для этого в окно «Выбранные поля» следует перенести еще и поле «Наименование_ кафедры_полное» или «Наименование_кафедры_краткое».
Рис. 5.12. Выбор таблицы/запроса источника для поля подстановки
Рис. 5.13. Выбор колонки-источника для поля подстановки
В появившемся далее окне (рис. 5.14) можно не только задать ширину столбцов (позиционировавшись на границу столбца и перетащив ее в нужном направлении), но и определить, сколько столбцов будет выводиться на экран при вводе значения в это поле: если оставить знак «» в позиции «Скрыть ключевой столбец», то в нашем примере будет выводиться только поле «Наименование_кафедры_полное». Если эту «галочку» убрать, то будут выводиться оба поля: «Код_кафедры» и «Наименование_кафедры_полное».
Рис. 5.14. Создание поля подстановки.
Задание ширины столбцов