
- •Семинар 1. Основы реляционных бд. Нормализация. 11.03.2005
- •Данные хранятся в двухмерной таблице без повторяющихся групп.
- •Отношение соответствует первой нормальной форме, и все неключевые атрибуты функционально зависят от полного первичного ключа.
- •3. Третья нормальная форма
- •4. Нормальная форма Бойса-Кодда
- •5. Четвертая нормальная форма
- •Отношение соответствует нормальной форме Бойса-Кодда, и многозначных зависимостей нет.
- •6. Нормализованные отношения и производительность базы данных
- •Заключение
5. Четвертая нормальная форма
movie info (title, star, producer)
Title |
Star |
Producer |
Начало и конец |
Лепешкин Василий |
Могучий Эдуард |
Начало и конец |
Мишина Елена |
Могучий Эдуард |
Начало и конец |
Лепешкин Василий |
Кукушкина Наталья |
Начало и конец |
Мишина Елена |
Кукушкина Наталья |
Дремучий |
Лепешкин Василий |
Кукушкина Наталья |
Дремучий |
Орлов Георгий |
Кукушкина Наталья |
Рис.4 Отношение с многозначной зависимостью
Правило для четвертой нормальной формы гласит:
Отношение соответствует нормальной форме Бойса-Кодда, и многозначных зависимостей нет.
movie stars (title, star)
movie producers (title, producer)
6. Нормализованные отношения и производительность базы данных
. В терминах теории баз данных две таблицы соединяются по идентификационному номеру. В результате будет получена таблица, приведена на рис. 6.
customers |
|
orders |
|||||
ID number |
first name |
last name |
order number |
ID number |
order date |
order total |
|
001 002 003 004 005 006 |
Жанна Иван Жанна Иван Жанна Иван |
Коробко Коробко Кузнецова Кузнецов Круглова Круглов |
001 002 003 004 005 006 007 008 |
002 002 003 004 004 006 006 006 |
10/10/99 2/21/00 11/15/99 11/22/99 12/15/99 10/8/99 11/12/99 12/29/99 |
250.65 125.89 1567.99 180.92 565.00 25.00 85.00 109.12 |
Рис. 5. Две таблицы со взаимоотношением "первичный ключ — внешний ключ
Result table |
||||||
ID number |
first_name |
last_name |
order_numb |
order_date |
order_total |
|
002 |
Иван |
Коробко |
001 |
10/10/99 |
250.65 |
|
002 |
Иван |
Коробко |
002 |
2/21/00 |
125.89 |
|
003 |
Жанна |
Кузнецова |
003 |
11/15/99 |
1567.99 |
|
004 |
Иван |
Кузнецов |
004 |
11/22/99 |
180.92 |
|
004 |
Иван |
Кузнецов |
005 |
12/15/99 |
565.00 |
|
006 |
Иван |
Круглов |
006 |
10/8/99 |
25.00 |
|
006 |
Иван |
Круглов |
007 |
11/12/99 |
85.00 |
|
006 |
Иван |
Круглов |
008 |
12/29/99 |
109.12 |
Рис. 6. Таблица соединения
product_table |
|
|
|
|
|
|
ID number |
first name |
last name |
ID number |
order number |
order date |
order total |
(Customers) |
(Orders) |
|||||
001 |
Жанна |
Коробко |
002 |
001 |
10/10/99 |
250.65 |
001 |
Жанна |
Коробко |
002 |
002 |
2/21/00 |
125.89 |
001 |
Жанна |
Коробко |
003 |
003 |
11/15799 |
1597.99 |
001 |
Жанна |
Коробко |
004 |
004 |
11/22/99 |
180.92 |
001 |
Жанна |
Коробко |
004 |
005 |
12/15/99 |
565-00 |
001 |
Жанна |
Коробко |
006 |
006 |
10/8/99 |
25.00 |
001 |
Жанна |
Коробко |
006 |
007 |
11/12/99 |
85.00 |
001 |
Жанна |
Коробко |
006 |
008 |
12/29799 |
109.12 |
002 |
Иван |
Коробко |
002 |
001 |
10/10/99 |
250.65 |
002 |
Иван |
Коробко |
002 |
002 |
2/21/00 - |
125.89 |
002 |
Иван |
Коробко . |
003 |
003 |
11/16/99 |
1597.99 |
002 |
Иван |
Коробко |
004 |
004, |
11/22/99 |
180.92 |
002 |
Иван |
Коробко |
004 |
005 |
12/15/99 |
565.00 |
002 |
Иван |
Коробко |
006 |
006 |
10/8/99 |
25.00 |
002 |
Иван |
Коробко |
006 |
007 |
11/12/99 |
85.00 |
002 |
Иван |
Коробко |
006 |
008 |
12/29/99 |
109.12 |
003 |
Жанна |
Кузнецова |
002 |
001 |
10/10/99 |
250.65 |
003 |
Жанна |
Кузнецова |
002, |
002 |
2/21/00 |
125.89 |
003 |
Жанна |
Кузнецова |
003 |
003 |
11/15/99 |
1597:99 |
003 |
Жанна |
Кузнецова |
004 |
004 |
11/22/99 |
180.92 |
003 |
Жанна |
Кузнецова |
004 |
005 |
12/15/99 |
565.00 |
003 |
Жанна |
Кузнецова |
006 |
006 |
10/8/98 |
25.00. |
003 |
Жанна |
Кузнецова |
006 |
007 |
11/12/99 |
85.00 |
003 |
Жанна |
Кузнецова |
006 |
008 |
12/29/99 |
109.12 |
004 |
Иван |
Кузнецов |
002 |
001 |
10/10/99 |
250.65 |
004 |
Иван |
Кузнецов |
002 |
002 |
2/21/00 |
125.89 |
004 |
Иван |
Кузнецов |
003 |
003 |
11715/99 |
1597.99 |
004 |
Иван |
Кузнецов |
004 |
004 |
11/22/99 |
180.92 |
004 |
Иван |
Кузнецов |
004' |
005 |
12/15/99 |
565.00 |
004 |
Иван |
Кузнецов |
006 |
006 |
10/6/99 |
25.00 |
004 |
Иван |
Кузнецов |
006 |
006 |
10/8/99 |
25.00 |
004 |
Иван |
Кузнецов |
006 |
008 |
12/29/99 |
109.12 ; |
006 |
Иван |
Круглов |
002 |
001 |
10/10/99 |
250.65 |
006 |
Иван |
Круглов |
002 |
002 |
2/21/00 |
125.89 |
006 |
Иван |
Круглов |
003 |
003 |
11/15/99 |
1597.99 |
006 |
Иван |
Круглов |
004 |
004 |
11/22/99 |
180.92 |
006 |
Иван |
Круглов |
004 |
005 |
12/15/»» |
565.00 |
006 |
Иван |
Круглов |
006 |
006 |
10/8/99 |
25.00 |
006 |
Иван |
Круглов |
006 |
006 |
10/8/99 |
25.00 |
006 |
Иван |
Круглов |
008 |
008 |
12/29/99 |
109.12 |
Рис. 7. Произведение таблиц Сustomers и Orders