- •Системы управления базами данных Учебное пособие
- •Системы управления базами данных
- •169300, Г. Ухта, ул. Первомайская, д. 13.
- •Часть 1. Рабочая программа по системам управления базами данных
- •Часть 2. Теоретические сведения
- •Глава 1. Основы построения баз данных (бд)
- •1.1. Базы данных и информационные системы (общие понятия)
- •Режимы работы с базами данных
- •1.2. Модели данных: реляционная, иерархическая, сетевая
- •Классификация современных субд
- •1.3. Понятие отношения
- •Глава 2. Проблемы проектирования баз данных
- •2.1. Проектирование баз данных
- •2.2. Обеспечение целостности баз данных
- •2.3. Язык запросов sql
- •Операторы определения данных (ddl)
- •Операторы манипулирования данными (dmp)
- •Язык запросов (dql)
- •Средства управления транзакциями
- •Средства администрирования данных
- •Программный sql
- •Глава 3. Субд Access
- •Общие понятия и возможности субд Access
- •3.2.Интерфейс Access. Режимы работы
- •3.2.1. Рабочая среда Access
- •3.2.2. Окна рабочей среды Access
- •3.2.3. Меню и панели инструментов
- •3.2.4. Окно базы данных
- •3.2.5. Использование справочной системы
- •3.2.6. Вызов окна справки
- •3.3. Объекты Access
- •Глава 4. Создание базы данных в Access. Таблицы и формы
- •4.1. Создание структуры базы данных
- •4.2. Типы полей базы данных
- •4.3. Создание таблиц
- •4.4. Приёмы работы с таблицами. Изменение структуры таблицы
- •4.4.1. К одному из приёмов работы с таблицами можно отнести автоматический ввод в поле значения по умолчанию
- •4.4.3. Как избежать опечаток и смысловых ошибок?
- •4.4.4. Маски ввода
- •4.4.5. Управление размерами поля
- •4.4.6. Специальные размеры полей с числовым типом данных
- •4.5. Поиск и отбор данных
- •4.6. Сортировка в режиме таблицы
- •4.7. Индексирование. Ключи
- •Глава 5. Запросы в субд Access
- •Что такое – запрос?
- •Быстрое построение запросов с помощью мастера Простой запрос
- •Выполнение запроса
- •Отбор записей с помощью запросов
- •Выбор полей, выводимых в запросе
- •Сортировка
- •Условия отбора записей
- •Использование в запросе всех полей
- •Добавление в запрос таблиц
- •Объединение таблиц
- •Универсальные запросы с параметрами
- •Использование нескольких параметров
- •Изменение порядка следования параметров
- •Вычисление значений по полям
- •Установка свойств
- •Групповая обработка данных
- •Свойства запроса
- •Создание перекрестных запросов
- •Фильтры и запросы
- •Что дальше?
- •Глава 6. Связи в таблицах Создание связей между таблицами
- •Глава 7. Отчеты
- •7.1. Создание отчетов
- •7.1.1. Автоматическое создание отчета на основе таблицы или запроса
- •7.1.2. Создание отчета с помощью Мастера отчетов
- •7.2. Преобразование отчетов
- •7.2.1. Преобразование отчета в формат документов Word и Excel
- •7.2.2. Преобразование отчета в другие форматы
- •7.2.3. Снимки отчетов
- •7.3. Режимы работы с отчетами
- •7.3.1. Режим Предварительного просмотра
- •7.3.2. Режим Просмотра образца
- •7.3.3. Режим Конструктора
- •Инструментальные средства режима Конструктора
- •Панель инструментов Конструктор отчетов
- •Панель элементов
- •7.4. Просмотр и печать отчетов
- •Часть 3. Пример выполнения задания
- •4 Июня 2006 г. Страница 1 из 1
- •Часть 4. Варианты заданий
- •Часть 5. Контрольные вопросы к зачёту
- •Часть 6. Глоссарий (Словарь терминов)
- •Библиографический список
1.3. Понятие отношения
В реляционных базах данных отношения (межтабличные связи) позволяют не создавать избыточные данные.
Существуют отношения трех типов. Тип отношения в создаваемой связи зависит от способа определения связываемых столбцов:
при отношении «один-к-одному» каждой записи ключевого поля в первой таблице соответствует только одна запись в связанном поле другой таблицы и наоборот (большинство данных, связанных таким образом, может быть помещено в одну общую таблицу). Отношения этого типа используются не очень часто. Иногда его можно использовать для разделения таблиц, содержащих много полей, для отделения части таблицы по соображениям безопасности, а также для выделения сведений, относящихся к подмножеству записей в главной таблице;
чаще всего используется отношение «один-ко-многим». Оно означает, что одной записи в первой таблице соответствует несколько записей во второй, но запись во второй таблице не может иметь больше одной связанной записи в первой таблице, то есть на стороне «один» должно выступать ключевое поле, содержащее уникальные, неповторяющиеся значения, а значения на стороне «многие» могут повторяться. Например, одно издательство может выпустить несколько книг, но одну книгу может выпустить только одно конкретное издательство;
отношение «многие-ко-многим» означает, что одной записи в первой таблице могут соответствовать несколько записей во второй таблице, а одной записи во второй таблице могут соответствовать несколько записей в первой. Такое отношение содержит в себе неопределенность, разрешить которую можно только с помощью третьей (связующей) таблицы. Первичный ключ связующей таблицы состоит из двух полей, которые являются внешними ключами первой и второй таблиц. Можно сказать, что отношение «многие-ко-многим» представляет собой два отношения «один-ко-многим» с третьей таблицей. Например, каждый автор может написать несколько книг, а каждая книга может иметь несколько авторов, но авторский коллектив каждой книги уникален, так же, как и список книг, написанных конкретным автором.
Глава 2. Проблемы проектирования баз данных
2.1. Проектирование баз данных
Результатом проектирования базы данных обычно является развернутая схема базы данных, которая должна исчерпывающе описывать ее логическую структуру (следует подчеркнуть, что логическая структура никаким образом не связана с физической структурой базы и способом записи данных). Схема базы данных должна включать названия таблиц, описывающих отдельные информационные объекты, названия и тип данных всех полей таблиц, а также связи между таблицами и их полями. Хотя процесс создания логической структуры базы данных может занять значительное количество времени, экономить его здесь однозначно не рекомендуется.
Проектирование базы данных является итерационным процессом, в ходе которого разработчик шаг за шагом приближается к желаемому результату. Иногда приходится «отступать» на несколько шагов назад, переделывая предыдущую работу с учетом вновь появившихся данных или вновь возникших обстоятельств.
Можно разбить последовательность проектирования базы данных на решение следующих общих задач:
I. Разработка технического задания. Техническое задание на проектирование базы данных должен предоставить заказчик. Однако для этого он должен владеть соответствующей терминологией и знать технические возможности основных систем управления базами данных. Обычно же используют следующие подходы:
демонстрируют заказчику работу аналогичной базы данных, после чего согласовывают спецификацию отличий;
если аналога нет, выясняют круг задач и потребностей заказчика, после чего помогают ему подготовить техническое задание.
При подготовке технического задания составляют:
список исходных данных, с которыми работает заказчик;
список выходных данных, которые необходимы заказчику для управления структурой своего предприятия;
список выходных данных, которые не являются необходимыми для заказчика, но которые он должен предоставлять в другие организации (в вышестоящие структуры, в органы статистического учета, прочие административные и контролирующие организации).
Так, например, при подготовке базы данных для учета абитуриентов и студентов в высшем учебном заведении необходимо не только изучить документооборот ректората и всех деканатов, но и понять, что хотели бы получить от базы данных службы. Следует изучить работу подразделений, распределяющих учебную нагрузку преподавателей, отвечающих за распределение аудиторного фонда, за проживание студентов в общежитии и других. В расчет должны приниматься и такие службы, как библиотека, отдел кадров и прочие. В любой момент может выясниться, например, что администрация библиотеки должна периодически поставлять кому-то отчеты, характеризующие читательскую активность студентов в зависимости от пола, возраста и социального положения.
II. Разработка структуры базы данных. Выяснив основную часть данных, которые заказчик потребляет или поставляет, можно приступать к созданию структуры базы, то есть структуры ее основных таблиц.
Работа начинается с составления генерального списка полей – он может насчитывать десятки и даже сотни позиций.
В соответствии с типом данных, размещаемых в каждом поле, определяют наиболее подходящий тип для каждого поля.
Далее распределяют поля генерального списка по базовым таблицам. На первом этапе распределение производят по функциональному признаку. Цель – обеспечить, чтобы ввод данных в одну таблицу производился, по возможности, в рамках одного подразделения, а еще лучше – на одном рабочем месте.
Наметив столько страниц, сколько подразделений охватывает база данных, приступают к дальнейшему делению таблиц. Критерием необходимости деления является факт множественного повтора данных в соседних записях. На рисунке показана таблица, у которой в поле «Наименование товара» наблюдается повтор данных. Это явное свидетельство того, что таблицу надо поделить на две взаимосвязанные таблицы.





