Главная страница

1. Дайте определение понятий предметная область, база данных, система управления базами данных, информационная система


Скачать 0.63 Mb.
Название1. Дайте определение понятий предметная область, база данных, система управления базами данных, информационная система
Дата22.01.2022
Размер0.63 Mb.
Формат файлаdocx
Имя файлаZNAT.docx
ТипДокументы
#338951

1. Дайте определение понятий предметная область, база данных, система управления базами данных, информационная система
Предметная область – это часть реального мира, подлежащая изучению с целью создания базы данных для автоматизации процесса управления.

Базы данных — это реализованная с помощью компьютера информационная структура (модель), отражающая состояния объектов и их отношения.

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

Информационная система – это совокупность базы данных и всего комплекса аппаратно-программных средств для ее хранения, изменения и поиска информации, для взаимодействия с пользователем.
2. Приведите классификацию баз данных


3. Изложите концепцию трехуровневой архитектуры ANSI-SPARC


  • Внешний – Представление базы данных с точки зрения пользователей. Этот уровень описывает ту часть базы данных, которая относится к каждому пользователю. Внешний уровень состоит из нескольких различных внешних представлений базы данных. Каждый пользователь имеет дело с представлением "реального мира", выраженным в наиболее удобной для него форме.

  • Концептуальный – Обобщающее представление базы данных. Этот уровень описывает то, какие данные хранятся в базе данных, а также связи, существующие между ними.

  • Внутренний – Физическое представление базы данных в компьютере. Этот уровень описывает, как информация хранится в базе данных. Внутренний уровень описывает физическую реализацию базы данных и предна­значен для достижения оптимальной производительности и обеспечения экономно­го использования дискового пространства.


4. Сформулируйте правила Кодда для реляционных баз данных
12 правил Кодда — 13 правил (в данном случае исчисление начинается с 0), которым должна удовлетворять каждая система управления реляционными базами данных.

Правило 0: Основное правило:

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

Правило 1: Информационное правило:

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

Правило 2: Гарантированный доступ к данным:

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

Правило 3: Систематическая поддержка отсутствующих значений:

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

Правило 4: Доступ к словарю данных в терминах реляционной модели:

Словарь данных должен сохраняться в форме реляционных таблиц, и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств, тех же самых, которые используются для работы с реляционными таблицами, содержащими пользовательские данные.

Правило 5: Полнота подмножества языка:

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

(а) имеет линейный синтаксис,

(б) может использоваться как интерактивно, так и в прикладных программах,

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

Правило 6: Возможность изменения представлений:

Каждое представление должно поддерживать все операции манипулирования данными, которые поддерживают реляционные таблицы: операции выборки, вставки, изменения и удаления данных.

Правило 7: Наличие высокоуровневых операций управления данными:

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

Правило 8: Физическая независимость данных:

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

Правило 9: Логическая независимость данных:

Представление данных в приложении не должно зависеть от структуры реляционных таблиц. Если в процессе нормализации одна реляционная таблица разделяется на две, представление должно обеспечить объединение этих данных, чтобы изменение структуры реляционных таблиц не сказывалось на работе приложений.

Правило 10: Независимость контроля целостности:

Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных.

Правило 11: Независимость от расположения:

База данных может быть распределённой, может находиться на нескольких компьютерах, и это не должно оказывать влияния на приложения. Перенос базы данных на другой компьютер не должен оказывать влияния на приложения.

Правило 12: Согласование языковых уровней:

Если используется низкоуровневый язык доступа к данным, он не должен игнорировать правила безопасности и правила целостности, которые поддерживаются языком более высокого уровня.
5. Опишите назначение нормализации
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.

Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. Конечной целью нормализации является уменьшение потенциальной противоречивости информации, хранимой в базе данных. Общее назначение процесса нормализации заключается в следующем:

  • исключение некоторых типов избыточности;

  • устранение некоторых аномалий обновления;

  • разработка проекта базы данных, который является достаточно «качественным» представлением реального мира, интуитивно понятен и может служить хорошей основой для последующего расширения;

  • упрощение процедуры применения необходимых ограничений целостности.


