Категорийная целостность – строка не может быть занесена в БД пока не будут определены все атрибуты первичного ключа.
Ссылочная целостность – если две таблицы связаны между собой, то внешний ключ содержит только те значения, которые определены атрибутом, по которому осуществляется связь.
При установлении связей между таблицами одна становится главной, а вторая подчиненной. В главной доступны все записи, а в подчиненной только записи соответствующие текущей. У главной таблицы может быть несколько подчиненных, у подчиненной только одна главная. В реляционной модели существует 4 типа связей: 1:1, 1:М, М:1, М:М.
Современные СУБД поддерживают категорийную и ссылочную целостность. Труднее соблюдать ссылочную целостность. Она наблюдается при удалении данных
Три подхода к удалению картежа:
Запрещается производить удаление картежей на которые существуют ссылки. Надо удалить ссылки потом картежи.
При удалении картежей на который имеется ссылка, имеются ссылающие кортежи, то значение ключа не определено.
Каскадное удаление. При удалении картежа на которые имеются ссылки, то удаляется все ссылающееся. В СУБД можно выбрать любой способ модернизации целостности.
Типы связей между таблицами.
Одна из таблиц главная, вторая подчинённая. В главной все записи, а в подчиненной доступны только те записи, которые соответствуют текущим.
Различают 4 типа связи между таблицами:
один ко одному (1:1)
один ко многим (1:М)
многие ко многим (М:М.)
многие ко одному (1:М)
Свойства таблиц реляционной модели:
отношения имеют реляционную модель данных, таблица является отношениями и свойства этих таблиц являются отношениями. Каждая таблица имеет уникальное имя и состоит из однотипных строк.
Строки имеют фиксированное число полей и значений
Все строки отличаются друг от друга и имеют хотя бы одно значение.
Все столбцы имеют уникальные названия. В каждом столбце храниться данные первого и того же типа. При работе с таблицей её строки и столбцы могут срабатывать в любом порядке
Каждая таблица имеет уникальное имя и состоит из однотипных строк;
Строки имеют фиксированное число полей и значений;
Все строки отличны друг от друга;
Все столбцы имеют уникальные названия;
В одном и том же столбце хранятся данные одного и того же типа;
При работе строки и столбцы обрабатываются в любом порядке.
Индекс – указатель на данные, размещенные в таблице для упрощения поиска информации и поддержания целостности данных. Индексы бывают простые и составные.
Простые строятся на основе одного столбца,
составные – по 2-м или более столбцам.
Уникальные индексы - не допускают ввода дублированных значений и используются не только с целью поиска данных но и для поддержки целостности дынных.
При назначении составного ключа должны выполняться следующие условия:
Первым должен быть столбец, содержащий ограниченные значения;
Первым должен быть столбец, который наиболее часто задается в условиях поиска.
Не стоит индексировать по столбцам данные, которые постоянно меняются, а также столбцы, имеющие пустые значенияи большие размеры.
Аномалии данных. Нормализация данных. Нормальные формы (примеры). Языки баз данных. Язык SQL. Основные операторы языка. Оператор выбора. Формирование запросов. Операторы манипулирования данными. Агрегатные операторы
Аномалии данных
Аномалия обновления – связана с избыточностью данных. Аномалии неадекватность модели данных предметной области, (что говорит на самом деле о том, что логическая модель данных попросту неверна!) или как необходимости дополнительных усилий для реализации всех ограничений определенных в предметной области (дополнительный программный код в виде триггеров или хранимых процедур).
Аномалии ввода – возникает при добавлении новых записей в таблицу на некоторые поля, которые заданно ограничение not/noll.
Аномалии вставки (INSERT) нельзя вставить данные о сотруднике, который пока не участвует ни в одном проекте
Аномалии обновления (UPDATE) Фамилии сотрудников, наименования проектов, номера телефонов повторяются во многих кортежах отношения. Поэтому если сотрудник меняет фамилию, или проект меняет наименование, или меняется номер телефона Для поддержания отношения в целостном состоянии необходимо написать триггер, который при обновлении одной записи корректно исправлял бы данные и в других местах.
Аномалии удаления (DELETE) При удалении некоторых данных может произойти потеря другой информации.
Нормализация данных
Процесс реорганизации дынных путем ликвидации повторяющихся групп и их противоречий с целью привлечения таблицы к виду позволяющему осуществлять противоречивое корректирование дынных.
Избыточность данных
Обновление-----аномалия
Удаление--------аномалия при удалении некоторых данных из БД
Ввода
Теория нормализации основана на концепции нормальных форм. Каждой характерной форме соответствует некоторый набор ограничений. Набор находится в некоторой нормальной форме если оно удовлетворяет свойствам набора данных.
Основные свойства нормальных форм:
Каждая следующая лучше предыдущей
При переходе к следующей нормальной форме свойства предыдущей сохраняются
1НФ Отношения находятся в первой нормальной форме, если значения атрибутов атомарные.
2НФ Отношения находятся во второй нормальной форме, в том случае если оно находятся в 1НФ, и не нормальный ключевой атрибут находится от ключевого ключа.
-определить на какие части можно разбить первый ключ, так чтобы некоторые из неключевых полей зависили только от этих полей
-создать новую таблицу для каждой части ключа и групп зависящих полей, и переместить их в эту таблицу. Часть бывшего первичного ключа, становится первичным ключом новой таблицы.
-удалить их исходной таблиц, поля перемещенные таблицей, кроме тех полей, которые станут внешними ключами
R1: (ФИО, должность, оклад, стаж, должность стажера, кафедра, предмет, группа, вид занятия)
R2: (ФИО, должность, оклад, стаж, должность, кафедра)
Частичная зависимость, поэтому эта зависимость от атрибутами можно удалить в третью нормальную форму)
3НФ Отношения находятся в третьей нормальной форме, если они находятся во 2НФ и каждый не ключевой атрибут нетривиально зависят от первичного ключа. Чтобы отсутствовала физическая зависимость между не ключевыми атрибутами.
Чтобы перейти от 2НФ к 3НФ нужно:
1)определить формы полей, от которых зависят другие поля
2)создать новую таблицу для каждого такого типа поля и группы зависящих полей, и переместить их в эту таблицу. Поле или группа полей будет являться первым ключом
3)удалить перемещаемые поля, оставив только те которые станут внешними ключами.
R3 (должность, оклад) а (код_д, должность, окдад)
R4 (стаж, доплата за стаж) а (код_с, стаж, доплата за стаж)
R5 (кафедры) а (код_к, кафедры)
Нормальная форма Бойса — Кодда (BCNF) – если оно находится в третьей нормальной форме и в нем отсутствует зависимость ключей от неключевых атрибутов.
Методы нормальных форм:
разрешается при проектировании БД - это нормализация её отношений.
1НФ (Первая Нормальная Форма) - это обычное отношение. Любое отношение автоматически уже находится в 1НФ. свойства отношений (это и будут свойства 1НФ): В отношении нет одинаковых кортежей, Кортежи не упорядочены, Атрибуты не упорядочены и различаются по наименованию, Все значения атрибутов атомарны.
2НФ (Вторая Нормальная Форма) Отношение находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. (Неключевой атрибут - это атрибут, не входящий в состав никакого потенциального ключа).
3НФ (Третья Нормальная Форма) Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого. Отношение находится в третьей нормальной форме (3НФ) тогда и только тогда, когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы и полностью зависят от первичного ключа.
Алгоритм нормализации (приведение к 3НФ) Шаг 1 задается одно или несколько отношений, отображающих понятия предметной области. По модели предметной области выписываются обнаруженные функциональные зависимости. Все отношения автоматически находятся в 1НФ. Шаг 2 Если в некоторых отношениях обнаружена зависимость атрибутов от части сложного ключа, то проводим декомпозицию этих отношений: те атрибуты, которые зависят от части сложного ключа выносятся в отдельное отношение вместе с этой частью ключа.
Нормальная форма Бойса — Кодда (BCNF) Это модификация третьей нормальной формы. Таблица находится в BCNF, если она находится в 3NF, и при этом отсутствуют функциональные зависимости атрибутов первичного ключа от неключевых атрибутов. Таблица может находиться в 3NF, но не в BCNF, только в одном случае: если она имеет, помимо первичного ключа, ещё по крайней мере один возможный ключ. Все зависимые от первичного ключа атрибуты должны быть потенциальными ключами отношения. Если это условие не выполняется, для них создаётся отдельное отношение. Чтобы сущность соответствовала BCNF, она должна находиться в третьей нормальной форме. Любая сущность с единственным возможным ключом, соответствующая требованиям третьей нормальной формы, автоматически находится в BCNF.
Четвёртая нормальная форма (4NF)Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных зависимостей. Многозначная зависимость не является функциональной, она существует в том случае, когда из факта, что в таблице содержится некоторая строка X, следует, что в таблице обязательно существует некоторая определённая строка Y. То есть, таблица находится в 4NF, если все ее многозначные зависимости являются функциональными.