Базы данных
Перейти к навигации
Перейти к поиску
Базы данных существуют столько же сколько и компьютеры. Компьютеры и создавались обрабатывать информацию. Информацию надо как-то хранить и передавать по запросу - в этом и суть баз данных.
ACID
- Atomicity — Атомарность
- Consistency — Согласованность
- Isolation — Изолированность
- Durability — Долговечность
Нормальные формы
I | ii | iii | IV | V | vi | vii-o |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
C | Dm | Em | F | G | Am | Bdim |
Проблемы:
- Для добавления треков нужно добавлять столбцы
- Сложности при поиске и сортировки данных
Жанр | Треки |
---|---|
Рок | 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 |
Проблемы:
- Сложности при поиске и сортировки данных
- В названии треков могут быть запятые
Правило:
- Все элементы внутри ячеек должны быть атомарными(элемент называется атомарным, если таблицы могут его использовать независимо друг от друга)
Жанр | Исполнитель | Трек |
---|---|---|
Рок | 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 - первая нормальная форма
Альбом | Номер трека | Жанр | Исполнитель | Трек |
---|---|---|---|---|
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 - вторая нормальная форма
Альбом | Номер трека | 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 |
ID | Исполнитель | Жанр |
---|---|---|
1 | AC/DC | Рок |
2 | Guns n Roses | Рок |
3 | Nirvana | Рок |
4 | 3 Doors Down | Рок |
5 | Led Leppelin | Рок |
6 | Armin Van Buuren | Progressive trance |
7 | Avicii | Trance |
8 | Prodigy | Trance |
Задача
- Изменить имя альбома Mirage на Mirage 2010
Проблема:
- Необходимо обновлять все строки. Может произойти ошибка
Правило:
- Любой атрибут таблицы функционально зависит только от первичного ключа