6. Перечислите основные понятия реляционной модели данных
Реляционная модель основана на математическом понятии отношения, физическим представлением которого является двумерная таблица, состоящая из строк и столбцов. В этой модели широко используются математическая терминология из теории множеств.

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

Отношение — плоская двумерная таблица, состоящая из строк и столбцов. Подобное восприятие не относится к физической структуре, которая может быть реализована по-разному.

Атрибут — это именованный столбец отношения.

Тип данных в реляционной модели данных полностью адекватен понятию типа данных в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных данных (таких как «деньги», дата, время, временной интервал).

Домен — это набор допустимых значений для одного или нескольких атрибутов. Понятие домена более специфично для баз данных, хотя и имеет некоторые аналогии с подтипами в некоторых языках программирования.

В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат «истина», то элемент данных является элементом домена.

Для понятия домена важен и такой факт: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. Н-р, атрибуты ФИО и АДРЕС относятся к строковому типу, но не являются сравнимыми.

Кортеж — это строка отношения. Другое определение: кортеж — это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения. «Значение» является допустимым значением домена данного атрибута (или типа данных, если понятие домена не поддерживается). Кортеж — это набор именованных значений заданного типа.

Схема отношения — это именованное множество пар {имя атрибута, имя домена (или типа, если понятие домена не поддерживается)}.

{имя — множество допустимых имен | VARCHAR}

Степень или «арность» схемы отношения — мощность этого множества. Грубо говоря, степень определяется количеством этих атрибутов (количество полей (столбцов)).

Кардинальность отношения — количество кортежей, составляющих отношение (количество строк в таблице).

Схема БД (в структурном смысле) — это набор именованных схем отношений.

Отношение (другое определение) — это множество кортежей, соответствующих одной схеме отношения. Иногда, чтобы не путаться, говорят «отношение-схема» и «отношение-экземпляр», иногда схему отношения называют заголовком отношения, а отношение как набор кортежей — телом отношения.

Реляционная база данных — это набор нормализованных отношений, имена которых совпадают с именами схем отношений в схеме БД.
7. Раскройте значение терминов первичный и внешний ключ
Primary Key (первичный ключ) — это столбец, значение которого однозначно идентифицирует уникальность строки и предоставляет ссылку для связи с другими таблицами.
Foreign Key (внешний ключ) — это столбец в дочерней таблице, который ссылается на первичный ключ в родительской справочник таблице.
Тип столбца внешнего ключа дочерней таблицы должен совпадать с типом столбца первичного ключа в родительской таблице.
Значение столбца внешнего ключа дочерней таблицы должен совпадать со значением первичного ключа в родительской таблице.
8. Перечислите и раскройте содержание реляционных связей
Отношение «один-ко-многим» имеет место, когда одной записи родительской таблицы может соответствовать несколько записей в дочерней таблице.

Связь "один-ко-многим" является самой распространенной для реляционных баз данных.

Отношение «один-к-одному» имеет место, когда одной записи в родительской таблице соответствует одна запись в дочерней таблице.

Отношение «многие-ко-многим» имеет место, когда:

а) записи в родительской таблице может соответствовать больше одной записи в дочерней таблице;

б) записи в дочерней таблице может соответствовать больше одной записи в родительской таблице.

Например, каждой студент изучает несколько дисциплин. Каждая дисциплина изучается несколькими студентами.

9. Изложите концепцию индексирования
Конечные пользователи приложений хотят видеть свои данные в определенном порядке (нр, фамилии людей по алфавиту). Задачу представления данных в упорядоченном виде решают индексы. Значения полей, входящих в индекс упорядочены и представлены в особом виде, оптимизированном для поиска нужных значений (а именно это и нужно для построения упорядоченных последовательностей). Отделение хранения данных от их представления дает дополнительные преимущества по сравнению с непосредственной сортировкой

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

— их может быть до 64 на каждую таблицу.
Если говорить о реализации индексов на физическом уровне, то они представляют двоичное дерево, узлы которого представляют собой пары {"значение поля в индексе" — "расположение данных в таблице"}. Поиск нужной записи в индексе идет с помощью механизма хешпоиска — одного из самых быстрых алгоритмов поиска.
Индексы — это структура данных, которая позволяет СУБД быстрее обнаруживать отдельные записи в файле, и, как следствие, сократить время выполнения запросов.
10. Опишите специфику использования представлений
В БД может быть определено представление (просмотр) — виртуальная таблица, в которой представлены записи из одной или нескольких таблиц. Представление реализовано как запрос, хранящийся на сервере и выполняющийся всякий раз, когда происходит обращение к представлению. Для создания представления применяется оператор

