Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Еще ответы.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
280.06 Кб
Скачать

3) Напишите предложение select для отыскания всех узлов иерархии не имеющих потомков для случая моделирования иерархии рекурсивным методом.

Тогда список узлов, не имеющих потомков, получаем как выборку имѐн узлов, не входящих в список узлов, являющихся предками других узлов:

SELECT DISTINCT Id, Data FROM T

WHERE Id NOT IN (SELECT DISTINCT Parent FROM T);

Id-порядковый номер, Data-название листа(по алфавиту),Parent-номер родителя.

Билет№31.1) Использование какого типа данных для атрибутов отношения можно считать нарушением первой нормальной формы?

2) Напишите предложение select для отыскания всех общих предков для двух наперёд заданных узлов иерархии в случае моделирования иерархии методом правого и левого коэффициентов.

Список всех общих для узлов J и K предков можно получить, например, следующим SQL-предложением:

select L, [Node], R from T where L<=(

select MIN(L) from T where Node='J' OR Node='K') AND

R>=(select MAX(R) from T where Node='K' OR Node='K');

3) Коллективный доступ к данным. Проблемы коллективного доступа. Понятие блокирования или захвата.

Если рассматривать транзакцию как упорядоченное множество элементарных операций, то при параллельном выполнении транзакций их операции, скорее всего, будут выполняться вперемешку. Операции каждой транзакции упорядочены по времени (первая операция не может быть выполнена позже второй или третьей, а вторая операция не может быть выполнена позже третьей). Уровни изоляции (описаны в порядке увеличения изоляции транзакций, надёжности работы с данными): 0 — Неподтверждённое чтение (Read Uncommited) - чтение незафиксированных изменений своей транзакции и конкурирующих транзакций, 1 — Подтверждённое чтение (Read Commited) — чтение всех изменений своей транзакции и зафиксированных изменений конкурирующих транзакций, 2 — Повторяемое чтение (Repeatable Read ,Snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые конкурирующими транзакциями после начала своей недоступны, 3 — Упорядоченный — (Serializable, сериализуемый) — . Идентичен ситуации, при которой транзакции выполняются строго последовательно одна после другой. Чем выше уровень изоляции, тем больше требуется ресурсов, чтобы их поддерживать. Зависимости: 1)ЧТЕНИЕ-ЧТЕНИЕ как таковой не существует, так как обе транзакции читают одну и ту же версию объекта и не создают взаимозависимостей. 2) ЧТЕНИЕ-ЗАПИСЬ (T1 считывает прежде, чем T2 его обновила). 3) ЗАПИСЬ-ЧТЕНИЕ, т.е. T2 обновляет O прежде, чем T1 его считала. 4) ЗАПИСЬ – ЗАПИСЬ, т.е. T1 обновляет O прежде, чем T2 его обновила. Техника блокирования основана на том, что каждая операция чтения или записи предваряется запросом блокировки, вследствие чего блокировка будет наложена и тем самым будет разрешен доступ к объекту данных, либо же блокировка будет запрещена и, следовательно, будет запрещен доступ к объекту данных. Блокировки могут быть совместными (две разные транзакции могут наложить одновременно блокировку такого вида на один и тот же объект данных) или несовместными (если объект уже блокирован, то наложение второй блокировки запрещается). Фактически, перед операцией выполняется захват объекта. Когда транзакция фиксируется, все блокировки снимаются, т. е. объекты данных освобождаются.

Совместность блокировок регулируется следующей матрицей: если для обеспечения изолированности транзакций используются блокировки, то система поддерживает пять операций над объектами данных (READ, WRITE, XLOCK, SLOCK, UNLOCK), а также три основных операции над транзакциями (BEGIN, COMMIT, ROLLBACK). READ и WRITE (ЧТЕНИЕ и ЗАПИСЬ) имеют обычное значение: READ возвращает значение именованного объекта в прикладную задачу, WRITE изменяет значение именованного объекта данных. Операция SLOCK предшествует операции чтения транзакции, XLOCK — операции записи. «S» в названии SLOCK означает разделяемую блокировку (Share lock): только операции чтения могут параллельно получать доступ к заблокированному объекту данных без нарушения изолированности. «X» в XLOCK означает эксклюзивную блокировку (eXclusive lock): эта операция может предшествовать как операции чтения, так и операции записи транзакции и исключает чтение и запись объекта данных другими транзакциями. Операция UNLOCK снимает блокировку. Операция BEGIN означает начало транзакции. Операция COMMIT просто снимает блокировки (все изменения транзакции сохраняются). Операция ROLLBACK должна сначала откатить все изменения транзакции, а потом снять все блокировки. Проблема взаимного блокирования двух транзакций, когда каждая из транзакций ждет освобождения объектов, блокированных другой транзакцией (такую ситуацию называют deadlock - "тупиковая ситуация"); она решается путем принудительного отката одной из транзакций-участников тупика, соответственно хранилище блокировок периодически сканируется на наличие тупика, что также требует определенных ресурсов.

Билет№32.1) Сформулируйте правила, которым должно соответствовать всякое XML-приложение.

XML - Создан для решения проблем, связанных с ограничениями HTML. Это метаязык предназначенный для определения новых языков, которые можно использовать для обмена данными

“XML – это стандартный язык, который используется для структурирования и определения данных в виде, приемлемом для различных приложений” *

Правило № 1

Все элементы должны корректно открываться, закрываться и быть вложенными. Например, это корректно: <name> Jane <address> Main Street </address> </name>  

Это не корректно:  <name>Jane<address>123 Main</name>

Правило № 2

XML не позволяет иметь незакрытые элементы. Так, если элементу не нужен закрывающий тэг (как в случае при отсутствии содержимого), это следует отражать при определении открывающего тэга элемента. Это можно сделать, завершая тэг символом "/".

<image url="my_face.jpg" />

Правило № 3

Все значения атрибутов должны заключаться в кавычки. (В конце концов, существует стандарт.)

Это верно: <product version="5">

Это неверно:и<product version=5>

Правило № 4

XML чувствителен к регистру. Можно пользоваться любым регистром, но следует быть последовательным.

<product> в нашем примере допустимо,

в то время как <Product> или <PRODUCT> — нет.

Правило № 5

Свободное место не игнорируется. Следующие два примера будут интерпретироваться по-разному.

<title>

<name>The mysterious mathematician</name>

</title>

<title>

<name> The mysterious mathematician</name>

</title>

Правило № 6

На верхнем уровне XML-файла всегда находится один элемент.