Билеты на ГОСы “Базы Данных”

ОТВЕТЫ №1: Базы Данных

1. Дайте определение базы данных. Перечислите основные и дополнительные положения концепции баз данных.
2. Дайте определение системы управления базами данных. Перечислите и охарактеризуйте  основные функции СУБД.
3. Опишите принцип организации данных в иерархической модели данных. Укажите различия организации данных в иерархической и сетевой модели.
4. Перечислите основные понятия реляционной модели данных. Дайте определение отношения.
5. Дайте определение понятий первичного и внешнего ключа. Опишите принцип ограничения целостности данных по сущностям и по ссылкам.
6. Какие отношения называются совместимыми по объединению? Опишите признаки совместимости отношений по взятию прямого декартово произведения.
7.  Дайте определение операции пересечения отношений. Приведите пример.
8. Дайте определение полной функциональной зависимости. Перечислите необходимые требования удовлетворения отношения первой, второй и третьей нормальной форме.
9. Перечислите и охарактеризуйте основные понятия ER-модели.
10. Приведите синтаксис инструкций SELECT, UPDATE, INSERT. Приведите примеры.
11. Перечислите и опишите основные методы хранения и доступа к данным. Приведите пример формирования двоичного масочного индекса.

(одним файлом здесь  БД )

1. Дайте определение базы данных. Перечислите основные и дополнительные положения концепции баз данных.
******************

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

Основные принципы (положения), определяющие концепцию БД:
1) автономное безызбыточное хранение данных сложной структуры и значительного объема;
2) комплексное использование хранимой информации;
3) независимость программ обработки от физической структуры исходных данных.

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

2. Дайте определение системы управления базами данных. Перечислите и охарактеризуйте основные функции СУБД.
********************

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

Функции СУБД.
1) управления данными во внешней и оперативной памяти компьютера;
2) управления транзакциями;
3 )журнализации изменений БД;
4) поддержки языков доступа к данным;

3. Опишите принцип организации данных в иерархической модели данных. Укажите различия организации данных в иерархической и сетевой модели.
********************

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

ЖЕСТКАЯ – Если на структуру наложено ограничение, согласно которому каждому экземпляру подчиненного узла обязательно должен соответствовать экземпляр родительского узла.

ФОРМАЛЬНАЯ – Если же в структуре допускается отсутствие экземпляров родительского узла для существующих подчиненных, то такую иерархию называют формальной.

Элементы, не имеющие подчиненных, называют концевыми элементами или листьями.

Путь от концевого элемента до корневого называют ветвью, а максимальное количество элементов в самой «длинной» ветви – рангом структуры.

Корневой элемент определяет первый уровень структуры; элементы, непосредственно связанные с корневым, – второй уровень и т.д.

Формально дерево можно определить как иерархию элементов с попарными связями, для которой выполняются следующие правила:
1) самый верхний уровень имеет только один узел или корневой сегмент;
2) каждый узел состоит из одного либо нескольких элементов данных, описывающих объект в узле;
3) каждый низший уровень может содержать зависимые узлы, и тогда узел, находящийся на предыдущем уровне, называется исходным (родителем).

Зависимые узлы могут добавляться как вертикально, так и горизонтально;
1)каждый узел, находящийся на втором уровне, соединен с одним и только одним узлом на уровне первом и т.д.;
2)исходный уровень может иметь в качестве зависимых любое количество порожденных узлов;
3) доступ к каждому узлу за исключением корневого происходит через исходный узел.
В сетевой модели объекты предметной области объединяются в сеть. Элементами такой сетевой структуры являются линейные структуры данных. Иерархическая структура является частным случаем сетевой. Связи в сетевой структуре определяются так же, как и в иерархической. Заметим, что при определении связей в
сетевой структуре допустимы следующие положения:
1) в сетевой структуре может быть несколько главных элементов (корней) или главный элемент вообще может отсутствовать;
2) допускается наличие более одной связи между двумя элементами структуры;
3) подчиненный элемент может иметь более одного старшего;
4) допускаются циклические связи;
5) возможно наличие связей между экземплярами одного и того же элемента структуры.

4. Перечислите основные понятия реляционной модели данных. Дайте определение отношения.
******************

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

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

Степень схемы отношения – есть мощность этого множества. Степень или арность отношения СТУДЕНТЫ равна пяти, то есть это отношение является 5-арным.

>> Таким образом, схема БД есть набор схем отношений.

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

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

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

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

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

5. Дайте определение понятий первичного и внешнего ключа. Опишите принцип ограничения целостности данных по сущностям и по ссылкам.
***************

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

