colloquium 2 Flashcards

1
Q

1 В чем отличие сущностей и связей ER-модели от предметов ПрО и отношений между ними?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Какого типа отношение существует между предметами и их сущностями?
A

1:М. Например: объект Василий Пупкин. Его можно представить сущностью во множестве сущностей “Работник”, “Посетитель”, “Человек” и т.д.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Какими по структуре могут быть множества связей?
A

1:1, 1:M, M:1, M:N

Унарные: только один набор сущностей участвует в наборе отношений
например: Брак(Человек, Человек)
Бинарные: в наборе отношений участвуют два набора сущностей [например: например:
Экзамен (Преподаватель, Студент)
Тернарные: в наборе отношений участвуют три набора сущностей
N-арные: и т.д.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Как соотносится определение атрибута, данное Ченом, с определением этого же термина во второй главе учебного пособия?
A

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

А у Чена – отображение, ставящее в соответствие сущностям или связям некоторого множества одиночные значения или кортежи значений.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Чем отличается представление в БД связей ER-модели и реляционной модели?
A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Из каких элементов состоит ER-диаграмма Чена?
A

Из вершин - различные множества (сущностей, связей, значений).
Из ребер - ориентированных (атрибутные отображения) и неориентированных (роли).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. По каким правилам строится ER-диаграмма Чена?
A

Эта ER-диаграмма включает все пять основных понятий структур данных этой модели:
* множества сущностей представлены в виде множества сущностей,
* множества связей представлены в виде множества сущностей,
* множества значений представлены в виде множества сущностей,
* роли представлены в виде множества сущностей,
* атрибуты множеств сущностей и множеств связей представлены в виде множеств связей.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Как правильно определять степень множества связей?
A

Множество связей можно рассматривать как математическое отношение, определенное в общем случае на n множествах сущностей, а связь – как кортеж этого отношения с n элементами-сущностями. Степень связи – это количество сущностей, которые входят в связь
Например: степень множества связей УПРАВЛЕНИЕ равна 2 т.к. оно отображено на двух
множествах сущностей (в данном случае - одном и том же: СЛУЖАЩИЙ)
УПРАВЛЕНИЕ = {<e1,e2> | e1 ∈ СЛУЖАЩИЙ e2 ∈ СЛУЖАЩИЙ}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. В каких различных формах может быть представлено в ER-модели некоторое явление ПрО?
A
  1. Атрибут - отображение, ставящее в соответствие сущностям или связям некоторого множества одиночные значения или кортежи значений.
  2. Множество связей - математическое отношение, определенное в общем случае на n множествах сущностей,
  3. Множество сущностей - множество абстрактных представлений единичного объекта
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Как осуществлять выбор подходящей формы для представления в ER-модели некоторое явление ПрО?
A
  1. Если достаточно информации о значении сущности (состоит человек в браке или нет), можно
    рассмотреть это явление как атрибут множества сущностей (ЧЕЛОВЕК).
  2. Если вас к тому же интересует, с кем/чем конкретно связана сущность (с кем заключен брак),
    необходимо трактовать явление (БРАК) как множество связей между сущностями множества
    (ЧЕЛОВЕК). Даже если вы захотите описать это явление с помощью тех или иных характеристик,
    вам не придется менять форму множества связей (в ER-модели Чена множества связей могут
    иметь характеристики).
  3. А вот если вам понадобится представлять связи явления (браков) с другими явлениями, вам не
    обойтись без множества сущностей (БРАК).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Какие формы предложил Чен для представления экстенсионала БД в своей модели? Опишите их.
A

1) Экстенсионал БД в форме графа

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

2) Экстенсионал БД в форме таблиц

  • Каждому множеству сущностей и связей соответствует собственная таблица
  • Шапка таблицы связей трехуровневая
  • Шапка таблицы сущностей двустворчатая (сущность/атрибут) и двухуровневая
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Что является данными когда рассматривается метасхема?
A

Приставка “мета” по сути указывает на то, что раньше являлось типом - становится знаком. Таким образом типы из ER-схемы становятся данными в метасхеме.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Представьте метасхему ER-модели Чена.
A

