- •1 Понятие информационной системы.
- •2 Банк данных.
- •5 Архитектура информационной системы.
- •6 Субд. Функции субд.
- •12 Определение реляционной модели данных
- •Элементы реляционной модели данных: отношение, сущность, атрибут, кортеж, домен, схема отношения, первичный ключ, внешний ключ.
- •14.Первичный ключ отношения и его свойства. Пример.
- •15.Условия, позволяющие считать таблицу отношением.
- •16.Характеристика основных видов связи таблиц (1:1, 1:м, м:1, м:м). Примеры.
- •17.Теоретические языки запросов. Реляционная алгебра и реляционное исчисление
- •18.Реляционная алгебра. Операции реляционной алгебры: объединение, вычитание, пересечение, произведение. Примеры.
- •19.Реляционная алгебра. Операции реляционной алгебры: выборка, проекция, соединение. Примеры.
- •20 Этапы жизненного цикла базы данных.
- •21 Этапы проектирования базы данных: концептуальное проектирование, логическое проектирование и физическое проектирование
- •22 Проблемы проектирования баз данных: избыточное дублирование данных и аномалии. Примеры.
- •23 Обеспечение целостности данных.
- •24 Зависимости между атрибутами отношения: функциональная зависимость, функциональная взаимозависимость, частичная и полная зависимости. Примеры.
- •25 Метод нормальных форм, его цель.
- •26 Характеристика нормальных форм: 1нф, 2нф, 3нф. Примеры.
- •27 Этапы проектирования базы данных методом нормальных форм.
- •28 Основные понятия модели «сущность-связь»: сущность, атрибут сущности, ключ сущности, связь между сущностями, степень связи, класс принадлежности экземпляров сущности. Примеры.
- •29 Характеристика основных видов связей между сущностями (1:1, 1:м, м:1, м:м). Примеры.
- •35) Способы создания таблиц. Установка размера и формата полей таблицы.
- •36)Схема данных. Установка связей между таблицами.
- •37)Запросы в субд MsAccess: назначение, виды. Способы создания запросов.
- •38)Отчеты в субд MsAccess: назначение, виды. Способы создания отчетов.
- •39)Формы в субд MsAccess: назначение, виды. Способы создания форм.
- •40)Понятие макроса. Классификация макрокоманд.
17.Теоретические языки запросов. Реляционная алгебра и реляционное исчисление
Операций, выполняемые над отношениями, можно разделить на две группы. Первую группу составляют операции над множествами, к которым относятся операции:
объединения
пересечения
разности
деления
декартова произведения.
Вторую группу составляют специальные операции над отношениями, к которым, в частности, относятся операции: проекции, соединения, выбора.
В различных СУБД реализована некоторая часть операций над отношениями, определяющая в какой-то мере возможности данной СУБД и сложность реализации запросов к БД.
В реляционных СУБД для выполнения операций над отношениями используются две группы языков, имеющие в качестве своей математической основы теоретические языки запросов, предложенные Э.Коддом:
реляционная алгебра;
реляционное исчисление.
Эти языки представляют минимальные возможности реальных языков манипулирования данными в соответствии с реляционной моделью и эквивалентны друг другу по своим выразительным возможностям. Существуют не очень сложные правила преобразования запросов между ними.
В реляционной алгебре операнды и результаты всех действий являются отношениями. Языки реляционной алгебры являются процедурными, так как отношение, являющееся результатом запроса к реляционной БД, вычисляется при выполнении последовательности реляционных операторов, применяемым к отношениям. Операторы состоят из операндов, в роли которых выступают отношения, и реляционных операций. Результатом реляционной операции является отношение.
Языки исчислений, в отличие от реляционной алгебры, являются непроцедурными (описательными, или декларативными) и позволяют выражать запросы с помощью предиката первого порядка (высказывания в виде функции), которому должны удовлетворять кортежи или домены отношений. Запрос к БД, выполненный с использованием подобного языка, содержит лишь информацию о желаемом результате. Для этих языков характерно наличие наборов правил для записи запросов. В частности, к языкам этой группы относится SQL.
18.Реляционная алгебра. Операции реляционной алгебры: объединение, вычитание, пересечение, произведение. Примеры.
Реляционная алгебра как теоретический язык запросов по сравнению с реляционным исчислением более наглядно описывает выполняемые над отношениями действия.
Примером языка запросов, основанного на реляционной алгебре, является ISBL (InformationSystemBaseLanguage - базовый язык информационных систем). Языки запросов, построенные на основе реляционной алгебры, в современных СУБД широкого распространения не получили. Однако знакомство с ней полезно для понимания сути реляционных операций, выражаемых другими используемыми языками.
Вариант реляционной алгебры, предложенный Коддом, включает в себя следующие основные операции: объединение, разность (вычитание), пересечение, декартово (прямое) произведение (или произведение), выборка (селекция, ограничение), проекция, деление и соединение.
По справедливому замечанию Дейта, реляционная алгебра Кодда обладает несколькими недостатками. Во-первых, восемь перечисленных операций по охвату своих функций, с одной стороны, избыточны, так как минимально необходимый набор составляют пять операций: объединение, вычитание, произведение, проекция и выборка. Три другие операции (пересечение, соединение и деление) можно определить через пять минимально необходимых. Так, например, соединение - это проекция выборки произведения.
Во-вторых, этих восьми операций недостаточно для построения реальной СУБД на принципах реляционной алгебры. Требуются расширения, включающие операции: переименования атрибутов, образования новых вычисляемых атрибутов, вычисления итоговых функций, построения сложных алгебраических выражений, присвоения, сравнения и т. д.
Рассмотрим перечисленные операции более подробно, сначала - операции реляционной алгебры Кодда, а затем - дополнительные операции, введенные Дейтом.
Операции реляционной алгебры Кодда можно разделить на две группы: базовые теоретико-множественные и специальные реляционные. Первая группа операций включает в себя классические операции теории множеств: объединение, разность, пересечение и произведение. Вторая группа представляет собой развитие обычных теоретико-множественных операций в направлении к реальным задачам манипулирования данными, в ее состав входят следующие операции: проекция, селекция, деление и соединение.
Операции реляционной алгебры могут выполняться над одним отношением (например, проекция) или над двумя отношениями (например, объединение). В первом случае операция называется унарной, а во втором - бинарной. При выполнении бинарной операции участвующие в операциях отношения должны быть совместимы по структуре.
Совместимость структур отношений означает совместимость имен атрибутов и типов соответствующих доменов. Частным случаем совместимости является идентичность (совпадение). Для устранения конфликтов имен атрибутов в исходных отношениях (когда совпадение имен недопустимо), а также для построения произвольных имен атрибутов результирующего отношения применяется операция переименования атрибутов. Структура результирующего отношения по определенным правилам наследует свойства структур исходных отношений. В большинстве рассматриваемых бинарных реляционных операций будем считать, что заголовки исходных отношений идентичны, так как в этом случае не возникает проблем с заголовком результирующего отношения (в общем случае, заголовки могут не совпадать, тогда нужно оговаривать правила формирования заголовка отношения-результата).
Объединением двух совместимых отношений R1 и R2 одинаковой размерности (Rl UNION R2) является отношение R, содержащее все элементы исходных отношений (с исключением повторений).
Пример 1. Объединение отношений.
Пусть отношением Rl будет множество поставщиков из Лондона, а отношение R2 - множество поставщиков, которые поставляют деталь Р1. Тогда отношение R обозначает поставщиков, находящихся в Лондоне, или поставщиков, выпускающих деталь Р1, либо тех и других.
R1 П# Имя Статус Город_П
S1 Сергей 20 Москва
S4 Николай 20 Москва
R2 П# Имя Статус Город_П
S1 Сергей 20 Москва
S2 Иван 10 Киев
R (R1 UNION R2) П# Имя Статус Город_П
S1 Сергей 20 Москва
S2 Иван 10 Киев
S4 Николай 20 Москва
Вычитание совместимых отношений R1 и R2 одинаковой размерности (R1 MINUS R2) есть отношение, тело которого состоит из множества кортежей, принадлежащих Rl, но не принадлежащих отношению R2. Для тех же отношений R1 и R2 из предыдущего примера отношение R будет представлять собой множество поставщиков, находящихся в Лондоне, но не выпускающих деталь Р1, т. е. R={(S4, Николай, 20, Москва)}.
Заметим, что результат операции вычитания зависит от порядка следования операндов, т. е. R1 MINUS R2 и R2 MINUS R1 - не одно и то же.
Пересечение двух совместимых отношений R1 и R2 одинаковой размерности (R1 INTERSECT R2) порождает отношение R с телом, включающим в себя кортежи, одновременно принадлежащие обоим исходным отношениям. Для отношений R1 и R2 результирующее отношение R будет означать всех производителей из Лондона, выпускающих деталь Р1. Тело отношения R состоит из единственного элемента (S1, Сергей, 20, Москва).
Произведение отношения R1 степени к1 и отношения R2 степени к2 (R1 TIMES R2), которые не имеют одинаковых имен атрибутов, есть такое отношение R степени (к1+к2), заголовок которого представляет сцепление заголовков отношений R1 и R2, а тело - имеет
кортежи, такие, что первые к1 элементов кортежей принадлежат множеству R1, а последние к2 элементов - множеству R2. При необходимости получить произведение двух отношений, имеющих одинаковые имена одного или нескольких атрибутов, применяется операция переименования RENAME, рассматриваемая далее.
