Базы данных. Курс лекций. Учебное пособие. Рамиля Рамисовна Латыпова

Читать онлайн.
Название Базы данных. Курс лекций. Учебное пособие
Автор произведения Рамиля Рамисовна Латыпова
Жанр Техническая литература
Серия
Издательство Техническая литература
Год выпуска 0
isbn 9785392191512



Скачать книгу

таблице не должно быть повторяющихся записей;

      2. Каждое поле таблицы должно быть неделимым (атомарным), т. е. на пересечении строки и столбца должен быть атомарный объект;

      3. В таблице должны отсутствовать повторяющиеся группы полей.

      Рассмотрим пример нормализации таблицы «Продажи», в которой содержится 21 поле (табл. 3).

      Таблица 3

      Продажи

      Номер

      Поле

      Тип поля

      1

      Фамилия

      Текст

      2

      Имя

      Текст

      3

      Отчество

      Текст

      4

      Телефон

      Текст

      5

      Факс

      Текст

      6

      Индекс

      Текст

      7

      Страна

      Текст

      8

      Город

      Текст

      9

      Адрес

      Текст

      10

      Название предприятия

      Текст

      11

      Руководитель предприятия

      Текст

      12

      Web-сайт предприятия

      Текст

      13

      E-mail предприятия

      Текст

      14

      Код товара

      Числовой

      15

      Дата заказа

      Дата/время

      16

      Заказано

      Числовой

      17

      Дата продажи

      Дата/время

      18

      Продано

      Числовой

      19

      Цена

      Денежный

      20

      Категория товара

      Числовой

      21

      Наименование товара

      Текстовый

      В табл. 3 каждое поле неделимое, и никакое из полей не является уникальным.

      Таблица с такой структурой может иметь повторяющиеся группы полей, в которых будут записаны данные об одном и том же покупателе (поля с 1-го по 13-е). Чтобы привести таблицу к 1НФ, она разбивается на две таблицы: «Клиенты» и «Заказы», находящиеся в отношении «один-ко-многим».

      Поскольку ни одно из полей исходной таблицы не было уникальным, здесь в качестве первичного ключа таблицы «Клиенты» лучше ввести новое поле – «Код клиента». Это поле будет внешним ключом в таблице «Заказы» (рис. 11).

      

      Рис. 11. Разбиение со связью «один-ко-многим»

      В таблице «Заказы» ни одно из полей не является уникальным, поэтому в качестве первичного ключа можно добавить поле «Код заказа» или использовать комбинацию трех полей – «Код клиента», «Код заказа» и «Дата заказа» – в качестве составного ключа (если один клиент делает один заказ в день). Рассмотрим второй вариант – таблицу с составным первичным ключом. Такая таблица должна удовлетворять требованиям 2-й нормальной формы (2НФ).

      Таблица находится во 2НФ, если удовлетворены два условия:

      1. Таблица удовлетворяет условиям 1НФ;

      2. Любое неключевое поле однозначно