Главная » Просмотр файлов » ответы к зачёту по Базам Данных (2009)

ответы к зачёту по Базам Данных (2009) (1122570), страница 12

Файл №1122570 ответы к зачёту по Базам Данных (2009) (ответы к зачёту по Базам Данных (2009)) 12 страницаответы к зачёту по Базам Данных (2009) (1122570) страница 122019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 12)

Выполнение триггеров.

По ходу выполнения триггера возможна ситуация, при которой вызывается внутренний (вторичный) триггер, а также третичный и.т.д – глубина вложенности вызовов неограниченна. (Рекурсия, короче).

Выполнению триггера соответствует контекст выполнения. При завершении выполнения внутреннего триггера контекст меняется на контекст внешнего триггера.

  1. Общая структура оператора выборки в языке SQL и схема выполнения.

Для выборки данных в прямом SQL используется оператор SELECT, возвращающий набор из одной или нескольких строк одинаковой структуры и задаваемый в следующем синтаксисе:

SELECT [ ALL | DISTINCT ] select_item_commalist

FROM table_reference_commalist

[ WHERE conditional_expression ]

[ GROUP BY column_name_commalist ]

[ HAVING conditional_expression ]

[ ORDER BY order_item_commalist ]



На первом шаге выполняется раздел FROM.



На втором шаге выполняется раздел WHERE. Условное выражение (conditional_expression) этого раздела применяется к каждой строке таблицы T, и результатом является таблица T1, содержащая те и только те строки таблицы T, для которых результатом вычисления условного выражения является true. (Заголовки таблиц T и T1 совпадают.)



Если в операторе выборки присутствует раздел GROUP BY, то он выполняется на третьем шаге.

Каждый элемент списка имен столбцов (column_name_commalist), указываемого в этом разделе, должен быть одним из имен столбцов таблицы T1. В результате выполнения раздела GROUP BY образуется сгруппированная таблица T2, в которой строки таблицы T1 расставлены в минимальное число групп, таких, что во всех строках одной группы значения столбцов, указанных в списке имен столбцов раздела GROUP BY (столбцов группировки), одинаковы.



Если в операторе выборки присутствует раздел HAVING, то он выполняется на следующем шаге. Условное выражение этого раздела применяется к каждой группе строк таблицы T2, и результатом является сгруппированная таблица T3, содержащая те и только те группы строк таблицы T2, для которых результатом вычисления условного выражения является true. Условное выражение раздела HAVING строится по синтаксическим правилам, общим для всех условных выражений, но обладает той спецификой, что применяется к группам строк, а не к отдельным строкам. Поэтому предикаты, из которых строится это условное выражение, должны быть предикатами на группу в целом. В них могут использоваться имена столбцов группировки (инварианты группы) и так называемые агрегатные функции (COUNT, SUM, MIN, MAX, AVG) от других столбцов.



Выполнение раздела ORDER BY производится в последнюю очередь, следующим образом. Выбирается первый элемент списка сортировки, и строки таблицы T4 расставляются в порядке возрастания (если в элементе присутствует спецификация ASC; при отсутствии спецификации ASC/DESC предполагается наличие ASC) или в порядке убывания (при наличии спецификации DESC) в соответствии со значениями выражения, содержащегося в данном элементе, которые вычисляются для каждой строки таблицы T4. Далее выбирается второй элемент списка сортировки, и в соответствии со значениями заданного в нем выражения и порядка сортировки расставляются строки, которые после первого шага сортировки образовали группы с одинаковым значением выражения первого элемента списка сортировки. Операция продолжается до исчерпания списка элементов сортировки. Результирующий отсортированный список строк является окончательным результатом запроса.



  1. Представляемые и порождаемые таблицы в SQL. Агрегатные и кванторные функции.

Представляемая таблица – представление таблице, которое можно использовать в операторе выборки наряду с базовыми таблицами

(table_reference ::= table_primary).

оператор создания представления в общем случае определяется следующими синтаксическими правилами (простой вид):

