Первая нормальная форма (1NF) устанавливает основные правила организованной базы данных:
Вы должны определить элементы данных. Это означает, что глядя на данные, которые вы будете сохранять, организуйте данные в столбцах, определите, какой тип данных содержит каждый столбец, а затем, наконец, установите соответствующие столбцы в свои собственные таблицы.
Например, вы создаете все столбцы, относящиеся к местам встреч в таблицу Location, те, которые касаются членов в таблицу MemberDetails и так далее.
Следующим шагом является обеспечение того, нет ли повторяющихся групп данных. Рассмотрим мы следующую таблицу:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), ORDERS VARCHAR(155) );
Таким образом, если мы заполним эту таблицу для одного клиента, имеющего несколько заказов, то это было бы что-то, вроде показанного ниже:
ID | NAME | AGE | ADDRESS | ORDERS |
---|---|---|---|---|
12 | AndreyEx | 38 | Krasnodar | WD Caviar Blue WD10EZEX |
12 | AndreyEx | 38 | Krasnodar | INTEL Core i7 6700 |
12 | AndreyEx | 38 | Krasnodar | KINGSTON KVR16S11/8 DDR3 — 8Гб |
Но согласно 1NF, мы должны убедиться, что нет повторяющихся групп данных. Итак, давайте разобьем вышеприведенную таблицу на две части, а затем соединим их с помощью ключа, как показано в следующем примере:
Таблица CUSTOMERS:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), PRIMARY KEY (ID) );
Эта таблица будет иметь следующую запись:
ID | NAME | AGE | ADDRESS |
---|---|---|---|
12 | AndreyEx | 38 | Krasnodar |
Таблица ORDERS:
CREATE TABLE ORDERS( ID INT NOT NULL, CUSTOMER_ID INT NOT NULL, ORDERS VARCHAR(155), PRIMARY KEY (ID) );
Эта таблица будет иметь следующие записи:
ID | CUSTOMER_ID | ORDERS |
---|---|---|
10 | 12 | WD Caviar Blue WD10EZEX |
11 | 12 | INTEL Core i7 6700 |
12 | 12 | KINGSTON KVR16S11/8 DDR3 — 8Гб |
Окончательное правило первой нормальной формы, создать первичный ключ для каждой таблицы, которую мы уже создали.