Метасхема ER-модели Чена – ER-диаграмма, предметной областью которой является идеальный мир ER-модели. Именно по этой схеме строится репозиторий – специализированная БД CASE-инструмента, в которой хранятся проектируемые ER-схемы приложений технологии БД.
Эта ER-диаграмма включает все пять основных понятий структур данных этой модели:
● множества сущностей представлены в виде множества сущностей,
● множества связей представлены в виде множества сущностей,
● множества значений представлены в виде множества сущностей,
● роли представлены в виде множества сущностей,
● атрибуты множеств сущностей и множеств связей представлены в виде множеств связей

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. В чем особенности синтаксиса ограничений целостности на значения атрибутов в ER-модели?
A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Поясните особенности понятия ключ в ER-модели.
A

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Почему в ER-модели неуместно использование первичных ключей?
A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q
  1. Объясните и приведите примеры всех способов идентификации связей.
A

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

//Первая ситуация показана на примере множества связей ВРАЧ-ПАЦИЕНТ (для идентификации связи требуется указать сущности обоих множеств сущностей) и множества связей АНАЛИЗ ПАЦИЕНТА (для идентификации связи достаточно сущности типа АНАЛИЗ). Как вы, наверное, догадываетесь, последнюю возможность обеспечивает функциональность отображения из множества сущностей АНАЛИЗ во множество сущностей ПАЦИЕНТ в контексте множества связей АНАЛИЗ ПАЦИЕНТА. Для множеств связей степени больше двух возможна ситуация, при которой для уникальной идентификации связи достаточно указать несколько, но не все сущности.
В ситуации с множеством связей РАЗМЕЩЕНИЕ можно в качестве ключа использовать сущность типа ПАЦИЕНТ. Другим ключом этого множества связей будет комбинация сущности типа ПАЛАТА и значения атрибута множества связей Номер койки (второй способ идентификации связей).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q
  1. Что представляют собой E-зависимость и ID-зависимость?
