Разместим имеющиеся данные в одну таблицу:

Поле Адрес покупателя можно разделить на две части: Город и собственно Адрес. Поле Товар будет исключено, так как оно включает в себя значения повторяющихся групп (наименование: товар1, товар2 и т. д.; ед. изм: ед. изм1, ед. изм2 и т. д.).

Отпуск каждого товара должен фиксироваться в отдельной записи. Получилась первая нормальная форма.

4.3.2  Вторая нормальная форма

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

Определим для нашего примера первичный ключ.

Например, в его состав включим поля «Дата», «Покупатель», «Номер накладной» и «Товар» (рисунок 7.2). Нетрудно заметить, что первичный ключ является избыточным: поле «Номер накладной» однозначно определяет дату и покупателя.

Рисунок 7.2 – Первый этап приведения таблицы к 2НФ

Оставим в составе первичного ключа поля «Товар» и «Номер накладной». Именно такое сочетание полей позволит идентифицировать каждую запись в таблице.

Рисунок 7.3 – Второй этап приведения таблицы к 2НФ

Рассмотрим зависимость полей таблицы от первичного ключа (рисунок 7.3). Поля «Ед. изм.», «Цена за ед. изм.» зависят только от значения «Товар», поэтому выделяем эти поля в самостоятельную таблицу «Товары». Поле «Покупатель» зависит только от значения поля «Номер накладной», поэтому его и зависящие от него поля «Город» и «Адрес» выделяем в отдельную таблицу «Покупатель». По такому же принципу формируем таблицу «Накладная», включающие поля «Дата» и «Номер накладной».

НЕ нашли? Не то? Что вы ищете?

Почему нужно приводить отношение ко второй нормальной форме? Рассмотрим ситуацию, когда у покупателя сменился адрес. В первом случае (1 НФ) необходимо найти все записи с данным покупателем и изменить значение в поле Адрес на новое. Покупатель, являющийся постоянным клиентом, может иметь очень много накладных на отпуск товаров. Во втором случае (2НФ) меняется только один кортеж в отношении «Покупатели». Кроме этого в таблицу «Покупатели» мы можем внести сведения о потенциальных клиентах фирмы, которые еще не получили ни одной накладной.

4.3.3  Третья нормальная форма

Третья нормальная форма (3НФ) требует, чтобы таблицы были приведены ко 2НФ, и в таблице не имелось функциональных зависимостей между неключевыми полями.

В таблице Накладная имеется зависимость значения поля Сумма от значения поля Количество и Цена из таблицы Товар. Удалив поле Сумма, получим приведенную к 3НФ структуру базы данных.

4.3.4  Нормализация – за и против

Нормализация призвана устранить из таблиц избыточную информацию для экономии дискового пространства. Но чем шире число сущностей, охватываемой предметной областью, тем из большего числа таблиц будет состоять нормализованная база данных. Поэтому с увеличением числа нормализованных таблиц уменьшается целостное восприятие базы данных как системы взаимосвязанных данных. Другим недостатком нормализованной БД, с точки зрения быстроты получения результата, является необходимость считывать информацию из разных таблиц при выполнении запросов. Поэтому, при работе с данными большого объема приходится искать компромисс между требованиями нормализации и необходимостью улучшения быстродействия системы.

4.4  Реляционная алгебра

4.4.1  Основные операции

Теоретические основы реляционной алгебры заложили в начале 20-го века два логика: американец Пирс и немец Шредер. Эдгар Кодд в 1970 году сформулировал основные понятия и ограничения реляционной модели, выделил основные (теоретико-множественные) и дополнительные (специальные реляционные) операции реляционной алгебры.

Теоретико-множественные операции:

-  объединение;

-  пересечение;

-  вычитание;

-  декартово произведение.

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

Рисунок 8.1 – Иллюстрация теоретико-множественных операций

Специальные реляционные операции:

-  выборка;

-  проекция;

-  соединение;

-  деление.

На рисунке 8.2 показана иллюстрация специальных реляционных операций.

 

.

Рисунок 8.2 – Иллюстрация специальных реляционных операций

4.4.2  Синтаксис теоретико-множественных операций

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

R1- детали, выпускаемые на участке 1

Код детали

Название

001

Гайка М1

002

Гайка М2

004

Болт М1

005

Болт М2