create_view ::= CREATE VIEW table_name

[ column_name_comma_list ]

AS query_expression - запрос

Имя таблицы, задаваемое в определении представления, существует в том же пространстве имен, что и имена базовых таблиц, и, следовательно, должно отличаться от всех имен таблиц (базовых и представляемых), созданных тем же пользователем.

Если имя представления встречается в разделе FROM какого-либо оператора выборки, то вычисляется выражение запроса, указанное в разделе AS, и оператор выборки работает с результирующей таблицей этого выражения запроса.

Порождаемая таблица derived_table задается выражением запроса, заключенным в круглые скобки:

derived_table ::= (query_expression)

Агрегатные и кванторные функции

агрегатные:

Всё это функции над мультимножеством строк (сгруппированных, если GROUP BY, или всей таблицей). На осн. м/множества строк производятся множества значений

COUNT – количество значений

MAX

MIN

AVG – среднее значение

SUM

COUNT (*) – количество строк (всегда считаются различными)

--------------------

(аргументы следующих квантроных функцийСУТЬ логические выражения)

EVERY: true , если лог. выр. True для всех строк

SOME (ANY): true , если лог. выр. True для хотя бы одной строки

DISTINCT – удаление дубликатов строк из результата.

Если на входе пустое множество, то

СOUNT = 0 EVERY = true MAX, MIN, AVG, SUM = NULL





  1. Предикаты языка SQL.



Логич. выражение – булево выражение, которое строится на основе предикатов с исп.операторов AND, OR, NOT И ()

S – скал.произведение

R – строк.табл

|R| - значение в строке

T – таблица

Предикат позволяет специфицировать усл-е, результатом которого может быть true, false или unknown.

Для любых аргументов предикатов правила:

  1. совместимости типов

  2. равенство степеней строк. операндов |Rx| = |Ry|

  3. для люб. предик. есть обратный NOT pred = NOT (pred)



Предикаты:

  1. Предикат сравнения: Rx comp-op Ry

  2. Предикат between: условие вх-я в диап. Значений (Rx between Ry and Rz)

  3. Предикат is null: является неопр.значением аргумента

  4. Предикат in: условие вхождения в указ.множество

  5. Предикат like: string LIKE pattern ESCAPE symbol

в pattern - любой одиноч.символ, % - произв. п/строка

  1. Предикат similar

  2. Предикат exists: получили ли пустую таблицу (TRUE  | Трез |>0 , иначе FALSE)

  3. Предикат unique: = TRUE, когда в Трез отсут. 2 одинак. стр

  4. Предикат overlaps: пересечение по времени 2х событий

  5. Предикат сравнения с квантором:

Rx comp_op ALL T (квантор всеобщности)

Rx comp_op SOME T (квантор существования)

  1. Предикат match: соответствие подстроки рез-ту 2/л запросу

  2. Предикат is distinct: Rx IS DISTINCT FROM Ry = TRUE  Rx и Ry - дубликаты





  1. Управление транзакциями в SQL. Средства инициации и завершения транзакций. Понятие точки сохранения. Уровни изоляции SQL-транзакций.



Транзакция ACID – послед. операций, обладающих св-вами атомарности, согласованности, изоляц, долговечн.



Транзакция , образованная явным образом: START TRANSACTION либо неявно, когда выполняется оператор, для которого требуется контекст транзакции, а его нет.



Для завершения транзакции: COMMIT (транзакция сохр-ся в БД)

ROLLBACK (система возвращается в сост-е до старта)

SET TRANSACTION mode_commalist

mode ::=isolation_level

| access_mode

| diagnostics_size

isolation_level ::= READ UNCOMMITED - уровень изоляции

| READ COMITTED

| REPEATABLE READ

| SERIALIZABLE

access_mode ::= READ ONLY - режим доступа

| READ WRITE

diagnostics_size ::= DIAGNOSTIC SIZE value_specification - № диап.элем-в, кот. могут размещаться в области диагностики



