Кортеж (базы данных) — это… Что такое Кортеж (базы данных)?
- Кортеж (базы данных)
-
В математике
В математике корте́ж — последовательность конечного числа элементов. Многие математические объекты формально определяются как кортежи. Например, граф определяется как кортеж (V,E), где V — это набор вершин, а E — подмножество V × V, обозначающее рёбра.
В теории множеств, кортеж обычно определяется индуктивно. Кортеж с нулём элементов — это просто нулевое множество, а если , то .
Программировании
В некоторых языках программирования (например Lisp), кортеж — особый тип структуры данных. В языке Python кортеж (англ. tuple) отличается от списка тем, что кортеж нельзя изменять.
thing = "rose" colour = "red" print "%ss are %s." % (thing, colour)
Эта программа на Python, использующая кортеж
(thing, colour)
, выведет:roses are red.
В базах данных
В базах данных, кортежем называется группа взаимосвязанных элементов данных;
В реляционных базах данных кортеж — это элемент отношения, строка таблицы; упорядоченный набор из N элементов.
Внешние ссылки
Wikimedia Foundation. 2010.
- Кортачча-сулла-страда-дель-вино
- Кортез
Полезное
Смотреть что такое «Кортеж (базы данных)» в других словарях:
Реляционные базы данных — Реляционная база данных база данных, основанная на реляционной модели данных. Слово «реляционный» происходит от англ. relation (отношение[1]). Для работы с реляционными БД применяют реляционные СУБД. Использование реляционных баз данных было… … Википедия
Таблица (базы данных) — У этого термина существуют и другие значения, см. Таблица (значения). Таблица (англ. table) (в реляционной модели данных) структура хранения данных, состоящая из строк и столбцов и обладающая следующими свойствами: значения, находящиеся в одном… … Википедия
Реляционная база данных — Реляционная база данных база данных, основанная на реляционной модели данных. Слово «реляционный» происходит от англ. relation (отношение[1]). Для работы с реляционными БД применяют реляционные СУБД. Использование реляционных баз… … Википедия
Ссылочная целостность — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия
Стандартная библиотека Python — Богатая стандартная библиотека является одной из привлекательных сторон языка программирования Python. Здесь имеются средства для работы со многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP серверов и… … Википедия
Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му … Википедия
Агат (компьютер) — У этого термина существуют и другие значения, см. Агат (значения). «Агат» первый советский серийный универсальный 8 разрядный персональный компьют … Википедия
Отношение (реляционная модель) — У этого термина существуют и другие значения, см. Отношение. Отношение фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной (от лат. relatio отношение, связь). Содержание 1… … Википедия
Пайтон — Python Класс языка: функциональный, объектно ориентированный, императивный, аспектно ориентированный Тип исполнения: интерпретация байт кода, компиляция в MSIL, компиляция в байт код Java Появился в: 1990 г … Википедия
4) реляционная модель данных в СУБД
Что такое реляционная модель?
RELATIONAL MODEL (RM) представляет базу данных как совокупность отношений.
Имя таблицы и имена столбцов помогают интерпретировать значение значений в каждой строке. Данные представлены в виде набора отношений. В реляционной модели данные хранятся в виде таблиц. Однако физическое хранение данных не зависит от того, как данные логически организованы.
Некоторые популярные системы управления реляционными базами данных:
- DB2 и динамический сервер Informix — IBM
- Oracle и RDB — Oracle
- SQL Server и доступ — Microsoft
В этом уроке вы узнаете
Концепции реляционной модели
- Атрибут: каждый столбец в таблице. Атрибуты — это свойства, которые определяют отношение. например, Student_Rollno, NAME и т. д.
- Таблицы. В реляционной модели отношения сохраняются в формате таблицы. Он хранится вместе со своими сущностями. Таблица имеет два свойства строк и столбцов. Строки представляют записи, а столбцы представляют атрибуты.
- Tuple — это всего лишь одна строка таблицы, которая содержит одну запись.
- Схема отношений: Схема отношений представляет имя отношения с его атрибутами.
- Степень: общее количество атрибутов, которое в отношении называется степенью отношения.
- Количество элементов : общее количество строк в таблице.
- Столбец: столбец представляет набор значений для определенного атрибута.
- Экземпляр отношения — Экземпляр отношения — это конечный набор кортежей в системе RDBMS. Экземпляры отношений никогда не имеют повторяющихся кортежей.
- Ключ отношения — каждая строка имеет один, два или несколько атрибутов, которые называются ключом отношения.
- Домен атрибута — каждый атрибут имеет предварительно определенное значение и область действия, известную как домен атрибута.
Ограничения реляционной целостности
Ограничения реляционной целостности относятся к условиям, которые должны присутствовать для действительного отношения. Эти ограничения целостности выводятся из правил в мини-мире, который представляет база данных.
Есть много типов ограничений целостности. Ограничения на систему управления реляционными базами данных в основном делятся на три основные категории:
- Доменные ограничения
- Ключевые ограничения
- Ограничения ссылочной целостности
Ограничения домена
Ограничения домена могут быть нарушены, если значение атрибута не отображается в соответствующем домене или оно не относится к соответствующему типу данных.
Ограничения домена указывают, что в каждом кортеже значение каждого атрибута должно быть уникальным. Это указывается как типы данных, которые включают в себя стандартные типы данных целые числа, действительные числа, символы, логические значения, строки переменной длины и т. Д.
Пример:
Create DOMAIN CustomerName CHECK (value not NULL)
Показанный пример демонстрирует создание ограничения домена таким образом, что CustomerName не NULL
Ключевые ограничения
Атрибут, который может однозначно идентифицировать кортеж в отношении, называется ключом таблицы. Значение атрибута для разных кортежей в отношении должно быть уникальным.
Пример:
В данной таблице CustomerID является ключевым атрибутом Customer Table. Скорее всего, он будет иметь один ключ для одного клиента, CustomerID = 1 только для CustomerName = «Google».
Пользовательский ИД | Имя покупателя | Положение дел |
1 | активный | |
2 | Амазонка | активный |
3 | яблоко | Неактивный |
Ограничения ссылочной целостности
Ограничения ссылочной целостности основаны на концепции внешних ключей. Внешний ключ — это важный атрибут отношения, на который следует ссылаться в других отношениях. Состояние ограничения ссылочной целостности возникает, когда отношение относится к ключевому атрибуту другого или того же отношения. Однако этот ключевой элемент должен существовать в таблице.
Пример:
В приведенном выше примере у нас есть 2 отношения, Клиент и Биллинг.
Tuple для CustomerID = 1 упоминается дважды в отношении Billing. Итак, мы знаем, что CustomerName = Google имеет сумму счета 300 долларов
Операции в реляционной модели
Четыре основные операции обновления, выполненные на модели реляционной базы данных:
Вставьте, обновите, удалите и выберите.
- Вставка используется для вставки данных в отношение
- Удалить используется для удаления кортежей из таблицы.
- Modify позволяет изменять значения некоторых атрибутов в существующих кортежах.
- Выбор позволяет выбрать определенный диапазон данных.
Когда применяется одна из этих операций, ограничения целостности, указанные в схеме реляционной базы данных, никогда не должны нарушаться.
Операция вставки
Операция вставки дает значения атрибута для нового кортежа, который должен быть вставлен в отношение.
Операция обновления
Вы можете видеть, что в приведенной ниже таблице отношений CustomerName = ‘Apple’ обновляется с Неактивно на Активно.
Удалить операцию
Чтобы указать удаление, условие для атрибутов отношения выбирает кортеж для удаления.
В приведенном выше примере CustomerName = «Apple» удаляется из таблицы.
Операция Delete может нарушать ссылочную целостность, если на удаленный кортеж ссылаются внешние ключи из других кортежей в той же базе данных.
Выберите операцию
В приведенном выше примере выбрано CustomerName = «Amazon»
Лучшие практики для создания реляционной модели
- Данные должны быть представлены как совокупность отношений
- Каждое отношение должно быть четко обозначено в таблице
- Строки должны содержать данные об экземплярах объекта
- Столбцы должны содержать данные об атрибутах сущности
- Ячейки таблицы должны содержать одно значение
- Каждому столбцу должно быть присвоено уникальное имя
- Два ряда не могут быть одинаковыми
- Значения атрибута должны быть из одного домена
Преимущества использования реляционной модели
- Простота : реляционная модель данных проще, чем иерархическая и сетевая модель.
- Структурная независимость : реляционная база данных связана только с данными, а не со структурой. Это может улучшить производительность модели.
- Простота в использовании : реляционная модель проста, так как таблицы, состоящие из строк и столбцов, довольно естественны и просты для понимания.
- Возможность запроса : позволяет высокоуровневому языку запросов, такому как SQL, избегать сложной навигации по базе данных.
- Независимость данных : структура базы данных может быть изменена без необходимости изменения какого-либо приложения.
- Масштабируемость . Что касается количества записей или строк и количества полей, база данных должна быть расширена для повышения ее удобства использования.
Недостатки использования реляционной модели
- Немногие реляционные базы данных имеют ограничения на длину полей, которые нельзя превышать.
- Реляционные базы данных могут иногда становиться сложными по мере увеличения объема данных и усложнения отношений между частями данных.
- Сложные системы реляционных баз данных могут привести к изолированным базам данных, где информация не может быть передана из одной системы в другую.
Резюме
- Модель реляционной базы данных представляет базу данных как совокупность отношений (таблиц).
- Атрибут, таблицы, кортеж, схема отношений, степень, мощность, столбец, экземпляр отношения — некоторые важные компоненты реляционной модели
- Ограничения реляционной целостности относятся к условиям, которые должны присутствовать для действительного отношения
- Ограничения домена могут быть нарушены, если значение атрибута не отображается в соответствующем домене или оно не имеет соответствующего типа данных
- Вставка, Выбор, Изменение и Удаление — операции, выполняемые в реляционной модели.
- Реляционная база данных связана только с данными, а не со структурой, которая может улучшить производительность модели.
- Преимуществами реляционной модели являются простота, структурная независимость, простота использования, возможность запросов, независимость данных, масштабируемость.
- Немногие реляционные базы данных имеют ограничения на длину полей, которые нельзя превышать.
#45 Реляционная модель данных. Понятия таблица, ключ, кортеж, атрибут, домен
#45 Реляционная модель данных. Понятия таблица, ключ, кортеж, атрибут, домен№45 Реляционная модель данных. Понятия таблица, ключ, кортеж, атрибут, домен
Реляционная модель данных – логическая модель данных. Впервые была предложена британским учёным сотрудником компании IBM Эдгаром Франком Коддом (E. F. Codd) в 1970 году в статье «A Relational Model of Data for Large Shared Data Banks» (русский перевод статьи, в которой она впервые описана, опубликован в журнале «СУБД» N 1 за 1995 г.). В настоящее время эта модель является фактическим стандартом, на который ориентируются практически все современные коммерческие СУБД.
В реляционной модели достигается гораздо более высокий уровень абстракции данных, чем в иерархической или сетевой. В упомянутой статье Е. Ф. Кодда утверждается, что «реляционная модель предоставляет средства описания данных на основе только их естественной структуры, т.е. без потребности введения какой-либо дополнительной структуры для целей машинного представления». Другими словами, представление данных не зависит от способа их физической организации. Это обеспечивается за счет использования математической теории отношений (само название «реляционная» происходит от английского relation – «отношение»).
В состав реляционной модели данных обычно включают теорию нормализации.
Состав реляционной модели данных
Кристофер Дейт определил три составные части реляционной модели данных:
- структурная
- манипуляционная
- целостная
Структурная часть модели определяет, что единственной структурой данных является нормализованное n-арное отношение. Отношения удобно представлять в форме таблиц, где каждая строка есть кортеж, а каждый столбец – атрибут, определенный на некотором домене. Данный неформальный подход к понятию отношения дает более привычную для разработчиков и пользователей форму представления, где реляционная база данных представляет собой конечный набор таблиц.
Манипуляционная часть модели определяет два фундаментальных механизма манипулирования данными – реляционная алгебра и реляционное исчисление. Основной функцией манипуляционной части реляционной модели является обеспечение меры реляционности любого конкретного языка реляционных БД: язык называется реляционным, если он обладает не меньшей выразительностью и мощностью, чем реляционная алгебра или реляционное исчисление.
Целостная часть модели определяет требования целостности сущностей и целостности ссылок. Первое требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т. е. ни на что не указывать).
Структура реляционной модели данных
Можно провести аналогию между элементами реляционной модели данных и элементами модели «сущность-связь». Реляционные отношения соответствуют наборам сущностей, а кортежи – сущностям. Поэтому, также как и в модели «сущность-связь» столбцы в таблице, представляющей реляционное отношение, называют атрибутами.
Основные компоненты реляционного отношения
Основными понятиями реляционных баз данных являются: отношение, тип данных, атрибут, домен, кортеж, первичный и внешний ключ
Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица. Отношения используются для хранения информации об объектах, представленных в базе данных. Отношение обычно имеет вид двумерной таблицы, в которой строки соответствуют отдельным записям, а столбцы —
атрибутам. При этом атрибуты могут располагаться в любом порядке – независимо от их переупорядочивания отношение будет оставаться одним и тем же, а потому иметь тот же смысл.
Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования. В современных реляционных БД допускается хранение символьных, числовых данных, специализированных числовых данных (денежный), а также специальных данных (дата, время, временной интервал).
Домен — это набор всех допустимых значений, которые может содержать данный атрибут.
Понятие «домен» часто путают с понятием «тип данных». Необходимо четко различать эти два понятия.
Тип данных — это физическая концепция, а домен — логическая. Например, «целое число» — это тип данных, а «возраст» — это домен. Сущности Адрес и Фамилия могут быть реализованы как текстовые поля, однако очевидно, что это разные виды текстовых полей, и принадлежат они к разным доменам.
Для любых двух доменов можно сравнивать определенные для них атрибуты, и выполнять логические операции. Если над атрибутами двух доменов можно выполнять логические операции, то это домены, имеющие совместимый тип данных.
Кортеж – это строка отношения.
Элементами отношения являются кортежи, или строки таблицы. В отношении Группа каждая строка содержит пять значений, по одному для каждого атрибута. Кортежи могут располагаться в любом порядке, при этом отношение будет оставаться тем же самым, а значит, и иметь тот же смысл. Кортежи называются расширением (extension), состоянием (state) или телом отношения, которое со временем изменяется.
Степень отношения определяется количеством атрибутов, которое оно содержит. Отношение Группа (рисунок 6.1) имеет пять атрибутов, и, следовательно, его степень равна пяти. Это значит, что каждая строка таблицы является пятиэлементным кортежем, т.е. кортежем, содержащим пять значения.
Отношение только с одним атрибутом имеет степень 1 и называется унарным (unary) отношением (или одноэлементным кортежем). Отношение с двумя атрибутами называется бинарным (binary), отношение с тремя атрибутами — тернарным (ternary), а для отношений с большим количеством атрибутов используется термин п-арное (n-агу). Определение степени отношения является частью заголовка отношения.
Кардинальность – это количество кортежей, которое содержится в отношении.
Эта характеристика меняется при каждом добавлении или удалении кортежей. Кардинальность является свойством тела отношения и определяется текущим состоянием отношения в произвольно взятый момент.
Существует еще одна терминология: отношение в нем называется файлом (file), кортежи — записями (records), а атрибуты — полями (fields). Эта терминология основана на том факте, что физически реляционная СУБД может хранить каждое отношение в отдельном файле. В табл. 6.2 показаны соответствия, существующие между тремя группами терминов.
Каждый атрибут определен на домене, поэтому домен можно рассматривать как множество допустимых значений данного атрибута. Несколько атрибутов одного отношения и даже атрибуты разных отношений могут быть определены на одном и том же домене.
В примере, показанном на рисунке, атрибуты «Оклад» и «Премия» определены на домене «Деньги». Поэтому, понятие домена имеет семантическую нагрузку: данные можно считать сравнимыми только тогда, когда они относятся к одному домену. Таким образом, в рассматриваемом нами примере сравнение атрибутов «Табельный номер» и «Оклад» является семантически некорректным, хотя они и содержат данные одного типа.
Именованное множество пар «имя атрибута – имя домена» называется схемой отношения. Мощность этого множества — называют степенью или «арностью» отношения. Набор именованных схем отношений представляет из себя схему базы данных.
Атрибут, значение которого однозначно идентифицирует кортежи, называется ключевым (или просто ключом). В нашем случае ключом является атрибут «Табельный номер», поскольку его значение уникально для каждого работника предприятия. Если кортежи идентифицируются только сцеплением значений нескольких атрибутов, то говорят, что отношение имеет составной ключ. Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным, его значения не могут обновляться. Все остальные ключи отношения называются возможными ключами.
В отличие от иерархической и сетевой моделей данных в реляционной отсутствует понятие группового отношения. Для отражения ассоциаций между кортежами разных отношений используется дублирование их ключей.
Применение реляционной модели данных
Пример базы данных, содержащей сведения о подразделениях предприятия и работающих в них сотрудниках, применительно к реляционной модели будет иметь вид:
База данных о подразделениях и сотрудниках предприятия
Например, связь между отношениями ОТДЕЛ и СОТРУДНИК создается путем копирования первичного ключа «Номер_отдела» из первого отношения во второе. Таким образом:
- для того, чтобы получить список работников данного подразделения, необходимо:
- из таблицы ОТДЕЛ установить значение атрибута «Номер_отдела», соответствующее данному «Наименованию_отдела»
- выбрать из таблицы СОТРУДНИК все записи, значение атрибута «Номер_отдела» которых равно полученному на предыдущем шаге
- для того, чтобы узнать в каком отделе работает сотрудник, нужно выполнить обратную операцию:
- определяем «Номер_отдела» из таблицы СОТРУДНИК
- по полученному значению находим запись в таблице ОТДЕЛ
Атрибуты, представляющие собой копии ключей других отношений, называются внешними ключами.
Достоинства и недостатки реляционной модели данных
Достоинства реляционной модели:
- простота и доступность для понимания пользователем. Единственной используемой информационной конструкцией является «таблица»;
- строгие правила проектирования, базирующиеся на математическом аппарате;
- полная независимость данных. Изменения в прикладной программе при изменении реляционной БД минимальны;
- для организации запросов и написания прикладного ПО нет необходимости знать конкретную организацию БД во внешней памяти.
Недостатки реляционной модели:
- далеко не всегда предметная область может быть представлена в виде «таблиц»;
- в результате логического проектирования появляется множество «таблиц». Это приводит к трудности понимания структуры данных;
- БД занимает относительно много внешней памяти;
- относительно низкая скорость доступа к данным.
Что такое реляционные базы данных Access 2010 — Сводные таблицы Excel 2010
На сегодняшний день доминирующими среди баз данных являются реляционные. Такое широкое распространение связано с применением в них реляционной модели данных, обеспечивающей простоту, гибкость структуры, удобство реализации, а самое главное — наличие теоретического описания.
В основе реляционной модели лежит один из разделов математики — реляционная алгебра. Реляционная модель данных пришла на смену сетевой модели, век которой быстро закончился именно из-за отсутствия теоретического описания. Многие разработчики старшего поколения до сих пор уверены в своих заблуждениях, что в основу сетевой модели данных положена теория графов!
Правда, наличие теоретического описания несет с собой и некоторые трудности. Терминология, используемая в реляционной модели, может привести к путанице, поскольку существуют два набора терминов. Один родом из математики, а второй — из теории реляционных баз данных. Но это еще полбеды. Есть также третий вариант терминологии, основанный на том, что физически в реляционной базе данных каждое отношение может храниться в отдельном файле. Тогда отношение — это файл, кортеж — запись, а атрибут — поле.
Не будем вдаваться в подробности отличия математического отношения от отношения (связи) в базе данных, просто посмотрите на таблице ниже, и в дальнейшем будем применять только термины реляционной модели данных. Реляционные базы данных Access 2010 могут использоваться в качестве каталога и для быстрого поиска и хранения данных и пригодится база данных
Таблица — регулярная структура, состоящая из конечного набора однотипных записей. Постараемся избегать термина «отношение».
Таблица 1.1. Элементы реляционной модели данных
Элемент реляционной модели | Форма представления |
---|---|
Отношение | Таблица |
Схема отношения | Заголовок таблицы |
Кортеж | Строка таблицы |
Сущность | Свойства объекта |
Атрибут | Заголовок столбца таблицы |
Значение атрибута | Значение поля |
Первичный ключ | Одно или несколько полей таблицы |
Тип данных | Тип значений столбца таблицы |
Лекции ВМиК.
Базы данных. Теоретические основы. [Замок Дракона] Лекции ВМиК. Базы данных. Теоретические основы. [Замок Дракона] полная версияБ Е З Б А Ш Н И
На главную / Архивы Замка Дракона / Лекции ВМиК / Базы данных / Теоретические основыМы приступаем к изучению реляционных баз данных и систем управления реляционными базами данных. Этот подход является наиболее распространенным в настоящее время, хотя наряду с общепризнанными достоинствами обладает и рядом недостатков. К числу достоинств реляционного подхода можно отнести:
- наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать большую часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными;
- наличие простого и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации баз данных;
- возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти.
Реляционные системы далеко не сразу получили широкое распространение. В то время, как основные теоретические результаты в этой области были получены еще в 70-х, и тогда же появились первые прототипы реляционных СУБД, долгое время считалось невозможным добиться эффективной реализации таких систем. Однако отмеченные выше преимущества и постепенное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к тому, что уже в середине 80-х годов реляционные системы практически вытеснили с мирового рынка ранние СУБД.
В настоящее время основным предметом критики реляционных СУБД является не их недостаточная эффективность, а присущая этим системам некоторая ограниченность (прямое следствие простоты) при использование в так называемых нетрадиционных областях (наиболее распространенными примерами являются системы автоматизации проектирования), в которых требуются предельно сложные структуры данных. Еще одним часто отмечаемым недостатком реляционных баз данных является невозможность адекватного отражения семантики предметной области. Другими словами, возможности представления знаний о семантической специфике предметной области в реляционных системах очень ограничены. Современные исследования в области постреляционных систем главным образом посвящены именно устранению этих недостатков.
Лекция 4. Общие понятия реляционного подхода к организации БД. Основные концепции и термины
На этой лекции мы введем на сравнительно неформальном уровне основные понятия реляционных баз данных, а также определим существо реляционной модели данных. Основной целью лекции является демонстрация простоты и возможности интуитивной интерпретации этих понятий. В дальнейших лекциях будут приводиться более формальные определения, на которых основывается математическая теория реляционных баз данных.
4.1. Базовые понятия реляционных баз данных
Основными понятиями реляционных баз данных являются тип данных, домен, атрибут, кортеж, первичный ключ и отношение.
Для начала покажем смысл этих понятий на примере отношения СОТРУДНИКИ, содержащего информацию о сотрудниках некоторой организации:
4.
1.1. Тип данныхПонятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (таких как «деньги»), а также специальных «темпоральных» данных (дата, время, временной интервал). Достаточно активно развивается подход к расширению возможностей реляционных систем абстрактными типами данных (соответствующими возможностями обладают, например, системы семейства Ingres/Postgres). В нашем примере мы имеем дело с данными трех типов: строки символов, целые числа и «деньги».
4.1.2. Домен
Понятие домена более специфично для баз данных, хотя и имеет некоторые аналогии с подтипами в некоторых языках программирования. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат «истина», то элемент данных является элементом домена.
Наиболее правильной интуитивной трактовкой понятия домена является понимание домена как допустимого потенциального множества значений данного типа. Например, домен «Имена» в нашем примере определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут изображать имя (в частности, такие строки не могут начинаться с мягкого знака).
Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов «Номера пропусков» и «Номера групп» относятся к типу целых чисел, но не являются сравнимыми. Заметим, что в большинстве реляционных СУБД понятие домена не используется, хотя в Oracle V.7 оно уже поддерживается.
4.1.3. Схема отношения, схема базы данных
Схема отношения — это именованное множество пар {имя атрибута, имя домена (или типа, если понятие домена не поддерживается)}. Степень или «арность» схемы отношения — мощность этого множества. Степень отношения СОТРУДНИКИ равна четырем, то есть оно является 4-арным. Если все атрибуты одного отношения определены на разных доменах, осмысленно использовать для именования атрибутов имена соответствующих доменов (не забывая, конечно, о том, что это является всего лишь удобным способом именования и не устраняет различия между понятиями домена и атрибута).
Схема БД (в структурном смысле) — это набор именованных схем отношений.
4.1.4. Кортеж, отношение
Кортеж, соответствующий данной схеме отношения, — это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения. «Значение» является допустимым значением домена данного атрибута (или типа данных, если понятие домена не поддерживается). Тем самым, степень или «арность» кортежа, т.е. число элементов в нем, совпадает с «арностью» соответствующей схемы отношения. Попросту говоря, кортеж — это набор именованных значений заданного типа.
Отношение — это множество кортежей, соответствующих одной схеме отношения. Иногда, чтобы не путаться, говорят «отношение-схема» и «отношение-экземпляр», иногда схему отношения называют заголовком отношения, а отношение как набор кортежей — телом отношения. На самом деле, понятие схемы отношения ближе всего к понятию структурного типа данных в языках программирования. Было бы вполне логично разрешать отдельно определять схему отношения, а затем одно или несколько отношений с данной схемой.
Однако в реляционных базах данных это не принято. Имя схемы отношения в таких базах данных всегда совпадает с именем соответствующего отношения-экземпляра. В классических реляционных базах данных после определения схемы базы данных изменяются только отношения-экземпляры. В них могут появляться новые и удаляться или модифицироваться существующие кортежи. Однако во многих реализациях допускается и изменение схемы базы данных: определение новых и изменение существующих схем отношения. Это принято называть эволюцией схемы базы данных.
Обычным житейским представлением отношения является таблица, заголовком которой является схема отношения, а строками — кортежи отношения-экземпляра; в этом случае имена атрибутов именуют столбцы этой таблицы. Поэтому иногда говорят «столбец таблицы», имея в виду «атрибут отношения». Когда мы перейдем к рассмотрению практических вопросов организации реляционных баз данных и средств управления, мы будем использовать эту житейскую терминологию. Этой терминологии придерживаются в большинстве коммерческих реляционных СУБД.
Реляционная база данных — это набор отношений, имена которых совпадают с именами схем отношений в схеме БД.
Как видно, основные структурные понятия реляционной модели данных (если не считать понятия домена) имеют очень простую интуитивную интерпретацию, хотя в теории реляционных БД все они определяются абсолютно формально и точно.
4.2. Фундаментальные свойства отношений
Остановимся теперь на некоторых важных свойствах отношений, которые следуют из приведенных ранее определений:
4.
2.1. Отсутствие кортежей-дубликатовТо свойство, что отношения не содержат кортежей-дубликатов, следует из определения отношения как множества кортежей. В классической теории множеств по определению каждое множество состоит из различных элементов.
Из этого свойства вытекает наличие у каждого отношения так называемого первичного ключа — набора атрибутов, значения которых однозначно определяют кортеж отношения. Для каждого отношения по крайней мере полный набор его атрибутов обладает этим свойством. Однако при формальном определении первичного ключа требуется обеспечение его «минимальности», т.е. в набор атрибутов первичного ключа не должны входить такие атрибуты, которые можно отбросить без ущерба для основного свойства — однозначно определять кортеж. Понятие первичного ключа является исключительно важным в связи с понятием целостности баз данных.
Забегая вперед, заметим, что во многих практических реализациях РСУБД допускается нарушение свойства уникальности кортежей для промежуточных отношений, порождаемых неявно при выполнении запросов. Такие отношения являются не множествами, а мультимножествами, что в ряде случаев позволяет добиться определенных преимуществ, но иногда приводит к серьезным проблемам.
4.2.2. Отсутствие упорядоченности кортежей
Свойство отсутствия упорядоченности кортежей отношения также является следствием определения отношения-экземпляра как множества кортежей. Отсутствие требования к поддержанию порядка на множестве кортежей отношения дает дополнительную гибкость СУБД при хранении баз данных во внешней памяти и при выполнении запросов к базе данных. Это не противоречит тому, что при формулировании запроса к БД, например, на языке SQL можно потребовать сортировки результирующей таблицы в соответствии со значениями некоторых столбцов. Такой результат, вообще говоря, не отношение, а некоторый упорядоченный список кортежей.
4.2.3. Отсутствие упорядоченности атрибутов
Атрибуты отношений не упорядочены, поскольку по определению схема отношения есть множество пар {имя атрибута, имя домена}. Для ссылки на значение атрибута в кортеже отношения всегда используется имя атрибута. Это свойство теоретически позволяет, например, модифицировать схемы существующих отношений не только путем добавления новых атрибутов, но и путем удаления существующих атрибутов. Однако в большинстве существующих систем такая возможность не допускается, и хотя упорядоченность набора атрибутов отношения явно не требуется, часто в качестве неявного порядка атрибутов используется их порядок в линейной форме определения схемы отношения.
4.2.4. Атомарность значений атрибутов
Значения всех атрибутов являются атомарными. Это следует из определения домена как потенциального множества значений простого типа данных, т.е. среди значений домена не могут содержаться множества значений (отношения). Принято говорить, что в реляционных базах данных допускаются только нормализованные отношения или отношения, представленные в первой нормальной форме. Потенциальным примером ненормализованного отношения является следующее:
Можно сказать, что здесь мы имеем бинарное отношение, значениями атрибута ОТДЕЛЫ которого являются отношения. Заметим, что исходное отношение СОТРУДНИКИ является нормализованным вариантом отношения ОТДЕЛЫ:
СОТР_НОМЕР | СОТР_ИМЯ | СОТР_ЗАРП | СОТР_ОТД_НОМЕР | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2934 | Иванов | 112,000 | 310 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2935 | Петров | 144,000 | 310 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2936 | Сидоров | 92,000 | 313 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2937 | Федоров | 110,000 | 310 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2938 | Иванова | 112,000 | 315 |
Нормализованные отношения составляют основу классического реляционного подхода к организации баз данных. Они обладают некоторыми ограничениями (не любую информацию удобно представлять в виде плоских таблиц), но существенно упрощают манипулирование данными. Рассмотрим, например, два идентичных оператора занесения кортежа:
Зачислить сотрудника Кузнецова (пропуск номер 3000, зарплата 115,000) в отдел номер 320 и
Зачислить сотрудника Кузнецова (пропуск номер 3000, зарплата 115,000) в отдел номер 310.
Если информация о сотрудниках представлена в виде отношения СОТРУДНИКИ, оба оператора будут выполняться одинаково (вставить кортеж в отношение СОТРУДНИКИ). Если же работать с ненормализованным отношением ОТДЕЛЫ, то первый оператор выразится в занесение кортежа, а второй — в добавление информации о Кузнецове в множественное значение атрибута ОТДЕЛ кортежа с первичным ключом 310.
4.3. Реляционная модель данных
Когда в предыдущих разделах мы говорили об основных понятиях реляционных баз данных, мы не опирались на какую-либо конкретную реализацию. Эти рассуждения в равной степени относились к любой системе, при построении которой использовался реляционный подход.
Другими словами, мы использовали понятия так называемой реляционной модели данных. Модель данных описывает некоторый набор родовых понятий и признаков, которыми должны обладать все конкретные СУБД и управляемые ими базы данных, если они основываются на этой модели. Наличие модели данных позволяет сравнивать конкретные реализации, используя один общий язык.
Хотя понятие модели данных является общим, и можно говорить о иерархической, сетевой, некоторой семантической и т.д. моделях данных, нужно отметить, что это понятие было введено в обиход применительно к реляционным системам и наиболее эффективно используется именно в этом контексте. Попытки прямолинейного применения аналогичных моделей к дореляционным организациям показывают, что реляционная модель слишком «велика» для них, а для постреляционных организаций она оказывается «мала».
4.3.1. Общая характеристика
Наиболее распространенная трактовка реляционной модели данных, по-видимому, принадлежит Дейту, который воспроизводит ее (с различными уточнениями) практически во всех своих книгах. Согласно Дейту реляционная модель состоит из трех частей, описывающих разные аспекты реляционного подхода: структурной части, манипуляционной части и целостной части.
В структурной части модели фиксируется, что единственной структурой данных, используемой в реляционных БД, является нормализованное n-арное отношение. По сути дела, в предыдущих двух разделах этой лекции мы рассматривали именно понятия и свойства структурной составляющей реляционной модели.
В манипуляционной части модели утверждаются два фундаментальных механизма манипулирования реляционными БД — реляционная алгебра и реляционное исчисление. Первый механизм базируется в основном на классической теории множеств (с некоторыми уточнениями), а второй — на классическом логическом аппарате исчисления предикатов первого порядка. Мы рассмотрим эти механизмы более подробно на следующей лекции, а пока лишь заметим, что основной функцией манипуляционной части реляционной модели является обеспечение меры реляционности любого конкретного языка реляционных БД: язык называется реляционным, если он обладает не меньшей выразительностью и мощностью, чем реляционная алгебра или реляционное исчисление.
4.3.2. Целостность сущности и ссылок
Наконец, в целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности сущностей. Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Как мы видели в предыдущем разделе, это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений.
Второе требование называется требованием целостности по ссылкам и является несколько более сложным. Очевидно, что при соблюдении нормализованности отношений сложные сущности реального мира представляются в реляционной БД в виде нескольких кортежей нескольких отношений. Например, представим, что нам требуется представить в реляционной базе данных сущность ОТДЕЛ с атрибутами ОТД_НОМЕР (номер отдела), ОТД_КОЛ (количество сотрудников) и ОТД_СОТР (набор сотрудников отдела). Для каждого сотрудника нужно хранить СОТР_НОМЕР (номер сотрудника), СОТР_ИМЯ (имя сотрудника) и СОТР_ЗАРП (заработная плата сотрудника). Как мы вскоре увидим, при правильном проектировании соответствующей БД в ней появятся два отношения: ОТДЕЛЫ ( ОТД_НОМЕР, ОТД_КОЛ ) (первичный ключ — ОТД_НОМЕР) и СОТРУДНИКИ ( СОТР_НОМЕР, СОТР_ИМЯ, СОТР_ЗАРП, СОТР_ОТД_НОМ ) (первичный ключ — СОТР_НОМЕР).
Как видно, атрибут СОТР_ОТД_НОМ появляется в отношении СОТРУДНИКИ не потому, что номер отдела является собственным свойством сотрудника, а лишь для того, чтобы иметь возможность восстановить при необходимости полную сущность ОТДЕЛ. Значение атрибута СОТР_ОТД_НОМ в любом кортеже отношения СОТРУДНИКИ должно соответствовать значению атрибута ОТД_НОМ в некотором кортеже отношения ОТДЕЛЫ. Атрибут такого рода называется внешним ключом, поскольку его значения однозначно характеризуют сущности, представленные кортежами некоторого другого отношения (т.е. задают значения их первичного ключа). Говорят, что отношение, в котором определен внешний ключ, ссылается на соответствующее отношение, в котором такой же атрибут является первичным ключом.
Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать). Для нашего примера это означает, что если для сотрудника указан номер отдела, то этот отдел должен существовать.
Ограничения целостности сущности и по ссылкам должны поддерживаться СУБД. Для соблюдения целостности сущности достаточно гарантировать отсутствие в любом отношении кортежей с одним и тем же значением первичного ключа. С целостностью по ссылкам дела обстоят несколько более сложно.
Понятно, что при обновлении ссылающегося отношения (вставке новых кортежей или модификации значения внешнего ключа в существующих кортежах) достаточно следить за тем, чтобы не появлялись некорректные значения внешнего ключа. Но как быть при удалении кортежа из отношения, на которое ведет ссылка?
Здесь существуют три подхода, каждый из которых поддерживает целостность по ссылкам. Первый подход заключается в том, что запрещается производить удаление кортежа, на который существуют ссылки (т.е. сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значения их внешнего ключа). При втором подходе при удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа автоматически становится неопределенным. Наконец, третий подход (каскадное удаление) состоит в том, что при удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи.
В развитых реляционных СУБД обычно можно выбрать способ поддержания целостности по ссылкам для каждой отдельной ситуации определения внешнего ключа. Конечно, для принятия такого решения необходимо анализировать требования конкретной прикладной области.
[Наверх: в начало раздела ≡ Назад: Системы баз данных, основанные на правилах ≡ Вперед: Базисные средства манипулирования реляционными данными ≡ Здесь: Теоретические основы]Основы реляционной алгебры / Хабр
Реляционная алгебра базируется на теории множеств и является основой логики работы баз данных.
Когда я только изучал устройство баз данных и SQL, предварительное ознакомление с реляционной алгеброй очень помогло дальнейшим знаниям правильно уложиться в голове, и я постараюсь что бы эта статья произвела подобный эффект.
Так что если вы собираетесь начать свое обучение в этой области или вам просто стало интересно, прошу под кат.
Реляционная база данных
Для начала введем понятие реляцинной базы данных, в которой будем выполнять все действия.
Реляционной базой данных называется совокупность отношений, содержащих всю информацию, которая должна хранится в базе. В данном определении нам интересен термин отношение, но пока оставим его без строго определения.
Лучше представим себе таблицу продуктов.
таблица PRODUCTS
ID | NAME | COMPANY | PRICE |
123 | Печеньки | ООО ”Темная сторона” | 190 |
156 | Чай | ООО ”Темная сторона” | 60 |
235 | Ананасы | ОАО ”Фрукты” | 100 |
623 | Томаты | ООО ”Овощи” | 130 |
Таблица состоит из 4х строк, строка в таблице является кортежем в реляционной теории. Множество упорядоченных кортежей называется отношением.
Перед тем как дать определение отношения, введем еще один термин — домен. Домены применительно к таблице это столбцы.
Для ясности, теперь введем строгое определение отношения.
Пусть даны N множеств D1,D2, …. Dn (домены), отношением R над этими множествами называется множество упорядоченных N-кортежей вида <d1,d1,. ..dn>, где d1 принадлежит D1 и тд. Множества D1,D2,..Dn называются доменами отношения R.
Каждый элемент кортежа представляет собой значение одного из атрибутов, соответствующего одному из доменов.
Ключи в отношениях
В отношении требованием является то, что все кортежи должны различаться. Для однозначной идентификации кортежа существует первичный ключ. Первичный ключ это атрибут или набор из минимального числа атрибутов, который однозначно идентифицирует конкретный кортеж и не содержит дополнительных атрибутов.
Подразумевается, что все атрибуты в первичном ключе должны быть необходимыми и достаточными для идентификации конкретного кортежа, и исключение любого из атрибутов в ключе сделает его недостаточным для идентификации.
Например, в такой таблице ключом будет сочетание атрибутов из первого и второго столбца.
таблица DRIVERS
COMPANY | DRIVER |
ООО ”Темная сторона” | Владимир |
ООО ”Темная сторона” | Михаил |
ОАО ”Фрукты” | Руслан |
ООО ”Овощи” | Владимир |
Видно, что в организации может быть несколько водителей, и чтобы однозначно идентифицировать водителя необходимо и значение из столбца “Название организации” и из “Имя водителя”. Такой ключ называется составным.
В реляционной БД таблицы взаимосвязаны и соотносятся друг с другом как главные и подчиненные. Связь главной и подчиненнной таблицы осуществляется через первичный ключ (primary key) главной таблицы и внешний ключ ( foreign key ) подчиненной таблицы.
Внешний ключ это атрибут или набор атрибутов, который в главной таблице является первичным ключем.
Этой подготовительной теории будет достаточно для знакомства с основными операциями реляционной алгебры.
Операции реляционной алгебры
Основные восемь операций реляционной алгебры были предложены
Э.Коддом.
- Объединение
- Пересечение
- Вычитание
- Декартово произведение
- Выборка
- Проекция
- Соединение
- Деление
Первая половина операций аналогична таким же операциям над множествами. Часть операций можно выразить через другие операции. Рассмотрим большую часть операций с примерами.
Для понимания важно запомнить, что результатом любой операции алгебры над отношениями является еще одно отношение, которое можно потом так же использовать в других операциях.
Создадим еще одну таблицу, которая нам пригодится в примерах.
таблица SELLERS
ID | SELLER |
123 | OOO “Дарт” |
156 | ОАО ”Ведро” |
235 | ЗАО “Овоще База” |
623 | ОАО ”Фирма” |
Условимся, что в этой таблице ID это внешний ключ, связанный с первичным ключом таблицы PRODUCTS.
Для начала рассмотрим самую простую операцию — имя отношения. Её результатом будет такое же отношение, то есть выполнив операцию PRODUCTS, мы получим копию отношения PRODUCTS.
Проекция
Проекция является операцией, при которой из отношения выделяются атрибуты только из указанных доменов, то есть из таблицы выбираются только нужные столбцы, при этом, если получится несколько одинаковых кортежей, то в результирующем отношении остается только по одному экземпляру подобного кортежа.
Для примера сделаем проекцию на таблице PRODUCTS выбрав из нее ID и PRICE.
Синтаксис операции:
π(ID, PRICE) PRODUCTS
В результате этой операции получим отношение:
ID | PRICE |
123 | 190 |
156 | 60 |
235 | 100 |
623 | 130 |
Выборка
Выборка — это операция, которая выделяет множество строк в таблице, удовлетворяющих заданным условиям. Условием может быть любое логическое выражение.
Для примера сделаем выборку из таблицы с ценой больше 90.
Синтаксис операции:
σ(PRICE>90) PRODUCTS
ID | NAME | COMPANY | PRICE |
123 | Печеньки | ООО ”Темная сторона” | 190 |
235 | Ананасы | ОАО ”Фрукты” | 100 |
623 | Томаты | ООО ”Овощи” | 130 |
В условии выборки мы можем использовать любое логическое выражение. ID<300) PRODUCTS
ID | NAME | COMPANY | PRICE |
123 | Печеньки | ООО ”Темная сторона” | 190 |
235 | Ананасы | ОАО ”Фрукты” | 100 |
Совместим операторы проекции и выборки. Мы можем это сделать, потому что любой из операторов в результате возвращает отношение и в качестве аргументов использует также отношение.
Из таблицы с продуктами выберем все компании, продающие продуты дешевле 110.
πCOMPANYσ(PRICE<100 ) PRODUCTS
COMPANY |
ООО ”Темная сторона” |
ОАО ”Фрукты” |
Умножение
Умножение или декартово произведение является операцией, производимой над двумя отношениями, в результате которой мы получаем отношение со всеми доменами из двух начальных отношений. Кортежи в этих доменах будут представлять из себя все возможные сочетания кортежей из начальных отношений. На примере будет понятнее.
Получим декартово произведения таблиц PRODUCTS и SELLERS.
Синтаксис операции:
PRODUCTS × SELLERS
Можно заметить, что у двух этих таблиц есть одинаковый домен ID. В подобной ситуации домены с одинаковыми названиями получают префикс в виде названия соответствующего отношения, как показано ниже.
Для краткости перемножим не полные отношения, а выборки с условием ID<235
(цветом выделены одни и те же кортежи)
PRODUCTS.ID | NAME | COMPANY | PRICE | SELLERS.ID | SELLER |
123 | Печеньки | ООО ”Темная сторона” | 190 | 123 | OOO “Дарт” |
156 | Чай | ООО ”Темная сторона” | 60 | 156 | ОАО ”Ведро” |
123 | Печеньки | ООО ”Темная сторона” | 190 | 156 | ОАО ”Ведро” |
156 | Чай | ООО ”Темная сторона” | 60 | 123 | OOO “Дарт” |
Для примера использования этой операции представим себе необходимость выбрать продавцов с ценами меньше 90. PRICE<90) PRODUCTS × SELLERS
В результате этой операции получим отношение:
SELLER |
ОАО ”Ведро” |
Соединение и естественное соединение
Операция соединения обратна операции проекции и создает новое отношение из двух уже существующих. Новое отношение получается конкатенацией кортежей первого и второго отношений, при этом конкатенации подвергаются отношения, в которых совпадают значения заданных атрибутов. В частности, если соединить отношения PRODUCTS и SELLERS, этими атрибутами будут атрибуты доменов ID.
Также для понятности можно представить соеднинение как результат двух операций. Сначала берется произведение исходных таблиц, а потом из полученного отношения мы делаем выборку с условием равенства атрибутов из одинаковых доменов. В данном случае условием явлется равенство PRODUCTS.ID и SELLERS.ID.
Попробуем соединить отношения PRODUCTS и SELLERS и получим отношение.
PRODUCTS. ID | NAME | COMPANY | PRICE | SELLERS.ID | SELLER |
123 | Печеньки | ООО ”Темная сторона” | 190 | 123 | OOO “Дарт” |
156 | Чай | ООО ”Темная сторона” | 60 | 156 | ОАО ”Ведро” |
235 | Ананасы | ОАО ”Фрукты” | 100 | 235 | ЗАО “Овоще База” |
623 | Томаты | ООО ”Овощи” | 130 | 623 | ОАО ”Фирма” |
Натуральное соединение получает схожее отношение, но в случае, если у нас корректно настроена схема в базе ( в данном случае первичный ключ таблицы PRODUCTS ID связан с внешним ключем таблицы SELLERS ID), то в результирующем отношении остается один домен ID.
Синтаксис операции:
PRODUCTS ⋈ SELLERS;
Получится такое отношение:
PRODUCTS. ID | NAME | COMPANY | PRICE | SELLER |
123 | Печеньки | ООО ”Темная сторона” | 190 | OOO “Дарт” |
156 | Чай | ООО ”Темная сторона” | 60 | ОАО ”Ведро” |
235 | Ананасы | ОАО ”Фрукты” | 100 | ЗАО “Овоще База” |
623 | Томаты | ООО ”Овощи” | 130 | ОАО ”Фирма” |
Пересечение и вычитание.
Результатом операции пересечения будет отношение, состоящее из кортежей, полностью входящих в состав обоих отношений.
Результатом вычитания будет отношение, состоящее из кортежей, которые являются кортежами первого отношения и не являются кортежами второго отношения.
Данные операции аналогичны таким же операциям над множествам, так что, я думаю, нет необходимости подробно их расписывать.
Источники информации
- Основы использования и проектирования баз данных — В. М. Илюшечкин
- курс лекций Introduction to Databases — Jennifer Widom, Stanford University
Буду благодарен за аргументированные замечания
26. Ограничения целостности для реляционной базы данных.
Целостность данных — это механизм поддержания соответствия базы данных предметной области. В реляционной модели данных определены два базовых требования обеспечения целостности:
· целостность ссылок
· целостность сущностей.
Целостность сущностей.
Объект реального мира представляется в реляционной базе данных как кортеж некоторого отношения. Требование целостности сущностей заключается в следующем:
· каждый кортеж любого отношения должен отличатся от любого другого кортежа этого отношения (т.е. любое отношение должно обладать первичным ключом).
Если данное требование не соблюдается (т. е. кортежи в рамках одного отношения не уникальны), то в базе данных может хранится противоречивая информация об одном и том же объекте. Поддержание целостности сущностей обеспечивается средствами системы управления базой данных (СУБД). Это осуществляется с помощью двух ограничений:
· при добавлении записей в таблицу проверяется уникальность их первичных ключей
· не позволяется изменение значений атрибутов, входящих в первичный ключ.
Целостность ссылок
Сложные объекты реального мира представляются в реляционной базе данных в виде кортежей нескольких нормализованных отношений, связанных между собой. При этом:
1. Связи между данными отношениями описываются в терминах функциональных зависимостей.
2. Для отражения функциональных зависимостей между кортежами разных отношений используется дублирование первичного ключа одного отношения (родительского) в другое (дочернее). Атрибуты, представляющие собой копии ключей родительских отношений, называются внешними ключами.
Требование целостности по ссылкам состоит в следующем:
· для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись кортеж с таким же значением первичного ключа.
Пример:
Пусть, например, даны отношения ОТДЕЛ (N_ОТДЕЛА, ИМЯ_ОТДЕЛА) и СОТРУДНИК (N_СОТРУДНИКА, N_ОТДЕЛА, ИМЯ_СОТРУДНИКА), в которых хранятся сведения о работниках предприятия и подразделениях, где они работают. Отношение ОТДЕЛ в данной паре является родительским, поэтому его первичный ключ «N_отдела» присутствует в дочернем отношении СОТРУДНИК. Требование целостности по ссылкам означает здесь, что в таблице СОТРУДНИК не может присутствовать кортеж со значением атрибута «N_отдела», которое не встречается в таблице ОТДЕЛ. Если такое значение в отношении ОТДЕЛ отсутствует, значение внешнего ключа в отношении СОТРУДНИК считается неопределенным.
Проектирование базы данных — Введение
Это четвертое издание этой онлайн-книги Альваро Монж, пожалуйста, свяжитесь с ним с любыми вопросами и особенно, чтобы сообщить о любых ошибках или предлагать изменения.
Предыдущие издания были выполнены Томом Джуэттом. Теперь, когда Том ушел с преподавания, он по-прежнему активно занимается веб-дизайном и консультированием по вопросам доступности.
Редакции
Это четвертое издание dbDesign является значительным обновлением содержания книги. а также его дизайну (готовится к печати).Большая часть контента была обновлена и работа над этим продолжается. Более подробная информация об изменениях будет продолжать публиковаться ниже на протяжении всего процесса.
- Обновите все веб-страницы, чтобы использовать элементы HTML, соответствующие их содержимому. Для например, использовать списки, в которых есть информация, использование HTML5 элементы секционирования (статья, раздел и т. д.), используйте элемент figure в качестве контейнера изображений и т. д. Удалите использование устаревших элементов / атрибутов HTML.
- Обновляет определения стилей CSS по мере необходимости с учетом изменений в HTML.
- Использование символов UTF-8 вместо символов HTML.
- интегрирует Highlight.js, библиотека подсветки синтаксиса, встроенная в JavaScript и используется на этом веб-сайте для выделения примеров операторов SQL.
- Исправьте ошибки в представленном синтаксисе SQL и предоставьте альтернативный синтаксис SQL.
- Расширить пояснения некоторых понятий, которые некоторые студенты считают трудными. основанный на многолетнем опыте их преподавания.Например, студенты часто путают использование классов ассоциации и «многие-ко-многим» с историей шаблон дизайна. Объяснение этого было изменено, и дополнительная информация предоставлены в попытке прояснить эти (и другие концепции).
- Организовал тематические страницы, добавив больше заголовков для структурирования содержания.
Предыдущие издания
По историческим причинам в приведенном ниже списке представлены изменения к предыдущим редакциям.
- Третье издание dbDesign представляет собой общее обновление, отвечающее требованиям законодательства. требования к доступности «Раздела 508» США и внесение кода в соответствие последним стандартам Консорциума World Wide Web. В процессе, Я попытался сделать примеры SQL как можно более общими, хотя вы все равно придется обращаться к документации для вашей собственной системы баз данных. Графика больше не требует подключаемого модуля SVG; только большие изображения и текст просмотры каждого рисунка предоставляются всем читателям; в меню теперь организовано по тематическим областям; и версия для печати (без навигации слева) выполняется автоматически таблицей стилей.
- Второе издание во многом было мотивировано очень полезными комментарии профессора Альваро Монжа, а также Собственные наблюдения Тома Джуэтта в двух семестров использования его предшественника в классе. Основные изменения включали четкое разделение UML от его реализации в реляционной модели, введение терминологии реляционной алгебры как помощь в понимании SQL, и повышенное внимание к пониманию дизайна на естественном языке.
- Оригинальный сайт возник на основе предыдущей книги. проект, Практическое проектирование реляционной базы данных (PRDD), Уэйн Дик и Том Джуэтт. Переезд в Интернете включал сжатые обсуждения, интегрированный взгляд на концепции и навыки работы с базами данных, и использование единого языка моделирования в процессе проектирования. Я благодарен за положительный отклик, полученный сайтом, оба от моих собственных учеников и от онлайн-читателей со всего мира.
Благодарности
- В 2002 году Том Джуэтт воплотил книжный проект PRDD в жизнь онлайн. Инструкторы CSULB вводного класса базы данных (CECS 323) использовали эту онлайн-книгу все эти годы и добились отличных результатов. Трудолюбие, целеустремленность и профессионализм Тома сделали эту онлайн-книгу успешной. В 2014 году он передал этот проект Альваро Монге, который надеется продолжить великую работу, которую они с Уэйном Диком начали много лет назад и которая Том принес в Сеть с большим успехом.
- В каждом выпуске этого сайта огромная благодарность выражается Проф. Уэйн Дик, ведущий автор более ранней книги PRDD и всемирно известный эксперт по доступности. За эти годы он внес огромный вклад в в базах данных, попавших на этот онлайн-ресурс.
Альваро Монж
Кафедра компьютерной инженерии и компьютерных наук
Калифорнийский государственный университет, Лонг-Бич
Альваро Монге
электронная почта: [email protected]
[К началу страницы]
Проектирование баз данных с помощью UML и SQL, 4-е издание Альваро Монж под лицензией Creative Commons Международная лицензия Attribution-NonCommercial-NoDerivatives 4.0. На основе работы в https://www.tomjewett.com/dbdesign/.Что означает термин «кортеж» в реляционных базах данных?
Кортежи — это известные значения, которые используются для связи таблицы в реляционной БД. , Строка ** — это упорядоченный набор известных или неизвестных значений с именами (хотя они могут быть опущены). Следовательно, следующие сравнения возвращают false в SQL:, ОБНОВЛЕНИЕ: Я немного расширил этот ответ в сообщении в блоге здесь., А также обратите внимание, что могут быть и неизвестные значения. Таким образом, у вас могут быть строки с неизвестными значениями:
Большинство ответов здесь на правильном пути. Однако строка не является кортежем . Кортежи *
— это неупорядоченный наборов известных значений с именами.Таким образом, следующие кортежи — это одно и то же (я использую синтаксис воображаемого кортежа, поскольку реляционный кортеж в значительной степени является теоретической конструкцией):
(x = 1, y = 2, z = 3) (г = 3, у = 2, х = 1) (y = 2, z = 3, x = 1)
Строка **
— это упорядоченный набор известных или неизвестных значений с именами (хотя они могут быть опущены). Следовательно, следующие сравнения возвращают false в SQL:
(1, 2, 3) = (3, 2, 1) (3, 1, 2) = (2, 1, 3)
Обратите внимание, что есть способы «подделать это».Например, рассмотрим этот оператор INSERT
:
INSERT INTO point VALUES (1, 2, 3)
Предполагая, что x — первое, y — второе, а z — третье, этот запрос можно переписать следующим образом:
INSERT INTO point (x, y, z) VALUES (1, 2, 3)
INSERT INTO point (y, z, x) VALUES (2, 3, 1)
А также обратите внимание, что могут быть неизвестные значения как хорошо. Таким образом, у вас могут быть строки с неизвестными значениями:
(1, 2, NULL) = (1, 2, NULL)
загрузить больше v
Согласно определению заголовка, атрибуты элемента не отображаются ни в каком особого порядка ни, ни, следовательно, элементы кортежа.Подобный комментарий здесь не применяется к SQL, который действительно определяет порядок столбцов таблицы. , Согласно определению тела, кортежи тела не появляются в каком-либо определенном порядке — нельзя сказать: «Кортеж« Мурата Макото »выше кортежа« Мацумото Юкихиро »», равно как нельзя сказать «Кортеж из «Ёнэдзава Акинори» — первый кортеж ». Аналогичный комментарий относится к строкам таблицы SQL. В реализациях домен каждого атрибута фактически является типом данных [9], а именованная схема отношения фактически является переменной отношения (для краткости relvar)., Термин «схема отношения» относится к заголовку в паре с набором ограничений, определенных в терминах этого заголовка. Таким образом, отношение можно рассматривать как реализацию схемы отношения, если оно имеет заголовок этой схемы и удовлетворяет применимым ограничениям.
СОЗДАТЬ ТАБЛИЦУ List_of_people ( ID INTEGER, Имя CHAR (40), Адрес CHAR (200), ПЕРВИЧНЫЙ КЛЮЧ (ID) )
загрузить больше v
В модели реляционной базы данных таблица представляет собой набор элементов данных, организованных в виде строк и столбцов.Таблица также рассматривается как удобное представление отношений. Но таблица может иметь повторяющуюся строку данных, в то время как истинная связь не может иметь повторяющихся данных. Таблица — самая простая форма хранения данных. Ниже приведен пример таблицы сотрудников. СУБД используется для управления реляционной базой данных. Реляционная база данных — это набор организованных таблиц, связанных друг с другом, из которых можно легко получить доступ к данным. Реляционная база данных в наши дни является наиболее часто используемой базой данных. Система управления реляционной базой данных (RDBMS) — это система управления базами данных, основанная на реляционной модели, представленной Э.F Codd. В реляционной модели данные хранятся в отношениях (таблицах) и представляются в виде кортежей (строк). Каждое отношение в модели реляционной базы данных должно подчиняться или следовать нескольким ограничениям, чтобы быть допустимым отношением, эти ограничения называются Ограничения реляционной целостности.
Атрибут Key никогда не должен быть NULL или одинаковым для двух разных строк данных.
Например, в таблице Сотрудник мы можем использовать атрибут ID
для получения данных для каждого сотрудника. Никакое значение ID
не является нулевым, и оно уникально для каждой строки, следовательно, это может быть наш ключевой атрибут .
загрузить больше v
Другие запросы типа «undefined-undefined», связанные с вопросом «Что означает термин« кортеж »в реляционных базах данных?»
Существительное( ru имя существительное )
Синонимы* ( конечная последовательность терминов ) n » — кортеж (» когда последовательность содержит » n » терминов »), упорядоченная пара (» когда последовательность содержит ровно два термина »), тройка ‘ ‘или’ ‘триплет (‘ ‘когда последовательность содержит ровно три члена )
Связанные термины* -часть * упорядоченная пара * туплет * составная часть
Анаграммы* * —- |
АнглийскийСуществительное( ru имя существительное )Синонимы* ( способ, которым две вещи могут быть связаны ) соединение, ссылка, взаимосвязь * ( смысл , член семьи ) родственник * ( акт рассказа истории ) пересказ, рассказ * переписка * Смотрите также
Гипонимы* ( теория множеств ) функция
Производные термины* кровная связь * близкое родство * прямое отношение * дальнее отношение * отношение эквивалентности * друзья и родственники * косвенное отношение * обратная связь * рубашка хвост отношения * связи * отношение
Связанные термины* иметь отношение к * родственник * relator
Анаграммы* * —- |
Статья о кортеже из The Free Dictionary
В функциональных языках — объект данных, содержащий два или больше компонентов. Также известен как тип продукта или пара, тройной, четверной и т. д. Кортежи разного размера имеют разные типы, в отличие от списков, где тип не зависит от длина. Компоненты кортежа могут быть разных типы, тогда как все элементы списка имеют один и тот же тип. Примеры кортежей в нотации Haskell: (1,2), («Кортеж», Истина), (w, (x, y), z). Вырожденный набор с нулем компоненты, записанные (), известны как тип модуля, поскольку он имеет только одно возможное значение, которое также записывается ().Реализация кортежей в языке может быть либо «поднял» или нет. Если кортежи поднимаются, то (снизу, снизу) / = bottom, и оценка кортежа может не завершиться. Например. в Haskell:
f (x, y) = 1 -> f bottom = bottom f (bottom, bottom) = 1
С приподнятыми кортежами шаблон кортежа опровергается. Таким образом, в Haskell, сопоставление с образцом в кортежах такое же, как с образцом сопоставление типов с несколькими конструкторами (алгебраические типы данных) — сопоставляемое выражение оценивается до конструктор верхнего уровня, хотя в случае кортежей существует только один возможный конструктор для данного типа.
Если кортежи не поднимаются, то (снизу, снизу) = снизу и оценка кортежа никогда не прекратится, хотя любой компонентов может. Например. в Миранде:
f (x, y) = 1 -> f bottom = 1 f (снизу, снизу) = 1
Таким образом, в Миранде любой объект, тип которого совместим с Предполагается, что шаблон кортежа соответствует на верхнем уровне без оценка — это неопровержимый образец. Это также применяется к определяемым пользователем типам данных только с одним конструктором.В Haskell шаблоны можно сделать неопровержимыми, добавив «~» как в
f ~ (x, y) = 1.
Если бы функции конструктора кортежей были строгими во всех своих аргументы then (bottom, x) = (x, bottom) = bottom для любого x, поэтому сопоставление опровергнутого шаблона не завершится, если компонент был снизу.
Эта статья предоставлена FOLDOC — Free Online Dictionary of Computing ( foldoc.org )
Модель реляционных данных в СУБД
Что такое реляционная модель?
Реляционная модель (RM) представляет базу данных как набор отношений. Отношение — это не что иное, как таблица значений. Каждая строка в таблице представляет собой набор связанных значений данных. Эти строки в таблице обозначают сущность или отношение реального мира.
Имя таблицы и имена столбцов помогают интерпретировать значение значений в каждой строке. Данные представлены в виде набора отношений. В реляционной модели данные хранятся в виде таблиц. Однако физическое хранение данных не зависит от логической организации данных.
Некоторые популярные системы управления реляционными базами данных:
- DB2 и Informix Dynamic Server — IBM
- Oracle и RDB — Oracle
- SQL Server и доступ — Microsoft
В этом руководстве вы изучите
Понятия реляционной модели в СУБД
- Атрибут: Каждый столбец в таблице.Атрибуты — это свойства, определяющие отношение. например, Student_Rollno, NAME и т. д.
- Таблицы — В реляционной модели отношения сохраняются в формате таблицы. Он хранится вместе со своими сущностями. Таблица имеет две строки свойств и столбцы. Строки представляют записи, а столбцы — атрибуты.
- Кортеж — это не что иное, как одна строка таблицы, которая содержит одну запись.
- Схема отношения: Схема отношения представляет имя отношения с его атрибутами.
- Степень: Общее количество атрибутов, которые в отношении называются степенью отношения.
- Количество элементов: Общее количество строк в таблице.
- Столбец: Столбец представляет набор значений для определенного атрибута.
- Экземпляр отношения — Экземпляр отношения — это конечный набор кортежей в системе СУБД. У экземпляров отношения никогда не бывает повторяющихся кортежей.
- Ключ отношения — Каждая строка имеет один, два или несколько атрибутов, что называется ключом отношения.
- Домен атрибутов — Каждый атрибут имеет некоторое предопределенное значение и область, известную как домен атрибутов .
Ограничения реляционной целостности
Ограничения реляционной целостности в СУБД относятся к условиям, которые должны присутствовать для действительного отношения. Эти реляционные ограничения в СУБД вытекают из правил мини-мира, который представляет база данных.
В СУБД существует множество типов ограничений целостности.Ограничения в системе управления реляционными базами данных в основном делятся на три основные категории:
- Ограничения домена
- Ключевые ограничения
- Ограничения ссылочной целостности
Ограничения домена
Ограничения домена могут быть нарушены, если значение атрибута не отображается в соответствующем домене или не относится к соответствующему типу данных.
Ограничения домена указывают, что внутри каждого кортежа, и значение каждого атрибута должно быть уникальным.Это указывается как типы данных, которые включают стандартные типы данных целые числа, действительные числа, символы, логические значения, строки переменной длины и т. Д.
Пример:
Создать DOMAIN CustomerName ПРОВЕРИТЬ (значение не NULL)
Показанный пример демонстрирует создание ограничения домена таким образом, что CustomerName не равно NULL.
Ключевые ограничения
Атрибут, который может однозначно идентифицировать кортеж в отношении, называется ключом таблицы. Значение атрибута для разных кортежей в отношении должно быть уникальным.
Пример:
В данной таблице CustomerID является ключевым атрибутом таблицы клиентов. Скорее всего, у него будет один ключ для одного клиента, CustomerID = 1 только для CustomerName = «Google».
CustomerID | CustomerName | Статус |
---|---|---|
1 | Активный | |
2 | Амазонка | Активный |
3 | Яблоко | Неактивный |
Ограничения ссылочной целостности
Ограничения ссылочной целостности в СУБД основаны на концепции внешних ключей. Внешний ключ — важный атрибут отношения, на который следует ссылаться в других отношениях. Состояние ограничения ссылочной целостности возникает, когда отношение относится к ключевому атрибуту другого или того же отношения. Однако этот ключевой элемент должен существовать в таблице.
Пример:
В приведенном выше примере у нас есть 2 отношения: Клиент и Биллинг.
Кортеждля CustomerID = 1 упоминается дважды в отношении Billing. Итак, мы знаем, что CustomerName = Google выставил счет на сумму 300 долларов США
.Операции в реляционной модели
Четыре основные операции обновления, выполняемые на модели реляционной базы данных:
Вставить, обновить, удалить и выбрать.
- Insert используется для вставки данных в отношение
- Delete используется для удаления кортежей из таблицы.
- Modify позволяет изменять значения некоторых атрибутов в существующих кортежах.
- Select позволяет выбрать определенный диапазон данных.
При применении одной из этих операций ограничения целостности, указанные в схеме реляционной базы данных, никогда не должны нарушаться.
Операция вставки
Операция вставки дает значения атрибута для нового кортежа, который должен быть вставлен в отношение.
Операция обновления
Вы можете видеть, что в приведенной ниже таблице отношений CustomerName = ‘Apple’ изменено с «Неактивно» на «Активно».
Операция удаления
Чтобы указать удаление, условие атрибутов отношения выбирает кортеж для удаления.
В приведенном выше примере CustomerName = «Apple» удален из таблицы.
Операция удаления может нарушить ссылочную целостность, если на удаляемый кортеж ссылаются внешние ключи из других кортежей в той же базе данных.
Выберите операцию
В приведенном выше примере выбрано CustomerName = «Amazon»
Лучшие практики для создания реляционной модели
- Данные должны быть представлены в виде набора отношений
- Каждое отношение должно быть четко отображено в таблице
- Строки должны содержать данные об экземплярах сущности
- Столбцы должны содержать данные об атрибутах сущности
- Ячейки таблицы должны содержать одно значение
- Каждому столбцу должно быть присвоено уникальное имя
- Не может быть двух одинаковых строк
- Значения атрибута должны быть из одного домена
Преимущества реляционной базы данных модели
- Простота : Реляционная модель данных в СУБД проще, чем иерархическая и сетевая модель.
- Структурная независимость : Реляционная база данных связана только с данными, а не со структурой. Это может улучшить характеристики модели.
- Простота использования : Реляционная модель в СУБД проста, поскольку таблицы, состоящие из строк и столбцов, довольно естественны и просты для понимания
- Возможность запросов : Это позволяет языку запросов высокого уровня, такому как SQL, избежать сложной навигации по базе данных.
- Независимость данных : Структура реляционной базы данных может быть изменена без изменения какого-либо приложения.
- Масштабируемый : Что касается количества записей или строк, а также количества полей, база данных должна быть увеличена для повышения удобства использования.
Недостатки реляционной модели
- Некоторые реляционные базы данных имеют ограничения на длину полей, которые нельзя превышать.
- Реляционные базы данных могут иногда становиться сложными по мере роста объема данных и усложнения отношений между частями данных.
- Сложные системы реляционных баз данных могут привести к изолированным базам данных, в которых информация не может быть передана из одной системы в другую.
Сводка
- Моделирование реляционной базы данных представляет базу данных как набор отношений (таблиц)
- Атрибут, Таблицы, Кортеж, Схема отношения, Степень, Количество элементов, Столбец, Экземпляр отношения — вот некоторые важные компоненты реляционной модели .
- Ограничения реляционной целостности относятся к условиям, которые должны присутствовать для правильного подхода к отношениям в СУБД
- Ограничения домена могут быть нарушены, если значение атрибута не отображается в соответствующем домене или не относится к соответствующему типу данных
- Insert, Select, Modify и Delete — операции, выполняемые в ограничениях реляционной модели
- Реляционная база данных касается только данных, а не структуры, которая может улучшить производительность модели
- Преимущества реляционной модели в СУБД: простота, структурная независимость, простота использования, возможность запросов, независимость данных, масштабируемость и т. Д.
- Некоторые реляционные базы данных имеют ограничения на длину полей, которые нельзя превышать.
(PDF) Нормальная форма для предотвращения избыточных кортежей в реляционных базах данных
R, также должна содержать кортеж (s, p, j). Таким образом, в отношении
r информация в кортеже (s, p, j) представлена дважды:
сначала явно кортежем (s, p, j), а во-вторых, неявно
кортежи (s, p, j0), (s0, p, j) и (s, p0, j) и JD.
Интуитивно понятно, что кортеж (s, p, j) — это то, что мы будем называть «полностью восстановленным
избыточным» («полностью» относится к тому факту, что весь кортеж
является избыточным).
Стандартные принципы нормализации предполагают, что мы составим схему отношений Rinto из трех схем отношений,
с атрибутами, соответственно, из {S, P}, {P, J} и {J, S},
и без указания FD или JD. Эти три новые схемы отношений
интуитивно представляют проекции на эти наборы атрибутов
. Тогда проблема избыточности кортежей исчезает.
Пример 1.2. Пусть R0 будет схемой отношения, которая является
такой же, как схема отношения Rof Пример 1.1, за исключением того, что в добавлении
к JD {SP, PJ, JS} она также имеет функциональную зависимость
(FD) SP. → Дж. Интуитивно этот FD говорит:
• Любой конкретный поставщик поставляет данную часть ВОМ не более
для одного проекта j.
Хорошо известно, что совокупность FD и JD может логически указывать на другие FD и JD.Мы можем представить себе FD
и JD, которые указаны для схемы отношений как явные зависимости
, а также FD и JD, которые не указаны явно, но логически подразумеваются явной зависимостью
. , как неявные зависимости. Например, если A → Band
B → Care явные FD и A → C не является явным FD,
, то A → C является неявным FD. Пример неявного FD
, который возникает в результате взаимодействия FD и JD
, будет приведен в Примере 3. 1. Однако в случае схемы отношения
R0 в примере, который мы сейчас рассматриваем,
мы покажем позже (в доказательстве теоремы 6.1) прямую прямую проверку
с использованием процесса преследования3, что нет нового
нетривиальных FD или JD подразумеваются двумя нашими зависимостями.
(Зависимость тривиальна, если она «всегда выполняется» для отношений
с соответствующими атрибутами.)
Какой нормальной формой является схема отношения R0in? Поскольку
нет нетривиальных многозначных зависимостей (MVDs4),
легко следует из характеристики 4NF в [9], что
R0 находится в 4NF.Однако R0 не входит в 5NF, потому что JD — это
, логически не подразумеваемое ключами (в частности, только
нетривиальных FD SP → J).
Пусть r будет отношением, которое является экземпляром R0 (так что r имеет
атрибутов S, P и J и удовлетворяет двум зависимостям).
Предположим, как мы делали в примере 1.1, что r имеет кортежи (s, p, j0),
(s0, p, j) и (s, p0, j) и, возможно, другие кортежи. В отличие от примера 1.1
, мы больше не предполагаем, что j6 = j0.Поскольку
JD, отсюда следует, что r, как экземпляр R0, должен содержать
кортежа (s, p, j). Но поскольку r содержит кортежи (s, p, j0)
и (s, p, j) и из-за FD SP → J,
следует, что j = j0. Таким образом, у нас больше нет кортежа
, который мы продемонстрировали в примере 1.1, потому что информация
в кортеже (s, p, j) представлена только один раз. Таким образом, в отличие от
ситуации в Примере 1.1, эта информация не «также
представлена неявно» кортежами (s, p, j0), (s0, p, j), и
3 Чтобы решить, когда данная зависимость является логическим следствием набора
зависимостей, мы часто будем использовать процесс погони [1, 13].
Поскольку чейз является стандартным инструментом, мы не описываем здесь детали
чейза.
4MVD, наряду с другими понятиями, упомянутыми во введении, будут формально определены в разделе 2.
(s, p0, j) и JD, поскольку эти три кортежа имеют (s, p, j) как
.одним из их членов (потому что (s, p, j0) = (s, p, j)).
Вот еще один способ просмотреть этот пример. Обычно мы ожидаем, что нетривиальный JD «заставит присутствовать новые кортежи».
Но этого не происходит в схеме отношения R0. Таким образом,
предполагаем, что мы начинаем с отношения r0, которое содержит
кортежей (s, p, j0), (s0, p, j) и (s, p0, j), и предполагаем, что мы
желаем расширить r0 до отношения r, которое удовлетворяет ограничениям
(«расширить» означает, что r0⊆r). Тогда нам не нужно добавлять
кортеж (s, p, j) к r0, поскольку, как мы показали, обязательно
j = j0, и поэтому кортеж (s, p, j) уже присутствует в r0 .
Таким образом, мы утверждаем, что в схеме отношения
R0 из примера 1.2 нет ничего плохого в том, что касается дублирования кортежей,
dancy, даже если этого нет в 5NF.
Теперь мы определим два понятия избыточности кортежей.
Резервирование кортежей Наше первое понятие избыточности кортежей
относится к FD. Он основан на классической нормальной форме Бойса-
Кодда (BCNF) [4]. Определение, которое мы теперь даем
BCNF, эквивалентно определению, данному в [4].
Определение 1.3. Схема отношения Ris в нормальной форме Boyce-Codd
(BCNF), если каждый явный или неявный FD из R
логически подразумевается ключами R.
Это хорошо известно (см., Например, [9]) что R находится в BCNF
тогда и только тогда, когда для каждого явного или неявного нетривиального FD
X → Yof R обязательно X является суперключом (суперключ — это подмножество
атрибутов, которое также является надмножеством ключа).
Тот факт, что как явные, так и неявные FD для R должны быть учтены в Определении 1.3 будет продемонстрирован в
Пример 3.1.
Atuple (по конечному набору атрибутов Aof) — это функция с доменом
A и диапазоном некоторого набора значений. Таким образом, если A — это атрибут
, то t (A) — это значение для атрибута A кортежа t. Если
X⊆ A, и t — кортеж, то t [X] — это ограничение t на набор X
. Таким образом, t [X] также является кортежем, который иногда называют
как проекция кортеж тон X. Теперь мы определим
понятие кортежа, являющегося частично избыточным.Это понятие
основано на интуиции, что FD X → A представляет собой
как функцию, которая связывает с каждым значением X некоторое
уникальных значений A. Интуитивно, если это кортеж, то t [X] однозначно
определяет значение t (A).
Определение 1.4. Пусть R будет схемой отношения, пусть r будет отношением
, которое является экземпляром R, и пусть t будет кортежем r.
Кортеж t является частично избыточным в r (относительно R), если
(a) существует набор t0 для r с t6 = t0, (b) существует нетривиальный
FD X → A of R (явный или неявный) , и (c) t [X] = t0 [X].
Причина, по которой мы говорим, что это частично избыточно, заключается в следующем.
Так как t [X] = t0 [X], и поскольку соотношение r удовлетворяет FD
X → A, то t (A) = t0 (A). Таким образом, интуитивно
информация о том, какое значение A связано с некоторым значением
X, задается как t, так и t0. У нас есть следующее предложение
.
Предложение 1.5. Пусть R — произвольная схема отношения.
Тогда R находится в BCNF тогда и только тогда, когда ни один экземпляр не имеет частично избыточного кортежа
.
Доказательство. Предположим сначала, что R находится в BCNF и что некоторый
экземпляров rof R имеет частично избыточный кортеж; получим
противоречие. Пусть t — частично избыточный набор r. Тогда
по определению, есть кортеж t0 of r с t6 = t0 и там
[MCQs] Системы управления базами данных — LMT
Модуль 06: Управление транзакциями и параллелизм
1.A _________ состоит из последовательности запросов и / или операторов обновления.
a) Транзакция
b) Фиксация
c) Откат
d) Flashback
Ответ: a
Объяснение: Транзакция — это набор операций до фиксации.
2. Что из следующего делает транзакцию постоянной в базе данных?
a) Просмотр
b) Зафиксировать
c) Откат
d) Flashback
Ответ: b
Объяснение: Выполнение операции фиксирует текущую транзакцию.
3. Чтобы отменить работу транзакции после последней фиксации, какую из них следует использовать?
a) Просмотр
b) Зафиксировать
c) Откат
d) Flashback
Ответ: c
Объяснение: Работа отката вызывает откат текущей транзакции; то есть отменяет все обновления, выполненные операторами SQL в транзакции.
4. Рассмотрите следующие действия:
ОПЕРАЦИЯ … ..
Зафиксировать;
ROLLBACK ;
Что делает откат?
a) Отменяет транзакции перед фиксацией
b) Очищает все транзакции
c) Повторяет транзакции перед фиксацией
d) Никаких действий
Ответ: d
Объяснение: После того, как транзакция выполнила операцию фиксации, ее эффекты больше не могут быть отменены откат работы.
5. В случае отключения во время транзакции перед фиксацией какой из следующих операторов выполняется автоматически?
a) Просмотр
b) Зафиксировать
c) Откат
d) Возврат в прошлое
Ответ: c
Объяснение: После того, как транзакция выполнила операцию фиксации, ее эффекты больше не могут быть отменены с помощью отката.
Возможность трудоустройства при первой попытке
Подготовьтесь к способностям с более чем 50 видео лекциями и ручными заметкамиКликните сюда!
6. Чтобы поддерживать согласованность во время транзакций, база данных предоставляет
a) Commit
b) Atomic
c) Flashback
d) Сохранить
Ответ: b
Объяснение: По атомарности, либо все эффекты транзакции отражены в базе данных, либо нет (после отката).
7. Обработка транзакций связана со всем, что указано ниже, кроме
a) Выполнение действия или инициирование ответа
b) Создание подробного отчета или отчета об исключениях
c) Запись деловой активности
d) Ведение данных
Ответ: a
Пояснение: Нет.
8. Транзакция завершает свое выполнение, называется
a) Фиксированная
b) Прерванная
c) Откат
d) Ошибка
Ответ: a
Объяснение: Полная транзакция всегда фиксируется.
9. Что из следующего используется для возврата всех транзакций после отката?
a) Зафиксировать
b) Откат
c) Возврат в прошлое
d) Повторить
Ответ: c
Объяснение: Нет.
10. ______ отменит все операторы до фиксации?
a) Транзакция
b) Flashback
c) Откат
d) Abort
Ответ: c
Объяснение: Flashback отменит все операторы, а Abort завершит операцию.
Программирование на Python для начинающих
Начните свое путешествие по программированию с программирования на Python, которое легко выучить и которое пользуется большим спросомКликните сюда!
11.I и J равны _________, если они являются операциями разных транзакций над одним и тем же элементом данных, и по крайней мере одна из них является операцией записи.
a) Конфликт
b) Перезапись
c) Изолированный
d) Надежный
Ответ: a
Объяснение: I и J конфликтуют, если они являются операциями разных транзакций с одним и тем же элементом данных, и хотя бы одна из них является запись операции.
12. Если расписание S можно преобразовать в расписание S ‘посредством серии перестановок неконфликтных инструкций, тогда S и S’ равны
a) Неконфликтный эквивалент
b) Равно
c) Конфликтный эквивалент
d) Эквивалент изоляции
Ответ: c
Объяснение: Если расписание S можно преобразовать в расписание S ‘посредством серии перестановок неконфликтующих инструкций, то S и S’ эквивалентны конфликту.Не все последовательные расписания конфликтно эквивалентны друг другу.
13. График является __________, если он конфликтно эквивалентен серийному графику.
a) Конфликт сериализуемый
b) Конфликтующий
c) Несериализуемый
d) Ни один из упомянутых
Ответ: a
Объяснение: Расписание является сериализуемым конфликтом, если оно эквивалентно последовательному расписанию. Концепция конфликтной эквивалентности приводит к этой концепции.
14. Набор ________ в графе приоритета состоит из всех транзакций, участвующих в расписании
a) Вершины
b) Ребра
c) Направления
d) Ни один из упомянутых
Ответ: a
Пояснение: Набор вершин в графе приоритета состоит из всех транзакций, участвующих в расписании.Граф приоритета — это простой и эффективный способ определения сериализуемости расписания конфликтов.
15.A ___________ транзакций может быть получено путем нахождения линейного порядка, совместимого с частичным порядком графа приоритета.
a) Порядок сериализации
b) Граф направлений
c) График приоритета
d) Схема планирования
Ответ: a
Объяснение: Порядок сериализации транзакций может быть получен путем нахождения линейного порядка, согласованного с частичным порядком приоритета график.Этот процесс называется топологической сортировкой.
Возможность трудоустройства при первой попытке
Подготовьтесь к способностям с более чем 50 видео лекциями и ручными заметкамиКликните сюда!
16. Состояние истина или ложь: если I = чтение (Q) и J = чтение (Q), то порядок I и J не имеет значения.
a) Верно
b) Неверно
Ответ: a
Объяснение: Если I = чтение (Q) и J = чтение (Q), то порядок I и J не имеет значения, потому что и I, и J являются операциями чтения на запрос.
17. Укажите истину или ложь: если I = чтение (Q) и J = запись (Q), то порядок I и J не имеет значения.
a) Верно
b) Неверно
Ответ: b
Объяснение: Если I = чтение (Q) и J = запись (Q), то порядок I и J имеет значение, потому что и I, и J — разные операции в запросе. Порядок выполнения определяет состояние читаемой или записываемой базы данных.
18. Какой из перечисленных методов самый дорогой?
a) Временные метки
b) Простая блокировка
c) Блокировка предикатов
d) Изоляция моментальных снимков
Ответ: c
Объяснение: Блокировка предикатов является наиболее дорогостоящим методом и обычно не используется в большинстве баз данных.
19. Если транзакция получила блокировку __________, она может читать, но не может писать в элементе
a) Общий режим
b) Эксклюзивный режим
c) Режим только чтения
d) Режим только записи
Ответ: a
Объяснение: Если транзакция Ti получила блокировку общего режима (обозначенную S) для элемента Q, тогда Ti может читать, но не может писать, Q.
20. Если транзакция получила блокировку ________, она может читать и записывать элемент
a) Общий режим
b) Эксклюзивный мод
c) Режим только чтения
d) Режим только записи
Ответ: b
Объяснение: Если транзакция получила блокировку в монопольном режиме, она может как читать, так и записывать элемент, с которым она работает.
Возможность трудоустройства при первой попытке
Подготовьтесь к способностям с более чем 50 видео лекциями и ручными заметкамиКликните сюда!
21. Транзакция может продолжаться только после того, как диспетчер управления параллелизмом ________ блокирует транзакцию
a) Предоставляет
b) Запрашивает
c) Распределяет
d) Ни один из упомянутых
Ответ: a
Объяснение: Транзакция может продолжайте только после того, как диспетчер управления параллелизмом предоставит блокировку транзакции.
22. Если транзакция может получить блокировку элемента сразу же, несмотря на наличие другого режима, то два режима называются ________
a) Одновременный
b) Эквивалентный
c) Совместимый
d) Исполняемый файл
Ответ: c
Объяснение: Если транзакция может получить блокировку элемента немедленно, несмотря на наличие другого режима, то эти два режима считаются совместимыми.
23. Выполняется транзакция, ожидающая, пока не будут сняты все блокировки ________, удерживаемые на элементе
a) Совместимый
b) Несовместимый
c) Одновременный
d) Эквивалентный
Ответ: a
Объяснение: Транзакция выполняется с ожиданием пока все совместимые блокировки, удерживаемые на элементе, не будут сняты.Это гарантирует, что никакая другая транзакция не будет одновременно обращаться к одному и тому же элементу.
24. Состояние истина или ложь: не обязательно, чтобы транзакция разблокировала элемент данных сразу после ее окончательного доступа
a) Верно
b) Неверно
Ответ: a
Объяснение: Это не обязательно желательно для транзакция, чтобы разблокировать элемент данных сразу после его окончательного доступа, поскольку из-за этого может быть нарушена сериализуемость.
25. Ситуация, когда ни одна транзакция не может продолжаться в обычном режиме, известна как ________
a) Блокировка
b) Тупик
c) Остановка выполнения
d) Прерывание
Ответ: b
Объяснение: Ситуация, когда транзакция не может продолжение обычного выполнения называется тупиковой ситуацией.
Изучите машинное обучение с помощью Python с нуля
Начните свое путешествие по машинному обучению и науке о данных с полного практического обучения и решения сомнений SupportКликните сюда!
26. Протокол, который указывает, когда транзакция может заблокировать и разблокировать каждый из элементов данных, называется __________
a) Протокол блокировки
b) Протокол разблокировки
c) Протокол предоставления
d) Конфликтный протокол
Ответ: a
Объяснение: Протокол, который указывает, когда транзакция может блокировать и разблокировать каждый из элементов данных, называется протоколом блокировки.Протоколы блокировки ограничивают количество расписаний.
27. Если транзакция Ti может никогда не выполняться, то транзакция называется ____________
a) Тупиковый
b) Недостаточно
c) Зафиксировано
d) Откат
Ответ: b
Объяснение: Если транзакция Ti может никогда не продвинуться вперед, тогда транзакция называется голодной.
28. Протокол двухфазной синхронизации состоит из следующих фаз?
a) Фаза роста
b) Фаза усадки
c) Более одного из упомянутых
d) Ни одного из упомянутых
Ответ: c
Пояснение: Протокол двухфазной блокировки состоит из фазы роста и фазы сжатия.
29. Если транзакция может получить блокировки, но не может снять какие-либо блокировки, то она находится в _______ фазе
a) фазе роста
b) фазе сокращения
c) фазе взаимоблокировки
d) голодной фазе
Ответ: a
Объяснение: Если транзакция может получать блокировки, но не может снимать блокировки, значит, она находится в фазе роста. Фаза роста — это фаза в протоколе двухэтапной блокировки.
30. Если транзакция может освободить блокировки, но не может получить какие-либо блокировки, то говорят, что она находится в фазе ______
a) Фаза роста
b) Фаза сжатия
c) Фаза тупика
d) Фаза истощения
Ответ: b
Объяснение: Если транзакция может освободить блокировки, но не может получить никаких блокировок, то говорят, что она находится в фазе сжатия.Фаза сжатия — это фаза в протоколе двухэтапной блокировки.
Программирование на Python для начинающих
Начните свое путешествие по программированию с программирования на Python, которое легко выучить и которое пользуется большим спросомКликните сюда!
31. Какую технологию использует СУБД для поддержания целостности транзакций и согласованности базы данных?
a) Триггеры
b) Указатели
c) Блокировки
d) Курсоры
Ответ: c
Объяснение: Блокировки используются для поддержания согласованности базы данных.
32. Блокировка, которая позволяет одновременным транзакциям обращаться к разным строкам одной и той же таблицы, известна как
a) Блокировка на уровне базы данных
b) Блокировка на уровне таблицы
c) Блокировка на уровне страницы
d) На уровне строки lock
Ответ: d
Объяснение: Блокировки используются для поддержания согласованности базы данных.
33. Что из следующего вводится для уменьшения накладных расходов, вызванных восстановлением на основе журнала?
a) Контрольные точки
b) Индексы
c) Тупиковые ситуации
d) Блокировки
Ответ: a
Объяснение: Контрольные точки вводятся для уменьшения накладных расходов, вызванных восстановлением на основе журнала.
34. Какой из следующих протоколов обеспечивает сериализуемость конфликтов и защиту от тупиковых ситуаций?
a) Протокол двухфазной блокировки
b) Протокол упорядочивания отметок времени
c) Протокол на основе графиков
d) Ни один из упомянутых
Ответ: b
Пояснение: Протокол упорядочивания отметок времени обеспечивает сериализуемость конфликтов и безопасность от тупиковых ситуаций.
35. Какой из следующих блоков нельзя записать обратно на диск?
a) Мертвый код
b) Только чтение
c) Закрепленный
d) Запертый
Ответ: c
Объяснение: Блок, который не может быть записан обратно на диск, называется закрепленным.
Возможность трудоустройства при первой попытке
Подготовьтесь к способностям с более чем 50 видео лекциями и ручными заметкамиКликните сюда!
36. Если транзакция Ti получает явную блокировку файла Fc в монопольном режиме, то она имеет __________ для всех записей, принадлежащих этому файлу.
a) Явная блокировка в монопольном режиме
b) Неявная блокировка в режиме совместного использования
c) Явная блокировка в режиме совместного использования
d) Неявная блокировка в монопольном режиме
Ответ: d
Объяснение: если транзакция Ti получает явную блокировку файла Fc в монопольном режиме, то он имеет неявную блокировку в монопольном режиме для всех записей, принадлежащих этому файлу.
37. Что относится к свойству компьютера выполнять несколько операций одновременно и возможно, поскольку компьютеры ждут ответа друг друга
a) Параллелизм
b) Тупик
c) Резервное копирование
d) Восстановление
Ответ: a
Объяснение: Параллелизм это свойство систем, в которых несколько вычислений выполняются одновременно и потенциально взаимодействуют друг с другом.
38. Вся информация о блокировках управляется __________, который отвечает за назначение и контроль блокировок, используемых транзакциями.
a) Планировщик
b) СУБД
c) Менеджер блокировок
d) Агент блокировки
Ответ: c
Объяснение: Распределенный менеджер блокировок (DLM) предоставляет распределенным программным приложениям средства для синхронизации их доступа к общим ресурсам.
39. Блокировка ____ позволяет одновременным транзакциям обращаться к одной и той же строке, если они требуют использования разных полей в этой строке.
a) Уровень таблицы
b) Уровень страницы
c) Уровень строки
d) Уровень поля
Ответ: d
Объяснение: Блокировка ограничена атрибутами отношения.
40. Какова процедура получения необходимых блокировок для транзакции, при которой все необходимые блокировки устанавливаются до того, как какие-либо будут сняты?
a) Контроллер записи
b) Исключительная блокировка
c) Правило авторизации
d) Двухфазная блокировка
Ответ: d
Объяснение: Двухфазная блокировка — это процедура для получения необходимых блокировок для транзакции, при которой приобретаются все необходимые блокировки до того, как будут выпущены какие-либо.
Возможность трудоустройства при первой попытке
Подготовьтесь к способностям с более чем 50 видео лекциями и ручными заметкамиКликните сюда!
41.Система находится в состоянии ______, если существует такой набор транзакций, что каждая транзакция в наборе ожидает другой транзакции в наборе.
a) Ожидание
b) Ожидание
c) Тупик
d) Готов
Ответ: c
Объяснение: Когда один элемент данных ожидает другого элемента данных в транзакции, система находится в тупике.
42. Состояние взаимоблокировки можно вернуть обратно в стабильное с помощью оператора _____________.
a) Зафиксировать
b) Откат
c) Точка сохранения
d) Тупик
Ответ: b
Объяснение: Откат используется для отката к точке до получения блокировки.
43. Какие способы выхода из тупика?
a) Предотвращение взаимоблокировок
b) Восстановление взаимоблокировок
c) Обнаружение взаимоблокировок
d) Все упомянутые
Ответ: d
Объяснение: Предотвращение взаимоблокировок также называется восстановлением взаимоблокировок. Предотвращение обычно используется, если вероятность того, что система войдет в состояние тупика, относительно высока; в противном случае обнаружение и восстановление более эффективны.
44. Когда транзакция Ti запрашивает элемент данных, который в настоящее время удерживается Tj, Ti может ожидать только в том случае, если его метка времени меньше, чем у Tj (то есть Ti старше Tj).В противном случае Ti откатывается (умирает). Это
a) Wait-die
b) Wait-wound
c) Wound-wait
d) Wait
Ответ: a
Объяснение: Схема ожидания-die — это метод без вытеснения.
45. Когда транзакция Ti запрашивает элемент данных, который в настоящее время удерживается Tj, Ti разрешается ждать, только если его метка времени больше, чем у Tj (то есть Ti моложе Tj). В противном случае Tj откатывается (Tj ранен Ti). Это
a) Ожидание
b) Ожидание
c) Ожидание
d) Ожидание
Ответ: c
Объяснение: Схема ожидания-ожидания является упреждающей техникой.Это аналог схемы ожидания и смерти.
Программирование на Python для начинающих
Начните свое путешествие по программированию с программирования на Python, которое легко выучить и которое пользуется большим спросомКликните сюда!
46. Ситуация, когда блокировка ожидает только определенное количество времени для снятия другой блокировки:
a) Тайм-аут блокировки
b) Ожидание с запуском
c) Тайм-аут
d) Ожидание
Ответ: a
Объяснение : Схема тайм-аута особенно проста в реализации и хорошо работает, если транзакции короткие и если длительное ожидание может быть вызвано тупиками.
47. Тупиковая ситуация в наборе транзакции может быть определена с помощью
a) График только для чтения
b) График ожидания
c) График ожидания
d) Все упомянутые
Ответ: a
Пояснение: Считается, что каждая транзакция, участвующая в цикле, находится в тупике.
48. Тупиковая ситуация существует в системе тогда и только тогда, когда график ожидания содержит ___________
a) Цикл
b) Направление
c) Двунаправленное
d) Вращение
Ответ: a
Объяснение: Каждая транзакция вовлеченные в цикл, как говорят, находятся в тупике.
49. Выбор жертвы для отката к предыдущему состоянию определяется минимальной стоимостью. Факторы, определяющие стоимость отката:
a) Как долго транзакция вычислялась и сколько еще транзакция будет вычислять, прежде чем она завершит назначенную задачу
b) Сколько элементов данных использовала транзакция
c) Сколько еще данных элементов, необходимых для завершения транзакции
d) Все упомянутые
Ответ: d
Объяснение: Мы должны откатить те транзакции, которые потребуют минимальных затрат.
50. __________ откат требует, чтобы система поддерживала дополнительную информацию о состоянии всех выполняющихся транзакций.
a) Всего
b) Частично
c) Время
d) Зафиксировать
Ответ: b
Объяснение: Полный откат прервет транзакцию, а затем перезапустит ее.
Возможность трудоустройства при первой попытке
Подготовьтесь к способностям с более чем 50 видео лекциями и ручными заметкамиКликните сюда!
51.Система находится в состоянии _______, если существует набор транзакций, в котором каждая транзакция ожидает другой транзакции в наборе.
a) Тупик
b) Недостаточно
c) Изолированный
d) Ни один из упомянутых
Ответ: a
Объяснение: Система находится в состоянии взаимоблокировки, если существует набор транзакций, в которых каждая транзакция ожидает другой транзакции в комплекте.
52. Что из перечисленного не является методом обработки тупиковых ситуаций?
a) Предотвращение взаимоблокировок
b) Обнаружение взаимоблокировок
c) Восстановление взаимоблокировок
d) Распределение взаимоблокировок
Ответ: d
Объяснение: Распределение взаимоблокировок не является методом в обработка взаимоблокировок, тогда как за предотвращением взаимоблокировок следует обнаружение и восстановление взаимоблокировок.
53. Тупиковые ситуации можно предотвратить с помощью
a) Вытеснение и откаты транзакций
b) Схема ожидания и смерти
c) Схема ожидания-ранения
d) Все упомянутые
Ответ: d
Объяснение: Вытеснение и откаты транзакций, Схема «подожди и умри», схема ожидания с ранением — все это разные методы предотвращения тупиковых ситуаций.
54. Состояние истина или ложь: схема ожидания — это метод без вытеснения.
a) Верно
b) Неверно
Ответ: a
Объяснение: Схема ожидания и затухания — это метод без вытеснения.Когда транзакция Ti запрашивает элемент данных, который в настоящее время хранится у Tj, Ti разрешается ждать, только если его временная метка меньше, чем у Tj (то есть Ti старше Tj). В противном случае Ti откатывается (умирает).
55. Какие из следующих преимуществ имеют тайм-ауты блокировки?
a) Не происходит ненужных откатов
b) Транзакции не умирают
c) Легко реализовать
d) Все упомянутые
Ответ: d
Объяснение: В методе тайм-аута блокировки ненужных откатов не происходит, транзакции не голодать, и его также легко реализовать, и поэтому он широко используется, если транзакции короткие, а длительное ожидание, вероятно, связано с тупиками.
Программирование на Python для начинающих
Начните свое путешествие по программированию с программирования на Python, которое легко выучить и которое пользуется большим спросомКликните сюда!
56. График _________ точно описывает тупиковые ситуации
a) График ожидания прерывания
b) График ожидания
c) Граф ожидания
d) Ни один из упомянутых
Ответ: c
Объяснение: График ожидания точно описывает взаимоблокировки .Наличие цикла в этом графе означает, что возникнет тупик.
57. Как обычно выйти из тупика?
a) Прерыванием всех транзакций
b) Откатом всех транзакций
c) Откатом только выбранного количества транзакций
d) Ни одного из упомянутых
Ответ: c
Объяснение: Обычно мы восстанавливаемся из тупиковых ситуаций путем откат только выбранного количества транзакций
58. Состояние истина или ложь: частичный откат невозможен.
a) Верно
b) Неверно
Ответ: b
Объяснение: Частичный откат возможен, но он требует, чтобы система также поддерживала дополнительный объем информации о состояниях транзакций.
59. Какие из следующих шагов необходимо предпринять при выборе жертвы?
a) Как избежать голодания
b) Количество транзакций, задействованных в откате
c) Элементы данных, используемые транзакцией
d) Все упомянутые
Ответ: d
Объяснение: При выборе жертвы мы часто выбираем ту, у которой минимум Стоимость.