A
  1. E-зависимость - ограничение по существованию сущностей.
  2. ID-зависимость - Сущности одного (зависимого) множества сущностей обязаны иметь связи с сущностями другого множества сущностей и не могут быть идентифицированы без них. (частный случай E-зависимости.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q
  1. Чем отличаются множество слабых сущностей и множество регулярных сущностей?
A

Множество слабых сущностей - зависимое множество сущностей.

Множество регулярных сущностей - те кто не принадлежат к виду слабых сущностей.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q
  1. Поясните, как расставлять пометки на ребрах ролей ER-диаграммы в случае множества связей степени больше 2-х. Приведите примеры.
A

Для множеств связей степени 3 и больше можно делать по две пометки на ребре: одна (возле множества связей) для отображения, определяемого ролью, другая (ближе к множеству сущностей) – для отображения, определяющего роль.
Пример на роли Врач множества связей НАПРАВЛЕНИЕ НА АНАЛИЗ. Отображение АНАЛИЗ x ПАЦИЕНТ -> ВРАЧ функционально, поэтому на ребре ставим «1». Обратное отображение ВРАЧ -> АНАЛИЗ x ПАЦИЕНТ нефункционально, поэтому на ребре ставим «M».

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q
  1. Укажите особенности навигационного манипулирования данными в ER-модели. Приведите набор необходимых для этого команд.
A

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

Операции:

  1. Создание и удаление элементов (создание, изменение, удаление сущностей и связей)
  2. Установка указателей текущих для основных элементов данных (селекция сущности, связи по указателю текущей, по указателю текущей и данным, по указателю текущей и связи, по указателю текущей, данным и по связи)
  3. Выборка значений атрибутов для текущей сущности или связи
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q
  1. Какие формы может принимать подграф запроса на языке CABLE?
A
  1. Линейный маршрут от исходного множества к целевому - при переходе от одной точки маршрута к следующей осуществляется селекция элементов очередного множества, имеющих связи с элементами, селектированными на предыдущем шаге (селекция по связям).
  2. Дерево - листья задают исходные множества, а корень дерева – целевое множество. В вершинах, в которых происходит слияние двух и более путей, осуществляются теоретико-множественные операции объединения, пересечения или разности подмножеств, полученных при прохождении по каждому из соединяющихся маршрутов.
  3. Граф, состоящий из 1 вершины- исходное множество является и целевым
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q
  1. В каких случаях можно явно задавать в запросе теоретико-множественные операции? Приведите примеры запросов на этом языке.
A

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

Примеры запросов:

  1. OUTPUT ВРАЧ.Фамилия SELECT ВРАЧ.Специальность = ‘окулист’ (Получить фамилии врачей-окулистов)
  2. OUTPUT ПАЦИЕНТ.Фамилия SELECT БОЛЬНИЦА.Название = ‘Святая Елена’ / ПАЛАТА (Получить фамилии пациентов, лежащих в больнице Святой Елены)
  3. OUTPUT ВРАЧ.Фамилия, Специальность (SELECT БОЛЬНИЦА.Название = ‘Святая Елена’ / ПАЛАТА / ПАЦИЕНТ) (SELECT ЛАБОРАТОРИЯ.Название = ‘Друг желудка’ / АНАЛИЗ / ПАЦИЕНТ)(Получить фамилии и специальности врачей, у которых есть пациенты больницы Святой Елены, выполнявшие анализы в лаборатории «Друг желудка».)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q
  1. Поясните критерии качества семантических моделей.
A
  1. Модель должна обладать достаточной общностью и ясностью для того, чтобы в ней можно было легко представить любые явления и законы моделируемого мира.
  2. Разрыв между этой моделью и моделями, реализуемыми в СУБД, не должен быть большим, желательно, чтобы можно было воспользоваться максимально формальными правилами преобразования структур и ограничений целостности из одной модели в другую.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q
  1. Нарисуйте общую схему модификаций ER-модели Чена. Какие концепции добавлялись или удалялись на каждом из этапов этих модификаций?
A
  1. ER-модель была пополнена понятиями «специализация» и «категоризация» (для представления отношений обобщения между множествами сущностей, и, таким образом, образована расширенная ER-модель (Enhanced Entity-Relationship Model – EER-модель)).
  2. В ER-модели Баркера удалились такие формы как:
    ● множества связей степени больше двух,
    ● атрибуты множеств связей,
    ● многозначные атрибуты,
    ● атрибутные отображения в Декартово произведение множеств значений.
  3. В нотация IDEF1X удалились такие формы как:
    ● бинарные множества связей типа M:N (Их надо представлять в виде дополнительного множества сущностей и пары множеств связей типа 1:M).
    ● внутрисистемные указатели сущностей (Теперь надо было в явной форме оперировать первичными и внешними ключами Теперь сам проектировщик должен заботиться о создании суррогатных ключей).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q
  1. В каких случаях используются специализации и категоризации?
A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q
  1. Какие ограничения целостности касаются специализаций и категоризаций?
A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q
  1. Опишите графическую нотацию, применяемую для представления специализаций и категоризаций на EER-диаграммах.
A

Подклассы специализации соединяются линиями с кружком, который соединяется с суперклассом. Символ включения множества во множество на каждой линии, соединяющей подкласс с кружком, указывает на подкласс. Общие для всех подклассов атрибуты и множества связей соединяются с прямоугольником, обозначающим суперкласс, а специфические для подкласса атрибуты и множества связей - с подклассом соответственно. Линия, соединяющая подкласс-категорию с кружком категоризации, помечается символом включения множества в другое, а сам кружок помещается в символ объединения. Для непересекающейся специализации используется “d”, для пересекающейся - “o”. Для обозначения полного участия между суперклассом и кружком специализации проводят двойную линию, для частичного - одинарную.

29
Q
  1. Докажите, что понятия специализация и категоризация не тождественны.
A

Специализация - нисходящий подход к определению множества суперклассов и связанных с ними подклассов.
Категоризация - процесс порождения категории, основанной на нескольких суперклассах.
Во-первых, для специализации отношение между подклассами и суперклассами характеризуется словами «есть некоторый», и отображение из подкласса в суперкласс обязательно полное функциональное, а для категоризаций это отношение соответствует фразе «есть некоторый или А, или Б, или …», и в силу этого указанное отображение частичное функциональное.
Во-вторых, все классы специализации представляют собой «родственные» классы, имеющие в содержании соответствующих им понятий общие условия. Определения понятий подклассов ссылаются на родительское понятие: «Множество – это комплекс, в котором …», «Кортеж – это комплекс, в котором …». Суперклассы категоризации полностью различные, всегда непересекающиеся классы.
В-третьих, множество сущностей может неоднократно использоваться в разных специализациях. А категорией оно может быть лишь однажды.

30
Q
  1. Какие изменения произошли в метасхеме EER-модели по сравнению с метасхемой ER-модели? Нарисуйте ее.
A

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

31
Q
  1. Каких структурных понятий мы лишаемся при переходе от EER-модели к ER-модели Баркера?
A

● Множества связей степени больше двух
● Атрибуты множеств связей
● Многозначные атрибуты
● Атрибутивные отображения в Декартово произведение множеств значений.

32
Q
  1. Какими структурными понятиями ER-модели Баркера мы вынуждены их заменять?
A

В нотации Баркера, в отличии от ЕЕР модели заменяются:
* множества связей степени больше двух НА использование вспомогательных множеств сущностей и n бинарных множеств связей.
* атрибуты множеств связей, НА множества сущностей и бинарные множества связей.
* многозначные атрибуты, НА множество сущностей.
* атрибутные отображения в Декартово произведение множеств значений НА элементарные атрибуты, или атрибуты-агрегаты, или и те, и другие одновременно.

33
Q
  1. Опишите графическую нотацию Баркера.
A

· сплошная линия говорит о слабости соответствующих сущностей в контексте данной связи (МинКЧ = 1);
· одиночный конец расположен у множества сущностей, являющегося областью значений функционального отображения (МаксКЧ = 1);
· вилочкообразный («воронья лапка») конец примыкает к множеству сущностей, являющемуся областью значений нефункционального отображения (МаксКЧ = ¥).
Следующие знаки на концах ребер передают дополнительную информацию о связях:
● «|» (поперечный штрих) говорит об ID-зависимости;
● «◊» (ромбик) говорит о том, что указанный им конец связи неперемещаемый.
Символы, указанные слева от имен атрибутов множества сущностей, означают следующее:
● «#» – атрибут участвует в уникальной идентификации сущностей;
● «*» – обязательный атрибут (NOT NULL);
● «○» – необязательный атрибут (NULL).

34
Q
  1. Укажите правила трансформации схемы БД из ER-модели Баркера в реляционную модель.
A

ER-схема в нотации Баркера – реляционная схема»:
· каждое множество сущностей порождает отношение;
· атрибуты множества сущностей переносятся в отношение;
· если у множества сущностей не было ключей среди естественных атрибутов, система генерирует для его отношения суррогатный ключ (именем этого атрибута становится комбинация из имени отношения и суффикса «_ID»);
· множества связей типа 1:1 и 1:M реализуются дублированием ключей и объявлением внешних ключей;
· множества связей типа M:N порождают дополнительное отношение и пару внешних ключей в нем.

35
Q
  1. Охарактеризуйте ER-модель в нотации IDEF1X.
A

ER-модель в нотации IDEF1X – модификация классической модели Чена. Как и другие модификации она отличалась от классической модели сокращением выразительных возможностей представления семантики ПрО.
ER-модель в нотации IDEF1X низведена до уровня реляционной модели. Широко используется во многих CASE-инструментах.

36
Q
  1. Каких структурных понятий мы лишаемся при переходе от ER-модели Баркера к нотации IDEF1X? Чем мы вынуждены их заменять?
A

Лишаемся: Бинарных множеств связей типа M:N. Их необходимо сводить вручную к дополнительному множеству сущностей и паре множеств связей типа 1:M.
Лишаемся: Представлений связей с помощью внутрисистемных указателей. Необходимо позаботиться о создании суррогатных ключей, безошибочном дублировании атрибутов для представления множеств связей типа 1:М.

37
Q
  1. Сравните ER-модель в нотации IDEF1X и реляционную модель.
A

Почти одинаковые, отличаются только тем интерпретацией связей.
IDEF1X отличается от реляционной модели, по сути, только взаимно-однозначным переименованием понятий: “тип сущностей” - “отношение”, “тип связей” - “ограничение ссылочной целостности”. “атрибут типа сущностей” - “атрибут отношения”.

38
Q
  1. Укажите основные достоинства реляционного подхода к моделированию данных.
A

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

39
Q
  1. Перечислите и дайте определения основных структурных понятий реляционной модели.
A
  1. Тип данных
  2. Домен
  3. Атрибут
  4. Кортеж
  5. Отношение

(+ определения)

  1. Тип данных множество значений и операций над ними.

(аналогично понятию типа данных в ЯП)

  1. Домен - множество допустимых значений.
  2. Атрибут - именованный домен, представляющий семантически значимые объекты
  3. Кортеж - это множество пар «имя атрибута, значение», с одним вхождением каждого имени атрибута[, принадлежащего схеме отношения].
  4. Отношение – это множество кортежей[, соответствующих одной схеме отношения].
40
Q
  1. Какие свойства характерны для отношений реляционной модели?
A
  1. Отсутствие кортежей-дубликатов
  2. Отсутствие упорядоченности атрибутов,
  3. Атомарность значений атрибутов.
  4. Отсутствие упорядоченности кортежей,

(+ пояснения из методички, они хуевые…))))

  1. Отсутствие кортежей-дубликатов

