Разработка структуры базы данных

advertisement
Лабораторная работа 2.
РАЗРАБОТКА СТРУКТУРЫ БАЗЫ ДАННЫХ
1. Цель лабораторной работы:
изучить язык описания данных, типы данных в СУБД Access 2.0; приобрести
навыки разработки структуры БД в среде СУБД Access.
2.Вопросы для изучения:



Типы полей базы данных Access;
Методика описания структуры таблиц БД;
Методика описания связей между таблицами.
3. Порядок выполнения работы:
1. Изучить порядок создания таблиц базы данных в среде СУБД ACCESS.
2. Описать схему базы данных в соответствии с вариантом задания:
o Создать новую базу данных и определить ее общие свойства (Файл
*Создать; Файл *Свойства БД, дать название БД, краткое описание, номер
варианта, ФИО автора).
o Определить структуру таблиц БД и свойства полей, обратив особое
внимание на описание ключевых полей и условий контроля данных (в окне
БД "Создать").
o Установить связи между таблицами и задать ограничения целостности для
связей (Сервис *Схема данных).
3. Составить отчет, содержащий название работы, полный текст варианта задания,
схему БД (список полей БД, их имена, типы, контроль ограничений, чертеж
схемы). (см. образец отчета в формате WORD97 или Windows .)
4. Утвердить отчет о работе у преподавателя.
4. Справочные сведения
4.1. Создание и изменение таблиц
Выберите корешок "Таблицы", затем щелкните по кнопке "Создать" в окне БД. Возможно
создание объекта "вручную" либо с помощью Мастера, который автоматически
генерирует объект. Обычно лучше попытаться создать таблицу в режиме Мастера,
подобрав подходящий прототип в соответствии с предметной областью. Затем можно
изменить структуру таблицы в режиме Конструктора.
Окно режима Конструктора состоит из двух частей: в верхней половине содержится
список полей таблицы (их имена и типы), в нижней - описание прочих свойств текущего
поля (см.рис.).
Окно конструктора таблицы
Имена полей выбираются произвольно, имя может включать до 64 произвольных
символов (в том числе и русские буквы), кроме символов точка (.), восклицательный знак
(!), апостроф ('), квадратные скобки [ ]. Рекомендуется:




не включать в имя пробелы,
избегать слишком длинных имен,
поля для связи называть во всех таблицах одинаково,
в именах из нескольких слов каждое слово начинать с заглавной буквы, например
КодТовара.
Тип данных определяет, какого вида данные будут храниться в поле - текст, числа, даты
и т.д. и сколько места они будут занимать на диске. Важно правильно определить тип
поля до того, как начнется ввод данных, так как при изменении типа данные могут быть
искажены или утеряны.
При определении типов данных полей необходимо ответить на следующие вопросы:





Какие значения предполагается вводить в поле? Например, в поле типа "Числовой"
невозможно ввести текстовое значение.
Какой размер поля понадобится для сохраняемых значений?
Какие операции предполагается выполнять над значениями поля? Например,
суммирование значений поля допускается для полей типа "Числовой" или
"Денежный" и не допускается для полей типа "Текстовый" или "Поле объекта
OLE".
Потребуется ли сортировка или индексирование поля? Поля MEMO или поля
объектов OLE не допускают сортировки или индексирования.
Как следует выполнять сортировку значений поля? В текстовых полях числа
сортируются по правилам сортировки строковых значений (1, 10, 100, 2, 20, 200 и
т.д.), а не по правилам сортировки чисел. Для сортировки по числовым значениям
следует выбрать тип поля "Числовой" или "Денежный. Кроме того, в текстовых
полях невозможна правильная сортировка для многих форматов дат. Чтобы
обеспечить возможность правильной сортировки значений дат, следует указать тип
поля "Дата/время".
Типы полей Access
Тип
данных
Содержимое поля
Размер
Текст или комбинация текстовых и
числовых значений, например, адреса.
Кроме того, в такие поля записывают
числовые значения, для которых не
предполагается выполнение расчетов,
такие как телефонные или инвентарные
номера или почтовые индексы.
До 255 символов.
Сохраняются только символы,
введенные в поле; не
сохраняются пробелы,
соответствующие
незаполненной части
текстового поля.
Максимальное число
символов, которые можно
ввести в поле, определяется
свойством "Размер поля"
Длинный текст, например, примечания
или описания.
До 64 000 символов.
Числовые данные, допускающие
использование в математических
вычислениях за исключением денежных
расчетов (для последних определен тип
"Денежный"). Конкретный числовой тип
определяется значением свойства "Размер
поля".
1, 2, 4 или 8 байт (16 байт для
значения "Код репликации").
Дата/время
Значения даты или времени.
8 байт.
8 байт.
Денежный
Денежные значения. Тип "Денежный"
позволяет проводить вычисления без
округления значений. Диапазон данных:
до 10 15 , абсолютная погрешность 10 -4.
Счетчик
Уникальные последовательные (с шагом
1) или случайные номера, автоматически
формируемые при добавлении записи.
4 байт (16 байт для значения
"Код репликации").
Поля, которые могут иметь только одно
значение из двух , например: Да/Нет,
Истина/Ложь или Вкл/Выкл.
1 бит.
Логический
Внешние объекты, созданные в других
приложениях, поддерживающих протокол
OLE.
До 1 Гбайт (ограничивается
объемом диска).
Текстовый
Поле
MEMO
Числовой
Поле
объекта
OLE
Примечания.
1. Для типов данных "Числовой", "Дата/время", "Денежный" и "Логический"
определены стандартные форматы отображения. Для указания конкретного
формата отображения необходимо выбрать в раскрывающемся списке одно из
значений свойства "Формат поля" . Создание специального формата отображения
допускается для всех типов, кроме OLE..
2. Тип данных "Счетчик" следует задавать для полей, в которые автоматически
вводится номер при добавлении новой записи в таблицу (бывает последовательный
счетчик или счетчик со случайной нумерацией). После создания этот номер
невозможно изменить или удалить. Такое поле удобно для определения в качестве
ключевого поля таблицы.
3. Протокол OLE (Object Lincing and Embedding) - это механизм Windows,
позволяющий включить в текущий документ объекты, созданные другими
прикладными программами и автоматически загружать эти программы для работы
с ними. Например, поле таблицы может содержать документ Microsoft Word,
электронную таблицу Microsoft Excel, рисунок PaintBrush, звуко- или видеозапись
и др.
Описание поля. В столбце "Описание" можно (не обязательно) ввести текст, который
будет появляться в строке состояния при переводе фокуса в это поле в режиме таблицы, а
также будет включен в описание объекта. Вспомните, что "фокус" в Windows - это
возможность объекта воспринимать действия мыши и клавиатуры (по аналогии с фокусом
фотообъектива, где только один объект выглядит резко, остальные - более расплывчато).
Дополнительные свойства полей. При необходимости в бланке свойств (в нижней
половине окна) можно задать дополнительные свойства полей, что позволяет сэкономить
время при разработке приложения, так как не нужно всякий раз описывать поведение поля
в формах и отчетах. Свойства поля определяются типом данных. К ним относятся: длина
(размер) поля, способ отображения (формат), подпись (она используется в формах и
отчетах), значение по умолчанию, правило контроля для ввода данных.
Ключевые поля однозначно идентифицируют своим значением каждую конкретную
запись. Обычно в качестве ключевого выбирают числовой или буквенно-цифровой код
записи, который используется только для внутренних целей БД (для связи таблиц).
Обычно ключевое поле имеет тип "счетчик" или "числовой". Общепринятым правилом
является, что имя ключевого поля совпадает с именем понятия, для которого составлена
таблица. Например, в таблице "Выставки" ключом является поле "Выставка", которое
содержит код выставки.
Для определения ключа выделите соответствующее поле в режиме Конструктора и
выполните команду меню Правка *Ключевое поле, в результате должен появиться значок
ключа слева от имени поля.
4.2. Связи между таблицами
Связи являются необходимым элементом структуры БД. После создания различных
таблиц разработчик должен продумать, каким образом Access будет объединять эти
данные при их извлечении из базы данных. Первым шагом при этом является определение
связей между таблицами. После этого становится возможным создание запросов, форм и
отчетов, в которых выводятся данные из нескольких таблиц сразу.
В большинстве случаев с ключом одной таблицы связывается "внешний ключ" другой
таблицы. Например, для сопоставления сведений о сотрудниках и о принятых ими
заказах, следует определить связь по полю "Код Сотрудника" в двух таблицах:
СОТРУДНИКИ (Код Сотрудника, Фамилия, Имя) и ЗАКАЗЫ (Код заказа, Код клиента,
Код сотрудника). В первой таблице общее поле является ключом, а во второй - внешним
ключом.
После того, как определены поля для связи следует оценить тип связи.
Отношение "один-ко-многим" является наиболее часто используемым типом связи
между таблицами. Например, между таблицами "Сотрудники" и "Заказы" существует
отношение "один-ко-многим": каждый сотрудник может принять несколько различных
заказов, но у каждого заказа имеется единственный ответственный сотрудник
Отношение "многие-ко-многим". В этом случае одной записи в таблице "A" могут
соответствовать несколько записей в таблице "B", и наоборот. Такая схема реализуется
только с помощью третьей (связующей) таблицы, ключ которой состоит из по крайней
мере двух полей, которые являются ключами в таблицах "A" и "B". Например, между
таблицами "Заказы" и "Товары" имеется отношение "многие-ко-многим", которое
реализовано с помощью дополнительной таблицы "Заказано".
Отношение "один-к-одному". В этом случае каждая запись в одной таблице может быть
связана только с одной записью в другой таблице и наоборот. Этот тип связи используют
редко, поскольку такие данные могут быть помещены в одну таблицу. Например, такую
связь используют для разделения очень широких таблиц, для отделения части таблицы по
соображениям защиты и т.п.
Для определения связей между таблицами следует:
1. закрыть все открытые таблицы,
2. нажать кнопку "Связи" (или команду меню "Сервис *Схема данных"), откроется
окно "Схема данных";
3. добавить таблицы в окно "Схема данных";
4. перенести с помощью мыши ключевое поле одной таблицы в другую таблицу
(указать на поле связи, нажать кнопку мыши и "перетащить" поле к
соответствующему полю в другой таблице),
5. определить тип связи (1:1, 1:М, М:1) (двойной щелчок по линии связи открывает
окно определения типа связей).
Для изменения типа связи нужно дважды щелкнуть по линии связи, чтобы выйти в окно
"Установка типа связи".
Для удаления существующей связи следует выделить ее щелчком мыши и нажать
клавишу Delete.
Учтите, что нельзя изменить типа данных для поля, которое связывает таблицу с другой
таблицей. Предварительно нужно удалить установленную связь.
4.3. Импорт данных
СУБД Access позволяет импортировать данные из разнообразных источников данных,
например, из файлов в формате dBASE. При импорте данных создается их копия в новой
таблице текущей БД. Исходная таблица или файл при этом не изменяются. Допускается
импорт не только таблиц, но и других объектов баз данных, например, форм или отчетов
из другой базы данных Microsoft Access. При этом можно импортировать в одной
операции сразу все объекты или часть объектов.
Для импорта данных следует выполнить следующее:





открыть БД, куда будут импортироваться данные,
выполнить команду меню *Файл *Внешние данные *Импорт,
выбрать в списке "Тип файла" соответствующий тип ( например, "FoxPro" или
"dBASE"),
выбрать диск, каталог и сам исходный файл в соответствующих списках и
установить указатель на имя файла, дважды нажать кнопку мыши;
повторить эти шаги для всех импортируемых файлов, затем выбрать кнопку
"Закрыть".
После импорта файла пользователь имеет возможность изменить свойства полей таблицы
и ее ключ.
Контрольные вопросы
1. Каков порядок определения структуры БД в СУБД ACCESS?
2. Сколько таблиц может содержать база данных ACCESS?
3. В каком режиме описывается структура таблицы БД?
4. Можно ли изменить структуру таблицы после ее создания?
5. Какие типы полей БД предусмотрены в ACCESS?
6. Каковы правила именования полей БД?
7. Какая информация может храниться в полях типа "объект OLE"?
8. Какие свойства поля должны быть определены обязательно?
9. Что такое ключевое поле?
10. Какие виды контроля данных могут автоматически выполняться в СУБД ACCESS?
11. Как перенести информацию из базы данных в формате СУБД Clipper в базу данных
ACCESS?
12. Для чего необходимо описывать связи между таблицами базы данных?
13. В каком режиме следует описывать связи между таблицами?
14. Какие типы связей поддерживает СУБД ACCESS?
15. Какое влияние оказывает установка связей на ввод и изменение информации в БД?
Download