Инфологическое проектирование. ER-диаграммы
Материалы к тесту
Обозначения
– Обозначение связей (отображений):
– Обозначение ассоциаций:
– Для ER-диаграмм:
– Многозначные атрибуты обозначаются двойным овалом.
– Производные атрибуты обозначаются прерывистым овалом.
– Изображение сущностей: прямоугольник.
– Изображение связей: ромб.
– Двойная линия – обязательное вхождение в связь, тонкая линия – не обязательное вхождение в связь (в тесте используется не всегда).
Определения
1. Совокупность структурированных данных, предназначенных для машинной обработки и использования многими пользователями – база данных.
2. Является узловой точкой сбора информации, представляет собой основное содержание того явления или процесса, о котором необходимо собрать информацию – сущность.
3. Поименованная характеристика сущности – атрибут.
4. Реляционная база данных состоит из набора таблиц.
5. Тип таблицы, чье содержание выбирается из других таблиц с помощью выполнения запроса – представление.
6. Логическая модель – это концептуальная модель с учетом поддержки её средствами СУБД.
7. Процесс, когда исходное отношение разбивают на новые меньшие отношения, называется декомпозицией.
8. Пошаговый обратимый процесс декомпозиции (разложения) исходных отношений БД на другие, более мелкие и простые отношения, с целью устранения аномалий в БД – нормализация.
СМД
– Модель, которую можно представить как граф с записями в виде узлов и наборами в виде ребер – сетевая модель.
– Основные недостатки СМД:
громоздкая структура памяти
необходимость исключать циклические связи
– Для обеспечения связи (типа М:М) между владельцами и членами набора в сетевой модели используется третий тип записи – связующая запись.
– Пример сетевой модели:
ИМД
– СегментИБД – это аналог записи в СМД. Сегмент– это поименованная единица данных фиксированной длины, которая может содержать одно или несколько полей. Исходный сегмент – тот, который порождает другой сегмент (узел, тип записи). Порожденный сегмент – тот, для которого есть исходный сегмент.
– Сегменты одного типа в ИМД, которые порождены одним и тем же исходным сегментом, называются (близнецами) подобными сегментами.
– Для приведенной ниже иерархической модели книжного магазина исходными являются сегменты: магазин, отдел, книга. Порожденными являются все, кроме Магазина.
– Пример иерархической модели:
– Основные недостатки ИМД:
сложность реализации связи М:М
сложность удаления данных
РМД
– Домен – это множество значений, которые может принимать атрибут сущности.
Пример определения доменов:
– Кардинальность отношения– это количество кортежей в отношении (мощность множества). Пример:
Правильный ответ: 6 (декартово произведение 2*3=6)
– Кардинальность связи: это число вхождений сущности в данную связь (или количество возможных связей для каждой из сущностей, участвующих в связи). Примеры:
· связь между гражданами и паспортами 1:1, т.е. у каждого человека только один паспорт гражданина данного государства и каждый паспорт принадлежит только одному человеку;
· связь между владельцами и автомобилями 1:n, т.е. у каждого автомобиля только один владелец, но у каждого человека может быть много автомобилей;
· связь между детьми и родителями 2:n, т.е. у каждого ребенка двое (биологических) родителей, а у каждого родителя может быть много детей.
– Степень отношения – количество атрибутов (столбцов) отношения. Пример;
Правильный ответ: 3.
– Термины:
столбец – поле – атрибут
запись – строка – кортеж
таблица – отношение – подмножество декартова произведения – результат запроса.
Примеры:
Лишний термин в списке: столбец, поле, запись, атрибут.
Лишний термин в списке: таблица, отношение, атрибут, подмножество декартова произведения, результат запроса.
– Ключ – атрибут или набор атрибутов, который уникально идентифицирует отдельный экземпляр сущности.
– Ключи используют для уникальной идентификации записей и установления связей между отношениями, (а также для ускорения работы с записями, исключения дублирования значений уникальных атрибутов, упорядочения кортежей.)
– Вопрос: ключом для записи СОТРУДНИК с атрибутами "Номер паспорта", "Код", "Адрес", "ФИО", "Телефон", "Дата приема на работу" может являться атрибут:
– Телефон
+ составной атрибут "Дата приема на работу"+"ФИО"
– Адрес
– ФИО
– Дата приема на работу
+ Код
+ Номер паспорта
+ составной атрибут "Номер паспорта"+"ФИО"
– Полностью составной ключ: состоит только из независимых атрибутов.
– Пример реляционной модели:
Операции реляционной алгебры (РА)
– Вспомнить операции РА:
s - селекция (выборка)
p - проекция
´ - декартово произведение
– - разность
È - объединение
Ç - пересечение
><F - соединение по условию F (оно же тета-соединение, Q-join)
>< - естественное соединение, эквисоединение, соединение по эквивалентности
> - полусоединение
É< - левое внешнее соединение
>Ì - правое внешнее соединение
ÉÌ - полное внешнее соединение
– Соединение – это селекция от декартова произведения. Естественное соединение – по условию равенства одинаковых атрибутов.
– Тета-соединение – это обычное соединение. Оно выполняет следующие действия:
· находит декартово произведение отношений
· использует предикат F для проверки результата
– Полусоединение – это соединение, которое выбирает поля только из одной таблицы, а вторую использует лишь для проверки условия соединения.
– Левое открытое (внешнее) соединение: включает все записи левой (первой в списке) таблицы и те записи второй таблицы, которые удовлетворяют условию соединения. Аналогично, правое открытое (внешнее) соединение: включает все записи правой (второй в списке) таблицы и те записи первой таблицы, которые удовлетворяют условию соединения. Полное соединение (FULL JOIN) – это объединение (UNION) левого и правого открытого соединения.
– Вопросы по реляционной алгебре (правильный ответ – на рисунке):
– Основы реляционного исчисления кортежей (РИ кортежей):
· P(r)=r.КодКниги<026 означает предикат: where r.КодКниги<’026’
· (rÎR){r|P(r)}для РИ кортежей означает, что кортежи r принадлежат отношению R и для кортежей r верно утверждение P.
· {Х|P(Х)} для РИ кортежей означает "те Х, для которых верен предикат Р".
Инфологическое проектирование. ER-диаграммы
– Сущность является независимой, если каждый её экземпляр может быть однозначно идентифицирован без установления связи с другой сущностью. Сущность является зависимой (дочерней), уникальная идентификация её экземпляров возможна только путём установления связи с другой сущностью.
– Элемент данных – это поименованная единица данных наименьшей семантической значимости. Экземпляр элемента данных – это некоторое конкретное значение, принимаемое элементом данных.
– Элементам данных присущи следующие два свойства: свойство избыточности и свойство полноты. Первое свойство заключается в том, что один элемент данных может входить в разные записи. Свойство полноты состоит в том, что любой элемент данных может характеризовать полностью или частично предмет, явление, событие.
– Атрибут в концептуальной модели имеет следующие характеристики: наименование, роль, описание.
– Связь – это осмысленная ассоциация между сущностями разных типов.
– Типы ассоциаций: простая (1), сложная (М) и условная (С).
Ассоциация типа 1 (простая). Ассоциация этого типа определяет однонаправленную связь от элемента A к элементу B, при которой одному и тому же экземпляру A соответствует один и тот же экземпляр элемента B. При этом обратная связь не определена.
Ассоциация типа М (сложная). Определяет однонаправленную связь от элемента A к элементу B, при котором одному и тому же экземпляру A соответствует 0,1 или несколько экземпляров элемента B, при этом обратная связь не определена.
Ассоциация типа C (условная). Для данного экземпляра элемента данных, от которого направлена связь, может не существовать соответствующего экземпляра элемента данных, к которому связь направлена, но если она существует, то относится к единственному экземпляру элемента данных. В данном случае говорят об условной ассоциации или ассоциации типа С. Идентификация, если существует, является уникальной.
Вопросы на типы ассоциаций:
Номер студенческого билета –>1 Группа простая ассоциация
Предприятие –>1 Название предприятия простая ассоциация
Шифр книги –>С Дата списания условная ассоциация
№ студенческого билета –>С Дата отчисления условная ассоциация
Номер студенческого билета –>M Группа сложная ассоциация
Город –>M Предприятие (ПО «Торговля») сложная ассоциация
Вопросы на ассоциации:
ПО «Библиотека» ассоциация между сущностями Автор и Книга – сложная М
ПО «Библиотека» ассоциация между сущностями Книга и Главн.редактор – условная
ПО «Канцтовары» ассоциация м/у сущн. Фирма-производитель и Изделие – сложная
ПО «Отдел кадров» ассоциация м/у сущностями Начальник и Подчиненный – сложная
ПО «Торговля» ассоциация м/у сущностями Предприятие и Гендиректор – простая 1
ПО «Отдел продаж» ассоциация между сущностями Товар и Возврат_товара – условная
ПО «Деканат» ассоциация между сущностями Студент и Дата_защиты – условная С
ПО «Клуб собаководства» ассоциация между сущностями Собака и Порода – простая
– Тип отображения, для которого один экземпляр элемента данных (ЭЭД), от которого направлена связь, идентифицирует несколько ЭЭД, к которым направлена связь, и наоборот – М:М.
– Ассоциации между парой связанных элементов, определенных в обе стороны, представляют собой отображения. Отображения являются традиционным средством для определения характера взаимосвязей между элементами данных, так как описывают двусторонние связи между ними.
– Типы связей (отображений):
1:1 – представляют такой тип связи, когда один экземпляр элемента данных A, от которого направлена связь, идентифицирует один и только один экземпляр элемента данных B, к которому направлена связь, и наоборот. Идентификация уникальна в обоих направлениях. Приведем пример отображения 1:1 для элементов данных СТУДЕНТ и №БИЛЕТА (номер читательского билета).
1:М – под этим отношением подразумевается такой тип связи между элементами A и B, когда одному экземпляру элемента A соответствует 0,1 или несколько экземпляров элемента B. Однако каждому экземпляру элемента B соответствует только один экземпляр элемента A. Идентификация в прямом направлении не обязательно является уникальной. Однако в обратном направлении любой экземпляр элемента данных B, к которому направлена связь, идентифицирует один и только один экземпляр элемента данных A, от которого направлена связь.
М:1 – обратная по отношению к 1:М.
М:М – с помощью отображения многие ко многим определяются такой тип связи, при которых каждому экземпляру A может соответствовать 0,1 или несколько экземпляров элемента B и наоборот. Связь, не идентифицирующая в обоих направлениях.
Вопросы:
ПО «Видеотека» отображение м/у сущн. Пользователь и Место_проживания 1 1
ПО «Видеотека» отображение м/у сущн. Просмотренный_фильм и Пользователь М 1
ПО «Видеотека» отображение м/у сущн. Пользователь и Просмотренный_фильм 1 М
ПО «Отдел кадров» отображение между сущностями Отдел и Сотрудник 1 М
ПО «Деканат» отображение между сущностями Группа и Студент 1 М
ПО «Деканат» отображение между сущностями Номер-зачетки и Номер-паспорта 1 1
ПО «Складской учет» отображение между сущностями Груз_в_отсеке и Отсек М 1
ПО «Прокат автомобилей» отображение между сущностями «Автомобиль» и «Сведения об автомобилях» имеет вид 1 1.
– Степень связи – это количество сущностей, которые охвачены данной связью. Унарная связь (связь со степенью 1, рекурсивная) – это связь сущности с самой собой (сотрудник – начальник, обмен одной недвижимости на другую и т.п.). Бинарная – связь между двумя сущностями (отдел – сотрудник и др.). Тернарная – связь между тремя сущностями (продавец – покупатель – товар) и т.д.
– Полное участие в связи – это обязательная связь, неполное участие – не обязательная связь.
Если экземпляр сущности-потомка однозначно определяется своей связью с сущностью-родителем, то связь называется идентифицирующей, в противном случае – не идентифицирующей.
Сущность-потомок в идентифицирующей связи зависит от сущности-родителя.
Сущность-родитель в идентифицирующей связи может быть как независимой, так и зависимой сущностью (это определяется ее связями с другими сущностями).
Связь между двумя сущностями, или сущности самой с собой, может принадлежать к одному из следующих типов:
· идентифицирующая связь;
· не идентифицирующая связь;
· типизирующая связь;
· связь многие-ко-многим;
· рекурсивная связь.
Каждый тип связи определяет поведение атрибутов первичного ключа, когда они мигрируют из родительской сущности в подчиненную.
Рекурсивная связь – это неидентифицирующая связь между двумя сущностями, которая указывает, что экземпляр сущности может быть связан с другим экземпляром той же самой сущности.
– Пример унарной (рекурсивной связи) связи:
– Преобразование и оптимизация диаграммы сущность-связь подразумевает:
o устранение множественных атрибутов;
o перепроверка связей 1:1 и, возможно, их устранение;
o дополнение ролевых имен степенями участия;
o устранение связей типа М:М;
o устранение рекурсивных связей.
– Пример схемы:
По этой схеме можно утверждать следующее:
1) Каждый день недели входит в расписание один раз.
2) Библиотека работает 5 дней в неделю.
3) Каждый день недели работает от 1-го до 4-х сотрудников.
4) У каждого сотрудника – свои часы работы.
5) Каждый сотрудник работает 1 день.
6) Сущность Сотрудник необязательно участвует в связи Отрабатывает.
7) Сущность День_недели полностью участвует с связи Включает.
8) Сущности Расписание и День_недели связаны 1:М.
9) Сущности Сотрудник и Часы_работы связаны 1:1.
– Пример схемы:
По приведенной схеме можно утверждать:
· у каждого лота – один хозяин;
· каждый продавец выставляет на текущие торги не более пяти лотов;
· лот могут купить несколько покупателей.
– Пример схемы:
Путь оптимизации для схемы в устранении рекурсивной связи (связи 1:1):
– Пример схемы:
Путь оптимизации для схемы в устранении множественного атрибута "№ договора с клиентом".
– Пример схемы:
Путь оптимизации для схемы: выведение атрибута «№ договора» из связи.
– Пример схемы:
Правильный ответ: устранение связи 1:1, объединение двух сущностей в одну.
– Пример схемы:
Правильный ответ: обмен производится один к одному.
– Имя роли (ролевое имя)– предназначено для указания назначения участников связи. Ролевые имена (фактически) являются синонимом атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности. Ролевое имя обязательно указывать в том случае, если два и более атрибута одной сущности определены на одном и том же домене (Дети(папа, мама) – два внешних ключа, Сотрудники(руководитель) – рекурсивная связь).
– Пример: ролевые имена – руководитель и подчиненный
– Нормализация – это фактически устранение нежелательных функциональных зависимостей атрибутов.
– Если операция над отношениями имеет цель минимизировать дублирование данных, то производится операция нормализации.
– А и В – атрибуты. Тогда В функционально зависит от А, если для каждого значения А существует ровно одно связанное с ним значение В.
– Если не ключевой атрибут В зависит от всего составного ключа А и не находится в частичной зависимости от его частей, то говорят о полной функциональной зависимостиВ от составного ключа.
– Отношение находится во 2-й нормальной форме, если оно находится в 1-й нормальной форме и каждый не ключевой атрибут функционально полно зависит от первичного ключа.
– 3НФ: отношение находится в 3НФ, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от ключа.
– Если для атрибутов А,В,С выполняются условия А–>В и B–>С, но обратная зависимость отсутствует, то говорят, что C зависит от A транзитивно.
– Под оптимизацией схемы понимается разрешение циклов, нестандартных и множественных связей и т.п. Например, для схемы:
вариант ответа: устранение множественного атрибута «№ договора с клиентом».
– Вопрос: Реляционная модель ПО «Зоопарк» находится в … нормальной форме.
Судя по всему, есть зависимость режима питания от вида животного. Тогда это вторая нормальная форма (2НФ).
Аналогично:
Здесь вероятнее, что отношения находятся в 3НФ, при условии, что режим уборки от типа клетки не зависит.
Проектирование
– Последовательность уровней абстракции проектирования БД по мере убывания их зависимости от физического формата хранения: физический, логический, концептуальный.
– Состав атрибутов отношений БД должен удовлетворять двум основным требованиям:
1) между атрибутами не должно быть нежелательных функциональных зависимостей
2) группировка атрибутов должна обеспечивать минимальное дублирование данных.
SQL
– SQL оперирует с данными следующих типов (по стандарту ANSI): численные, символьные.
– Значение NULL для атрибута означает, что данное поле не имеет значения.
– now() – функция, возвращающая текущую дату.
– Year(now()) – функция, возвращающая текущий год.
– Функции агрегирования:
MIN(field) – нахождение минимума значений поля field.
MAX(field) – нахождение максимума значений поля field.
COUNT(*) – подсчет количества строк.
COUNT(field) – подсчет количества значений field is not null.
SUM(field) – подсчет суммы значений поля field.
AVG(field) – подсчет среднего арифметического значения поля field.
COUNT применяется к любым типам полей; MIN и MAX – к числовым, строковым и полям типа "дата"; SUM и AVG – только к числовым полям.
– Запись, которая соответствует запросу "Автор, не получивший премии":
(rÎR)(r.Автор | r.Премии = "")
– Отличие аргумента ALL от * при использовании в функциях агрегирования: он не считает NULL-значения.
– BETWEEN – включает обе границы.
– Предикаты могут содержать операции: +, <, >, || (конкатенация) и др.
– Команда DROP TABLE удаляет таблицу, в том числе, и пустую таблицу.
– Соответствие команд:
DROP TABLE удаляет пустую таблицу
CREATE VIEW создает представления таблицы
CREATE TABLE создает таблицу
ALTER TABLE изменяет таблицу
– Команда ALTER TABLE позволяет:
Добавить новый столбец в таблицу –
ALTER TABLE имя таблицы ADD COLUMN…
Изменить столбец таблицы –
ALTER TABLE имя таблицы ALTER COLUMN …
Удалить столбец из таблицы –
ALTER TABLE имя таблицы DROP COLUMN …
– Запрос, выбирающий все книги от 1996 до 2000 года из таблицы tblBook.
select * from tblBook where Год between 1996 and 2000;
select * from tblBook where Год >= 1996 and Год <= 2000;
select * from tblBook where Год IN (1996, 1997, 1998, 1999, 2000);
– "Запрос SQL по сути является …(указанием СУБД выбрать данные или каким-то образом их организовать)".
– Оператор LIKE используется с полями типа CHAR и VARCHAR для нахождения подстрок.
– Слова, соответствующие шаблону '%c%t_%': enchanter, acritol, cartone.
– Дан запрос SQL (неверный по синтаксису):
insert into r select (Название, КодАвтора, Цена, Кол-во) in “Small Word”, 9, 135, 7
Наиболее вероятный ответ на вопрос "Его целью является …": добавление в таблицу R новой записи.
– Предложение, используемое для указания символа, введение которого будет отменять специальные свойства следующего за ним символа в операторе LIKE – ESCAPE:
select * from sa where name like '$%%' escape '$'; -- строка начинается с %
– Вопрос: "Обобщающее понятие для определений: необходимость указания полностью определенного имени поля (т.е. вместе с именем таблицы), указание условия отношения таблиц – запрос из … таблиц(ы)
· объединенных
· одной таблицы, с подзапросом из другой
· представления, состоящего из нескольких"
Ответ: вариант с подзапросом.
– Вопрос по SQL:
Правильный ответ – LEFT.
– Вопрос по SQL:
Ответ: right (в смысле, правое внешнее соединение)
– Запрос:
– Вопрос:
Правильный вариант ответа – №4.
– Оператор EXISTS выводит верное значение, если запрос выводит какой-нибудь результат.
– Работа с неопределенными значениями: IS [NOT] NULL.
СУБД
– К качествам СУБД относятся:
гарантия целостности и полноты данных
обеспечение защиты и согласованности данных
– К качествам СУБД относится поддержка:
языков и стандартов ANSI
языковых методов манипулирования данными
логической модели данных