- •Типы данных, используемые в реляционной модели Домены
- •Отношения, атрибуты, кортежи отношения
- •Свойства отношений
- •Операторы ddl (Data Definition Language) - операторы определения объектов базы данных
- •Операторы dml (Data Manipulation Language) - операторы манипулирования данными:
- •Использование агрегатных функций в запросах
- •Использование агрегатных функций с группировками
- •Оператор объединения
- •Оператор вычитания
- •Оператор пересечения
- •Стадия 1. Выполнение одиночного оператора select
- •Стадия 2. Выполнение операций union, except, intersect
- •Стадия 3. Упорядочение результата
- •Стадия 1. Выполнение одиночного оператора select
- •Стадия 2. Выполнение операций union, except, intersect
- •Стадия 3. Упорядочение результата
- •15. Транзакции и блокировки
- •Acid-свойства транзакций
Свойства отношений
Свойства отношений непосредственно следуют из приведенного выше определения отношения. В этих свойствах в основном и состоят различия между отношениями и таблицами.
В отношении нет одинаковых кортежей . Таблицы в отличие от отношений могут содержать одинаковые строки.
Кортежи не упорядочены (сверху вниз) . Действительно, несмотря на то, что мы изобразили отношение "Сотрудники" в виде таблицы, нельзя сказать, что сотрудник Иванов "предшествует" сотруднику Петрову. Причина та же - тело отношения есть множество, а множество не упорядочено. Это вторая причина, по которой нельзя отождествить отношения и таблицы - строки в таблицах упорядочены. Одно и то же отношение может быть изображено разными таблицами, в которых строки идут в различном порядке .
Атрибуты не упорядочены (слева направо) . Т.к. каждый атрибут имеет уникальное имя в пределах отношения, то порядок атрибутов не имеет значения. Это свойство несколько отличает отношение от математического определения отношения (см. гл.1 - компоненты кортежей там упорядочены ). Это также третья причина, по которой нельзя отождествить отношения и таблицы - столбцы в таблице упорядочены. Одно и то же отношение может быть изображено разными таблицами, в которых столбцы идут в различном порядке .
Все значения атрибутов атомарны . Это следует из того, что лежащие в их основе атрибуты имеют атомарные значения. Это четвертое отличие отношений от таблиц - в ячейки таблиц можно поместить что угодно - массивы, структуры, и даже другие таблицы.
3.Ключи (PK,AK, FK)
Проектируя БД, мы сталкиваемся с такими проблемами, как протеворечивость, дублирование, недостоверность, неполнота данных, и справиться с этими проблемами нам помогает введение ограничений в виде ключей:
Первичный ключ (primary key) - это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности.
Потенциальный ключ. В одной сущности могут оказаться несколько атрибутов или наборов атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами (candidate key).
Ключи могут быть сложными, т. е. содержащими несколько атрибутов.
Альтернативный ключ (Alternate Key) - это потенциальный ключ, не ставший первичным. Каждая сущность должна иметь по крайней мере один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные - альтернативными ключами.
Некоторые значения не должны быть произвольными, они должны браться из списка. для этого есть внешний ключ. О: атрибут или группа атрибутов называется внешним ключом отношения R, если 1)сущ-т отнош-е S с потенц.ключом К
2)для любого кортежа r из R выполняется: либо а)сущ.кортеж s из S: FK(r)=K(s) или б)FK(r)=NULL, т.е. для любого значения внешнего ключа должна найтись строчка (уникальная) в другом отношении, у к-й значение ПК совпадает со значением внешнего ключа.
4.Целостность реляц.данных. трехзначная логика.
ц. – корректность, непротиворечивость, завершенность.
1. – NULL – значение специальное для обозначения какого-либо среднего ответа в ячейке БД. неопределенное, неизвестное. в ПК такого значения быть не может.
2. потенц.кл. – нельзя добавить противоречащую ключу запись.
3.внешние ключи – можно добавить не произвольные данные, а связанные с данными в другой таблице.
Ссы́лочная це́лостность (англ. referential integrity) — необходимое качество реляционной базы данных, заключающееся в отсутствии в любом её отношении внешних ключей, ссылающихся на несуществующие кортежи.
5.Нормальзация, функц. зависимости
Нормализация – это разбиение таблицы(декомпозиция) на две или более, обладающих лучшими свойствами при добавлении, изменении и удалении данных.
Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
функциональная зависимость данных- ограничения на возможные взаимосвязи между данными, которые могут быть текущими значениями схемы отношений. Обозначается: X→Y
Говорится: «X функционально определяет Y» или «Y функционально зависит от X».
Левая часть выражения называется детерминантом (детерминантой) функциональной зависимости (ФЗ), правая – зависимой частью ФЗ.
6.Нормальные формы отношений.
1нф – отношение находится в 1 нф, если выполняются все свойства отношения.
2 нф – отношение нах-ся в 2 нф, если нет неключевых атрибутов, зависящих от части сложного ключа.
О: Атрибут (группа атрибутов) У зависит от атр(гр.атр) Х, если для любого сост-я отн-я Р для всех кортежей р1,р2 из Р, р1(х)= р2(х) => р1(у)=р2(у).
следствие: отношение с простым PK уже находится во 2 нф.
3нф – отношение находится в 3 нф тогда и только тогда, когда нах-ся во 2 нф и все неключевые атрибуты взаимно независимы.
нфбк – отнощение находится в нФ Бойса-Кодда, детерминанты всех функц.зависимостей явл-ся потенц.ключом.
7.Язык sql.
Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям:
Операторы DDL (Data Definition Language) - операторы определения объектов базы данных.
Операторы DML (Data Manipulation Language) - операторы манипулирования данными.
Операторы защиты и управления данными, и др.