CREATE VIEW AS ;

Модифицироваать представление нельзя. Можно только удалить и создать его заново.

Порядок формирования записей в представлении определяется оператором SELECT, а точнее — оптимизатором запросов.

В случае если список имен столбцов опущен, имена столбцов считаются идентичными именам полей, возвращаемых оператором SELECT.

Если в операторе SELECT столбец определяется как выражение, тогда список столбцов обязателен.

Список столбцов будущего представления содержит только их имена. Их тип будет таким, как у столбцов, возвращаемых оператором SELECT.

Кроме того, в качестве источника данных для формирования представления НЕ МОГУТ выступать хранимые процедуры.

Преимущества создания просмотров:

– сложные запросы, выбирающие данные из множества таблиц становятся проще для понимания, снижая вероятность ошибки;

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

– дав пользователю в распоряжение просмотры, а не таблицы, можно менять запрос и сами таблицы, лежащие в основе просмотра, не меняя клиентских приложений.
11. Перечислите и раскройте задачи операторов DML
DML - язык, содержащий набор операторов для поддержки основных операций манипулирования содержащимися в базе данными. К операциям управления данными относятся:

  • вставка в базу данных новых сведений;

  • модификация сведений, хранимых в базе данных;

  • извлечение сведений, содержащихся в базе данных;

  • удаление сведений из базы данных.

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

Операторы:

  • SELECT - отобрать строки из таблиц

оператор запроса, возвращающий набор данных (выборку) из базы данных.

Оператор возвращает ноль или более строк. Список возвращаемых столбцов задается в части оператора, называемой предложением SELECT.

  • INSERT - добавить строки в таблицу

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

  • UPDATE - изменить строки в таблице

оператор языка SQL, позволяющий обновить значения в заданных столбцах таблицы.

  • DELETE - удалить строки в таблице

SQL-операция удаления записей из таблицы. Критерий отбора записей для удаления определяется выражением where. В случае, если критерий отбора не определён, выполняется удаление всех записей.

Есть мнения что это тоже часть DML т.к. через транзакции тоже по сути управляет данными. С лекцией это не коррелируется и однозначных подтверждений я не нашел:

COMMIT - зафиксировать внесенные изменения; ROLLBACK - откатить внесенные изменения
12. Изложите концепцию хранимых процедур
Хранимая процедура — это модуль, написанный на процедурном языке, компилятор которого встроен в ядро Interbase и хранящийся в базе данных как метаданные (то есть как данные о данных). Хранимую процедуру можно вызывать из программы.
Существует две разновидности хранимых процедур:

Процедуры выбора могут возвращать более одного значения. В приложении имя хранимой процедуры выбора подставляется в оператор SELECT вместо имени таблицы или просмотра.

Процедуры действия вообще могут не возвращать данных и используются для реализации каких-либо действий.

Хранимым процедурам можно передавать параметры и получать обратно значения параметров, измененные в соответствии с алгоритмами работы хранимых процедур.
Преимущества использования хранимых процедур:

– одну процедуру можно использоваться многими приложениями;

– разгрузка приложений клиента путем переноса части кода на сервер и вследствие этого – упрощение клиентских приложений;

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

– улучшенные характеристики выполнения, связанные с тем, что хранимые процедуры выполняются сервером, в частности – уменьшенный сетевой трафик.
Хранимая процедура создается оператором:

CREATE PROCEDURE

[(

[, ...])]

[RETURNS

(

[, ...])]

AS

[]

BEGIN

< statements>