Отношения не содержат кортежей-дубликатов, следует из

определения отношения как множества кортежей. В классической теории множеств, по

определению, каждое множество состоит из различных элементов. Из этого свойства

вытекает наличие у каждого отношения так называемого первичного ключа – набора

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

  1. Отсутствие упорядоченности атрибутов

Атрибуты отношений не упорядочены, т.к. схема

отношения есть множество пар «имя атрибута, имя домена».

  1. Атомарность значений атрибутов Значения всех атрибутов являются атомарными. Это следует из определения

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

41
Q
  1. Сформулируйте простейшие правила перехода от ER-схемы Чена к реляционной схеме БД.
A

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

2. Бинарные множества связей типа 1:1 или 1:M без атрибутов представляются дублированием первичного ключа в M-отношение. (В случае типа связи 1:1 выбор M-отношения осуществляется произвольно.)

3. Бинарные множества связей типа M:N без атрибутов представляются самостоятельными отношениями, куда дублируются первичные ключи.

4. Множества связей с атрибутами или степенью больше 2-х представляются самостоятельными отношениями, куда дублируются первичные ключи отношений, построенных для множеств сущностей. Однозначные атрибуты множества связей становятся атрибутами этого отношения.

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

42
Q
  1. Что такое представление, и для чего они предназначены? Какой командой SQL они создаются?
