Введение в системы управления базами данных

уборка снега в новосибирске|ed treatment

Использование агрегатных функций в запросах


Пример 10
Пример 10PNAME1PSTATUS1PNAME2PSTATUS2 Иванов4Петров1 Иванов4Сидоров2 Сидоров2Петров1 Пример 20. Рассмотрим ситуацию, когда некоторые поставщики (назовем их контрагенты) могут выступать как в качес...
Пример 11
Пример 11Номер контрагентаNUMНаименование контрагентаNAME 1Иванов 2Петров 3Сидоров Таблица 3 Отношение CONTRAGENTS...
Пример 12
Пример 12Номер деталиDNUM Наименование деталиDNAME 1Болт 2Гайка 3Винт Таблица 4 Отношение DETAILS (Детали)...
Пример 13
Пример 13Номер поставщикаPNUM Номер получателяCNUM Номер деталиDNUM Поставляемое количествоVOLUME 121100 132200 133300 231150 232250 3111000 Таблица 5 Отношение CD (Поставки)В таблице CD (поставк...
Пример 14
Пример 14Наименование поставщикаPNAME Наименование получателяCNAME Наименование деталиDNAME Поставляемое количествоVOLUME ИвановПетровБолт100 ИвановСидоровГайка200 ИвановСидоровВинт300 ПетровСидо...
Использование агрегатных функций в запросах
Использование агрегатных функций в запросахПример 21. Получить общее количество поставщиков (ключевое слово COUNT): SELECT COUNT(*) AS N FROM P; В результате получим таблицу с одним столбцом и о...
Пример 15
Пример 15N 3 Пример 22. Получить общее, максимальное, минимальное и среднее количества поставляемых деталей (ключевые слова SUM, MAX, MIN, AVG): SELECT SUM(PD.VOLUME) AS SM, MAX(PD.VOLUME) AS...
Пример 16
Пример 16SMMXMNAV 20001000100333.33333333...
Использование агрегатных функций с группировками
Использование агрегатных функций с группировкамиПример 23. Для каждой детали получить суммарное поставляемое количество (ключевое слово GROUP BY-): SELECT PD.DNUM, SUM(PD.VOLUME) AS SM GROUP...
Пример 17
Пример 17DNUMSM 11250 2450 3300 Замечание. В списке отбираемых полей оператора SELECT, содержащего раздел GROUP BY можно включать только агрегатные функции и поля, которые входят в условие группир...
Пример 18
Пример 18DNUMSM 11250 2450 Замечание. В одном запросе могут встретиться как условия отбора строк в разделе WHERE, так и условия отбора групп в разделе HAVING. Условия отбора групп нельзя перенести...
Использование подзапросов
Использование подзапросов Очень удобным средством, позволяющим формулировать запросы более понятным образом, является возможность использования подзапросов, вложенных в основной запрос. Пример 25...
Использование объединения пересечения и разности
Использование объединения, пересечения и разностиПример 30. Получить имена поставщиков, имеющих статус, больший 3 или поставляющих хотя бы одну деталь номер 2 (объединение двух подзапросов - ключе...
Синтаксис оператора выборки данных (SELECT)
Синтаксис оператора выборки данных (SELECT)...
BNFнотация
BNF-нотация Опишем синтаксис оператора выборки данных (оператора SELECT) более точно. При описании синтаксиса операторов обычно используются условные обозначения, известные как стандартные формы Б...
Синтаксис оператора выборки
Синтаксис оператора выборкиВ довольно сильно упрощенном виде оператор выборки данных имеет следующий синтаксис (для некоторых элементов мы дадим не BNF-определения, а словесное описание): Оператор...
Синтаксис соединенных таблиц
Синтаксис соединенных таблицВ разделе FROM оператора SELECT можно использовать соединенные таблицы. Пусть в результате некоторых операций мы получаем таблицы A и B. Такими операциями могут быть, н...
Синтаксис условных выражений раздела WHERE
Синтаксис условных выражений раздела WHERE Условное выражение, используемое в разделе WHERE оператора SELECT должно вычисляться для каждой строки-кандидата, отбираемой оператором SELECT. Условное...
Порядок выполнения оператора SELECT
Порядок выполнения оператора SELECTДля того чтобы понять, как получается результат выполнения оператора SELECT, рассмотрим концептуальную схему его выполнения. Эта схема является именно концептуал...
Стадия 1 Выполнение одиночного оператора SELECT
Стадия 1. Выполнение одиночного оператора SELECTЕсли в операторе присутствуют ключевые слова UNION, EXCEPT и INTERSECT, то запрос разбивается на несколько независимых запросов, каждый из которых в...
Стадия 2 Выполнение операций UNION EXCEPT INTERSECT
Стадия 2. Выполнение операций UNION, EXCEPT, INTERSECTЕсли в операторе SELECT присутствовали ключевые слова UNION, EXCEPT и INTERSECT, то таблицы, полученные в результате выполнения 1-й стадии, об...
Стадия 3 Упорядочение результата
Стадия 3. Упорядочение результатаЕсли в операторе SELECT присутствует раздел ORDER BY, то строки полученной на предыдущих шагах таблицы упорядочиваются в соответствии со списком упорядочения, прив...
Как на самом деле выполняется оператор SELECT
Как на самом деле выполняется оператор SELECTЕсли внимательно рассмотреть приведенный выше концептуальный алгоритм вычисления результата оператора SELECT, то сразу понятно, что выполнять его непос...
Реализация реляционной алгебры средствами оператора SELECT (Реляционная полнота SQL)
Реализация реляционной алгебры средствами оператора SELECT (Реляционная полнота SQL)Для того, чтобы показать, что язык SQL является реляционно полным, нужно показать, что любой реляционный операто...
Оператор декартового произведения
Оператор декартового произведенияРеляционная алгебра: Оператор SQL: SELECT A.Поле1, A.Поле2, -, B.Поле1, B.Поле2, - FROM A, B; или SELECT A.Поле1, A.Поле2, -, B.Поле1, B.Поле2, - FROM A CROSS...
Оператор проекции
Оператор проекцииРеляционная алгебра: Оператор SQL: SELECT DISTINCT X, Y, -, Z FROM A;...
Оператор выборки
Оператор выборки Реляционная алгебра: , Оператор SQL: SELECT * FROM A WHERE c;...
Оператор объединения
Оператор объединенияРеляционная алгебра: Оператор SQL: SELECT * FROM A UNION SELECT * FROM B;...
Оператор вычитания
Оператор вычитанияРеляционная алгебра: Оператор SQL: SELECT * FROM A EXCEPT SELECT * FROM B Реляционный оператор переименования RENAME выражается при помощи ключевого слова AS в списке...
Оператор соединения
Оператор соединенияРеляционная алгебра: Оператор SQL: SELECT A.Поле1, A.Поле2, -, B.Поле1, B.Поле2, - FROM A, B WHERE c; или SELECT A.Поле1, A.Поле2, -, B.Поле1, B.Поле2, - FROM A CROSS JOI...
Оператор пересечения
Оператор пересеченияРеляционная алгебра: Оператор SQL: SELECT * FROM A INTERSECT SELECT * FROM B;...
Оператор деления
Оператор деления Реляционная алгебра: Оператор SQL: SELECT DISTINCT A.X FROM A WHERE NOT EXIST (SELECT * FROM B WHERE NOT EXIST (SELECT * FROM A A1 WHERE A...
Выводы
ВыводыФактически стандартным языком доступа к базам данных в настоящее время стал язык SQL (Structured Query Language). Язык SQL оперирует терминами, несколько отличающимися от терминов реляционно...
Глава 6 Нормальные формы отношений
Глава 6. Нормальные формы отношений...
Этапы разработки базы данных
Этапы разработки базы данныхЦелью разработки любой базы данных является хранение и использование информации о какой-либо предметной области. Для реализации этой цели имеются следующие инструменты:...
Критерии оценки качества логической модели данных
Критерии оценки качества логической модели данныхЦель данной главы - описать некоторые принципы построения хороших логических моделей данных. Хороших в том смысле, что решения, принятые в процессе...
Адекватность базы данных предметной области
Адекватность базы данных предметной области База данных должна адекватно отражать предметную область. Это означает, что должны выполняться следующие условия: Состояние базы данных в каждый момент...
Легкость разработки и сопровождения базы данных
Легкость разработки и сопровождения базы данныхПрактически любая база данных, за исключением совершенно элементарных, содержит некоторое количество программного кода в виде триггеров и хранимых пр...
Скорость операций обновления данных (вставка обновление удаление)
Скорость операций обновления данных (вставка, обновление, удаление)На уровне логического моделирования мы определяем реляционные отношения и атрибуты этих отношений. На этом уровне мы не можем опр...
Скорость операций выборки данных
Скорость операций выборки данных Одно из назначений базы данных - предоставление информации пользователям. Информация извлекается из реляционной базы данных при помощи оператора SQL - SELECT. Одно...
Основной пример
Основной примерРассмотрим в качестве предметной области некоторую организацию, выполняющую некоторые проекты. Модель предметной области опишем следующим неформальным текстом: Сотрудники организаци...
1НФ (Первая Нормальная Форма)
1НФ (Первая Нормальная Форма)Понятие первой нормальной формы уже обсуждалось в главе 2. Первая нормальная форма (1НФ) - это обычное отношение. Согласно нашему определению отношений, любое отношени...
Пример 1
Пример 1Н_СОТРФАМН_ОТДТЕЛН_ПРОПРОЕКТН_ЗАДАН 1Иванов111-22-331Космос1 1Иванов111-22-332Климат1 2Петров111-22-331Космос2 3Сидоров233-22-111Космос3 3Сидоров233-22-112Климат2 Таблица 1 Отношение СОТРУ...
Аномалии обновления
Аномалии обновленияДаже одного взгляда на таблицу отношения СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ достаточно, чтобы увидеть, что данные хранятся в ней с большой избыточностью. Во многих строках повторяются фа...
Аномалии вставки (INSERT)
Аномалии вставки (INSERT)В отношение СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ нельзя вставить данные о сотруднике, который пока не участвует ни в одном проекте. Действительно, если, например, во втором отделе по...
Аномалии обновления (UPDATE)
Аномалии обновления (UPDATE)Фамилии сотрудников, наименования проектов, номера телефонов повторяются во многих кортежах отношения. Поэтому если сотрудник меняет фамилию, или проект меняет наименов...
Аномалии удаления (DELETE)
Аномалии удаления (DELETE)При удалении некоторых данных может произойти потеря другой информации. Например, если закрыть проект "Космос" и удалить все строки, в которых он встречается, т...
Функциональные зависимости
Функциональные зависимостиОтношение СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ находится в 1НФ, при этом, как было показано выше, логическая модель данных не адекватна модели предметной области. Таким образом, пер...
Определение функциональной зависимости
Определение функциональной зависимостиДля устранения указанных аномалий (а на самом деле для правильного проектирования модели данных!) применяется метод нормализации отношений. Нормализация основ...
Функциональные зависимости отношений и математическое понятие функциональной зависимости
Функциональные зависимости отношений и математическое понятие функциональной зависимости Функциональная зависимость атрибутов отношения напоминает понятие функциональной зависимости в математике....
2НФ (Вторая Нормальная Форма)
2НФ (Вторая Нормальная Форма)Определение 3. Отношение находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от част...
Пример 2
Пример 2Н_СОТРФАМН_ОТДТЕЛ 1Иванов111-22-33 2Петров111-22-33 3Сидоров233-22-11 Таблица 2 Отношение СОТРУДНИКИ_ОТДЕЛЫ Отношение ПРОЕКТЫ (Н_ПРО, ПРОЕКТ): Функциональные зависимости: Н_ПРО ПРОЕКТ...
Пример 3
Пример 3Н_ПРОПРОЕКТ 1Космос 2Климат Таблица 3 Отношение ПРОЕКТЫОтношение ЗАДАНИЯ (Н_СОТР, Н_ПРО, Н_ЗАДАН): Функциональные зависимости: {Н_СОТР, Н_ПРО} Н_ЗАДАН...
Пример 4
Пример 4Н_СОТРН_ПРОН_ЗАДАН 111 121 212 313 322 Таблица 4 Отношения ЗАДАНИЯ...
Анализ декомпозированных отношений
Анализ декомпозированных отношенийОтношения, полученные в результате декомпозиции, находятся в 2НФ. Действительно, отношения СОТРУДНИКИ_ОТДЕЛЫ и ПРОЕКТЫ имеют простые ключи, следовательно автомати...
Оставшиеся аномалии вставки (INSERT)
Оставшиеся аномалии вставки (INSERT)В отношение СОТРУДНИКИ_ОТДЕЛЫ нельзя вставить кортеж (4, Пушников, 1, 33-22-11), т.к. при этом получится, что два сотрудника из 1-го отдела (Иванов и Пушников)...
Оставшиеся аномалии обновления (UPDATE)
Оставшиеся аномалии обновления (UPDATE)Одни и те же номера телефонов повторяются во многих кортежах отношения. Поэтому если в отделе меняется номер телефона, то такие изменения необходимо одноврем...
Оставшиеся аномалии удаления (DELETE)
Оставшиеся аномалии удаления (DELETE)При удалении некоторых данных по-прежнему может произойти потеря другой информации. Например, если удалить сотрудника Сидорова, то будет потеряна информация о...
3НФ (Третья Нормальная Форма)
3НФ (Третья Нормальная Форма)Определение 4. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого. Определение 5. Отношение находится в треть...
Пример 5
Пример 5Н_СОТРФАМН_ОТД 1Иванов1 2Петров1 3Сидоров2 Таблица 5 Отношение СОТРУДНИКИ Отношение ОТДЕЛЫ (Н_ОТД, ТЕЛ): Функциональные зависимости: Зависимость номера телефона от номера отдела: Н_ОТД ТЕЛ...
Пример 6
Пример 6Н_ОТДТЕЛ 111-22-33 233-22-11Таблица 6 Отношение ОТДЕЛЫ Обратим внимание на то, что атрибут Н_ОТД, не являвшийся ключевым в отношении СОТРУДНИКИ_ОТДЕЛЫ, становится потенциальным ключом в от...
Алгоритм нормализации (приведение к 3НФ)
Алгоритм нормализации (приведение к 3НФ)Итак, алгоритм нормализации (т.е. алгоритм приведения отношений к 3НФ) описывается следующим образом. Шаг 1 (Приведение к 1НФ). На первом шаге задается одно...
Анализ критериев для нормализованных и ненормализованных моделей данных
Анализ критериев для нормализованных и ненормализованных моделей данных...
Сравнение нормализованных и ненормализованных моделей
Сравнение нормализованных и ненормализованных моделей Соберем воедино результаты анализа критериев, по которым мы хотели оценить влияние логического моделирования данных на качество физических мод...
Пример 7
Пример 7КритерийОтношения слабо нормализованы(1НФ, 2НФ)Отношения сильно нормализованы(3НФ) Адекватность базы данных предметной областиХУЖЕ (-)ЛУЧШЕ (+) Легкость разработки и сопровождения базы дан...
OLTP и OLAPсистемы
OLTP и OLAP-системы Можно выделить некоторые классы систем, для которых больше подходят сильно или слабо нормализованные модели данных. Сильно нормализованные модели данных хорошо подходят для так...
Корректность процедуры нормализации декомпозиция без потерь Теорема Хеза
Корректность процедуры нормализации - декомпозиция без потерь. Теорема ХезаКак было показано выше, алгоритм нормализации состоит в выявлении функциональных зависимостей предметной области и соотве...
Пример 8
Пример 8НОМЕРФАМИЛИЯЗАРПЛАТА 1Иванов1000 2Петров1000 Таблица 7 Отношение Рассмотрим первый вариант декомпозиции отношения на два отношения:...
Пример 9
Пример 9НОМЕРЗАРПЛАТА 11000 21000 Таблица 8 Отношение...
Пример 10
Пример 10ФАМИЛИЯЗАРПЛАТА Иванов1000 Петров1000 Таблица 9 Отношение Естественное соединение этих проекций, имеющих общий атрибут "ЗАРПЛАТА", очевидно, будет следующим (каждая строка одной...
Пример 11
Пример 11НОМЕРФАМИЛИЯЗАРПЛАТА 1Иванов1000 1Петров1000 2Иванов1000 2Петров1000 Таблица 10 Отношение Итак, данная декомпозиция не является декомпозицией без потерь, т.к. исходное отношение не восста...
Пример 12
Пример 12НОМЕРФАМИЛИЯ 1Иванов 2Петров Таблица 11 Отношение...
Пример 13
Пример 13НОМЕРЗАРПЛАТА 11000 21000 Таблица 12 Отношение По данным проекциям, имеющие общий атрибут "НОМЕР", исходное отношение восстанавливается в точном виде. Тем не менее, нельзя сказа...
Пример 14
Пример 14НОМЕРФАМИЛИЯЗАРПЛАТА 1Иванов1000 2Петров1000 2Сидоров2000 Таблица 13 Отношение Кажется, что этого не может быть, т.к. значения в атрибуте "НОМЕР" повторяются. Но мы же ничего не...
Пример 15
Пример 15НОМЕРФАМИЛИЯ 1Иванов 2Петров 2Сидоров Таблица 14 Отношение...
Пример 16
Пример 16НОМЕРЗАРПЛАТА 11000 21000 22000 Таблица 15 Отношение Естественное соединение этих проекций будет содержать лишние кортежи:...
Пример 17
Пример 17НОМЕРФАМИЛИЯЗАРПЛАТА 1Иванов1000 2Петров1000 2Петров2000 2Сидоров1000 2Сидоров2000 Таблица 16 Отношение Вывод. Таким образом, без дополнительных ограничений на отношение нельзя говорить о...
Выводы
ВыводыПри разработке базы данных можно выделить несколько уровней моделирования: Сама предметная область Модель предметной области Логическая модель данных Физическая модель данных Собственно база...
Глава 7 Нормальные формы более высоких порядков
Глава 7. Нормальные формы более высоких порядков...
НФБК (Нормальная Форма БойсаКодда)
НФБК (Нормальная Форма Бойса-Кодда)При приведении отношений при помощи алгоритма нормализации к отношениям в 3НФ неявно предполагалось, что все отношения содержат один потенциальный ключ. Это не в...
Пример 1
Пример 1Номер поставщикаPNUM Наименование поставщикаPNAME Номер деталиDNUM Поставляемое количествоVOLUME 1Фирма 11100 1Фирма 12200 1Фирма 13300 2Фирма 21150 2Фирма 22250 3Фирма 311000 Таблица 1 О...
Пример 2
Пример 2Номер поставщикаPNUMНаименование поставщикаPNAME 1Фирма 1 2Фирма 2 3Фирма 3 Таблица 2 Отношение "Поставщики"...
Пример 3
Пример 3Номер поставщикаPNUM Номер деталиDNUM Поставляемое количествоVOLUME 11100 12200 13300 21150 22250 311000 Таблица 3 Отношение "Поставки-2" Определение 1. Отношение находится в но...
Пример 4
Пример 4Номер поставщикаPNUM Наименование поставщикаPNAME 1Фирма 1 2Фирма 2 3Фирма 3 Таблица 4 Отношение "Поставщики"...
Пример 5
Пример 5Наименование поставщикаPNAME Номер деталиDNUM Поставляемое количествоVOLUME Фирма 11100 Фирма 12200 Фирма 13300 Фирма 21150 Фирма 22250 Фирма 311000 Таблица 5 Отношение "Поставки-3&q...
Пример 6
Пример 6Номер поставщикаPNUM Номер деталиDNUM Поставляемое количествоVOLUME Сквозной номер поставкиNN 111001 122002 133003 211504 222505 3110006 Таблица 6 Отношение "Поставки-с-номером"...
4НФ (Четвертая Нормальная Форма)
4НФ (Четвертая Нормальная Форма)Рассмотрим следующий пример. Пусть требуется учитывать данные об абитуриентах, поступающих в ВУЗ. При анализе предметной области были выделены следующие требования:...
Пример 7
Пример 7АбитуриентФакультетПредмет ИвановМатематическийМатематика ИвановМатематическийИнформатика ИвановФизическийМатематика ИвановФизическийФизика ПетровМатематическийМатематика ПетровМатематичес...
Пример 8
Пример 8НомерАбитуриента НомерФакультета НомерПредмета 111 112 121 123 211 212 Таблица 8 Модифицированное отношение "Абитуриенты-Факультеты-Предметы"...
Пример 9
Пример 9НомерАбитуриентаАбитуриент 1Иванов 2Петров Таблица 9 Отношение "Абитуриенты"...
Пример 10
Пример 10НомерФакультетаФакультет 1Математический 2Физический Таблица 10 Отношение "Факультеты"...
Пример 11
Пример 11НомерПредмета Предмет 1Математика 2Информатика 3Физика Таблица 11 Отношение "Предметы"Теперь каждое наименование встречается только в одном месте. И все-таки как в исходном, та...
Пример 12
Пример 12ФакультетАбитуриент МатематическийИванов ФизическийИванов МатематическийПетров Таблица 12 Отношение "Факультеты-Абитуриенты"...
Пример 13
Пример 13ФакультетПредмет МатематическийМатематика МатематическийИнформатика ФизическийМатематика ФизическийФизика Таблица 13 Отношение "Факультеты-Предметы"В полученных отношениях устра...
5НФ (Пятая Нормальная Форма)
5НФ (Пятая Нормальная Форма)Функциональные и многозначные зависимости позволяют произвести декомпозицию исходного отношения без потерь на две проекции. Можно, однако, привести примеры отношений, к...
Пример 14
Пример 14XYZ 112 121 211 111 Таблица 14 Отношение RВсевозможные проекции отношения , включающие по два атрибута, имеют вид:...
Пример 15
Пример 15XY 11 12 21 Таблица 15 Проекция R1=R[X,Y]...
Пример 16
Пример 16XZ 12 11 21 Таблица 16 Проекция R2=R[X,Z]...
Пример 17
Пример 17YZ 12 21 11 Таблица 17 Проекция R3=R[Y,Z]Как легко заметить, отношение не восстанавливается ни по одному из попарных соединений , или . Действительно, соединение имеет вид:...
Пример 18
Пример 18XYZ 112 111 122 121 211 Таблица 18 R1 JOIN R2Серым цветом выделен лишний кортеж, отсутствующий в отношении . Аналогично (в силу соображений симметрии) и другие попарные соединения не восс...
Продолжение алгоритма нормализации (приведение к 5НФ)
Продолжение алгоритма нормализации (приведение к 5НФ)В предыдущей главе был описан алгоритм нормализации как алгоритм приведения отношений к 3НФ. Теперь мы можем продолжить этот алгоритм, доведя е...
Выводы
ВыводыОбобщением 3НФ на случай, когда отношение имеет более одного потенциального ключа, является нормальная форма Бойса-Кодда. Отношение находится в нормальной форме Бойса-Кодда (НФБК) тогда и то...
Глава 8 Элементы модели "сущностьсвязь"
Глава 8. Элементы модели "сущность-связь"Моделирование структуры базы данных при помощи алгоритма нормализации, описанного в предыдущих главах, имеет серьезные недостатки: Первоначально...
Основные понятия ERдиаграмм
Основные понятия ER-диаграммОпределение 1. Сущность - это класс однотипных объектов, информация о которых должна быть учтена в модели. Каждая сущность должна иметь наименование, выраженное существ...
Пример разработки простой ERмодели
Пример разработки простой ER-моделиПри разработке ER-моделей мы должны получить следующую информацию о предметной области: Список сущностей предметной области. Список атрибутов сущностей. Описание...
Концептуальные и физические ERмодели
Концептуальные и физические ER-моделиРазработанный выше пример ER-диаграммы является примером концептуальной диаграммы. Это означает, что диаграмма не учитывает особенности конкретной СУБД. По дан...
Выводы
ВыводыРеальным средством моделирования данных является не формальный метод нормализации отношений, а так называемое семантическое моделирование. В качестве инструмента семантического моделирования...
Глава 9 Транзакции и целостность баз данных
Глава 9. Транзакции и целостность баз данныхВ данной и в последующих главах изучается фундаментальное понятие транзакции. Это понятие не входит в реляционную модель данных, т.к. транзакции рассмат...
Пример нарушения целостности базы
Пример нарушения целостности базыДля иллюстрации возможного нарушения целостности базы данных рассмотрим следующий пример: Пример 1. Пусть имеется система, в которой хранятся данные о подразделени...
Пример 1
Пример 1Dept_IdDept_NameDept_Kol 1Кафедра алгебры3 2Кафедра программирования2 Таблица 1 DEPART...
Пример 2
Пример 2Pers_IdPers_NameDept_Id 1Иванов1 2Петров2 3Сидоров1 4Пушников2 5Шарипов1 Таблица 2 PERSON Ограничение целостности этой базы данных состоит в том, что поле Dept_Kol не может заполняться про...
Понятие транзакции
Понятие транзакцииОпределение 1. Транзакция - это последовательность операторов манипулирования данными, выполняющаяся как единое целое (все или ничего) и переводящая базу данных из одного целостн...
Ограничения целостности
Ограничения целостностиСвойство (С) - согласованность транзакций определяется наличием понятия согласованности базы данных. Определение 2. Ограничение целостности - это некоторое утверждение, кото...
Классификация ограничений целостности
Классификация ограничений целостностиОграничения целостности можно классифицировать несколькими способами: По способам реализации. По времени проверки. По области действия....
Классификация ограничений целостности по способам реализации
Классификация ограничений целостности по способам реализации Каждая система обладает своими средствами поддержки ограничений целостности. Различают два способа реализации: Декларативная поддержка...
Классификация ограничений целостности по времени проверки
Классификация ограничений целостности по времени проверки По времени проверки ограничения делятся на: Немедленно проверяемые ограничения. Ограничения с отложенной проверкой. Определение 6. Немедл...
Классификация ограничений целостности по области действия
Классификация ограничений целостности по области действия По области действия ограничения делятся на: Ограничения домена Ограничения атрибута Ограничения кортежа Ограничения отношения Ограничения...
Ограничения домена
Ограничения домена Определение 8. Ограничения целостности домена представляют собой ограничения, накладываемые только на допустимые значения домена. Фактически, ограничения домена обязаны являться...
Ограничения атрибута
Ограничения атрибутаОпределение 9. Ограничение целостности атрибута представляют собой ограничения, накладываемые на допустимые значения атрибута вследствие того, что атрибут основан на каком-либо...
Ограничения кортежа
Ограничения кортежа Определение 10. Ограничения целостности кортежа представляют собой ограничения, накладываемые на допустимые значения отдельного кортежа отношения, и не являющиеся ограничением...
Пример 3
Пример 3Наиме-нование атрибутаОписание атрибутаБазовый ли атрибутФормула для вычислимого атрибута NameНаименование товараДа NКоличествоДа  P1Учетная цена товараДа  S1Учетная сумма на все...
Ограничения отношения
Ограничения отношения Определение 11. Ограничения целостности отношения представляют ограничения, накладываемые только на допустимые значения отдельного отношения, и не являющиеся ограничением цел...
Ограничения базы данных
Ограничения базы данных Определение 12. Ограничения целостности базы данных представляют ограничения, накладываемые на значения двух или более связанных между собой отношений (в том числе отношени...
Реализация декларативных ограничений целостности средствами SQL
Реализация декларативных ограничений целостности средствами SQL...
Общие принципы реализации ограничений средствами SQL
Общие принципы реализации ограничений средствами SQL Стандарт SQL не предусматривает процедурных ограничений целостности, реализуемых при помощи триггеров и хранимых процедур. В стандарте SQL 92 о...
Синтаксис ограничений стандарта SQL
Синтаксис ограничений стандарта SQLПонятие ограничения используется во многих операторах определения данных (DDL). Ограничение check::=CHECK Предикат Ограничения таблицы ::=[CONSTRAINT Имя огранич...
Пример 4
Пример 4XY 1Aa 1Bb 2Cc 2Dd 3Ee 3Ff Таблица 4 таблица A (Родительская)...
Пример 5
Пример 5ZXY 11Aa 21Null 3NullCc 4NullNull 54Gg Таблица 5 Таблица B (Дочерняя)Таблица A имеет первичный ключ (X, Y). Таблица B имеет первичный ключ Z, и внешний ключ (X, Y), ссылающийся на первичны...
Пример 6
Пример 6Колонки X и Y таблицы B допускают null-значенияКолонки X и Y таблицы B не допускают null-значений MATCH отсутствует 1 строка - допустима, совпадает с 1 строкой таблицы A.2 строка - допусти...
Синтаксис операторов SQL использующих ограничения
Синтаксис операторов SQL, использующих ограничения Стандарт SQL описывает следующие операторы, в которых может быть использованы ограничения: CREATE DOMAIN - создать домен ALTER DOMAIN - изменить...
Выводы
ВыводыТранзакция - это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными, выполняющаяся по принципу "все или ничего", и переводящая базу...
Глава 10 Транзакции и параллелизм
Глава 10. Транзакции и параллелизмВ данной главе изучаются возможности параллельного выполнения транзакций несколькими пользователями, т.е. свойство (И) - изолированность транзакций. Современные С...
Работа транзакций в смеси
Работа транзакций в смесиТранзакция рассматривается как последовательность элементарных атомарных операций. Атомарность отдельной элементарной операции состоит в том, что СУБД гарантирует, что, с...
Проблемы параллельной работы транзакций
Проблемы параллельной работы транзакцийКаким образом транзакции различных пользователей могут мешать друг другу? Различают три основные проблемы параллелизма: Проблема потери результатов обновлени...
Проблема потери результатов обновления
Проблема потери результатов обновленияДве транзакции по очереди записывают некоторые данные в одну и ту же строку и фиксируют изменения....
Пример 1
Пример 1Транзакция AВремяТранзакция B Чтение --- ---Чтение Запись --- ---Запись Фиксация транзакции--- ---Фиксация транзакции Потеря результата обновления  Результат. После окончания обеих...
Проблема незафиксированной зависимости (чтение "грязных" данных неаккуратное считывание)
Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание)Транзакция B изменяет данные в строке. После этого транзакция A читает измененные данные и работа...
Пример 2
Пример 2Транзакция A Время Транзакция B ---Чтение ---Запись Чтение --- Работа с прочитанными данными --- ---Откат транзакции Фиксация транзакции--- Работа с "грязными" данными ...
Проблема несовместимого анализа
Проблема несовместимого анализа Проблема несовместимого анализа включает несколько различных вариантов: Неповторяемое считывание. Фиктивные элементы (фантомы). Собственно несовместимый анализ....
Неповторяемое считывание
Неповторяемое считываниеТранзакция A дважды читает одну и ту же строку. Между этими чтениями вклинивается транзакция B, которая изменяет значения в строке....
Пример 3
Пример 3Транзакция AВремяТранзакция B Чтение --- ---Чтение ---Запись ---Фиксация транзакции Повторное чтение --- Фиксация транзакции--- Неповторяемое считывание  Транзакция A ничего не знае...
Фиктивные элементы (фантомы)
Фиктивные элементы (фантомы)Эффект фиктивных элементов несколько отличается от предыдущих транзакций тем, что здесь за один шаг выполняется достаточно много операций - чтение одновременно нескольк...
Пример 4
Пример 4Транзакция AВремяТранзакция B Выборка строк, удовлетворяющих условию . (Отобрано n строк)--- ---Вставка новой строки, удовлетворяющей условию . ---Фиксация транзакции Выборка строк, удовле...
Собственно несовместимый анализ
Собственно несовместимый анализ Эффект собственно несовместимого анализа также отличается от предыдущих примеров тем, что в смеси присутствуют две транзакции - одна длинная, другая короткая. Длинн...
Пример 5
Пример 5Транзакция AВремяТранзакция B Чтение счета и суммирование. --- ---Снятие денег со счета . ---Помещение денег на счет . ---Фиксация транзакции Чтение счета и суммирование. --- Чтение счет...
Конфликты между транзакциями
Конфликты между транзакциямиИтак, анализ проблем параллелизма показывает, что если не предпринимать специальных мер, то при работе в смеси нарушается свойство (И) транзакций - изолированность. Тра...
Блокировки
БлокировкиОсновная идея блокировок заключается в том, что если для выполнения некоторой транзакции необходимо, чтобы некоторый объект не изменялся без ведома этой транзакции, то этот объект должен...
Пример 6
Пример 6Транзакция B пытается наложить блокировку: Транзакция A наложила блокировку:S-блокировкуX-блокировку S-блокировкуДаНЕТ(КонфликтR-W) X-блокировкуНЕТ (КонфликтW-R) НЕТ(КонфликтW-W) Таблица...
Решение проблем параллелизма при помощи блокировок
Решение проблем параллелизма при помощи блокировокРассмотрим, как будут себя вести транзакции, вступающие в конфликт при доступе к данным, если они подчиняются протоколу доступа к данным....
Проблема потери результатов обновления
Проблема потери результатов обновленияДве транзакции по очереди записывают некоторые данные в одну и ту же строку и фиксируют изменения....








Начало