Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / Конспект (Архитектуры обработки данных + SQL).doc
Скачиваний:
74
Добавлен:
10.12.2013
Размер:
336.9 Кб
Скачать
    1. Первичные ключи. Что выбрать в качестве первичных ключей для каждой из таблиц?

Рассмотрим таблицу Клиент. Среди ее столбцов очевидным кандидатом на первичный ключ является Название. Однако эта комбинация будет удовлетворять нас, пока таблица не разрастется до такой степени, что в ней появятся фирмы с одинаковыми названиями. Например, как только в таблице появятся два филиала (с одинаковыми названиями) одной и той же фирмы, поле Название перестанет однозначно идентифицировать каждый филиал.

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

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

- естественный первичный ключ (однозначно идентифицирует строку)

- суррогатный ключ (создан исключительно для удобства)

Первичные ключи могут быть простыми и составными. Примерами простых первичных ключей могут служить Idn (таблицы Города, Группы, Склад и т.д.), составных – Idn_группы и Idn_мат.цен (таблица Мат.ценности).

Примечание: выбор первичных ключей является одним из основных шагов при проектировании базы данных. Несмотря на их важность, ранние версии SQL не поддерживали определение первичных ключей. ANSI-стандарт SQL 1992 года, принятый сегодня большинством производителей, поддерживает предложение PRIMARY KEY в инструкции CREATE TABLE.

    1. Нормализация данных.

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

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

Выделяют две основные причины неопределенностей:

  • Неоднозначность (т.е. одни и те же данные располагаются в различных таблицах, при этом изменения внесенные в поле цена /Таблица Перемещение/ не приведут к изменениям в поле цена /Таблица Остатки/; как следствие - один и тот же товар одновременно имеет две различные цены в одной базе данных)

  • Противоречивость (чаще всего является результатом неоднозначности; когда, например, по одним данным какой-либо товар находится на складе NN, а по другим – его /товара/ вообще нет).

Ф. Код выделил существование 5 форм нормализации. Но на практике обычно используют первые три нормальные формы.

      1. Первая нормальная форма.

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

Занимаясь поисками повторяющихся полей, разбейте на компоненты все составные столбцы: например в «отделе кадров» столбец ФИОнужно разбить на два столбца -ФамилияиИмя Отчество, поскольку человек по тем или иным причинам может поменять фамилию. (Возможен вариант отдельного хранения столбцовИмяиОтчествопо той же причине, что иФамилия).

Соседние файлы в папке Программирование