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

Материал из Artem Aleksashkin's Wiki
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 20 промежуточных версий этого же участника)
Строка 1: Строка 1:
Базы данных существуют столько же сколько и компьютеры. Компьютеры и создавались обрабатывать информацию. Информацию надо как-то хранить и передавать по запросу - в этом и суть баз данных.
Базы данных существуют столько же сколько и компьютеры. Компьютеры и создавались обрабатывать информацию. Информацию надо как-то хранить и передавать по запросу - в этом и суть баз данных.


== ACID ==
* [[Теория баз данных]]
* Atomicity — Атомарность
* [[СУБД]]
* Consistency — Согласованность
* [[Открытые базы данных]]
* Isolation — Изолированность
* [[Nested Sets & Materialized Path]]
* Durability — Долговечность
 
== Нормальные формы ==
 
{| class="wikitable"
|+ Плохо спроектированная база данных
|-
! Жанр !! Трек 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 || NULL
|}
 
Проблемы:
* Для добавления треков нужно добавлять столбцы
* Сложности при поиске и сортировки данных
 
{| class="wikitable"
|+ Нарушена 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
|}
 
Проблемы:
* Сложности при поиске и сортировки данных
* В названии треков могут быть запятые
 
Правило:
* Все элементы внутри ячеек должны быть атомарными(элемент называется атомарным, если таблицы могут его использовать независимо друг от друга)
 
{| class="wikitable"
|+ Правило выполнено, но нарушена 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
|}
 
Правило:
* Все строки должны быть уникальными
 
=== 1NF - первая нормальная форма ===
=== 2NF - вторая нормальная форма ===
=== 3NF - третья нормальная форма ===
=== BCNF - нормальная форма Бойса-Кодда ===
=== 4NF - Многозначные зависимости и четвертая нормальная форма ===
=== 5NF - Зависимости по соединению и пятая нормальная форма ===
 
== СУБД, системы поиска и хранения ==
 
* [[MySQL]]
*[[MariaDB]]
*[[Percona]]
* [[PostgreSQL]]
* [[MongoDB]]
* [[Sphinx]]
* [[ElasticSearch]]
* [[Neo4j]]
* [[ClickHouse]]
 
== Некоторые полезные ресурсы ==
* [http://www.mstu.edu.ru/study/materials/zelenkov/toc.html ВВЕДЕНИЕ В БАЗЫ ДАННЫХ - отличные лекции по теории баз данных]

Текущая версия от 10:24, 12 мая 2023

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