A

Представление создается с помощью команды CREATE VIEW.

Представление - это отношение, которое в базе данных не существует, но создается по требованию пользователя в момент обращения

.

Предназначены:

  1. Для сокрытия части БД от определенных пользователей.
  2. Для упрощения сложных операций (с базовыми отношениями).
  3. Для удобства доступа к данным.
43
Q
  1. Какие типы ограничений целостности можно декларативно задать в командах языка SQL?
A

● значения по умолчанию (DEFAULT)
● задание обязательности/необязательности значений (NULL/NOT NULL)
● условия проверки значения (CHECK)
● задание уникальности столбца (UNIQUE)
● primary key
● foreign

44
Q
  1. Перечислите конструкции языка SQL, связанные с ограничениями целостности.
A

Конструкции языка SQL, связанные с ограничениями целостности:
● тип данных атрибута;
● описатели атрибута NULL и NOT NULL, позволяющие определить соответственно, может или нет атрибут иметь неопределенное значение в кортежах отношения;
● описатель атрибута или группы атрибутов PRIMARY KEY, определяющий первичный ключ отношения;
● описатель атрибута или группы атрибутов UNIQUE, определяющий возможный ключ отношения;
● конструкция FOREIGN KEY (REFERENCES), определяющая внешний ключ отношения;
● конструкция CHECK, определяющая условие на значения атрибута(-ов), которому должны удовлетворять все кортежи отношения.

45
Q
  1. Что такое неопределенное значение и логическое значение unknown? Какими свойствами они обладают?
A

Неопределённое значение (NULL) указывает, что значение атрибута неизвестно или неприемлемо для кортежа. Логическое значение (unknown) это неопределенный результат, неизвестность.
● a – это значение некоторого типа данных,
● op – любая двуместная операция этого типа данных (например, +),
● lop – операция сравнения значений этого типа
Свойства неопределённого значения:
a op NULL = NULL
NULL op a = NULL
a lop NULL = unknown
NULL lop a = unknown
Свойства логического значения:
● NOT unknown = unknown
● true AND unknown = unknown
● true OR unknown = true
● false AND unknown = false
● false OR unknown = unknown

46
Q
  1. Укажите два основных правила целостности реляционной модели. Как они обеспечиваются?
A

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

47
Q
  1. Дайте определения суперключа потенциального ключа составного ключа, первичного ключа альтернативного ключа, суррогатного ключа. Как они соотносятся друг с другом?
A

Суперключ (англ. superkey). Атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения.
Потенциальный ключ (англ. candidate key). Суперключ, который не содержит подмножества, также являющегося суперключом данного отношения.
Отношение может иметь несколько потенциальных ключей. Если ключ состоит из нескольких атрибутов, то он называется составным ключом
Первичный ключ (англ. primary key). Потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения.
Потенциальные ключи, которые не выбраны в качестве первичного ключа, называются альтернативными ключами.
Суррогатный ключ (англ. surrogate key) – это искусственный атрибут отношения, не имеющий связей с какой-либо естественной характеристикой явлений ПрО и вводимый в схему отношения исключительно для организации связей кортежей этого отношения с кортежами других отношений.

