Базы данных: различия между версиями

Материал из Artem Aleksashkin's Wiki
Перейти к навигации Перейти к поиску
Строка 111: Строка 111:


=== 2NF - вторая нормальная форма ===
=== 2NF - вторая нормальная форма ===
{| class="wikitable"
|+ 1NF
|-
! Альбом !! Номер трека !! ID Исполнителя !! Трек
|-
| Fire Your Guns || 1-1 || 1 || Thunderstrack
|-
| Appetite for Destruction || 9 || 2 || Sweet Child O Mine
|-
| Nevermind || 1 || 3 || Smells like teen spirit
|-
| Away from the Sun || 6 || 4 || Here Without You
|-
| The Song Remains the Same || 1-3 || 5 || Song remains the same
|-
| Imagine|| 2 || 6 || Going Wrong
|-
| Levels || 1 || 7 || Levels
|-
| Music for the Jilted Generation || 5 || 8 || Voodoo Peple
|-
| Mirage || 9 || 6 || Virtual Friend
|-
| Mirage || 21 || 6 || Virtual Friend
|}
{| class="wikitable"
|+ 1NF
|-
! ID !! Исполнитель !! Жанр
|-
| 1 || AC/DC || Рок
|-
| 2 || Guns n Roses || Рок
|-
| 3 || Nirvana || Рок
|-
| 4 || 3 Doors Down || Рок
|-
| 5 || Led Leppelin || Рок
|-
| 6 || Armin Van Buuren || Trance
|-
| 7 || Avicii || Trance
|-
| 8 || Prodigy || Trance
|}
=== 3NF - третья нормальная форма ===
=== 3NF - третья нормальная форма ===
=== BCNF - нормальная форма Бойса-Кодда ===
=== BCNF - нормальная форма Бойса-Кодда ===

Версия от 21:18, 11 февраля 2019

Базы данных существуют столько же сколько и компьютеры. Компьютеры и создавались обрабатывать информацию. Информацию надо как-то хранить и передавать по запросу - в этом и суть баз данных.

ACID

  • Atomicity — Атомарность
  • Consistency — Согласованность
  • Isolation — Изолированность
  • Durability — Долговечность

Нормальные формы

Плохо спроектированная база данных
Жанр Трек 1 Трек 2 Трек 3 Трек 4 Трек 5
Рок AC/DC Thunderstrack Guns n Roses Sweet Child O Mine Nirvana Smells like teen spirit 3 Doors Down Here Without You Led Leppelin Song remains the same
Trance Armin Van Buuren Going Wrong Avicii Levels Prodigy Voodoo Peple Armin Van Buuren Virtual Friend Armin Van Buuren Virtual Friend

Проблемы:

  • Для добавления треков нужно добавлять столбцы
  • Сложности при поиске и сортировки данных
Нарушена 1NF
Жанр Треки
Рок AC/DC Thunderstrack,Guns n Roses Sweet Child O Mine,Nirvana Smells like teen spirit,3 Doors Down Here Without You,Led Leppelin Song remains the same
Trance Armin Van Buuren Going Wrong,Avicii Levels,Prodigy Voodoo Peple,Armin Van Buuren Virtual Friend,Armin Van Buuren Virtual Friend

Проблемы:

  • Сложности при поиске и сортировки данных
  • В названии треков могут быть запятые

Правило:

  • Все элементы внутри ячеек должны быть атомарными(элемент называется атомарным, если таблицы могут его использовать независимо друг от друга)
Правило выполнено, но нарушена 1NF
Жанр Исполнитель Трек
Рок AC/DC Thunderstrack
Рок Guns n Roses Sweet Child O Mine
Рок Nirvana Smells like teen spirit
Рок 3 Doors Down Here Without You
Рок Led Leppelin Song remains the same
Trance Armin Van Buuren Going Wrong
Trance Avicii Levels
Trance Prodigy Voodoo Peple
Trance Armin Van Buuren Virtual Friend
Trance Armin Van Buuren Virtual Friend

Правило:

  • Все строки должны быть уникальными

1NF - первая нормальная форма

1NF
Альбом Номер трека Жанр Исполнитель Трек
Fire Your Guns 1-1 Рок AC/DC Thunderstrack
Appetite for Destruction 9 Рок Guns n Roses Sweet Child O Mine
Nevermind 1 Рок Nirvana Smells like teen spirit
Away from the Sun 6 Рок 3 Doors Down Here Without You
The Song Remains the Same 1-3 Рок Led Leppelin Song remains the same
Imagine 2 Trance Armin Van Buuren Going Wrong
Levels 1 Trance Avicii Levels
Music for the Jilted Generation 5 Trance Prodigy Voodoo Peple
Mirage 9 Trance Armin Van Buuren Virtual Friend
Mirage 21 Trance Armin Van Buuren Virtual Friend

Уникальные поля(первичный ключ):

  • Альбом
  • Номер трека

Задача:

  • Мы хотим изменить жанр у исполнителя Armin Van Buuren с Trance на Progressive trance

Проблемы:

  • Нам необходимо обновить несколько ячеек. Это может привести к ошибкам

Правило:

  • Любое поле, не входящее в первичный ключ, функционально полно зависит от первичного ключа

2NF - вторая нормальная форма

1NF
Альбом Номер трека ID Исполнителя Трек
Fire Your Guns 1-1 1 Thunderstrack
Appetite for Destruction 9 2 Sweet Child O Mine
Nevermind 1 3 Smells like teen spirit
Away from the Sun 6 4 Here Without You
The Song Remains the Same 1-3 5 Song remains the same
Imagine 2 6 Going Wrong
Levels 1 7 Levels
Music for the Jilted Generation 5 8 Voodoo Peple
Mirage 9 6 Virtual Friend
Mirage 21 6 Virtual Friend
1NF
ID Исполнитель Жанр
1 AC/DC Рок
2 Guns n Roses Рок
3 Nirvana Рок
4 3 Doors Down Рок
5 Led Leppelin Рок
6 Armin Van Buuren Trance
7 Avicii Trance
8 Prodigy Trance

3NF - третья нормальная форма

BCNF - нормальная форма Бойса-Кодда

4NF - Многозначные зависимости и четвертая нормальная форма

5NF - Зависимости по соединению и пятая нормальная форма

СУБД, системы поиска и хранения

Некоторые полезные ресурсы