Лабораторная работа №11. Создание базы данных «Товар» в MS Access 2010


Лабораторная работа № 11
Создание базы данных «Товар» в MS Access 2010С.В. Каверин
Цель работы: Приобретение практических навыков проектирования и создания таблиц реляционной базы данных в MS Access 2010.
1 Краткие теоритические сведения
База данных (БД) – это хранилище данных о некоторой предметной области, организованное в виде специальной структуры. Система управления базой данных (СУБД) – это программное обеспечение для работы с БД. Одной из наиболее популярных СУБД является программа Microsoft Access.
Реляционная база данных – это набор простых таблиц, между которыми установлены связи (отношения) с помощью числовых ключей (кодов). Ключ – это поле или комбинация полей, однозначно определяющая запись. Таблицы в БД состоят из строк и столбцов. Каждая строка таблицы – это запись, столбец – поле. Каждое поле имеет имя, тип (символьный, числовой и др.) и значение.
Связи между таблицами:
Один к одному («1-1») – одной записи в первой таблице соответствует ровно одна запись во второй.
Один ко многим («1-∞») – одной записи в первой таблице соответствует сколько угодно записей во второй.
Многие ко многим («∞-∞») – одной записи в первой таблице соответствует сколько угодно записей во второй, и наоборот.
Нормализация – это разработка такой структуры БД, в которой нет избыточных данных и связей.
Правила нормализации:
Любое поле должно быть атомарным (неделимым).

Не должно быть полей, которые обозначают различные виды одного и того же, например, товаров.

Любое поле должно зависеть только от ключа.

Не должно быть полей, которые могут быть найдены с помощью остальных.

Индекс – это вспомогательная таблица, которая предназначена для быстрого поиска в основной таблице по выбранному столбцу.
2 Создание структуры базы данных «Товар»
Описание предметной области. Магазину компьютерной техники необходимо автоматизировать процессы продажи и поставки товаров от поставщиков. Для достижения этой цели постоянно требуется работать с информацией об имеющихся товарах, заказах, поставщиках и о поставляемой ими номенклатуре товаров, клиентах и сотрудниках. Подобные сведения содержатся в накладных, бланках заказов, чеках. С точки зрения пользователя БД должна обрабатывать эти документы. Более детальный анализ предметной области привел к структуре БД «Товар», изображенной на рисунке 1.

Рисунок 1 – Структура БД «Товар»
Создадим БД Товар.accdb в СУБД Microsoft Access 2010.
2.1 Запустим MS Acceсss 2010:
Пуск -> Все программы -> Microsoft Office -> Microsoft Access 2010.
Выбираем пункт «Создать» и далее «Новая база данных» (Шаг 1 на рисунке 2). В поле «Имя файла» вводим «Товар» (Шаг 2). Справа от поля «Имя файла» нажмем значок , откроется диалог сохранения файла, в котором следует выбрать свою личную папку и указать имя сохраняемого файла. Расширение имени файла будет добавлено автоматически (Шаг 3). Новая БД именем Товар создается после нажатия кнопки Создать (Шаг 4).

Рисунок 2 – Начало работы с БД «Товар»
2.2 Создание таблицы «Заказы»
Окно программы после создания новой БД показано на рисунке 3.

Рисунок 3 – Вкладка Поля и кнопка Режим
С помощью кнопки Режим выберем режим Конструктор. Появится окно для ввода имени таблицы. Назовем таблицу Заказы. Новое поле добавляется путем ввода его имени в свободную ячейку столбца Имя поля (Рисунок 4). Создаем поле «КодЗаказа» типа – Числовой. Это ключевое поле – создается по нажатию кнопки . В окне «Свойства поля» выбираем: Размер поля – целое (т.к. номер может быть определен вне системы), Подпись – Номер п/п (эта запись будет видна при работе с БД вместо КодЗаказа).

