В таблицах данные распределяются по столбцам (которые называют полями) и строкам (которые называют записями). Все данные, содержащиеся в поле таблицы, должны иметь один и тот же тип. Каждое поле таблицы характеризуется наименованием, типом и шириной поля. При задании типа данных поля можно также указать размер, формат и другие параметры, влияющие на отображение значения поля и точность числовых данных. Основные типы данных:
- Текстовый. Текст или числа, нетребующие проведения расчётов.
- МЕМО. Поле этого типа предназначено для хранения небольших текстовых данных (до 64000 символов). Поле этого типа не может быть ключевым или проиндексированным.
- Числовой. Этот тип данных содержит множество подтипов. От выбора подтипа (размера) зависит точность вычислений.
- Счётчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся при добавлении новой записи в таблицу.
- Логический. Логические значения, а так же поля, которые могут содержать одно из двух возможных значений.
- Денежный. Денежные значения и числовые данные, используемые в математических вычислениях.
- Дата/Время. Дата и время хранятся в специальном фиксированном формате.
- Поле объекта OLE. Включает звукозапись, рисунок и прочие типы данных. Поле этого типа не может быть ключевым или проиндексированным.
- Гиперсвязь. Содержит адреса Web-страниц.
Следующим шагом выполнения работы было построение реляционной схемы базы данных из ER-модели. Для этой цели были использованы следующие правила:
1. Для каждого простого объекта и его единичных свойств строится таблица, атрибутами которой являются идентификатор объекта и реквизиты, соответствующие каждому из свойств.
2. Если у объекта имеются множественные свойства, то каждому из них ставиться в соответствии отдельная таблица.
3. Если между объектом и его свойствам имеется условная связь, то при отображении в реляционной модели возможны следующие варианты:
- Если многие из объектов обладают рассматриваемым свойством, то его можно хранить в базе данных так же, как и обычное.
- Если только незначительное число обладает указанным свойством, то при использовании предыдущего решения для многих записей в таблице значение соответствующего поля будет пустым. Для устранения этого недостатка выделяют отдельную таблицу, которая включает в себя идентификатор объекта и атрибут, соответствующий рассматриваемому свойству (аналогично пункту 2).
4. Если у объекта имеется составное свойство, то составляющие составного свойства либо помещаются в отдельные поля реляционной таблицы, либо в одно поле.
5. Если связь между объектами 1:1 и классы принадлежности обоих объектов являются обязательными, то для отображения данных объектов и связей между ними можно:
- использовать одну таблицу, первичным ключом которой может быть
идентификатор любого из двух объектов.
- для каждого из этих объектов использовать отдельные таблицы, а связь между ними отразить включив в одну из таблиц идентификатор связанного объекта из другой таблицы.
6. Если связь между объектами 1:1 и класс принадлежности одного объекта является обязательным, а другого – нет, то для каждого из этих объектов используют отдельные таблицы, а идентификатор объекта, для которого класс принадлежности является необязательным, добавляется в таблицу, соответствующую тому объекту, для которого класс принадлежности обязателен.
7. Если между объектами связь 1:1 и класс принадлежности является необязательным, то следует воспользоваться тремя таблицами: по одной для каждого объекта и одну для отображения связи между ними.
8. Если между объектами связь 1: М и класс принадлежности одного из них обязателен, то используют две таблицы – по одной для каждого объекта. При этом в таблицу, соответствующую объекту, класс принадлежности которого является обязательным, добавляется идентификатор второго объекта.
9. Если между объектами предметной области имеется связь 1: М и оба класса принадлежности не обязательны, то поступают аналогично пункту 7 (создают три таблицы: по одной для каждого объекта и одну для связи между ними)
10. Если между объектами предметной области имеется связь М:М, то для хранения информации требуется три таблицы: по одной для каждого объекта и одна для отображения связи между ними (классы принадлежности могут быть любыми).
11. Агрегированному объекту, имеющему место в предметной области, ставится в соответствии одна таблица, атрибутами которой являются идентификаторы всех объектов, задействованных в данном агрегированном объекте, а так же реквизиты, соответствующие свойствам этого объекта.
Такое объединение информации в одну таблицу возможно только в том случае, если между объектами связь 1:1, если связь другая, то выделяют по одной таблице для каждого объекта и одну для связи.
12. При отображении обобщенных объектов могут быть приняты разные решения:
- всему обобщенному объекту может быть поставлена в соответствии одна таблица.
- каждой из категорий ставится в соответствии отдельная таблица, которая
содержит в себе идентификатор объекта, общие свойства и свойства данной категории.
Кроме этого, возможны и комбинированные варианты. Выбор конкретного решения будет зависеть от того, насколько часто информация о разных категориях объекта обрабатывается совместно, как велико различие видовых свойств и т.п.
13. При отображении составного объекта так же возможны варианты:
- если речь идет о составе изделий, то между изделием и деталью связь будет М:М.
В этом случае – см. пункты 7, 9, 10.
- если речь идет о составе какой-нибудь организации, то между объектами скорее всего будет связь 1:М. В этом случае – см. пункты 8, 9.
В результате применения данных рекомендаций к инфологической модели была получена следующая реляционная модель:
Сотрудник (Код сотрудника, Фамилия, Имя, Должность, Дата рождения, Адрес, Телефон, Примечание);
Клиент (Код клиента, ФИО, Адрес, Телефон);
Заказ (Код заказа, Код товара, Код сотрудника, Дата размещения, Дата исполнения, Код клиента);
Товар (Код товара, Код поставки, Наименование товара, Описание, Изображение, Стоимость закупки, Наличие, Количество, Стоимость продажи);
Поставка (Код поставки, Код поставщика, Дата поставки);
Поставщик (Код поставщика, Название поставщика, Представитель, Обращаться, Телефон, Адрес).
Описание приложения
Для хранения данных создано 6 таблиц, структура которых приведена в таблице 1.
Таблица 1. Структура таблиц
Таблица Сотрудники | Таблица Товары | |||||
Поле | Тип данных | Поле | Тип данных | |||
Код Сотрудника | Числовой | Код Товара | Текстовый | |||
Фамилия | Текстовый | Код Поставки | Числовой | |||
Имя | Текстовый | Наименование Товара | Текстовый | |||
Должность | Текстовый | Описание | Поле МЕМО | |||
Дата Рождения | Дата/время | Изображение | Поле объекта OLE | |||
Адрес | Текстовый | Стоимость Закупки | Денежный | |||
Телефон | Текстовый | Наличие | Логический | |||
Примечание | Поле МЕМО | Кол-во | Числовой | |||
| Стоимость Продажи | Денежный | ||||
Таблица Клиенты |
| |||||
Поле | Тип данных | Таблица Поставка | ||||
Код Клиента | Числовой | Поле | Тип данных | |||
ФИО | Текстовый | Код Поставки | Числовой | |||
Адрес | Текстовый | Код Поставщика | Числовой | |||
Телефон | Текстовый | Дата Поставки | Дата/время | |||
|
| |||||
Таблица Заказы | Таблица Поставщики | |||||
Поле | Тип данных | Поле | Тип данных | |||
Код Заказа | Числовой | Код Поставщика | Числовой | |||
Код Товара | Текстовый | Название Поставщика | Текстовый | |||
Код Сотрудника | Числовой | Представитель | Текстовый | |||
Дата Размещения | Дата/время | Обращаться | Текстовый | |||
Дата Исполнения | Дата/время | Телефон | Текстовый | |||
Код Клиента | Числовой | Адрес | Текстовый | |||
Для создания базы данных нужно сначала запустить программу Microsoft Office Access 2003, для этого нужно проделать следующие действия: Пуск → Программы → Microsoft Office → Microsoft Office Access 2003.
После этого откроется окно программы. Для создания новой базы данных нужно выполняем:
- команду Файл → Создать
- в открывшемся окне диалога «Создание» выбираем «Новая база данных». На экране появится окно с запросом директории для новой базы данных, вводим имя базы Компьютерный магазин, затем «ОК». После этого появится окно базы данных (см. рис. 8).
Рис. 8 Окно базы данных
Создание таблиц, как и других объектов баз данных, начинается с активации окна базы данных. В этом окне выбирается элемент управления Таблицы, после чего на правой панели окна будет представлен список таблиц, уже входящих в состав БД. Если в базе нет таблиц, то на правую панель окна выводится только три элемента управления для создания новой таблицы: Создание таблицы в режиме конструктора, Создание таблицы с помощью мастера и Создание таблицы путём ввода данных.
Выбираем элемент управления →Создание таблиц в режиме конструктора (см. рис. 9).
Рис. 9 Создание таблицы в режиме конструктора
Теперь необходимо заполнить Имена полей и выбрать Типы данных. По окончании заполнения через меню Файл → Сохранить как сохраняем полученную таблицу с требуемым именем (см. рис. 10).
Рис. 10 Таблицы базы данных компьютерного магазина в режиме конструктора
Разработаем схему данных, (создание связей между таблицами). Для этого:
нажимаем по кнопке на панели инструментов. На экране появится окно <<Схема данных>>;
щёлкаем по кнопке на панели инструментов;
в появившемся окне будет выделено название одной таблицы. Щелкаем по кнопке <Добавить>, переводим выделение на имя следующей таблицы и щелкните по кнопке <Добавить>. Аналогично добавляем оставшиеся таблицы;
закройте окно, щелкнув по кнопке <3акрыть>;
чтобы не выполнять все вышеописанные действия, можно просто перетащить мышкой таблицы из окна «Базы данных Таблицы» в окно «Схема данных»;
создадим связь между таблицами Товары и Заказы. Для этого курсором мыши перетаскиваем <<Код товара>> в таблице Товары на поле <<Код товара>> в таблицу Заказы. На экране откроется окно <<Связи>>;
устанавливаем флажок («галочку») в свойствах Обеспечение целостности данных, Каскадное обновление связанных полей и Каскадное удаление связанных записей;
щелкаем по кнопке <Создать>. Связь будет создана;
аналогично создаем связи между полем <<Код сотрудника>> в таблице Сотрудники и полем <<Код сотрудника>> в таблице Заказы, и т.д. Закрываем окно схемы данных, ответив ДА на вопрос о сохранении макета. Для связи таблиц использовалась следующая схема (см. рис. 11).
Рис. 11 Реляционная структура СУБД Access для информационной системы компьютерного магазина