R2 – детали, выпускаемые на участке 2

Код детали

Название

001

Гайка М1

003

Гайка М3

004

Болт М1

006

Болт М3

Объединение

или R1 UNION R2.

где - отношения, где r1 и r2 – соответственно кортежи отношений R1 и R2

- знак объединения;

* - операция логического сложения «ИЛИ».

R3 - объединение (общая номенклатура деталей цеха)

Код детали

Название

001

Гайка М1

002

Гайка М2

003

Гайка М3

004

Болт М1

005

Болт М2

006

Болт М3

Пересечение

Пересечением отношений называется отношение, которое содержит множество кортежей, принадлежащих и первому и второму отношению.

или R1 INTERSECT R2.

* - знак пересечения;

* - операция логического умножения «И».

R4 - пересечение (детали, выпускаемые одновременно на двух участках)

Код детали

Название

001

Гайка М1

004

Болт М1

Разность (вычитание)

Разностью отношений называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2 (и наоборот).

, ,

или R1 MINUS R2 R2 MINUS R1.

R5 - разность (детали, изготавливаемые только на участке 1)

Код детали

Название

002

Гайка М2

005

Болт М2

R6 - разность (детали, изготавливаемые только на участке 2)

Код детали

Название

003

Гайка М3

006

Болт М3

Расширенное декартово произведение