ЦЕЛОСТНОСТЬ ДАННЫХ ПО СУЩНОСТЯМ
При описании сложных объектов ПрО (предметная область) обойтись одним отношением, соблюдая принцип нормализации, бывает очень сложно, а зачастую и практически невозможно.
Таким образом, один объект может быть описан в нескольких отношениях. Поясним смысл требования целостности по сущностям на примере. Отобразим в реляционной БД сущность ФАКУЛЬТЕТ, содержащий информацию о группах – НОМЕР ГРУППЫ, КОЛИЧЕСТВО СТУДЕНТОВ – и о студентах факультета, а именно: № ЗАЧЕТНОЙ КНИЖКИ, ФИО СТУДЕНТА, ПОЛ, МЕСТО РОЖДЕНИЯ, ДАТА РОЖДЕНИЯ.

В результате проектирования БД получим два отношения СТУДЕНТЫ и ГРУППЫ со схемами, представленными на рис.

Отношение СТУДЕНТЫ
№ зачетной книжки
ФИО студента
Пол
Место рождения
Дата рождения
№ группы

Отношение ГРУППЫ
№ группы
Количество студентов

Схемы отношений СТУДЕНТЫ и ГРУППЫ
Значение атрибута НОМЕР ГРУППЫ отношения СТУДЕНТЫ должно соответствовать значению атрибута НОМЕР ГРУППЫ в каком-либо кортеже отношения ГРУППЫ. Атрибут № ГРУППЫ в отношении СТУДЕНТЫ называется внешним ключом. Значения такого атрибута отношения однозначно характеризуют сущности, представленные кортежами другого отношения, – соответствуют значению его первичного ключа.

ЦЕЛОСТНОСТЬ ДАННЫХ ПО ССЫЛКАМ
Для обеспечения ограничения по ссылкам при добавлении и изменении данных ссылающегося отношения необходимо обеспечить проверку на ввод значений внешнего ключа. При изменении значения первичного ключа в отношениях необходимо изменять соответствующие значения внешних ключей. В некоторых СУБД эта процедура производится автоматически, такой принцип получил название – каскадное обновление данных.

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

6. Какие отношения называются совместимыми по объединению? Опишите признаки совместимости отношений по взятию прямого декартово произведения.
*****************

Операция объединения (пересечения и разности) над отношениями корректно выполняется в том и только том случае, когда отношения обладают одинаковыми заголовками.

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

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

Пусть имеем отношение ТУСУР, в котором содержится информация о факультетских командах КВН ТУСУР и отношение ТГУ, содержащее аналогичную информацию о командах ТГУ. Тогда декартовым произведением ТУСУР и ТГУ будет отношение ИГРЫ, содержащее список участников, которые должны играть попарно.
ТУСУР ТГУ
Факультет Команда Капитан Факультет Команда Капитан
Игры
Факультет ТУСУР Команда ТУСУР Капитан ТУСУР Факультет ТГУ Команда ТГУ Капитан ТГУ

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

7. Дайте определение операции пересечения отношений. Приведите пример.
**************

Пусть даны два отношения и с информацией о сотрудниках:
Отношение A Отношение B
Табельный номер Фамилия Зарплата
1 Иванов 1000 1 Иванов 1000
2 Петров 2000 2 Пушников 2500
3 Сидоров 3000 4 Сидоров

Табельный номер Фамилия Зарплата
1 Иванов 1000
2 Пушников 2500
4 Сидоров 3000

Пересечением двух совместимых по типу отношений называется отношение с тем же заголовком, что и у отношений и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям А и B.
Результат:
Табельный номер Фамилия Зарплата
1 Иванов 1000

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

8. Дайте определение полной функциональной зависимости. Перечислите необходимые требования удовлетворения отношения первой, второй и третьей нормальной форме.
**************
Функциональная зависимость атрибута Y от атрибута X называется полной, если атрибут Y не зависит
функционально от любого точного подмножества X (следует учесть, что атрибуты X и Y могут быть составными).

1НФ
Отношение R находится в первой нормальной форме (1НФ) тогда и только тогда, когда атрибуты соответствуют требованию Атомарности.

2НФ
Отношение R находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в первой нормальной форме, и каждый его не ключевой атрибут полностью зависит от первичного ключа. Или, что тоже справедливо, отношение, находящееся во второй нормальной форме не содержит атрибутов, зависящих от части ключа. В отношении, помимо одного первичного ключа, могут находиться атрибуты, по значению которых также можно однозначно определить записи. Такие атрибуты называются альтернативными ключами. Если допустить наличие нескольких ключей, то определение 2NF примет следующий вид: отношение R находится во второй нормальной форме (2NF) в том и только в том случае, когда оно находится в 1NF, и каждый его неключевой атрибут полностью зависит от каждого ключа этого отношения.

3НФ
Отношение R находится в третьей нормальной форме (3НФ) в том и только в том случае, если находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа, т.е. среди атрибутов отношения нет атрибутов, транзитивно зависящих от ключа (среди его неключевых атрибутов нет зависящих от другого неключевого атрибута).

9. Перечислите и охарактеризуйте основные понятия ER-модели.
*********************

СУЩНОСТЬ – это объект предметной области, элемент информационной системы. В ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности и ее атрибуты.

