Нормализация базы данных
Схемой базы данных называется структура связей между полями и таблицами.
Нормализацией схемы базы данных называется процедура, производимая над базой данных с целью удаления в ней избыточности.
Нормализация несет с собой немало преимуществ. Очевидно, что в нормализованной базе данных уменьшается вероятность возникновения ошибок, она занимает меньше места на жестком диске и т.д.
Теоретическая часть.
1.1.Описание предметной области.
Вы работаете в парикмахерской.
Ваша парикмахерская стрижет клиентов в соответствии с их пожеланиями и некоторым каталогом различных видов стрижки. Так, для каждой стрижки определены название, принадлежность полу (мужская, женская), стоимость работы. Для наведения порядка Вы, по мере возможности, составляете базу данных клиентов, запоминая их анкетные данные (фамилия, имя, отчество). Начиная с 5-ой стрижки, клиент переходит в категорию постоянных и получает скидку в 3% при каждой последующей стрижке. После того, как закончена очередная работа, в кассе фиксируются стрижка, клиент и дата производства работ.
У Вашей парикмахерской появился филиал, и Вы хотели бы видеть, в том числе, и раздельную статистику по филиалам. Кроме того, стоимость стрижки может меняться с течением времени. Нужно хранить не только последнюю цену, но и все данные по изменению цены стрижки.
1.2.Семантические допущения.
ü Стоимость стрижки может меняться.
ü Скидки зависят от количества стрижек.
ü Для каждой стрижки определены цена и вид.
ü Для каждого клиента существует определенный код.
ü Код каждого посетителя индивидуален.
ü Клиент из категории постоянных должен быть посетителем данной парикмахерской не менее 5 раз.
1.3.Назначение информационных систем (функции).
· Данная информационная система предназначена для контроля доходов и парикмахерской, подсчета количества посетителей данной парикмахерской.
С информацией будет работать хозяин парикмахерской, и он должен иметь возможность решать с ее помощью следующие задачи:
1. Ввод и редактирование данных о клиентах парикмахерской в удобной форме.
2. Просмотр данных о клиентах.
3. Определение численности контингента в каждом филиале.
4. Вычисление количества посещений парикмахерской каждым клиентом.
5. Вычисление скидки каждого клиента, определение, является ли данный клиент постоянным.
6. Организация поиска по фамилии, дате произведенных работ.
7.Контроль над доходами.
1.4. Выделение информационных объектов с указанием первичных и внешних ключей
По стрижке
Код стрижки
Название
Пол
Стоимость
По клиенту
Код клиента
Фамилия
Имя
Отчество
Статус
По процессу
Номер процесса
Код клиента
Код стрижки
Код филиала
Дата
По филиалу
Филиал
Код филиала
Код стрижки
Код клиента
По изменению ценыПо скидке
Код стрижки Статус
Дата изменения %
стоимости
Стоимость .
1.)стрижка (код стрижки, название, пол, цена)
2.)изменение цены (код стрижки, дата, цена)
3.)клиент (код клиента, фамилия, имя, отчество, пол, статус)
4.)скидка (статус, %)
5.)филиал (код филиала, название, адрес, контактный телефон)
6.)процесс (код клиента, код стрижки, код филиала, дата, имя, фамилия, отчество, пол, статус, %)
1.5. Нормализация.
1.)стрижка (код стрижки, название, пол)
2.)изменение цены (код стрижки, дата, цена)
3.)клиент (код клиента, фамилия, имя, отчество, пол, статус)
4.)скидка (статус, %)
5.)филиал (код филиала, название, контактный телефон, адрес)
6.)процесс (код клиента, код стрижки, код филиала, дата)
1.6.Концептуальная модель.
Стрижка |
Процесс |
Скидка |
Клиент |
Филиалы |
Изменение цены |
Создание базы данных.
1.Разработка структуры БД
Удачная разработка базы данных обеспечивает простоту ее поддержания. Данные следует сохранять в таблицах, причем каждая таблица должна содержать информацию одного типа, например, сведения о поставщиках. Тогда достаточно будет обновить конкретные данные, такие как адрес, только в одном месте, чтобы обновленная информация отображалась во всей базе данных.
Одним из наиболее сложных этапов в процессе проектирования базы данных является разработка таблиц, так как результаты, которые должна выдавать база данных (отчеты, выходные формы и др.) не всегда дают полное представление о структуре таблицы.
При проектировании таблиц лучше разработать структуру на бумаге и только затем начинать работу с СУБД Access. При проектировке таблиц, рекомендуется руководствоваться следующими основными принципами:
- Не должно быть повторений и между таблицами.
Когда определенная информация храниться только в одной таблице, то и изменять ее придется только в одном месте. Это делает работу более эффективной, а также исключает возможность несовпадения информации в разных таблицах. Например, в одной таблице должны содержаться статус и фамилии клиентов.
- Каждая таблица должна содержать информацию только на одну тему. Сведения на каждую тему обрабатываются намного легче, если содержаться они в независимых друг от друга таблицах.
Каждая таблица содержит информацию на отдельную тему, а каждое поле в таблице содержит отдельные сведения по теме таблицы. При разработке полей для каждой таблицы необходимо помнить:
- Каждое поле должно быть связано с темой таблицы.
- Не рекомендуется включать в таблицу данные, которые являются результатом выражения.
- В таблице должна присутствовать вся необходимая информация.
- Информацию следует разбивать на наименьшие логические единицы (Например, поля «Имя» и «Фамилия», а не общее поле «Имя»).
2. Инфологическое проектирование
Первым этапом и самым главным этапом в процессе проектирования и создания базы данных, является разработка инфологической модели.
Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся.
Связь – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи.
Между двумя сущностям, например, А и В возможны четыре вида связей.
Первый тип – связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В:
Студент может не "заработать" стипендию, получить обычную или одну из повышенных стипендий.
Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.
Квартира может пустовать, в ней может жить один или несколько жильцов.
Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕ-КО-МНОГИМ (М:N). Но в нашей работе такие типы связи нам не следует употреблять.
Для базы данных парикмахерской соответствует следующая схема(рис 1):
клиент | процесс | скидка | изменение цены | филиал | стрижка |
Код клиента | Код клиента | Статус | Дата | Адрес | Код стрижки |
Пол | Код стрижки | % | Код стрижки | Номер телефона | Название |
Статус | Код филиала | Цена | Название | Пол | |
Фамилия | Дата | Код филиала | |||
Имя | |||||
Отчество |
Рис 1.
В таблицах данные распределяются по столбцам (которые называют полями) и строкам (которые называют записями). Все данные, содержащиеся в поле таблицы, должны иметь один и тот же тип. Каждое поле таблицы характеризуется наименованием, типом и шириной поля. При задании типа данных поля можно также указать размер, формат и другие параметры, влияющие на отображение значения поля и точность числовых данных. Основные типы данных:
- Текстовый. Текст или числа нетребующие проведения расчётов.
- МЕМО. Поле этого типа предназначено для хранения небольших текстовых данных (до 64000 символов). Поле этого типа не может быть ключевым или проиндексированным.
- Числовой. Этот тип данных содержит множество подтипов. От выбора подтипа (размера) зависит точность вычислений.
- Счётчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся при добавлении новой записи в таблицу.
- Логический. Логические значения, а так же поля, которые могут содержать одно из двух возможных значений.
- Денежный. Денежные значения и числовые данные, используемые в математических вычислениях.
- Дата/Время. Дата и время хранятся в специальном фиксированном формате.
- Поле объекта OLE. Включает звукозапись, рисунок и прочие типы данных. Поле этого типа не может быть ключевым или проиндексированным.
- Гиперсвязь. Содержит адреса Web-страниц.
Определим какие типы данных будут присутствовать в наших таблицах:
Для создания базы данных нужно сначала запустить программу Microsoft Office Access 2010, для этого нужно проделать следующие действия: Пуск → Программы → Microsoft Office → Microsoft Office Access 2010.
После этого откроется окно программы. Для создания новой базы данных нужно :
В поле «Доступные шаблоны» выбрать поле «Новая база данных».(рис.2)
рис.2
Для создания таблиц нажимаем на поле «Создание», выбираем пункт «Таблица»(рис.3)
Рис.3
Появляется редактор добавления таблиц (рис.4)
Рис.4
Так выглядят таблицы в режиме конструктора:
В результате заполнения полей получились следующие таблицы:
3.Реляционная схема базы данных
Реляционная база данных – это совокупность отношений, содержащих всю информацию, которая должна храниться в БД. Однако пользователи могут воспринимать такую базу данных как совокупность таблиц.
1. Каждая таблица состоит из однотипных строк и имеет уникальное имя.
2. Строки имеют фиксированное число полей (столбцов) и значений (множественные поля и повторяющиеся группы недопустимы). Иначе говоря, в каждой позиции таблицы на пересечении строки и столбца всегда имеется в точности одно значение или ничего.
3. Строки таблицы обязательно отличаются друг от друга хотя бы единственным значением, что позволяет однозначно идентифицировать любую строку такой таблицы.
4. Столбцам таблицы однозначно присваиваются имена, и в каждом из них размещаются однородные значения данных (даты, фамилии, целые числа или денежные суммы).
5. Полное информационное содержание базы данных представляется в виде явных значений данных и такой метод представления является единственным. В частности, не существует каких-либо специальных "связей" или указателей, соединяющих одну таблицу с другой.
6. При выполнении операций с таблицей ее строки и столбцы можно обрабатывать в любом порядке безотносительно к их информационному содержанию. Этому способствует наличие имен таблиц и их столбцов, а также возможность выделения любой их строки или любого набора строк с указанными признаками.
Разработаем схему данных:
Для этого нажимаем на поле «Работа с базами данных» и
выбираем «Отношения»-> «Создание схемы данных»
Далее выбираем нужные нам таблицы:
Выделяем нужную нам таблицу и нажимаем «Добавить», данную процедуру проделываем нужное нам количество раз.
Создадим связь между таблицами:
· Создадим связь между таблицами «Изменение цены» и «Процесс»: выделяем левой кнопкой мыши «Код стрижки» в таблице «Изменение цены» и передвигаем курсор на «Код стрижки» в «Процессе». Получаем связь 1-ко многим.
· Создадим связь между «Филиал» и «Процесс»: проделываем аналогичные действия с полями «Код филиала» в соответствующих таблицах.
· Создадим связь между «Процесс» и «Стрижка»: проделываем аналогичные действия с полями «Код стрижки» в соответствующих таблицах.
· Создадим связь между «Процесс» и «Клиент»: проделываем аналогичные действия с «Код клиента» соответствующих таблиц.
· Создадим связь между «Клиент» и «Скидка»: проведем аналогичные действия с «Статус» соответствующих таблиц.
В результате получаем следующую схему данных:
5.Заполнение базы данных.
В созданной базе данных существует возможность правки, добавления, просмотра всех данных. Причем за счет связей при процессе правки одной из таблиц, будут автоматически изменяться данные в других таблицах.
Формы служат для ввода и просмотра данных в удобном для пользователя виде, который соответствует привычному для него документу. При выводе данных с помощью форм можно применять специальные средства оформления.
Для создания форм : «Создание» -> «Формы» -> «Мастер форм».
Для дальнейшего создания форм необходимо выбрать поля для формы. Допускается выбор нескольких таблиц и запросов. Выбираем таблицу, из которой необходимо выбрать поля. Затем выделяем их левой кнопкой мыши и помещаем в поле «Выбранные поля» c помощью данной кнопки: . Если же необходимо добавить все поля из данной таблицы можно воспользоваться кнопкой . Затем нажимаем «Далее».
1.Создадим форму для таблицы «Изменение цены» :
Выбираем все поля из таблицы «Изменение цены» -> «Готово».
Для лучшего визуального восприятия меняем цвет фона и букв: «Свойства» -> «Макет» ->» Цвет фона», «Тип фона», «Цвет границы», «Размер шрифта».
Готовая форма для таблицы «Изменение цены».
2. Создадим форму для таблицы «Клиент».
Меняем цвет фона и размер шрифта.
Готова форма для таблицы «Клиент».
3.Создадим форму для таблицы «Стрижка».
Готовая форма для таблицы «Стрижка».
4.Создадим форму для таблицы «Филиал».
Готовая форма для таблицы «Филиал».
5.Создадим форму для таблицы «Процесс».
Готовая форма для таблицы «Процесс».
6.Создадим форму для таблицы «Скидка».
Готовая форма для таблицы «Скидка».
Теперь создадим сводную форму для всех созданных ранее форм.
Для этого «Создание» -> «Формы» -> «Навигация» .
Далее «Горизонтальные вкладки, слева».
Появляется форма навигации:
Заполняем соответствующие поля:
На правой панели мы создаем кнопки ,при нажатии которых открываются соответствующие формы:
.
Создание кнопочной формы.
1.Создание макроса:
На главной панели : «Создание» -> «Макрос».
С правого края появляется каталог микрокоманд:
Выбираем : «Объекты базы данных» -> «открыть таблицу».
Затем появляется следующее окно:
Имя таблицы: Клиент
Режим: Таблица
Режим данных: Изменение.
Так же можно добавлять различные макросы в строке «Добавить новую макрокоманду».
Затем открывает форму «Процесс» в режиме конструктора:
В «Элементах управления» находим «Кнопка».
В поле «Область данных» выделяем область предполагаемого размещения кнопки.
В Свойствах меняем цвет кнопки и имя.
Полученная кнопочная форма.
Создание запросов.
1.На главной панели : «Создание» -> «Запросы» -> «Конструктор запросов».
После чего появляется таблица «Добавление таблицы». Выбираем поле «Таблицы».Из перечисленных таблиц выбираем нужные нам : «Клиент» и «Скидка»
Далее видим следующее:
Выбираем :
Поле: код клиента, статус
Имя таблицы: Клиент,Скидка
Сортировка: по возрастанию
Вывод на экран.
Результат запроса:
2.Создание перекрестного запроса.
«Создание» -> «Запросы» -> «Мастер запросов».
Мы видим следующее: выбираем перекрестный запрос.
Выбираем следующие значения:
Результат запроса:
Создание общей формы.
Выбираем «Формы» -> «Конструктор форм».
Видим пустое поле.Добавляем кнопки.Создаем макросы в каждой из форм. Указываем в свойствах «Нажатие кнопки» соответствующий макрос.
Соответственно получаем следующее:
ЗАКЛЮЧЕНИЕ
База данных – это совокупность структурированных и взаимосвязанных данных и методов, обеспечивающих добавление выборку и отображение данных. Microsoft Access позволяет управлять всеми сведениями из одного файла базы данных. В рамках этого файла используются следующие объекты:
таблицы для сохранения данных;
запросы для поиска и извлечения только требуемых данных;
формы для просмотра, добавления и изменения данных в таблицах;
Удачная разработка базы данных обеспечивает простоту ее поддержания.
Разработанная в данном курсовом проекте база данных для решения задач документооборота в компьютерном магазине, позволяет автоматизировать весь документооборот, что позволяет разгрузить отчетный документооборот, и сократить ошибки в документации. При появлении новых производственных задач разработчик может в кратчайшие сроки реализовать их в базе данных, путем добавления строк, столбцов и целых таблиц.
Microsoft Access, обладая всеми чертами классической СУБД, предоставляет и дополнительные возможности. Access - это не только мощная, гибкая и простая в использовании СУБД, но и система для разработки работающих с базами данных приложений. С помощью Access можно создать приложение, работающее в среде Windows и полностью соответствующее потребностям по управлению данными. Используя запросы, есть возможность выбирать и обрабатывать хранящуюся в таблицах информацию. Можно создавать формы для ввода, просмотра и обновления данных, а также использовать Access для создания как простых, так и сложных отчетов. Формы и отчеты «наследуют» свойства базовой таблицы или запроса, так что в большинстве случаев необходимо указать форматы, условия на значения и некоторые другие характеристики данных только один раз. К числу наиболее мощных средств Access относятся средства разработки объектов - Мастера, которые можно использовать для создания таблиц, запросов различных типов форм и отчетов, просто выбрав с помощью мыши нужные опции.
С помощью Access также легко импортировать данные из текстовых файлов, документов текстовых процессоров и электронных таблиц (и экспортировать данные в них).
Microsoft Access имеет множество областей применения: на малом предприятии; корпорации и даже в сфере домашнего применения.