Рисунок 4 – Создание полей таблицы Заказы
Создаем остальные поля таблицы «Заказы» (см. рисунок 1).
Имя Поля Тип данных Свойство поля
КодЗаказаЧисловой Ключевое поле. Размер поля –Целое.
Подпись – Номер п/п.
КодСотрудникаЧисловой Размер поля – Целое. Значение по умолчанию – 0. Обязательное поле – Да. Индексированное поле –Да (Допускаются совпадения).
КодТовараТекстовый Размер поля – 50. Подпись – Код товара. Индексированное поле –Да (Допускаются совпадения). Сжатие Юникод – Нет.
ДатаРазмещения Дата/время Краткий формат даты. Маска ввода: 00.00.0000;0;_. Подпись – Дата подачи заявки. Индексированное поле – Да (Допускаются совпадения).
ДатаИсполнения Дата/время Краткий формат даты. Маска ввода: 00.00.0000;0;_. Подпись – Дата доставки.
КодКлиентаЧисловой Размер поля – Целое. Значение по умолчанию – 0.
2.3 Создание остальных таблицы БД «Товар»
Выбираем: вкладка Создание -> кнопка Таблица. Режим – Конструктор.
Таблица Клиенты
Имя Поля Тип данных Свойство поля
Код Числовой Ключевое поле. Размер поля –Целое. Значение по умолчанию – 0.
ФИО Текстовый Размер поля – 50.
Адрес Текстовый Размер поля – 50.
Телефон Текстовый Размер поля – 15. Сжатие Юникод – Нет.
Таблица Поставка
Имя Поля Тип данных Свойство поля
КодПоставкиЧисловой Ключевое поле. Размер поля –Целое. Значение по умолчанию – 0.
КодПоставщикаЧисловой Ключевое поле. Размер поля –Целое. Значение по умолчанию – 0.
ДатаПоставкиДата/время Краткий формат даты. Маска ввода: 00.00.0000;0;_.
Таблица Поставщик
Имя Поля Тип данных Свойство поля
КодПоставщикаЧисловой Ключевое поле. Размер поля –Целое. Значение по умолчанию – 0.
НазваниеПоставщикаТекстовый Размер поля – 50.
ПредставительПоставщикаТекстовый Размер поля – 50.
Обращаться Текстовый Размер поля – 50. Подпись – ФИО.
КонтактныйТелефонТекстовый Размер поля – 15. Сжатие Юникод – Нет.
Адрес Текстовый Размер поля – 50.
Таблица Сотрудники
Имя Поля Тип данных Свойство поля
КодСотрудникаЧисловой Ключевое поле. Размер поля –Целое. Подпись – Код сотрудника.
Фамилия Текстовый Размер поля – 50. Пустые строки – Нет. Индексированное поле – Да (Допускаются совпадения). Сжатие Юникод – Нет.
Имя Текстовый Размер поля – 50. Пустые строки – Нет. Сжатие Юникод – Нет.
Отчество Текстовый Размер поля – 30. Пустые строки – Нет. Сжатие Юникод – Нет.
Должность Текстовый Размер поля – 50. Пустые строки – Нет. Сжатие Юникод – Нет.
Адрес Текстовый Пустые строки – Нет. Сжатие Юникод – Нет.
ДомашнийТелефонТекстовый Размер поля – 30. Подпись – Домашний телефон. Пустые строки – Нет. Сжатие Юникод – Нет.
ДатаРожденияДата/время Краткий формат даты. Маска ввода: 99.99.00;0. Подпись – Дата рождения.
Заметки Поле МЕМО Пустые строки – Нет. Сжатие Юникод – Нет.
Таблица Товары
Имя Поля Тип данных Свойство поля
КодТовараТекстовый Ключевое поле. Размер поля – 50.
КодПоставкиЧисловой Размер поля – Целое. Значение по умолчанию – 0. Индексированное поле – Да (Допускаются совпадения).
НаименованиеТовараТекстовый Размер поля – 50. Подпись – Наименование товара. Индексированное поле – Да (Совпадения не допускаются).
ТехническиеХарактеристикиТекстовый Описание Поле МЕМО Изображение Текстовый Размер поля – 50.
СтоимостьЗакупкиДенежный Наличие Логический Формат поля – Да/Нет.
Кол-во Числовой Размер поля – Целое. Значение по умолчанию – 0.
СтоимостьПродажиДенежный 2.3 Установление связей между таблицами
Связь возможна между таблицами, у которых имеются поля с одинаковыми значениями. Перед установкой связей сохраните и закройте все таблицы, иначе возможно появление сообщения об использовании таблицы другим пользователем.
Для установления связей нужно перейти на вкладку «Работа с базами данных» и выбрать инструмент «Схема данных». Откроется окно Добавление таблицы (рисунок 5), в котором, с помощью кнопки Добавить, надо выбрать все шесть таблиц.