АТРИБУТ СУЩНОСТИ – простейший элемент информацион¬ной системы, формирующийся вручную или посредством классифика¬торов из элементов первичной однородной фактографической информации, разделен¬ной по назначению. Атрибут может быть либо обязательным, либо необязательным. Обязательность атрибута означает, что атрибут не может принимать неопределенных значений (null values). Атрибут может быть либо описательным (т.е. обычным дескриптором сущности), либо входить в состав уникального идентификатора (первичного ключа). При создании ER-модели необходимо учитывать требование уникальности экземпляров сущности, то есть каждая сущность должна обладать набором атрибутов, однозначно характеризующим экземпляр сущности.
Линии, связывающие сущности в ER-моделях, определяют взаимосвязи между объектами предметной области.

СВЯЗЬ – это ассоциация между сущностями, где, как правило, каждый экземпляр одной сущности (родительская сущность) ассоциируется с произвольным (в том числе нулевым) количеством экземпляров второй сущности, называемой сущностью-потомком, а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности-родителя. Таким образом, экземпляр сущности-потомка может существовать только при существовании сущности родителя. Связи в ER-моделях могут определяться как между двумя разными сущностями, так и между сущностью и ей же самой, такая связь называется рекурсивной связью. Связи в ER-диаграммах могут быть типа один к одному (1:1), один ко многим (1:М), многие ко многим (М:М).

10. Приведите синтаксис инструкций SELECT, UPDATE, INSERT. Приведите примеры.
**************

>>SELECT
SELECT [предикат] { * | таблица.* | [таблица.]поле_1
[AS псевдоним_2] [, [таблица.]поле_2[AS псевдоним_2] [, …]]}
FROM выражение [, …]
[WHERE… ]
[GROUP BY… ]
[HAVING… ]
[ORDER BY… ],

>>INSERT INTO
Инструкция INSERT INTO добавляет запись или записи в таблицу. Синтаксис команды:
а) запрос на добавление нескольких записей:
INSERT INTO назначение [(поле_1[, поле_2[, …]])]
SELECT [источник.]поле_1[, поле_2[, …]
FROM выражение
б) запрос на добавление одной записи:
INSERT INTO назначение [(поле_1[, поле_2[, …]])]
VALUES (значение_1[, значение_2[, …]),

>>UPDATE
Инструкция UPDATE создает запрос на обновление, который изменяет значения полей указанной таблицы на основе заданного условия отбора.

Синтаксис команды:
UPDATE таблица
SET новое Значение
WHERE условие Отбора;

Следующая инструкция SQL увеличивает стипендию студентов группы 422-1 на 10 процентов:
UPDATE Студенты
SET Стипендия = стипендия * 1.1
WHERE Номер_группы = ‘422-1’;

11. Перечислите и опишите основные методы хранения и доступа к данным. Приведите пример формирования двоичного масочного индекса.
******************

МЕТОДЫ ХРАНЕНИЯ ДАННЫХ
Существуют два возможных способа физического хранения отношений: покортежное хранение отношений и хранение отношений по столбцам.

МЕТОДЫ ДОСТУПА К ДАННЫМ Физический последовательный Значения ключей физических записей находятся в логической последовательности. Применяется в основном для дампа и восстановления данных и для выборки данных.

Индексно-последовательны – Метод доступа, при использовании которого до осуществления доступа к собственно записям БД проверяются значения ключей, называется индексно-последовательным.

Индексно-произвольный – При индексно-произвольном методе доступа записи хранятся в произвольном порядке.
Метод прямого доступа – Не требует упорядоченности значений ключей физических записей. Между ключом записи и ее физическим адресом существует взаимно однозначное соответствие. Метод доступа посредством хеширования – Не требуется логическая упорядоченность значений ключей физических записей. Значениям нескольких ключей может соответствовать один и тот же физический адрес (блок).

Инвертированный (метод вторичного индексирования) – Значения ключей физических записей необязательно находятся в логической последовательности. Метод применяется только для выборки данных.

Прямой метод доступа – Основная особенность прямого метода доступа заключается во взаимнооднозначном соответствии между ключом записи и ее физическим адресом. Физическое местоположение записи определяется непосредственно из значения ключа.

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

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

Страна проживания студента Маска
Россия 10100010
Казахстан 01010000
Кыргызстан 00001000
Украина 00000100
Беларусь 00000001

В данном примере представлены двоичные маски для таблицы СТУДЕНТЫ. Ключом индекса является столбец СТРАНА ПРОЖИВАНИЯ СТУДЕНТА. В таблице СТУДЕНТЫ 20 строк. В маске каждый бит соответствует одной записи и устанавливается равным 1, если значение атрибута Country (СТРАНА ПРОЖИВАНИЯ СТУ-ДЕНТА) совпадает со значением параметра для этой маски. В таблице СТУДЕНТЫ, в строках 1, 3, 7 указана страна проживания Россия, в строке 8 – Беларусь и т.д. Такой метод индексирования широко применяется в СУБД Oracle 8i.