END
13. Перечислите основные операторы процедурного языка
Операторные скобки BEGIN...END, во-первых, ограничивают тело процедуры, а во-вторых, могут использоваться для указания границ составного оператора
Оператор присваивания служит для занесения значений в переменные. Его формат: Имя переменной = выражение;
Условный оператор IF ... THEN ... ELSE имеет такой же формат, как и в Object Pascal: IF () THEN < оператор 1> [ELSE < оператор 2>]
Оператор SELECT используется в хранимой процедуре для выдачи единичной строки. По сравнению с синтаксисом обычного оператора SELECT в процедурный оператор добавлено предложение INTO: переменная [, :переменная...]
Алгоритм работы оператора FOR SELECT ... DO заключается в следующем. Выполняется оператор SELECT, и для каждой строки полученного результирующего набора данных выполняется оператор, следующий за словом DO.
Оператор SUSPEND передает в вызывающее приложение значения результирующих параметров (перечисленных после слова RETURNS в описании функции), имеющие место на момент выполнения SUSPEND.
WHILE () DO < оператор> Алгоритм выполнения оператора: в цикле проверяется выполнение условия; если оно истинно, выполняется оператор. Цикл продолжается до тех пор, пока условие не перестанет выполняться.
Оператор EXIT инициирует прекращение выполнения процедуры и выход в вызывающее приложение.
Оператор EXECUTE PROCEDURE имя [параметр [, параметр ...]]; [RETURNING_VALUES параметр [, параметр ...]]; вызывает другую хранимую процедуру.

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

вызываемой SQL-сервером при обновлении, удалении или добавлении

новой записи. Непосредственно вызвать триггер нельзя. Нельзя и

передавать им входные параметры и получать от них значения

выходных параметров. Триггеры всегда реализуют действие.

Триггер всегда привязан к определенной таблице.

По событию ТБД триггеры различаются на вызываемые при:

– добавлении новой записи;

– изменении существующей записи;

– удалении записи;

– универсальные (срабатывающие при любой операции)

По отношению к событию, влекущему их вызов, триггеры

различаются на:

– выполняемые до наступления события;

– выполняемые после наступления события.
Преимущества использования триггеров

– Автоматическое обеспечение каскадных воздействий в дочерних

таблицах при изменении, удалении записи в родительской

таблице выполняется на сервере. Пользователю нет

необходимости заботиться о программной реализации каскадных

воздействий. Поскольку каскадные воздействия выполняет

сервер, нет необходимости пересылать изменения в таблицах БД

из приложения на сервер, что снижает загрузку сети.

– Изменения в триггерах не влекут необходимости изменения

программного кода в клиентских приложениях и не требуют

распространения новых версии клиентских приложений.
Триггер создается оператором

CREATE TRIGGER ИмяТриггера FOR ИмяТаблицы

[ACTIVE | INACTIVE]

{BEFORE | AFTER}

{DELETE | INSERT | UPDATE)

[POSITION номер]

AS <тело триггера>

– ACTIVE | INACTIVE — указывает, активен триггер или нет.

Можно определить триггер «про запас», установив для него

INACTIVE. В дальнейшем можно переопределить триггер как

активный. По умолчанию действует ACTIVE.

– BEFORE | AFTER — указывает, будет выполняться триггер до

(BEFORE) или после (AFTER) запоминания изменений в БД.

– DELETE | INSERT | UPDATE — указывает операцию над ТБД,

при выполнении которой срабатывает триггер.

– POSITION номер — указывает, каким по счету будет

выполняться триггер в случае наличия группы триггеров,

обладающих одинаковыми характеристиками операции и

времени (до, после операции) вызова триггера. Значение номера

задается числом в диапазоне 0..32767. Триггеры с меньшими

номерами выполняются раньше.
Для определения тела триггера используется процедурный язык. В

него добавляется возможность доступа к старому и новому значениям

столбцов изменяемой записи OLD и NEW — возможность,

недоступная при определении тела хранимых процедур. Структура

тела триггера:

[ <объявление локальных переменных> ]

BEGIN

< оператор>

END
15. Опишите назначение курсоров

Курсор в SQL – это область в памяти базы данных, которая предназначена для хранения последнего оператора SQL. Если текущий оператор – запрос к базе данных, в памяти сохраняется и строка данных запроса, называемая текущим значением, или текущей строкой курсора. Указанная область в памяти поименована и доступна для прикладных программ.

