- •Введение
- •Введение в системы управления базами данных
- •Основные понятия баз данных
- •Некоторые правила построения баз данных
- •Реляционные отношения между таблицами. Целостность данных
- •Отношение «один-к-одному»
- •Отношение «один-ко-многим»
- •Отношение «многие-ко-многим»
- •Нормализация
- •Индексирование
- •Использование языка sql ms access
- •Общие сведения о ms access
- •Запуск ms Access
- •Порядок работы при создании объектов Объект Таблица.
- •Объект Форма.
- •Объект Запрос.
- •Объект Отчёт.
- •Объект Макрос.
- •Автоматический запуск макроса.
- •Регистрация дат создания и изменения записей с помощью макроса.
- •Объект Модуль.
- •Использование субд Microsoft Access на примере создания базы данных по учету товаров
- •Использование суБд access на примере задачи об открытии фирмы по продаже жилья
- •Использование суБд access на примере ведения карточки студента
- •Практические задания для самостоятельной работы
- •База «Жители» состоит из 3-х следующих таблиц: «Район», «Здание», «Жильцы».
- •Вариант 2. "Жильё"
- •Вариант 3. "Население"
- •Вариант 4. "Вакансии"
- •Вариант 5. "Автомагазины"
- •Вариант 6. "Реализация"
- •Вариант 7. "Поставщики-детали"
- •Вариант 8. "Покупатели"
- •Вариант 9. "Станции техобслуживания"
- •Вариант 10. "Магазины запчастей"
- •Вариант 11. "Больница"
- •Вариант 12. "Служащие"
- •Контрольные вопросы по теме
- •Список литературы
-
Нормализация
Для правильной организации данных в таблицах используется понятие нормализации. Нормализация данных - процесс исключения избыточной информации, при котором достигается то, что каждый элемент информации запоминается только один раз. Теория и практические рекомендации по нормализации рассматриваются в книгах по реляционным базам данных, например, [3].
Нормализация нужна также для повышения эффективности БД. Сразу следует оговориться, что нормализуется вся база, при этом вносятся изменения в отдельные таблицы, при необходимости создаются новые, устанавливаются связи между ними и т.д.
В общем случае, нормализация - это процесс последовательного приведения базы к нормальным формам. Известно, что нормальных форм в теории БД существует шесть, но обычно останавливаются на третьей, иногда на второй.
Первая нормальная форма. Первая нормальная форма требует, чтобы каждое поле таблицы было неделимым и не содержало повторяющихся групп.
Неделимость означает, что поле является атомарным, т.е. не должно делиться на более мелкие.
Неповторяемость означает, что нет повторяемых значений полей в одной записи. Имеется в виду не та ситуация, когда указано несколько полей с одинаковыми значениями. Например, рассмотрим таблицу для реализации записной книжки. Какие поля здесь необходимы? Фамилия, имя, телефон, e-mail... А может несколько телефонов, e-mail? В наше время почти у каждого есть и рабочий, и домашний, и мобильный телефоны. Так сколько таких полей ввести в таблицу? Правильнее всего будет создать еще одну таблицу с телефонами, а в ней поместить ссылку на первую (смотри рисунок 1.4). Тогда можно будет для каждого абонента указать произвольное число телефонов.
Код |
Фамилия |
Адрес.... |
|
Чей |
Какой |
Номер |
1 |
Иванов |
|
|
1 |
Рабочий 1 |
23-45-67 |
2 |
Петров |
|
|
1 |
Рабочий 2 |
23-45-98 |
|
|
|
|
1 |
Домашний |
11-34-98 |
|
|
|
|
2 |
Домашний |
45-09-87 |
|
|
|
|
... |
... |
... |
Рис. 1.4. Таблицы записной книжки
Этот процесс называется разбиением таблицы на главную и подчиненную. При этом обе таблицы находятся в отношении "один-ко-многим".
Вторая нормальная форма. Вторая нормальная форма требует, во-первых соответствия первой нормальной форме. А во-вторых, чтобы каждая строка таблицы однозначно и не избыточно определялась первичным ключом.
Третья нормальная форма. Третья нормальная форма требует, во-первых, соответствия второй. А во-вторых, чтобы значение любого поля, не входящего в первичный ключ, не зависело от других полей, не входящих в первичный ключ.
Рассмотрим приведение БД к третьей нормальной форме на примере решения задачи автоматизации процесса отпуска товаров со склада по накладной. В начале, представим необходимые для этой задачи показатели в виде одной таблицы (смотри таблицу 1.1).
Таблица 1.1. ОТПУСК-ТОВАРОВ-СО-СКЛАДА
Дата Покупатель Город Адрес Товар Ед_измерения Цена_за_ед_изм Отпущено_ед Общая_стоимость Номер_накладной |
Далее осуществим ее нормализацию. На рисунке 1.5 изображена схема этой БД, приведенной к третьей нормальной форме.
ТОВАРЫ ПОКУПАТЕЛИ
НАКЛАДНЫЕ
ОТПУСК_ТОВАРОВ_СО_СКЛАДА
Рис. 1.5. Схема базы данных для накладной отпуска товаров
Рассмотрим все плюсы и минусы нормализации данных:
«+»:
-
информация нигде не дублируется, здесь присутствует только один элемент избыточных данных – поля связи;
-
в случае изменений в данных эти изменения нужно проводить только в одном месте.
«-»:
-
чем шире число сущностей, охватываемых предметной областью, тем из большего числа таблиц будет состоять нормализованная БД;
-
уменьшается целостное восприятие БД как системы взаимосвязанных данных;
-
при составлении запросов необходимо считывать связанные данные из нескольких таблиц.
При работе с данными большого объема необходимо искать компромисс между требованиями нормализации, что экономит дисковое пространство, и необходимостью улучшения быстродействия системы. Считается, что первых трех нормальных форм достаточно для большинства практических применений.