- •С.Г.Смирнова Решение прикладных задач с использованием баз данных на примере ms Access
- •Оглавление
- •Раздел II.1 Разработка схемы данных 10
- •Раздел II.2 Реализация базы данных в субд 12
- •Раздел II.3 Заполнение базы данных информацией 19
- •Введение
- •Статья I.Система управления базами данных (субд)
- •Основные понятия
- •Реляционная модель данных
- •Функциональные возможности субд
- •Знакомство с субд Microsoft Access
- •Статья II.Реализация базы данных в ms Access на примере учебной задачи
- •Раздел II.1Разработка схемы данных
- •Раздел II.2Реализация базы данных в субд
- •(A)Создание таблиц
- •2.2.2. Установка связей между таблицами
- •(B) Разработка форм
- •(C)Запросы и их применение
- •Раздел II.3Заполнение базы данных информацией
- •Задания и методические указания
- •Приложение 1. Типы данных
Статья II.Реализация базы данных в ms Access на примере учебной задачи
Исходные данные. База данных отображает информацию по заказам на различные товары: код заказа, дата заказа, заказчик, контактный телефон заказчика, наименование товара, цена товара, количество заказанного товара.
Ограничения: в один заказ можно включить только одно наименование товара, но в любом количестве; одно наименование товара можно заказать сколько угодно раз в разных заказах; заказ является по-своему уникальным, все данные совпадать не могут.
Раздел II.1Разработка схемы данных
Определив основную часть данных, можно приступить к созданию структуры базы данных. На этом этапе определяются:
генеральный список полей (столбцов таблицы), которые необходимы для хранения данных;
перечень таблиц, которые будут содержать поля генерального списка (в процессе нормализации);
ключевые поля таблиц;
в соответствии с типом данных, размещаемых в каждом поле, выбирают наиболее подходящий тип для каждого поля;
связи между таблицами базы данных.
Исходные данные соответствуют следующему генеральному списку полей:
Табл.1
Заказы
Код заказа* |
Дата Заказа |
Заказчик |
Контактный телефон |
Наименование товара |
Цена |
Количество |
001 |
23.06.07 |
Д/cад.№ 5 |
34-15-35 |
Полотенце арт.10023 |
100р. |
3 |
002 |
02.04.07 |
Д/сад.№ 43 |
34-76-35 |
Полотенце арт. 10023 |
100р. |
2 |
003 |
02.04.07 |
Гор. больница №3 |
51-65-76 |
Скатерть арт.45638 |
800р. |
2 |
Каждый заказ имеет свой номер (код заказа), по которому определяется вся информация по данному заказу (дата заказа, заказчик и т. д.). Этот номер является уникальным и в различных заказах повторяться не может. Поэтому в качестве ключевого поля таблицы определим поле Код заказа*, которое однозначно определяет каждую запись поля таблицы.
Для достижения оптимальной структуры данных необходимо провести нормализацию. Исходная таблица не соответствует требованиям первой нормальной формы (1НФ), так как имеет составной атрибут Наименование товара. Разбив его на простые атрибуты, мы приведем исходную таблицу к 1НФ. Наше отношение примет следующий вид: Заказы = (Код заказа*, дата заказа, заказчик, контактный телефон, название товара, артикул товара, цена, количество товара). В ней атрибут Наименование товара разбивается на два неделимых атрибута: Название товара, Артикул товара.
Все описательные атрибуты таблицы однозначно определены и находятся в зависимости от ключевого поля (код заказа*). Поэтому таблица Заказы соответствует требованиям второй нормальной формы.
В процессе приведения к третьей нормальной форме происходит определение скрытых зависимостей между неключевыми атрибутами таблицы. Выделяются следующие зависимости:
ФЗ1 = Код заказа* ->Заказчик -> Контактный телефон;
ФЗ2 = Код заказа* ->Артикул товара ->Название товара, Цена товара;
ФЗ3 = Код заказа* ->Дата заказа, Заказчик, Артикул товара, Количество.
ФЗ1 показывает, что атрибут Контактный телефон зависит от неключевого атрибута Заказчик. ФЗ2 показывает зависимость атрибутов Цена товара и Название товара от атрибута Артикул товара. ФЗ3 определяет зависимость всех атрибутов слева от стрелки от ключевого атрибута Код заказа*. Разбиваем исходную таблицу на три самостоятельные таблицы: Заказы, Товары, Заказчики ( табл. 2 – 4 ). В процессе нормализации таблицы Заказы и Товары приведены к третьей нормальной форме, так как все неключевые атрибуты простые, находятся в зависимости от ключевых атрибутов Артикул товара* и Код Заказа* и между неключевыми атрибутами каждой таблицы нет скрытых зависимостей.
Таблица 2.
Заказы
Код заказа* |
Дата заказа |
Заказчик |
Артикул Товара |
Количество |
001 |
23.06.2007 |
1 |
10023 |
3 |
002 |
02.04.2007 |
1 |
10023 |
2 |
003 |
02.04.2007 |
2 |
45638 |
2 |
Таблица 3.
Товары
Артикул товара* |
Название товара |
Цена |
10023 |
Полотенце |
100р. |
13476 |
Полотенце |
500р. |
45638 |
Скатерть |
800р. |
Таблица 4.
Заказчики
Код заказчика* |
Наименование заказчика |
Контактный телефон |
1 |
Д/сад.№ 5 |
34-15-35 |
2 |
Д/сад.№ 43 |
34-76-35 |
3 |
Гор. больница №3 |
51-65-76 |
Таблица Заказчики также приведена к третьей нормальной форме. Зависимость между неключевыми атрибутами Наименование заказчика и Контактный телефон нарушена посредством введения ключевого поля Код заказа (его тип – счетчик). Теперь атрибуты Наименование заказчика и Контактный телефон зависят лишь от ключевого поля таблицы Код заказчика.
После определения структуры базы данных необходимо наметить связи между таблицами базы. Схема связей представлена на рис.2 .
Рис.2. Схема данных
Установленные связи автоматически связывают поля в создаваемых запросах, формах, отчетах. Это экономит время и гарантирует получение правильных результатов при разработке сложных форм, запросов и отчетов. При изменениях в одной таблице они автоматически вносятся в другие таблицы, а также обеспечивается поддержка целостности базы данных.
Теперь можно перейти непосредственно к реализации базы данных в программе MS Access.