Обычно курсоры используются для выбора из базы данных некоторого подмножества хранимой в ней информации. В каждый момент времени прикладной программой может быть проверена одна строка курсораКурсоры часто применяются в операторах SQL, встроенных в написанные на языках процедурного типа прикладные программы. Некоторые из них неявно создаются сервером базы данных, в то время как другие определяются программистами.

-------------
Операции выборки SQL работают с наборами строк, которые называются результирующими множествами. Иногда бывает необходимо просмотреть строки в прямом или обратном направлении один или несколько раз. Именно для этого используются курсоры.

Курсор представляет собой запрос к базе данных, хранящийся на сервере СУБД, = это не оператор SELECT, но результирующее множество, выборка, полученная в результате действия оператора SELECT. После того как курсор сохранен, приложение может просматривать данные в прямом или обратном направлении.

Различные СУБД поддерживают разные опции и возможности курсоров. Наиболее часто обеспечиваются следующие возможности.

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

· Возможность управлять направлением выполняемых операций (вперед, назад, первая, последняя, абсолютное положение, относительное положение и т.д.).

· Возможность помечать некоторые столбцы как редактируемые, а другие – как нередактируемые.

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

· Указание СУБД скопировать выбранные данные, чтобы они не изменялись в промежуток времени между открытием курсора и обращением к нему.

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

Обычно курсоры используются для выбора из базы данных некоторого подмножества хранимой в ней информации. В каждый момент времени прикладной программой может быть проверена одна строка курсораКурсоры часто применяются в операторах SQL, встроенных в написанные на языках процедурного типа прикладные программы.
16. Дайте определение и перечислите базовые свойства транзакций (ACID)
Под транзакцией понимается неделимая с точки зрения воздействия на БД логическая последовательность операторов манипулирования данными (чтения|SELECT, удаления|DELETE, вставки|INSERT, модификации|UPDATE) такая что возможны два итога:

  • результаты всех операторов, входящих в транзакцию, соответствующим образом отображаются в БД;

  • воздействие всех этих операторов полностью отсутствует

ACID:

  • Атомарность. Это свойство типа "все или ничего". Любая транзакция представляет собой неделимую единицу работы, которая может быть либо выполнена вся целиком, либо не выполнена вовсе.

  • Согласованность. Каждая транзакция должна переводить базу данных из одного согласованного состояния в другое согласованное состояние.

  • Изолированность. Все транзакции выполняются независимо одна от другой и промежуточные результаты незавершенной транзакции не доступны другим транзакциям.

  • Продолжительность. Результаты успешно завершенной (зафиксированной) транзакции должны сохраняться в базе данных постоянно и не должны быть утеряны в результате последующих сбоев.


17. Раскройте понятие «многоверсионная архитектура»
В INTERBASE реализована многоверсионная архитектура (MGA — Multi Generation Architecture).

Суть ее в том, что любые действия над записью производятся не над самой записью, а над ее копией (версией). Когда транзакция изменяет запись, для нее создается копия над которой и совершаются изменения в рамках этой транзакции. При этом изменять данные может только одна транзакция, остальные могут только читать. Когда изменяющая транзакция подтверждается, исходная версия записи помечается для удаления, а текущая версия становится основной.

Многоверсионная архитектура: параллельная обработка оперативных и аналитических запросов (читающие пользователи не блокируют пишущих), что особенно важно, поскольку разработанной программой будут пользоваться одновременно несколько сотрудников;
18. Раскройте понятие блокировка
Существует такое понятие как конфликт. Это когда две транзакции пытаются изменить одну и ту же запись. Поэтому транзакция, которая обратилась к записи первой, блокирует ее. Тогда вторая транзакция должна будет либо немедленно возбудить исключение, либо подождать некоторое время: вдруг первая транзакция завершится и разблокирует доступ к записи. Отсюда вытекают два режима блокировки: wait (по умолчанию) и nowait.

Блокировка (англ. lock) в СУБД — отметка о захвате объекта транзакцией в ограниченный или исключительный доступ с целью предотвращения коллизий и поддержания целостности данных.
19. Перечислите и опишите уровни изоляции транзакций
1. READ COMMITTED (читать подтвержденные данные). Транзакция с данным уровнем изоляции видит все результаты всех подтвержденных транзакций. Этот уровень используется для получения самого «свежего» состояния БД. Существует две разновидности такого чтения:

