база данных

Базы данных — введение

Как правило, большинство баз данных, упоминающихся в интернете — реляционные. Создание сложного сайта начинают не с написания php или html, а с проектирования базы данных. Что нужно, чтобы база считалась реляционной:

  • Данные хранятся в таблицах, состоящих из столбцов и строк.
  • На пересечении каждого столбца и строчки стоит одно значение.
  • У каждого столбца есть свое имя, все значения в одном столбце имеют один тип.
  • Результат запроса к базе данных приходит в виде таблиц.

Требования к структуре базы данных

‘Хорошая структура’.

  • Максимально упрощает взаимодействие с БД.
  • Гарантирует непротиворечивость данных.
  • Выжимает максимум производительности из системы.

Плохая структура.

  • Приводит к непониманию результатов выполнения запросов.
  • Повышает риск введения в БД противоречивой информации.
  • Порождает избыточные данные.
  • Усложняет выполнение изменений структуры созданных ранее и уже заполненных данных таблицы.

Если база спроектирована хорошо, то даже при сотнях тысячей записей она будет ‘летать’, а если руки кривые — постоянно тормозить даже при тысяче записей.

Вот пример простейшей таблицы в базе данных:

база данных

Нормальные формы базы данных

Есть понятие ‘нормализация’. Т.е. правила построения таблиц, когда их много и они между собой перекручены (легко запутаться). Правила нормализации состоят из форм: первая нормальная форма, вторая нормальная форма, третья, четверная; и так все жестче и жестче требования к построению таблиц.

На практике сначала база приводится к первой нормальной форме. Потом — ко второй и т.д. Как правило, большинство архитекторов баз данных доходят до третьей нормальной формы.

Есть обратный процесс — денормализация. Т.е. движение обратно к первой обратной форме (например, когда надо срочно написать, нет времени приводить к ‘нормальности’).

Первая нормальная форма требует, чтобы на пересечении в таблице одной строки и одного столбца находилось только одно значение (см. картинку выше).

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

базы данных

Т.е. мы видим упрощенную таблицу и еще две таблицы (teachers и courses). На этом этапе вводится понятие ‘первичного ключа’. Т.е. это столбец, который назначается первичным ключом. Теоретически первичным ключом может быть что угодно, но он должен быть уникальным (не повторяться), т.е. уникально идентифицирует данную запись. И если, например, удалить значение ‘иванов’, то ключ 2 никому не должен быть присвоен. И теперь в таблице lessons вместо имен и названий курсов хранятся их id (идентификаторы) как ссылки на них.




Добавить комментарий

Ваш e-mail не будет опубликован.