Рисунок 5 – Добавление таблиц в схему данных
После закрытия окна Добавление таблицы становится активным окно Схема данных. Расположите таблицы как показано на рисунке 1 (для удобства). Связи между таблицами устанавливаются путём перетаскивания мышью поля из одной таблицы на соответствующее поле другой таблицы. При установке связи появляется окно (рисунок 6), в котором можно задать параметры создаваемой связи. После чего нажать кнопку Создать.

Рисунок 6 – Настройка связи между таблицами
Как правило, одно из полей в связанных таблицах имеет уникальные значения. Это может быть ключевое поле или поле, для которого свойство Индексированное поле имеет значение Да (совпадения не допускаются). Таблица, содержащая уникальное поле, называется базовой, а вторая таблица – подчинённой. В рассматриваемой связи на рисунке 6 базовой является таблица Сотрудники, а подчиненной – таблица Заказы. Поскольку одной записи в базовой таблице может соответствовать нескольким записей в подчинённой, то тип отношения является «один-ко-многим».
Задание 1. Установите все связи между таблицами, как показано на рисунке 1. Заметим, что если какая-либо таблица ошибочно (повторно) включена в схему данных, нужно удалить связи других таблиц с ней и выполнить команду Скрыть таблицу. После этого таблица будет удалена из схемы данных.
3 Задания для самостоятельной работы
Спроектируйте реляционную базу данных, состоящую из нескольких таблиц со связями между ними. Ниже приведены варианты для самостоятельной работы, в которых в общих чертах описывается предметная область. Вы можете дополнить ее, используя свои представления о работе системы, так чтобы было, по крайней мере, 3 таблицы.
Вариант 1.
Данные для простой складской системы. База данных должна содержать следующую информацию: уникальный номер поставщика, фамилию, имя, отчество поставщика, название города местонахождения поставщика, а также уникальный номер детали, ее название, цвет, вес и название города хранения деталей этого типа.
Вариант 2.
Сведения об участниках конкурса бальных танцев. База данных должна содержать следующую информацию: фамилию, имя, отчество участника, город, фамилию тренера, оценки за каждый танец.
Вариант 3.
Сведения об успеваемости студентов. База данных должна содержать следующую информацию: фамилию, имя, отчество студента, номер группы, в которой обучается студент, название учебной дисциплины, номер задания, коэффициент сложности, оценку данного студента по данной дисциплине за данное задание от 0 до 1 (как доля сделанной работы).
Вариант 4.
Сведения о месячной зарплате рабочих. База данных должна содержать следующую информацию: фамилию, имя, отчество рабочего, название цеха, в котором он работает, дату поступления на работу. По заработной плате необходимо хранить информацию о ее размере, стаже работника, его разряде и должности.
Вариант 5.
Учет изделий, собранных в цехе за неделю. База данных должна содержать следующую информацию: фамилию, имя, отчество сборщика, количество изготовленных изделий за каждый день недели раздельно, название цеха, а также тип изделия и его стоимость.
Вариант 6.
Учет изделий категорий А, В, С, собранных рабочим цеха за месяц. База данных должна содержать следующую информацию: фамилию, имя, отчество рабочего, название цеха, количество изделий по категориям, количество рабочих в цехе и фамилию начальника цеха.
Вариант 7.
Сведения об абонентах АТС. База данных должна содержать следующую информацию: фамилию, имя, отчество владельца телефона, год установки телефона, номер телефона, тип установки телефона (спаренный или нет), льготу (процентную скидку при оплате).
Вариант 8.
Сведения об ассортименте игрушек в магазине. База данных должна содержать следующую информацию: название игрушки, ее цену, количество, возрастную категорию детей, для которых она предназначена, а также название фабрики и города, где изготовлена игрушка.
Вариант 9.
Результаты сессии на первом курсе кафедры ВТ. База данных должна содержать следующую информацию: индекс группы, фамилию, имя, отчество студента, пол студента, семейное положение и оценки по пяти экзаменам.
Вариант 10.
Учет рейтинга теннисистов за 5 лет. Каждая запись содержит поля: фамилия, имя, отчество спортсмена, пол, год рождения, фамилия, имя, отчество тренера, названия стран и пять полей с рейтингом.Вариант 11.
Сведения о рейсах Аэрофлота. База данных должна содержать следующую информацию: номер рейса, пункт назначения, время вылета, время прибытия, количество свободных мест, тип самолета и его вместимость.
Вариант 12.
Сведения об ассортименте обуви в магазине. База данных должна содержать следующую информацию: артикул, наименование обуви, количество пар, стоимость одной пары, имеющиеся размеры, название фабрики и срок поставки обуви в магазин.
Вариант 13.
Сведения о нападающих команд "Спартак" и "Динамо". База данных должна содержать следующую информацию: фамилию, имя, отчество, название команды, дату приема в команду, число заброшенных шайб, количество голевых передач, штрафное время и количество сыгранных матчей.
Вариант 14.
Сведения о выборе дисциплины студентом. База данных должна содержать следующую информацию: фамилию, имя, отчество студента, номер зачетной книжки и сведения о том, живет ли студент в общежитии, индекс группы, а также пять дисциплин (1 - желает изучать, 0 - не желает).
Вариант 15.
Журнал регистрации расходов в бухгалтерии. База данных должна содержать следующую информацию: номер пункта, дату перечисления, название организации-получателя, ее адрес и сведения о том, является ли организация коммерческой, а также вид затрат перечисления и общую сумму перечисления.
Вариант 16.
Учет оптовых продаж. База данных должна содержать следующую информацию: наименование товара, цену единицы товара и дату его поступления, номер партии, размер партии, названии фирмы-покупателя, размер проданной партии, цену единицы товара и дату продажи.
Вариант 17.
Учет лекарств в аптеке. База данных должна содержать следующую информацию: наименование лекарства, стоимость одной единицы, количество единиц, дату изготовления, срок годности, а также название фабрики, где производится данное лекарство, ее адрес.
Вариант 18.
Сведения о ветеранах спорта. Ассоциация ветеранов спорта проводит Всероссийские соревнования ветеранов. Для организации соревнований составляются списки участников, которые используются для размещения спортсменов в гостиницах. Для каждого спортсмена указывается гостиница, номер комнаты и количество мест в комнате. Для нужд самой ассоциации ветеранов спорта необходимо хранить информацию следующего вида: фамилию, имя, отчество спортсмена, возрастную группа, название города и вид спорта.
Вариант 19.
Учет рождаемости в роддоме. База данных должна содержать следующую информацию: фамилию, имя, отчество матери, пол ребенка, его вес, рост и дату рождения ребенка, а также ФИО лечащего врача и номер палаты, в которой находится мать ребенка.
Вариант 20
Сведения об обучающихся на курсах повышения квалификации. База данных должна содержать следующую информацию: фамилию, имя, отчество слушателя, его пол и адрес, тип организации (коммерческая, государственная и т. д.), наименование организации, должность слушателя и оценки по прослушанным дисциплинам (маркетинг, финансы и кредит) для каждого слушателя.Вариант 21.
Сведения о размере стипендии студента. База данных должна содержать следующую информацию: фамилию, имя, отчество студента, группу, адрес, по которому проживает студент, размер стипендии, а также фамилию преподавателя, читаемую дисциплину, дату экзамена и оценку, полученную студентом.Вариант 22.
Учет поступления больных. База данных должна содержать следующую информацию: фамилию, имя, отчество больного, его пол, дату рождения, дата поступления, начальный диагноз, степень тяжести состояния больного, номер палаты, куда был помещен больной, и фамилию, имя, отчество лечащего врача.Вариант 23.
Учет призывников. База данных должна содержать следующую информацию: фамилию, имя, отчество призывника, год его рождения, адрес, семейное положение, дату прохождения медкомиссии, заключение о пригодности к службе.
Вариант 24.
Учет золотых изделий в ювелирном магазине. База данных должна содержать следующую информацию: вид изделия, его вес, пробу, дату поступления и стоимость, а также фамилию, имя, отчество мастера-изготовителя, стаж его работы и разряд (1,2,3).