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

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

СКАЧАТЬ style="font-size:15px;">      Адрес

      Текст

      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. Любое неключевое поле однозначно идентифицируется полным набором ключевых полей.

      Очевидно, что в таблице «Заказы» второе условие не выполняется, поскольку поля «Категория» и «Наименование товара» зависят только от поля «Код товара». Чтобы привести таблицу к 2НФ, нужно выделить эти поля в отдельную таблицу с наименованием «Товар» (рис. 12).

      

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

      Рассмотрим далее таблицу «Клиенты». Здесь нет составного ключа, поэтому требования 2НФ выполнены автоматически и требуется рассматривать третью нормальную форму (3НФ).

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

      Иначе говоря, все неключевые поля должны быть независимы. Если какие-то поля зависят не от ключа, а от другого неключевого СКАЧАТЬ