Часть 6.1: Команда CREATE в SQLite3 (DDL оператор CREATE)
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. В…
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Без терминологии изучить реляционные базы не получится, поэтому вводим новую порцию терминов теории баз данных, которые касаются нормализации баз данных.
Чтобы продолжить разбираться с теорией баз данных, я предлагаю рассмотреть некоторые термины, которые в дальнейшем упростят наше общение и понимание. Некоторые определения терминов, как и определения нормальных форм, я брал из Википедии, но к ним я даю своё пояснение простыми и понятными словами.
Нормальная форма— свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение. Проще говоря: нормальная форма – это состояние базы данных. В природе вещество может быть в четырех состояниях: жидком, твердом, газообразном и в виде плазмы. И реляционных базах данных отношения могут быть в девяти состояниях.
Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной. Грубо говоря: отношение – это таблица.
Нормализация – процесс преобразования отношений базы данных к виду, отвечающему нормальным формам. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных.
Денормализация – процесс обратный нормализации. Часто применяется для ускорения процесса чтения данных из базы данных.
Атомарность – неделимость атрибутов. Например, ФИО не является атомарным столбцом.
Транзитивная зависимость– логическая или смысловая зависимость одного атрибута от другого при условии, что ни один из атрибутов не является первичным ключом. Классический пример: город и индекс.
Функциональная зависимость– зависимость значений одного столбца от другого, но никак не наоборот. Возьмем два столбца, назовем их А и Б. Все строки, имеющие одинаковое значение атрибута А, будут иметь одинаковое значение в столбце Б, но не наоборот.
Детерминант функциональной зависимости. Скажу просто – это столбец А из определения термина функциональной зависимости.
Избыточность–лишняя информация в базе данных, которая не несет никакой пользы для нас, а лишь увеличивает объем базы данных.
Аномалия – проблемы, которые возникают при манипуляции с данными (обновление данных, удаление данных, модификация или изменение данных), из-за избыточности.
Домен данных– справочник или таблица, в которой хранится вспомогательная информация. Сам я не люблю использовать термин домен данных, поэтому использую справочник.
Надеюсь, никаких трудностей с терминами теории баз данных у вас не возникнет, но, если что-то осталось непонятным или есть какие-то дополнения и уточнения, прошу оставить комментарий.
На самом деле терминология, используемая в реляционных базах данных гораздо шире, но здесь представлен действительно словарь для начинающего SQL разработчика или проектировщика баз данных.
Не могли бы вы объяснить следующие не совсем понятные моменты
1. И реляционных базах данных отношения могут быть в девяти состояниях.
О чем идет речь?
2. Можно пару примеров функциональной зависимости, ибо я не совсем понимаю...
3. Тоже самое по поводу атомарных атрибутов
Спасибо большое
1. Восемь нормальных форм + не нормализованное отношение, которое не приведено ни к одной НФ.
2. Например, у вас есть преподаватели, у которых есть дни рождения, один преподаватель может читать несколько курсов/предметов и т.д. Мы получаем избыточность, т.к. постоянно эта дата рождения дублируется — это и есть функциональная зависимость, когда один столбец связан с другим и из-за этого в БД хранится больше информации (ссылки в помощь: zametkinapolyah.ru/zametk... -baz-dannyx.html zametkinapolyah.ru/zametk...a-forma-2nf.html).
3. Атомарный, грубо говоря, неделимый. Например, у вас есть таблица с автовладельцами, значения в столбце не будут атомарны, если одна ячейка для конкретного автовладельца будет содержать: ВАЗ, Ауди, БМВ. (ссылка в помощь: zametkinapolyah.ru/zametk...a-forma-1nf.html).
По ссылкам вы найдете примеры и более подробное объяснение.