Автор работы: Пользователь скрыл имя, 19 Сентября 2011 в 21:52, шпаргалка
Работа содержит ответы на вопросы по дисциплине "Базы данных".
Три класса характеристик:
Обязательные:
ОО характеристики
Необязательные:
Цель создания ООБД – необходимость поддержания сложных приложений, которые адекватно представляют объекты реального времени.
Достоинства ООБД: возможность программирования ср-ми языков упр-я данными.
SQL – язык манипулирования данных для реляционных БД
FoxPRo – чисто реляционная БД
Большинство ООБД в качестве включаемых языков используют – С++ , Smalltalk
Есть ещё 2 языка , кот. Могут быть в качестве включающих – Кобои и Ада, но для этого нужно обеспечить интерфейс, написанный на Си.
Сейчас принят стандарт , согласно которому для написания БД исп-ся спец-й язык UML (United Modiling Language).
UML – язык моделирования , предназначенный для спецификации, визуализации, конструирования и документирования материалов программных систем , для моделирования бизнеса и др. не программных систем.
В основе языка лежит 3 модели:
1 .BOOCH – описание объектов
2. OMI – моделирование объектов
3. OOSE –
для разработки пр-х систем
Билет 18. Соотношение расширенного и гибридного подхода
Создание ООБД возможно на основе использование реляционной технологии. При таком подходе появляется возможность сочетания лучшего из этих 2-х технологий. Т.е. создаются БД которые поддерживают как традиционные приложения управленческой ИС, так и ОО приложения.
Такое объединение м.б. достигнуто 2 способами:
Гибридный подход - при котором ОО интерфейс добавляется к поддерживающей реляционной системе Бд.
Расширенный подход – предусматривает встраивание ОО возможностей в сервер БД.
Реляционный механизм управления данными
Реляционный механизм управления данными
ОО механизм управления данными
Также есть третья модель:
Модель объединения – позволяет объединить ОО языки с внутренними поддерживающими реляц. СУБД
ОО SQL – SQL3 = MOOSE(major object SQL extensions)
Билет 18. Стандарты ODMG
Целью стандарта Object Database Management Group является обеспечение переносимости приложений (схем данных, языки программирования, языки манипулирования данными, языки запросов).
Согласно стандарту ООСУБД определяется как СУБД которая соединяет в себе возможности БД с возможностями ОО языка программирования.
При использовании ООСУБД объекты базы данных неотличимы от объектов языка пр-я.
ООСУБД исп-ся для того, чтобы расширить этот язык средствами долговременного хранения данных, упр-я параллелизмом, спецификациями ассоциативных запросов и др. возможностями.
Обеспичение механизма наследования:
Супертипà подтип
Сам тип является объектом
Абстрактный тип определяет хар-ки а не реализации
Группы языков:
Билет 8. Тупиковые ситуации
Разрешение тупиковых ситуаций
Обе транзакции ожидают друг друга и не могут продолжаться. Возникла ситуация тупика.
Итак, при
использовании протокола
Ситуация тупика может возникать при наличии не менее двух транзакций, каждая из которых выполняет не менее двух операций. На самом деле в тупике может участвовать много транзакций, ожидающих друг друга. Т.к. нормального выхода из тупиковой ситуации нет, то такую ситуацию необходимо распознавать и устранять. Методом разрешения тупиковой ситуации является откат одной из транзакций (транзакции-жертвы) так, чтобы другие транзакции продолжили свою работу. После разрешения тупика, транзакцию, выбранную в качестве жертвы можно повторить заново.
Можно
представить два принципиальных
подхода к обнаружению
1.СУБД
не следит за возникновением
тупиков.Транзакции сами
2.За возникновением тупиковой ситуации следит сама СУБД, она же принимает решение, какой транзакцией пожертвовать.
Первый
подход характерен для настольных СУБД
(FoxPro и т.п.).Метод является более
простым и не требует дополнительных
ресурсов системы. Для транзакций задается
время ожидания (или число попыток), в течение
которого транзакция пытается установить
нужную блокировку. Если за указанное
время (или после указанного числа попыток)
блокировка не завершается успешно, то
транзакция откатывается (или генерируется
ошибочная ситуация).За простоту этого
метода приходится платить тем, что транзакции-жертвы
выбираются, случайным образом.В результате
из-за одной простой транзакции может
откатиться очень дорогая транзакция,
на выполнение которой уже потрачено много
времени и ресурсов системы. Второй способ
характерен для промышленных СУБД (ORACLE,
MS SQL Server и т.п.).В этом случае система сама
следит за возникновением ситуации тупика,
путем построения графа ожидания транзакций.
Граф ожидания транзакций - граф, в котором
существует два типа вершин - вершины,
соответствующие транзакциям, и вершины,
соответствующие объектам захвата. Ситуация
тупика возникает, если в графе ожидания
транзакций имеется хотя бы один цикл.Одну
из транзакций, попавших в цикл, необходимо
откатить, причем, система сама может выбрать
эту транзакцию в соответствии с некоторыми
стоимостными соображениями (например,
самую короткую, или с минимальным приоритетом
и т.п.).
Билет 20. Целостность данных
Поскольку каждый атрибут связан с некоторым доменом, для множества допустимых значений каждого атрибута отношения определяются так называемые ограничения домена. Помимо этого, задаются два важных правила целостности, которые, по сути, являются ограничениями для всех допустимых состояний базы данных. Этих два основных правила реляционной модели называются целостностью сущностей и ссылочной целостностью.
Определитель NULL
Определитель NULL – указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этого кортежа.
Определитель NULL следует воспринимать как логическую величину "неизвестно". Другими словами, либо это значение не входит в область определения некоторого кортежа, либо никакое значение еще не задано. Ключевое слово NULL представляет собой способ обработки неполных или необычных данных. Однако определитель NULL не следует понимать как нулевое численное значение или заполненную пробелами текстовую строку. Нули и пробелы представляют собой некоторые значения, тогда как ключевое слово NULL призвано обозначать отсутствие какого-либо значения. Следовательно, определитель NULL следует рассматривать иначе, не так, как другие значения.
Целостность сущностей
Первое
ограничение целостности
Целостность сущностей – в базовом отношении ни один атрибут первичного ключа не может содержать отсутствующих значений, обозначаемых определителем NULL.
По определению, первичный ключ – это минимальный идентификатор, который используется для уникальной идентификации кортежей. Это значит, что никакое подмножество первичного ключа не может быть достаточным для уникально идентификации кортежей. Если допустить присутствие определителя NULL в любой части первичного ключа, это равноценно утверждению, что не все его атрибуты необходимы для уникальной идентификации кортежей, что противоречит определению первичного ключа.
Если рассмотреть это правило более внимательно, то можно заметить несколько его необычных свойств. Во-первых, почему оно применяется к первичным ключам, но не используется в отношении альтернативных ключей? Во-вторых, почему оно ограничивается только базовыми отношениями? (пример)