– rec_version. Этот вариант используется по умолчанию и означает, что при чтении записи считывается последняя версия каждой записи независимо есть неподтвержденные версии или нет.

– no_rec_version. Этот вариант требует, чтобы на момент чтения записи у нее не существовало неподтвержденных версий. При чтении записи в такой транзакции производится проверка не существует ли у этой записи неподтвержденной версии. Если существует, то наша транзакция ждет, пока не завершится транзакция, изменяющая эту запись, при условии, что наша запущена в режиме wait. Если же в nowait, то немедленно возникнет ошибка Deadlock. Очевидно, что такой уровень может привести к частым конфликтам, поэтому использовать его нужно с большой осторожностью.

2. SNAPSHOT. Задается параметром concurrency. Транзакция с данным уровнем изоляции не видит никаких изменений (кроме своих конечно), видит только состояние БД на момент своего запуска (как бы моментальный снимок БД). При попытке в этой транзакции изменить данные, измененные другими транзакциями уже после ее запуска возникает конфликт. Этот режим обычно используется для длительных по времени запросов, для генерации отчетов.

3. SNAPSHOT TABLE STABILITY. Задается параметром consistency. Уровень изоляции почти такой же что и SNAPSHOT, но дополнительно блокирует таблицу на запись. Т.е. если наша транзакция с уровнем consistency производит изменения в таблице, то транзакции с уровнем read_commited или concurency смогут только читать эту таблицу, а транзакции с уровнем consistency не смогут даже читать. Обычно этот уровень используют только для коротких обновляющих транзакций, которые запусаются, проводят очень короткое по времени изменение и сразу завершаются. Другие транзакции в зависимости от режима блокировки wait|nowait либо ждут, либо возбуждают исключение.

20. Перечислите привилегии пользователя и приведите операторы управления привилегиями
На таблицы и просмотры существуют права: SELECT, INSERT, UPDATE, DELETE и REFERENCES (право создавать ограничения внешнего ключа в других таблицах, ссылающихся на данную таблицу).

На отдельные столбцы таблицы: UPDATE и REFERENCES.

На хранимые процедуры: EXECUTE (право выполнять процедуру).
Перед выполнением запроса пользователя сервер выясняет его права на объекты запроса, в зависимости от этого, выполняет запрос или отказывает в его выполнении. Для пользователя SYSDBA, такая проверка не выполняется в принципе, поэтому результат запроса получается чуть быстрее.
Привилегии учетных записей — определяются на уровне каждой БД операторами DDL: GRANT (предоставить) и REVOKE (отозвать).

Общий синтаксис для предоставления привилегий:

GRANT <список привилегий> | ALL | <роль>

ON <таблица> | <просмотр> | <ХП> | <роль>

TO <список пользователей> | PUBLIC | <роль> | <триггер> | <ХП>

[ WITH GRANT OPTION ]

[ WITH ADMIN OPTION ]

<привилегия> = SELECT |

INSERT |

DELETE |

UPDATE [ (<список столбцов>) ] |

REFERENCE [ (<список столбцов>) ] |

EXECUTE

ALL — означает пакет привилегий Select & Insert & Update & Delete,

исключая EXECUTE.

PUBLIC — означает всех пользователей БД, исключая просмотры,

триггеры, ХП и роли.

Опция WITH GRANT OPTION — дает возможность пользователю,

получившему привилегии, самому раздавать эти привилегии.

Опция WITH ADMIN OPTION — дает возможность пользователю,

получившему членство в роли, давать это членство другим

пользователям.

21. Опишите назначение ролей
Для упрощения администрирования введены роли (role).

Роль — это предварительно созданный и именованный набор привилегий. Оптимизация администрирования заключается в том что пользователю можно назначить привилегии роли или другими словами предоставить членство в роли. Пользователи подключаются к БД с использованием привилегий одной из ролей. Для этого пользователи должны обладать правом членства в одной или нескольких ролях. Роли — объекты уровня базы данных, в отличие от пользователей, которые являются объектами уровня сервера.

Для создания роли используется оператор DDL: CREATE ROLE