48
Q
  1. Что такое суррогатный первичный ключ? Почему в последнее время проектировщики предпочитают использовать только их?
A

Суррогатный первичный ключ - Это дополнительное служебное поле, добавленное к уже имеющимся информационным полям таблицы, единственное предназначение которого — служить первичным ключом. Значение этого поля не образуется на основе каких-либо других данных из БД, а генерируется искусственно.
Такие ключи используют по следующим причинам:
● Упрощение сопровождения
● Уменьшение размера БД
● Увеличение скорости выборки данных
● Увеличение скорости обновления данных
● При создании записи суррогатный ключ можно строить автоматически.

49
Q
  1. Что такое внешний ключ? Должен ли он обладать свойством уникальности? Для чего и как он используется?
A
  1. Внешний ключ - атрибут или множество атрибутов отношения, которые соответствуют потенциальному ключу (как правило, первичному) некоторого отношения (может быть, того же самого) и является его подмножеством.
  2. Внешний ключ НЕ обязан быть уникальным.
  3. Используется для обеспечения связи между кортежами.
50
Q
  1. Укажите основные компоненты команды SQL CREATE TABLE. Приведите примеры.
A
  1. schema – имя схемы, в которой создается таблица (по умолчанию используется схема пользователя, в сеансе которого выполняется команда).
  2. table – имя создаваемой таблицы.
  3. column – имя столбца.
  4. datatype – тип данных столбца (CHAR, NUMBER, DATE, BLOB…)
  5. CONSTRAINT ограничение целостности. constraint_name – уникальное имя ограничения целостности. (NULL, NOT NULL, UNIQUE, PRIMARY KEY, references_clause, CHECK)
  6. references_clase - определяет ограничение ссылочной целостности для внешнего ключа таблицы.
51
Q
  1. Что такое триггер? Для чего они предназначены?
A

Триггер (англ. trigger) – это программа на языке программирования сервера (для Oracle – это PL/SQL), которая автоматически выполняется СУБД в момент наступления определенного события.
Триггеры могут использоваться для достижения следующих целей:
● проверка правильности введенных данных и проверка выполнения сложных ограничений целостности данных, которые трудно, если вообще возможно, поддерживать с помощью декларативных ограничений целостности, установленных для таблицы;
● осуществление косвенных модификаций данных, сопутствующих действиям пользователей (например, в случае денормализации схемы);
● выдача предупреждений (например, с помощью электронной почты), которые напоминают о необходимости выполнить некоторые действия;
● накопление информации аудита посредством фиксации сведений о внесенных изменениях и тех лицах, которые их выполнили.

52
Q
  1. При каких событиях в системе БД могут запускаться триггеры? Какие факторы влияют на запуск триггеров обновления данных?
A

События при которых могут запускаться триггеры:

  1. Операторы INSERT, UPDATE, DELETE

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

  1. Операторы CREATE, ALTER или DROP

применяемые к любому объекту схемы

  1. Регистрация пользователя в системе или выход из нее
  2. Запуск базы данных или остановка экземпляра Oracle
  3. Сообщение об ошибке

Время запуска триггера определяется с помощью ключевых слов BEFORE и AFTER: при указании BEFORE - триггер запускается до возникновения связанных с ним событий, а AFTER – после.

53
Q
  1. Чем отличаются триггеры для таблиц от триггеров для представлений?
A

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

54
Q
  1. Как в коде триггера можно ссылаться на значения столбцов модифицируемых строк?
A

С помощью ключевых слов NEW и OLD.

NEW в теле триггера используется для ссылки на новое значение столбца, а

OLD на старое значение столбца.

55
Q
  1. Какова последовательность выполнения триггеров и основного действия с данными?
A

Запуск триггеров по мере возникновения триггерных событий (INSERT, UPDATE, DELETE) происходит в следующем порядке:

  1. Исполнение табличного триггера BEFORE на уровне оператора.
  2. Для каждой строки, охваченной данным оператором:
    a. исполнение любого триггера BEFORE на уровне строки;
    b. блокировка данных и выполнение над ними действия, предписанного командой SQL;
    c. выполнение проверок ограничений целостности;
    d. исполнение любого триггера AFTER на уровне строки.
  3. Исполнение табличного триггера AFTER на уровне оператора.
56
Q
  1. Назовите основные компоненты команды SQL CREATE TRIGGER. Приведите примеры.
A

