Реляционная БД:
Реляционная БД (Relational database) — это база данных с табличной организацией данных.
Где:
Отношение (relation, base relvar) — таблица (table);
Имена атрибутов (attribute) — столбцы (column) этой таблицы;
Кортеж (tuple) — отдельная строка (row) или запись в таблице
Индекс (index) — это отсортированный список значений полей, предназначенный для ускорения поиска в базе данных.
Нормальные формы:
1-ая Нормальная форма
Переменная отношения находится в первой нормальной форме (1НФ) тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов.
Т.е. эта таблица ненормализована:
ФИО: | Адрес: |
Иванов И.И. | Пушкинская ул. Лермонтова ул. |
Петров П.П. | ул. Толстого |
Нормализована:
ФИО: | Адрес: |
Иванов И.И. | Пушкинская ул. |
Иванов И.И. | Лермонтова ул. |
Петров П.П. | ул. Толстого |
2-ая Нормальная форма
Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимо (функционально полно) зависит от ее потенциального ключа
Пусть в следующем отношении первичный ключ образует пара атрибутов {Сотрудник, Должность}:
Сотрудник | Должность | Зарплата | Наличие компьютера |
---|---|---|---|
Гришин | Кладовщик | 20000 | Нет |
Васильев | Программист | 40000 | Есть |
Иванов | Кладовщик | 25000 | Нет |
Зарплату сотруднику каждый начальник устанавливает сам (хотя её границы зависят от должности). Наличие же компьютера у сотрудника зависит только от должности, то есть зависимость от первичного ключа неполная.
В результате приведения к 2NF получаются два отношения:
Сотрудник | Должность | Зарплата |
---|---|---|
Гришин | Кладовщик | 20000 |
Васильев | Программист | 40000 |
Иванов | Кладовщик | 25000 |
Должность | Наличие компьютера |
---|---|
Кладовщик | Нет |
Программист | Есть |
3-ая Нормальная форма
Переменная отношения находится в 3NF тогда и только тогда, когда она находится во второй нормальной форме и отсутствуют транзитивные зависимости неключевых атрибутов от ключевых.
Читать дальше: wikipedia
Нормализация и денормализация
Что такое нормализация и денормализация:
Процесс преобразования отношений базы данных (БД) к виду, отвечающему нормальным формам, называется нормализацией.
Денормализация (англ. denormalization) — намеренное приведение структуры базы данных в состояние, не соответствующее критериям нормализации, обычно проводимое с целью ускорения операций чтения из базы за счет добавления избыточных данных
Информация с wikipedia