Точки сохранения.



Точка сохранения представляет собой своего рода пометку в последовательности операций транзакции, которую в дальнейшем можно использовать для частичного отката транзакции с сохранением жизнеспособности транзакции и результатов операций, выполненных в транзакции до точки сохранения.

Установления точки сохранения: SAVEPOINT savepoint_name



Уровни изоляции SQL-транзакции

В стандарте SQL:1999 уровни изоляции определяются на основе нескольких феноменов, которые могут возникать при выполнении транзакций:

  • Феномен «грязного» чтения (dirty read) - Этому феномену подвержены транзакции, в которых допускается возможность видеть изменения объектов базы данных, производимые другими одновременно выполняемыми и еще не зафиксированными транзакциями. В SQL феномен «грязного» чтения может наблюдаться у транзакций, выполняемых на уровне изоляции READ UNCOMMITTED

  • Феномен неповторяемого чтения (unrepeatable read) - Этому феномену подвержены транзакции, читающие некоторые объекты базы данных и допускающие изменения уже прочитанных объектов другими транзакциями. В SQL феномен неповторяемого чтения может наблюдаться у транзакций, выполняемых на уровне изоляции READ COMMITTED (этот уровень изоляции, как показывает его название, гарантирует отсутствие феномена «грязного» чтения).

  • Феномен фантомов - Этому феномену подвержены транзакции, производящие выборку строк и таблиц базы данных и допускающие добавление к данным таблицам другими транзакциями строк, которые удовлетворяют условию выборки. В SQL феномен фантомов может наблюдаться у транзакций, выполняемых на уровне изоляции REPEATABLE READ (этот уровень изоляции, как показывает его название, гарантирует отсутствие феномена неповторяемого чтения).



52. Иерархия видов ограничений целостности в SQL.






В стандарте SQL дополнительные ограничения базы данных называются ASSERTION, т.е. общие ограничения целостности (ограничения БД).

Для определения общего ограничения целостности служит оператор CREATE ASSERTION, задаваемый в следующем синтаксисе:

CREATE ASSERTION constraint_name

CHECK (conditional_expression)



Пример:

CREATE ASSERTION MIN_EMP_BDATE CHECK

((SELECT MIN(EMP_BDATE)) FROM EMP) >= '1917-10-24')



В контексте каждой выполняемой транзакции каждое ограничение целостности должно находиться в одном из двух режимов:

1) немедленной проверки (immediate): проверяются при выполнении в транзакции любой операции, изменяющей состояние базы данных, и, возможно ROLLBACK,

2) отложенной проверки (deferred): проверяются при завершении транзакции (выполнении операции COMMIT).

спецификация INITIALLY для ограничения целостности (любого вида):

INITIALLY { DEFERRED | IMMEDIATE } [ [ NOT ] DEFERRABLE ]



Подробнее:

INITIALLY IMMEDIATE - в режиме немедленной проверки,

INITIALLY DEFERRED – находиться в режиме отложенной проверки, а также DEFERRABLE - для данного ограничения м б установлен режим отложенной проверки, NOT DEFERRABLE – что не может,

INITIALLY DEFERRED NOT DEFERRABLE является недопустимой возможности смены режима подразумевается наличие спецификации DEFERRABLE.



53. Поддержка авторизации доступа к данным в SQL. Объекты и привилегии. Пользователи и роли.

1) Метод авторизации в SQL относится к мандатным методам.

2) В SQL – 9 типов привилегий + привилегия на передачу привилегий.

3) Поддерживается принцип сокрытия информации об объектах от субъектов, у которых нет доступа.

4) Субъекты в SQL – пользователи и роли. Роль соответствует динамически определенной группе, каждая из которых отражает привилегии на исполнение данной роли, а также всеми привилегиями данной роли для доступа к объектам БД



54. Передача и аннулирование привилегий и ролей в SQL.

Характеристики

Тип файла
Документ
Размер
807,5 Kb
Предмет
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее