Какой хостинг выбрать. Обзор Fornex.com, партнёрская программа и услуги: Выделенные серверы, SSD VPS/VDS, SSD Хостинг, AntiDDoS, Бэкап, VPN …

Какой хостинг выбрать. Обзор Fornex.com, партнёрская программа и услуги: Выделенные серверы, SSD VPS/VDS, SSD Хостинг, AntiDDoS, Бэкап, VPN …

-

Если посмотреть на список услуг хостинга Fornex, то видно, что не в последнюю очередь он ориентируется на веб-мастеров. Во-первых, кроме традиционных предложений есть: AntiDDoS защита,  организация Backup, VPN и создание GEO-кластера. Во-вторых, имеется бесплатная базовая поддержка, партнерская программа, помощь с переносом проектов и хорошая цена/качество на SSD/VPS хостинг. К тому же среди клиентов Pikabu,Читать далее… >

...не вы съели идею, а вас съела идея (Ф.М. Достоевский).

База данных – Вторая нормальная форма (2NF)

1 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
27 апреля 2017
База данных - Вторая нормальная форма (2NF)
Вторая нормальная форма утверждает, что она должна соответствовать всем правилам 1NF и не должно быть никаких частичных зависимостей любого из столбцов первичного ключа.

Рассмотрим отношение клиента заказ, вы хотите сохранить идентификатор клиента, имя клиента, идентификатор заказа и детали заказа и дату покупки:

CREATE TABLE CUSTOMERS(
   CUST_ID    INT              NOT NULL,
   CUST_NAME VARCHAR (20)      NOT NULL,
   ORDER_ID   INT              NOT NULL,
   ORDER_DETAIL VARCHAR (20)  NOT NULL,
   SALE_DATE  DATETIME,
   PRIMARY KEY (CUST_ID, ORDER_ID)
);

 

Эта таблица находится в первой нормальной форме; в том, что она подчиняется всем правилам первой нормальной формы. В этой таблице первичный ключ состоит из CUST_ID и ORDER_ID. В совокупности они являются уникальными исходя из того же клиента вряд ли бы заказать то же самое.

Однако таблица не во второй нормальной форме, потому что есть частичные зависимости первичных ключей и столбцов. CUST_NAME зависит от CUST_ID и нет никакой реальной связи между именем клиента и то, что он приобрел. Детали заказа и дата покупки также зависит от ORDER_ID, но они не зависят от CUST_ID, потому что нет никакой связи между CUST_ID и ORDER_DETAIL или их SALE_DATE.

Для того, чтобы эта таблица соответствовала второй нормальной форме, необходимо отделить столбцы на три таблицы.

Во-первых, создать таблицу для хранения информации о клиенте, как показано в блоке кода ниже:

CREATE TABLE CUSTOMERS(
   CUST_ID    INT              NOT NULL,
   CUST_NAME VARCHAR (20)      NOT NULL,
   PRIMARY KEY (CUST_ID)
);

 

Следующим шагом является создание таблицы для хранения сведений о каждом заказе:

CREATE TABLE ORDERS(
   ORDER_ID   INT              NOT NULL,
   ORDER_DETAIL VARCHAR (20)  NOT NULL,
   PRIMARY KEY (ORDER_ID)
);

 

И, наконец, создать третью таблицу, хранящую только CUST_ID и ORDER_ID, чтобы держать след всех заказов для клиента:

CREATE TABLE CUSTMERORDERS(
   CUST_ID    INT              NOT NULL,
   ORDER_ID   INT              NOT NULL,
   SALE_DATE  DATETIME,
   PRIMARY KEY (CUST_ID, ORDER_ID)
);

 

Просмотров: 222

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

    Комментарии:

    Добавить комментарий

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    18 − десять =

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам:

    Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

    badge
    Обратный звонок 1
    Отправить
    galka

    Спасибо! Ваша заявка принята

    close
    galka

    Спасибо! Ваша заявка принята

    close