- •5Я нормальная форма.
- •Disk init
- •39. Язык sql. Функции языка. Достоинства языка.
- •Концептуальное проектирование базы данных. Объекты. Атрибуты. Конкретизация и обобщение.
- •17. Концептуальное проектирование базы данных. Связи между объектами. Мощность связи.
- •Концептуальное проектирование базы данных. Составные объекты.
- •Жизненный цикл баз данных. Этап реализации.
- •22)Разработка приложений. Тестирование, эксплуатация и сопровождение.
- •- Анализ функционирования и поддержка исходного варианта бд
- •- Адаптация и модернизация системы
- •46) Disk init
- •72) Оператор выборки
- •Оператор проекции
- •Реляционное умножение
- •Оператор соединения
- •Insert into spt_values(number, status)
- •Values (Null,Null)
- •Inner join [Медицинское учреждение].[dbo].[отделение]
- •Inner join Orders о
- •90) Ограничения домена
- •95) Табличные блокировки
95) Табличные блокировки
Когда транзакция блокирует строку, она автоматически устанавливает блокировку таблицы, содержащей заблокированную строку, чтобы предотвратить возникновение конфликтов между операциями DDL и операциями обновления строк таблицы.
Например, при обновлении строки таблицы CUSTOMERS транзакция устанавливает исключающую блокировку обновляемой строки. Кроме того, устанавливается и блокировка таблицы CUSTOMERS так, что другие транзакции не могут изменить или удалить эту таблицу до завершения первой транзакции.
Тупики
Тупик (deadlock) — это достаточно интересная ситуация, когда две транзакции не могут продолжать свою работу из-за того, что каждая из них запрашивает конфликтный набор блокировок. На рис. 2 показана ситуация, когда две транзакции взаимоблокированы.
На рис. 2 транзакция 1 устанавливает исключающую блокировку строки 1 таблицы и ждет, пока транзакция 2 снимет исключающую блокировку строки 2. Одновременно транзакция 2 устанавливает исключающую блокировку строки 2 и ждет, пока транзакция 1 снимет свою блокировку строки 1. В результате ни одна из этих транзакций не может продолжить работу, и они, оказавшись в тупике, ждут друг друга.
УСТРАНЕНИЕ ТУПИКОВ. Когда транзакция выполняет оператор, вызывающий тупик, Oracle автоматически распознает тупик и откатывает такой оператор.
96) Уровень изолированности транзакций — значение, определяющее уровень, при котором в транзакции допускаются несогласованные данные, то есть степень изолированности одной транзакции от другой. Более высокий уровень изолированности повышает точность данных, но при этом может снижаться количество параллельно выполняемых транзакций. С другой стороны, более низкий уровень изолированности позволяет выполнять больше параллельных транзакций, но снижает точность данных.
77) INNER JOIN – внутреннее соединение. Объединяет две таблицы, где каждая строка обоих таблиц в точности соответствует условию. Если для строки одной таблицы не найдено соответствия в другой таблице, строка не включается в набор. Пример запроса:
SELECT Работники.ФамилияРаботника, Роли.НазваниеРоли
FROM Работники INNER JOIN Роли ON Работники.КодРолиРаботника=Роли.КодРоли;
Аналог запроса:
SELECT Работники.ФамилияРаботника, Роли.НазваниеРоли
FROM Работники, Роли WHERE Работники.КодРолиРаботника=Роли.КодРоли;
При выборке записей из таблицы практически всегда требуется задавать определённые условия, по которым мы определяем, какие записи нам нужны, а какие - нет. И именно эти условия можно задавать с помощью конструкции WHERE в SQL. Я уже знакомил Вас с ней, но в этой статье решил познакомить с WHERE немного поближе.
Начну с простого примера выборки с использованием конструции WHERE в SQL:
SELECT * FROM table WHERE count=5
Вернутся записи, в которых поле "count" имеет значение 5. Теперь усложним запрос:
SELECT * FROM table WHERE count=5 AND id < 100
Таким образом, вернутся записи, у которых поле "count" имеет значение 5 И поле "id" имеет значение меньше 100.
76) INNER JOIN – внутреннее соединение. Объединяет две таблицы, где каждая строка обоих таблиц в точности соответствует условию. Если для строки одной таблицы не найдено соответствия в другой таблице, строка не включается в набор. Пример запроса:
SELECT Работники.ФамилияРаботника, Роли.НазваниеРоли
FROM Работники INNER JOIN Роли ON Работники.КодРолиРаботника=Роли.КодРоли;
Аналог запроса:
SELECT Работники.ФамилияРаботника, Роли.НазваниеРоли
FROM Работники, Роли WHERE Работники.КодРолиРаботника=Роли.КодРоли;
Ключевое слово join в SQL используется при построении select выражений. �?нструкция Join позволяет объединить колонки из нескольких таблиц в одну. Объединение происходит временное и целостность таблиц не нару�?ается. Существует три типа join-выражений:
inner join;
outer join;
cross join;
В свою очередь, outer join может быть left, right и full (слово outer обычно опускается). В качестве примера (DBMS Oracle) создадим две простые таблицы и сконструируем для них SQL-выражения с использованием join. В первой таблице будет хранится ID пользователя и его nick-name, а во второй - ID ресурса, имя ресурса и ID пользователя, который может этот ресурс администрировать.