Schema – имя схемы, в которой создается триггер (по умолчанию используется схема пользователя, в сеансе которого выполняется команда).
Trigger – имя триггера.
BEFORE указывает Oracle выполнять триггер до выполнения основного действия. Строковый триггер с этой опцией будет вызываться перед выполнением основного действия для каждой строки. Ограничения: нельзя использовать в триггерах для представлений; в теле триггера можно изменять NEW-значения и нельзя изменять OLD-значения столбцов.
AFTER указывает Oracle выполнять триггер после выполнения основного действия. Строковый триггер с этой опцией будет вызываться после выполнения основного действия для каждой строки. Ограничения: нельзя использовать в триггерах для представлений; в теле триггера нельзя изменять ни NEW-значения, ни OLD-значения столбцов.
INSTEAD OF указывает Oracle выполнять триггер вместо выполнения основного действия. Такие триггеры допустимы только для событий модификации данных представлений. Ограничения: нельзя использовать в триггерах для таблиц; в теле триггера можно читать NEW-значения и OLD-значения и нельзя изменять ни NEW-значения, ни OLD-значения столбцов.
Замечание. Можно создать несколько триггеров одного и того же типа на одно и то же событие. Порядок их выполнения не определен. Если вашему приложению требуется выполнять действия триггеров в определенном порядке, скомпонуйте их в виде одного триггера.
dml_event_clause определяет грамматику триггеров для команд языка манипулирования данными.
ddl_event определяет грамматику триггеров для команд языка определения данных.
database_event определяет грамматику триггеров для системных событий.
WHEN определяет дополнительное условие, при истинности которого будет выполняться триггер.
pl/sql_block определяет блок PL/SQL, который выполняется, когда триггер активизируется.
DELETE указывает, что триггер будет выполняться для действия удаления строк таблицы.
INSERT указывает, что триггер будет выполняться для действия добавления строк в таблицу.
UPDATE указывает, что триггер будет выполняться для действия модификации строк таблицы. После ключевого слова OF можно указать список имен столбцов, только при изменении значений которых будет вызываться триггер.
ON определяет объект базы данных (таблицу или представление), для команд модификации данных которого создается триггер.
FOR EACH ROW определяет является ли триггер строковым. Если эта фраза опущена, триггер является операторным.

57
Q
  1. Каковы основные особенности навигационного стиля манипулирования реляционными данными? Когда используется навигационный стиль манипулирования реляционными данными?
A
  • Особенность - построчное считывание информации при помощи циклов
  • Используется: в интерфейсах с реляционными СУБД
  • Все эти интерфейсы строятся по принципу:
    1. СУБД передается запрос на выборку данных
    2. В памяти программы отводится место - для размещения значений, который считываются из текущей строки
    3. Затем с помощью операторов цикла ЯП происходит построчное сканирование результирующей выборки с чтением и обработкой следующих данных одной строки
58
Q
  1. Что собой представляют курсоры PL/SQL?
A

Курсор - это механизм обработки селектируемых строк.

PL/SQL использует два типа курсоров – неявные и явные:

  1. Неявные - организуются системой неявно для всех команд SQL, если они селектируют и выполняют некоторые действия с одной строкой.
  2. Явные - объявляются в области объявлений, если селектируют и выполняют действия над множеством строк.
59
Q
  1. Какие команды предусмотрены в языке PL/SQL для объявления и обращения к курсорам?
A

CURSOR - объявление курсора

(? скорее всего не надо) SELECT - определяется по указанному имени курсора

OPEN - открытие курсора

FETCH - чтение строк

CLOSE - закрытие курсора

60
Q
  1. Как управлять процессом обращений к курсору с помощью атрибутов курсора?
A

Каждый явный курсор имеет четыре атрибута – %ISOPEN, %FOUND, %NOTFOUND, %ROWCOUNT. Синтаксис обращения – «имя курсора» «атрибут»

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

61
Q
  1. Укажите и охарактеризуйте классы спецификационных языков реляционной модели.
A
  1. Алгебраические языки, позволяют выражать запросы средствами специализированных операторов, применяемых к отношениям.
  2. Языки исчисления предикатов, в которых запросы описывают требуемое множество кортежей путем указания логического выражения, которому должны удовлетворять эти кортежи.
    1. языки реляционного исчисления с переменными-кортежами (ALPHA)
    2. языки реляционного исчисления с переменными на доменах. (QBE)
  3. SQL-подобные языки, относятся к классу реляционных языков, основанных на отображениях. Каждая конструкция SELECT этих языков задает отображение строк исходных таблиц в строки результирующей таблицы