или R7 TIMES R8`

R7 - обязательная номенклатура деталей для всех цехов

Код детали

Название

001

Гайка М1

002

Гайка М2

003

Гайка М3

004

Болт М1

005

Болт М2

006

Болт М3

R8 - перечень цехов завода

Цех

Цех 1

Цех 2

R9 - каждый цех изготовляет все требуемые детали

Код детали

Название

Цех

001

Гайка М1

Цех 1

002

Гайка М2

Цех 1

003

Гайка М3

Цех 1

004

Болт М1

Цех 1

005

Болт М2

Цех 1

006

Болт М3

Цех 1

001

Гайка М1

Цех 2

002

Гайка М2

Цех 2

003

Гайка М3

Цех 2

004

Болт М1

Цех 2

005

Болт М2

Цех 2

006

Болт М3

Цех 2

4.4.3  Синтаксис специальных операций

Горизонтальный выбор (операция фильтрации)

Выборка возвращает отношение, содержащее некоторые кортежи из данного отношения, которые удовлетворяют определенным условиям

При этой операции задается условие фильтрации и проверяется его выполнение. Все кортежи, соответствующие условию фильтрации, образуют требуемую выборку. Например, выбрать из R9 детали с кодом «001»:

R10 = R9 [Код детали = «001»] или R9 WHERE Код детали=001

R10 - детали «001»

Код детали

Название

Цех

001

Гайка М1

Цех 1

001

Гайка М1

Цех 2

Вертикальный выбор (операция проектирования)

Проекция возвращает отношение, содержащее все кортежи данного отношения после исключения из него некоторых атрибутов

Например, необходимо в отдельной таблице представить все цеха, изготавливающие деталь «Болт М1». Для этого необходимо выбрать детали с заданным названием, а потом полученное отношение спроектировать на столбец «Цех».

R11 = R9 [Название детали = «Болт М1»]

R12 = R9 [Цех]

R11 - детали «Болт М1»

Код детали

Название

Цех

001

Болт М1

Цех 1

001

Болт М1

Цех 2

R12

Цех

Цех 1

Цех 2

Операция условного соединения

Соединение возвращает отношение, кортежи которого – это сочетание двух кортежей, имеющих общее значение для одного или нескольких атрибутов. Общее значение в результирующем кортеже появляется только один раз

Для этой операции исходными являются два отношения, а результатом – одно.

Требуется определить перечень деталей, изготавливаемые на участке 1 (см выше отношение R1) из стали «Ст1»

R13 JOIN R1

R13 - таблица материалов

R1- детали, выпускаемые на участке 1

Код детали

Название

001

Гайка М1

002

Гайка М2

004

Болт М1

005

Болт М2

 

Код детали

Название

Материал

001

Гайка М1

Ст1

002

Гайка М2

Ст2

003

Гайка М3

Ст3

004

Болт М1

Ст1

005

Болт М2

Ст2

006

Болт М3

Ст3

R14 - детали из Ст1, выпускаемые на участке 1

Название

Гайка М1

Болт М1

Деление для двух отношений бинарного и унарного возвращает отношение, содержащее все значения одного атрибута бинарного отношения, которые соответствуют (в другом атрибуте) всем значениям унарного типа.

Заключение

Хотя обработка баз данных всегда была важной темой, популярность Интернета сделала ее еще и одной из самых нужных специальностей. Цель базы данных — помочь людям и организациям вести учет различных вещей. Хотя для этой цели можно использовать списки, они вызывают множество проблем. Их сложно изменять без возникновения несоответствий, удаления из списков могут иметь непредвиденные последствия, а неполные данные трудно записывать. Кроме того, вводя данные, легко вызвать их противоречивость. Наконец, различные части организации хотят поддерживать некоторые данные совместно, а некоторые — исключительным образом. Это трудно организовать при использовании списков.

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

Система базы данных состоит из четырех основных элементов: пользователи, приложения базы данных, СУБД и сама база данных. Пользователи применяют базу данных для решения своих задач. Приложения производят формы, запросы и отчеты, выполняют логику приложения и управляют обработкой базы. СУБД создает, обрабатывает и администрирует базу данных. База данных — это самодокументированное собрание интегрированных записей. Она содержит пользовательские данные, метаданные, индексы, хранимые процедуры, триггеры и метаданные приложения. Хранимая процедура — это программа, которая обрабатывает участок базы данных и хранится в базе данных. Триггер — это процедура, которая вызывается при наступлении определенного события. На рис. 1.6 показаны функции компонентов базы данных.

Технология баз данных может использоваться в широком спектре приложений. Некоторые базы данных используются одним человеком, другие — группой людей, а третьи — большими организациями.

Подобно всем информационным системам, системы баз данных разрабатываются в течение трех фаз: формулирования требований, проектирования и реализации. Во время фазы формулирования требований разрабатывается модель данных, или логическое представление структуры базы данных. Модели данных важны, потому что от них зависит проектирование базы данных и приложения. Диаграмма сущность—связь — средство, используемое для представления модели данных.

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

Разработка приложения идет параллельно с разработкой базы данных. Большая часть этой книги посвящена разработке базы данных, но проектирование и построение запросов и создание кода приложения также будут рассматриваться в последующих главах. Существенные события в истории обработки баз данных показаны в табл. 5.

Список литературы

1.  . Microsoft Access 2010. Разработка приложений на реальном примере. +CD. – М.:BHV, 2010, 496 стр.

Microsoft

Рассматриваются этапы создания приложений баз данных в файл-серверной и клиент-серверной архитектурах. Описывается работа с Microsoft Access 2010 (клиент) и Microsoft SQL Server 2008 (сервер). На примере небольшой, но реальной базы данных показан процесс создания простого Access-приложения и выполнена его модификация, придавшая приложению основные черты профессиональной разработки. Даны практические приемы перевода созданного программного комплекса в архитектуру "клиент-сервер".

Для студентов, преподавателей, программистов и разработчиков баз данных

2.  . Основы использования и проектирования баз данных. Учебное пособие для вузов. Гриф УМО. - М.: Высшее образование, 2011, 213 стр.

ОсновыВ учебном пособии содержатся теоретические и практические сведения о современных системах управления базами данных (СУБД), об использовании и проектировании баз данных. Рассматриваются языковые и программные средства СУБД и систем автоматизации проектирования баз данных. Приведены примеры создания инфологических и даталогических моделей, позволяющие студентам научиться проектировать базы данных. Предназначено для студентов, обучающихся по направлению "Информатика и вычислительная техника".

3.  , , . Управление данными. Учебник для студентов высших учебных заведений. Гриф УМО вузов России. – М.: Academia (Академпресс), 2010, 256 стр.

УправлениеРассмотрены вопросы проектирования информационных систем, организации и обработки данных, создания и эксплуатации компьютерных баз данных. Основное внимание уделено освещению методов, средств анализа и моделирования предметных областей, проектированию схем реляционных баз данных, а также изучению средств манипулирования данными современных промышленных систем управления базами данных. Приведены многочисленные примеры и задания, способствующие закреплению навыков студентов в части проектирования, создания и использования реляционных баз данных. Для студентов очной и заочной форм обучения, аспирантов, преподавателей. Может быть использован для повышения квалификации специалистов.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3