Пример проектирования БД

  • docx
  • 28.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-003214.docx

Пример проектирования БД

Задача: Создать БД реализации товаров со складов, при условии, что на одном складе может храниться только один вид товара.

1.   Составим примерный перечень отчетов, которые могут быть затребо- ваны пользователями БД.

Отчет №1. Данные о товарах (Наименование, Марка, Цена, Номер те- лефона склада, где хранится товар, Количество имеющегося на складе това- ра, Описание товара, Название фирмы, которая занимается реализацией то- вара).

Отчет №2. Данные о фирмах (Название фирмы, Адрес фирмы, Телефон фирмы, Наименование товара, реализуемого фирмой).

Отчет №3. Система скидок (Фирма, Товар, Скидка).

Отчет №4. Продажи (Дата, Фирма, Товар, Марка товара, Количество проданного товара).


Отчет №5. Данные о складах (Номер склада, Адрес склада, Телефон склада, Фамилия заведующего, Товар, хранимый на складе).

Отчет №6. Данные о контактных лицах фирм (Фамилия, Имя, Дата рождения, Домашний адрес, Домашний телефон, Должность, Название фир- мы, сотрудником которой он является).

Отчет №7. Список директоров фирм (Фамилия, Телефон фирмы, Ад- рес фирмы, Домашний телефон, Домашний адрес)2 .

2.  Составим подробный перечень всех элементов данных, требуемых для отчетов и сгруппируем их в таблицы БД:

 

Отчет

№1

Отчет

№2

Отчет

№3

Отчет

№4

Отчет

№5

Отчет

№6

Отчет

№7

Наименование товара

+

+

+

+

+

 

 

Марка товара

+

 

 

+

 

 

 

Цена

+

 

 

 

 

 

 

Количество

+

 

 

 

 

 

 

Описание товара

+

 

 

 

 

 

 

Название фирмы

+

+

+

+

 

+

 

Адрес фирмы

 

+

 

 

 

 

+

Телефон фирмы

 

+

 

 

 

 

+

Скидка

 

 

+

 

 

 

 

Номер склада

 

 

 

 

+

 

 

Адрес склада

 

 

 

 

+

 

 

Телефон склада

+

 

 

 

+

 

 

Фамилия заведующего

 

 

 

 

+

 

 

Дата продажи

 

 

 

+

 

 

 

Количество продажи

 

 

 

+

 

 

 

Фамилия контактного лица

 

 

 

 

 

+

+

Имя

 

 

 

 

 

+

 

Дата рождения

 

 

 

 

 

+

 

Адрес домашний

 

 

 

 

 

+

+

Телефон домашний

 

 

 

 

 

+

+

Должность

 

 

 

 

 

+

+

 

 

 

 

 

 

 

 

 

 


2 Перечень требуемых данных и отчетов может быть скорректирован (например, могут рассматриваться данные о сотрудниках склада) и продолжен, в зависимости от степени полноты рассматриваемой предмет- ной области. В учебных целях мы ограничимся этим перечнем.


Сгруппируем данные в таблицы:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.   ФирмаДля каждой таблицы определим уникальный идентификатор (первич- ный ключ) и перегруппируем таблицы так, чтобы в них остались только дан- ные, относящиеся к объекту, определяемому первичным ключом.

 


Товары Код товара

Наименование товара

Марка Цена

№ склада Телефон склада Количество Описание

Код фирмы


Фирмы Код фирмы

Название фирмы

Адрес фирмы Телефон фирмы Код товара

Склады

№ склада Адрес склада Телефон склада Заведующий


Сформировав таблицы и установив ключевое поле3 для каждой таблицы, между таблицами можно установить взаимосвязи, которые будут поддержи- ваться при создании форм, отчетов и запросов и задать условия целостности данных этих таблиц.

Существует 3 типа связей:

"один к одному" – каждой записи одной таблицы соответствует только одна запись в другой;

"один ко многим" - каждой записи одной таблицы может соответство- вать несколько записей в другой таблице или "многие к одному" – в табли- це может быть несколько записей, соответствующих только одной записи в другой таблице;

"многие ко многим" - множеству записей одной таблицы соответству- ет множество записей другой таблицы.

При определении связи ключ в одной таблице содержит ссылки на кон- кретные записи в другой таблице. Поле, не являющееся ключевым для дан- ной таблицы, но значения которого являются значениями первичного ключа другой таблицы, называют внешним ключом4. Содержимое поля внешнего ключа (значения и свойства) должно совпадать с содержимым ключевого по- ля. Эти поля также могут иметь одинаковые имена.

В нашем примере между полученными объектами установились следу- ющие отношения:

"Склады" и "Товары"— отношение "один ко многим"5; "Фирмы" и "Контактные лица" — отношение "один ко многим"; "Фирмы" и "Товары" - отношение "многие ко многим".

Аccess не позволяет определить прямую связь "многие ко многим" меж- ду двумя таблицами. В этом случае необходимо создать дополнительную таблицу, с помощью которой одна связь "многие ко многим" будет сведена к


 

3 Ключевые поля в таблицах выделены полужирным шрифтом.

4 Поле внешнего ключа выделено курсивом.

5 Условием нашего примера оговорено, что на одном складе может храниться один вид товара, но марок этого вида может быть несколько.


двум связям типа "один ко многим". В нашем примере такой дополнительной таблицей может являться таблица " Продажи", ключ которой состоит из двух полей (составной ключ), являющимися полями первичного ключа в таблицах "Фирмы" и "Товары".


Продажи

Так как одна фирма может покупать один и тот же товар в разные дни, то в ключ следует добавить еще одно поле, позволяющее сделать каждую за- пись таблицы уникальной. В нашем случае в ключ можно поместить поле Дата продажи.

Графически связи и таблицы после преобразования могут быть пред- ставлены в следующем виде (рис. 1):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 1. Схема БД Продажи