62
Q
  1. Поясните деление языков на процедурные и декларативные.
A

Запрос в процедурных языках представляет алгоритм получения результата, а в декларативных языках - представляет собой некоторый образец или условие по которым необходимо найти требуемые данные.
//
Процедурные:
● запрос определяет, как найти результат
● запрос представляет собой некий алгоритм получения результата
Декларативные:
● Запрос определяет, что требуется найти
● Запрос - образец или условие, которому должны соответствовать требуемые данные

63
Q
  1. Дайте определение основных и дополнительных операций реляционной алгебры Кодда. Поясните на примерах их работу.
A

Основные:

  1. Объединение (UNION).

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

  1. Разность (MINUS).

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

R - S = {t | t ∈ R ∧ t∉ S}.

  1. Декартово произведение (TIMES).

Декартовым произведением отношений называется множество всех кортежей степени k1+k2, где первые k1 компонентов которых образуют кортежи, принадлежащие первому отношению, а последние k2 – кортежи, принадлежащие второму отношению.

  1. Проекция (PROJECT).

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

  1. Селекция (SELECT).

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

Дополнительные:

  1. Пересечение (INTERSECT).

Пересечение отношений R и S, представляет собой множество кортежей, которые одновременно принадлежат и R, и S

  1. Частное (DIVIDE).

Множество кортежей t длины (r - s), таких, что для всех кортежей

u длины s, принадлежащих S, кортеж t||u принадлежит R

(Ө - читается как ‘тета’)

  1. Соединение (JOIN). Ө-соединение (Ө-JOIN)

Ө-соединение R и S представляет собой множество кортежей их Декартова произведения, что i-ый компонент R находится в отношении Ө с j-ым

компонентом S. Если Ө является оператором «равно» («=»), эта операция

часто называется эквисоединением (EQUIJOIN)

64
Q
  1. Проведите на конкретном примере сравнительный анализ всех разновидностей операции соединения.
A

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

65
Q
  1. Как в языке реляционной алгебры выполняются действия, изменяющие состояние БД?
A

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

  1. действие включения выполняется операцией UNION;
  2. действие удаления выполняется операцией MINUS;
  3. действие модификации сводится к действию удаления и последующего включения;

Во всех этих случаях первым операндом и результатом является изменяемое базовое отношение;

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

66
Q
  1. Какой вид имеют запросы в реляционном исчислении с переменными-кортежами?
A

(ψ - читается как ‘пси’)

Запросы в реляционном исчислении с переменными-кортежами имеют вид

{t |ψ(t)} (t такое, что ‘кси” от t), где t – переменная-кортеж, т.е. переменная, обозначающая кортеж некоторой

фиксированной длины, а ψ – формула, построенная из атомов и совокупности операторов, при этом t – единственная свободная переменная-кортеж в формуле ψ.

67
Q
  1. Укажите разновидности атомов формул реляционного исчисления с переменными-кортежами.
A

Атомы формул ψ(пси) могут быть двух типов.

  1. R(s), где R – имя отношения, а s – переменная-кортеж. Этот атом принимает

значение «истина», когда s есть кортеж отношения R.

  1. s[i] Ө(тета) u[j], где s и u являются переменными-кортежами или константами, а Ө(тета) – оператор сравнения. Этот атом принимает значение «истина», когда i-ый

компонент s находится в отношении Ө(тета) с j-ым компонентом u.

68
Q
  1. Перечислите правила построения формул реляционного исчисления с переменными-кортежами.
A
  1. Атом – есть формула.
  2. Экземпляры переменных-кортежей не меняют своего статуса «связана-свободна» в новых формулах.
  3. Если в формуле имеется свободная переменная, то формула существования значения переменной тоже формула. Если, при подстановке определённого значения переменной на место всех свободных вхождений этой переменной в формулу это формула становится истинной.
  4. Если в формуле имеется свободная переменная, то формула всеобщности значения переменной тоже формула. Если, при подстановке любого значения переменной на место всех свободных вхождений этой переменной в формулу эта формула становится истинной
  5. Формулы могут заключаться в круглые скобки для изменения приоритета операторов. Предполагается следующий порядок старшинства операторов: Q, существование и всеобщность, отрицание, коньюнкция, дизьюнкция.
  6. Ничто иное не является формулой
69
Q
  1. Как определяется статус «связана-свободна» переменных-кортежей?
A

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