- •1. Обязательный атрибут
- •2. Ограничения целостности связи
- •3. Триггер ссылочной целостности
- •Экзаменационный билет n 34.
- •2. Ключи.
- •3. Связи.
- •Экзаменационный билет n 36.
- •Экзаменационный билет n 37.
- •Экзаменационный билет n 38.
- •Экзаменационный билет n 39.
- •Экзаменационный билет n 41.
- •Ключевые атрибуты
- •Экзаменационный билет n 42.
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Четвертая нормальная форма
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ N 31.
Проблемы, возникающие при параллельном доступе, и пути их решения.
1) проблема утраченных обновлений
Суть – пользователи параллельно обрабатывают одни и те же данные, поэтому запоминается только то обновление, которое было проведено последним.
2) проблема незафиксированности обновлений (преждевременного чтения)
Суть – первый пользователь может увидеть данные, которые уже были обновлены вторым пользователем, но эти обновления еще не были окончательно зафиксированы. Теперь в случае проведения отката вторым пользователем первый будет работать с ошибочными несуществующими данными.
3) неповторяющееся чтение и фантомная вставка возникают в случае проведения пользователем групповой обработки данных.
Суть – первая ситуация возникает, если в момент проведения групповой обработки в диапазоне уже считанного другим пользователем изменяется запись, вторая ситуация – если добавляется новая запись.
Пути решения
Блокировка заключается в запрещении некоторых операций над данными, если её обрабатывает другой пользователь.
Блокировки накладываются в соответствии с правилами совместимости блокировок, исключающими конфликты «чтение-запись» «запись-чтение» «запись – запись». Сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемы транзакциям, удовлетворяют следующему правилу « ни одна блокировка от имени какой либо транзакции не должна устанавливаться, пока не будет снята ранее установленная». Иначе – двухфазовое блокирование.
Протокол двухфазной фиксации (блокировки) управляет процессом выполнения транзакций, затрагивающих несколько узлов БД. Главный принцип: исключение ситуации, в которой транзакция, охватывающая несколько узлов, на одних узлах завершается, а на других нет (т.е. вся транзакция целиком либо завершается, либо отменяется).
Обеспечивает
- согласованное и синхронное изменение распределенной БД параллельными транзакциями
- поддержку целостности и непротиворечивости данных
- предотвращение тупиковых ситуаций
- блокировку или возврат к исходной точке модификации во всех узлах.
Первая фаза: все части транзакции, выполняемые в разных узлах, уведомляют систему, что они готовы заблокировать данные.
Вторая фаза: система либо подает им сигнал на блокировку данных для их последующей модификации, либо осуществляет возврат к исходной точке выполнения транзакции в зависимости от того, возможно или невозможно заблокировать данные на всех узлах.
Уровни блокирования можно выделить в соответствии с блокируемыми единицами — БД, совокупность связных таблиц, таблица, совокупность связных записей, запись, поле.
Иногда реализуется динамическая схема блокировки, которая блокирует бо`льшую единицу и уменьшает область блокировки до уровня записи при обращении новых транзакций в данную область. Пессимистические блокировки запрещают доступ к данным, если они обрабатываются другой записью, и ставят новые обращения в очередь. Оптимистические разрешают параллельную обработку и обрабатывают возникающие конфликты по мере их поступления.
. ERWin. Особенности построения ER-модели.
ER-модель строится на уровне классов объектов, а не отдельных экземпляров объектов.
Каждому классу объектов в ER-модели присваивается уникальное имя. Именем класса объекта является грамматический оборот существительного (существительное, у которого могут быть прилагательные и предлоги). Если имя состоит из нескольких слов, то желательно, чтобы первым стояло существительное. Существительное должно употребляться в единственном, а не во множественном числе (например, ДИСЦИПЛИНА_ИЗУЧАЕМАЯ). Если в предметной об¬ласти традиционно используются разные имена для обозначения какого-либо класса объектов (т.е. имеет место синонимия), то все они должны быть зафиксированы при описании системы, и затем одно из них выбирается за основное, и только оно должно в дальнейшем использоваться в ER-модели. Помимо имени класса объектов в ER-MO-дели может использо-ваться его короткое кодовое обозначение; для дальнейшего перехода к даталогической модели еще может указы¬ваться имя, которое будет использоваться при описании структуры базы данных.
При построении ER-модели желательно дать словесную интерпретацию каждой сущности, особенно если возможно неоднозначное толкование понятия.
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ N 32.
1. Сравнение OLAP и OLTP систем.
Сравнительные характеристики систем OLTP и OLAP приведены в табл. 1.2.
Таблица 1.2
Характеристика |
OLTP |
OLAP |
Преобладающие операции |
Ввод данных, поиск |
Анализ данных |
Характер запросов |
Много простых транзакций |
Сложные транзакции |
Хранимые данные |
Оперативные, детализированные |
Охватывающие большой период времени, агрегированные |
Вид деятельности |
Оперативная, тактическая |
Аналитическая, стратегическая |
Тип данных |
Структурированные |
Разнотипные |
2..Задание ограничений целостности в ERWin..
При построении ER-модели в ERWin можно задавать ограничения целостности.
1. Обязательный атрибут
Для атрибута можно задавать свойство «Required» (обязательный). Для тех атрибутов, которые выбраны в качестве первичного ключа, это свойство является неактивным, поскольку свойство обязательности и так (по определению ключа) присуще элементам ключа. Свойство «Required» следует задать для атрибутов «Фамилия», «Имя», «Отчество» объекта СОТРУДНИК, «Наименование предмета полное» объекта ПРЕДМЕТ и некоторых других атрибутов. Задание этого свойства будет означать, что при вводе данных в БД недопустимо пустое значение соответствующего поля.
2. Ограничения целостности связи
При описании связи можно задать ограничения целостности связи. Для этого следует воспользоваться вкладкой RI Actions (рис. 4.3) в окне редактора связей (Relationship Editor). В этой секции для каждой связи можно задать действия, которые будут выполняться при удалении (Delete), вставке (Insert) и обновлении (Update) как порожденной (Child), так и родительской (Parent) сущности.
Для каждой корректирующей операции можно выбрать действие, которое представлено в ниспадающих списках. Каждый список имеет четыре возможных значения: NONE (никакой), RESTRICT (ограничивать),
CASCADE (каскад), SET DEFAULT (значение по умолчанию).
На рис. 4.3 показаны значения RI Actions, задаваемые по умолчанию. В рассматриваемом примере для операции Parent Delete следует выбрать действие CASCADE. Если «Код_сотрудника» может изменяться, то для операции Parent Update также следует выбрать действие CASCADE.
Так как связь «многие ко многим» в реляционной модели не поддерживается, то на уровне логической модели нет смысла (и, как следствие, нет возможности) задавать действия при корректировке сущностей, связанных таким типом связи. При необходимости можно перейти к уровню физической модели и скорректировать ограничения связи для связей, появляющихся в физической модели взамен связи «многие ко многим».
Естественно, что выбор режима действий при выполнении корректирующих операций будет зависеть от типа связи между сущностями. В табл. 4.1 приведены возможные режимы для каждого вида связи. Значения по умолчанию выделены полужирным курсивом с подчеркиванием.
Таблица 4.1
Действие |
Идентифицирующая связь |
Неидентифици-рующая связь (Nulls Allowed) |
Неидентифици- рующая связь (No Nulls) |
Категориальная связь |
Child Delete
|
NONE, RESTRICT, CASCADE |
NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null |
NONE, RESTRICT, CASCADE, SET DEFAULT |
NONE, RESTRICT, CASCADE |
Child Insert
|
NONE, RESTRICT, CASCADE
|
NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null |
NONE, RESTRICT, CASCADE, SET DEFAULT
|
NONE, RESTRICT, CASCADE
|
Child Update
|
NONE, RESTRICT, CASCADE
|
NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null
|
NONE, RESTRICT, CASCADE, SET DEFAULT
|
NONE, RESTRICT, CASCADE
|
Parent Delete
|
NONE, RESTRICT, CASCADE,
|
NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null |
NONE, RESTRICT CASCADE, SET DEFAULT |
NONE, RESTRICT, CASCADE
|
Parent Insert
|
NONE, RESTRICT, CASCADE |
NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null |
NONE, RESTRICT, CASCADE, SET DEFAULT |
NONE, RESTRICT, CASCADE |
Parent Update
|
NONE, RESTRICT, CASCADE
|
NONE, RESTRICT, CASCADE, SET DEFAULT, SET Null
|
NONE, RESTRICT, CASCADE, SET DEFAULT
|
NONE, RESTRICT, CASCADE
|
Значения ограничений означают следующее:
NONE - действие не оказывает влияния на связанные записи;
RESTRICT - действие запрещено (при определенных условиях);
CASCADE - действие вызывает изменения в связанных записях;
SET DEFAULT - устанавливается значение по умолчанию для поля связи;
SET Null - устанавливается по умолчанию значение Null для поля связи.
Так называемая категориальная связь является особой связью: с одной стороны, она является идентифицирующей связью, а с другой - связывает не два разных объекта, а информацию об одном и том же объекте. Для обобщенного объекта хорошо бы иметь специальный инструмент, который позволял бы рассматривать его как единое целое. В ERWin можно задавать ограничения целостности только для каждой отдельной связи, соединяющей родовой объект с каждым из видовых объектов.