Рис. 2.1. Взаимосвязанные таблицы
Закончив эту работу, следует проанализировать промежуточный результат по следующим направлениям:
насколько полно выбранные свойства характеризуют объект, нет ли среди них избыточных;
нет ли одинаковых свойств в разных таблицах;
целесообразно ли передать какое-то свойство к другому объекту (например, контактный телефон автора должен быть скорее в таблице Авторы, а не Книги, Издательства или др.);
нужны ли дополнительные объекты или свойства.
В каждой из таблиц намечают ключевое поле. В качестве такового выбирают поле, в котором данные повторяться не могут. Например, для таблицы данных о студентах таким полем может служить индивидуальный шифр студента.
Если в таблице вообще нет никаких полей, которые можно было бы использовать как ключевые, всегда можно ввести дополнительное поле типа Счетчик – оно не может содержать повторяющихся данных по определению.
Устанавливается схема данных (графическое представление структуры базы данных).
Существует несколько типов возможных связей между таблицами. Наиболее распространенными являются связи «один-к-одному» и «один-ко-многим». Связь между таблицами организуется на основе общего поля, причем в одной из таблиц оно обязательно должно быть ключевым, то есть на стороне «один» должно выступать ключевое поле, содержащее уникальные, неповторяющиеся значения. Значения на стороне «многие» могут повторяться.
Рассмотрим таблицу Клиенты (см. рис. 2.2). Поле Код клиента является ключевым. Это понятно, поскольку у каждого клиента должен быть свой уникальный код, идентифицирующий его однозначно. Если мы рассмотрим таблицу Доставки, то увидим, что в ней код клиента не может быть уникальным, поскольку каждый клиент мог сделать сколь угодно много заказов. На схеме данных эти поля соединены линией связи. Тип связи – «один-ко-многим».

Рис.2.2. Схема связей между таблицами
Про подобные таблицы говорят, что они связаны реляционными отношениями, т.е. связи между наборами данных реализованы на основании совпадения значений полей. Соответственно, системы управления, способные работать со связанными таблицами, называют системами управления реляционными базами данных, а схему данных могут называть схемой реляционных отношений.
Разработкой схемы данных заканчивается «бумажный» этап работы над техническим предложением. Эту схему согласовывают с заказчиком. На этом этапе завершается предварительное проектирование базы данных.
Предварительное опробование структуры базы данных. Если работа, описанная выше, проделана достаточно хорошо, можно создать таблицы базы данных, установить между ними связи и ввести в таблицы небольшой объем данных, достаточный для проверки структуры. Работа связей между таблицами может быть проверена созданием запросов, в результате выполнения которых должны получаться нужные сведения. Также можно создать черновые формы и отчеты и проверить, насколько хорошо они работают, отображают ли те сведения, которые ожидались. Выявленные ошибки можно исправить, вернувшись к предшествующему этапу проектирования. В любом случае, не следует начинать заполнять базу данными, пока не исправлены все ошибки и неточности в ее структуре.
В СУБД Microsoft Access существуют два инструмента, помогающие усовершенствовать структуру базы данных: Мастер анализа таблиц и Анализатор быстродействия. Первый из них позволяет проанализировать структуру таблицы, предложить подходящие новые структуры и связи, а также разделить таблицу на новые связанные таблицы, если это имеет смысл. Второе средство исследует всю базу данных и дает рекомендации по ее улучшению, а также может выполнить эти рекомендации (если вы дадите на это согласие). Если ваша проверочная база открыта, то запустить эти средства можно командой Сервис Анализ Таблица или Сервис Анализ Быстродействие. Так как они построены в виде мастеров, то появляющиеся диалоговые окна содержат пояснения и дают рекомендации для принятия решения.