Например, CREATE ROLE Reader
22. Изложите основные положения внутренней страничной организации
Каждая область памяти используется для хранения одного из нескольких типов страниц: страницы данных, страницы индексов, страницы blob-объектов (неструктурированных данных, например, большие текстовые или двоичные данные). То есть данные на одной странице являются однородными страница, например, может хранить только данные или только индексы.

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

Все страницы данных имеют одинаковую структуру, включающую:

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

•содержание — строки данных (последовательность кодов), каждая из которых имеет уникальный идентификатор в рамках всей базы данных, который состоит из номера страницы и номера строки на странице;

•дескрипторы строк, задающие смещение строки на странице и длину строки, что позволяет при переупорядочении строк на страницах не производить физического перемещения строк, так как все манипуляции производятся с дескрипторами.

Для организации быстрого доступа создаются страницы индексов, которые организованы обычно в виде В-деревьев.

23. Раскройте значение терминов OLTP и OLAP
OLTP (On-line Transaction Processing) участвует в работе конкретной системы. OLTP характеризуется большим количеством коротких онлайн-транзакций (INSERT, UPDATE, DELETE). Основной упор в системах OLTP сделан на очень быструю обработку запросов, поддержание целостности данных в средах с множественным доступом и эффективность, измеряемую числом транзакций в секунду. В базе данных OLTP имеются подробные и текущие данные, а схема, используемая для хранения транзакционных баз данных, является моделью сущностей (обычно 3NF). Он включает в себя запросы доступа к отдельной записи, такие как обновление электронной почты в базе данных компании.

OLAP (онлайн-аналитическая обработка) имеет дело с историческими данными или архивными данными. OLAP характеризуется относительно небольшим объемом транзакций. Запросы часто очень сложны и включают в себя агрегации. Для систем OLAP время отклика является мерой эффективности. Приложения OLAP широко используются методами Data Mining. В базе данных OLAP собраны исторические данные, которые хранятся в многомерных схемах (обычно в виде звезд). Иногда для запроса требуется доступ к большому количеству данных в записях управления, например, какова была прибыль вашей компании в прошлом году.
24. Изложите концепцию XML
???

XML— расширяемый язык разметки.

документ XML содержит общие три части:

необязательная первая строка, которая сообщает программе, которая получает документ, какова версия XML, с которым программа имеет дело (в примере 27.1 это версия 1.0);

♦ необязательная схема (обычно записывается с использованием DTD или XSD; см. разд. "Определение типа документа DTD" далее в этой главе);

♦ корневой элемент - элемент, который содержит все другие элементы.
???

База данных XML используется для хранения огромного количества информации в формате XML. Поскольку использование XML увеличивается во всех областях, требуется безопасное место для хранения документов XML. Данные, хранящиеся в базе данных, можно запросить с помощью XQuery, сериализовать и экспортировать в желаемый формат.

Существует два основных типа баз данных XML:

  • XML-включен

  • Собственный XML (NXD)

XML — база данных включена

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

Собственная база данных XML

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

Собственная база данных XML имеет преимущество перед базой данных с поддержкой XML. Он обладает высокой способностью хранить, запрашивать и поддерживать документ XML, чем база данных с поддержкой XML.
25. Раскройте область использования распределенных баз данных
Распределённая база данных — база данных, составные части которой размещаются в различных узлах компьютерной сети в соответствии с каким-либо критерием.

Распределённые базы данных используют для эффективного использования имеющегося оборудования, рациональности загрузки вычислительной сети и повышения доступности БД. Узлы системы необходимо делать максимально автономными (чтобы работа узла не зависела от операций в другом узле). Все узлы должны быть равноправными.

Основной целью построения распределенной БД можно считать обеспечение интеграции локальных БД.

Немного текста с лекции:

Необходимость в распределенных БД возникла в связи с тем, что современные предприятия могут географически охватывать большие территории, причем работа с данными осуществляется в каждом подразделении и на определенном уровне. Распределение данных позволяет эффективно использовать имеющееся оборудование, рационально загрузить вычислительную сеть и повысить доступность БД.

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

И, наконец, распределенная БД не должна быть зависима от аппаратного обеспечения, операционной системы, вычислительной сети и от самой СУБД.


написать администратору сайта