- •1. Информация о дисциплине
- •1.1. Предисловие
- •Место дисциплины в учебном процессе
- •1.2. Содержание дисциплины и виды учебной работы Содержание дисциплины по гос
- •1.1. Субд – основа информационных систем (8 часов)
- •1.2. Современные архитектуры ис (4 часа)
- •1.2.1. Объем дисциплины и виды учебной работы
- •1.2.2. Перечень видов практических занятий и контроля:
- •2. Рабочие учебные материалы
- •2.1. Рабочая программа (объем дисциплины 140 часов)
- •Раздел 1. Назначение и основные компоненты системы баз данных (12 часов)
- •Раздел 2. Архитектура банка данных(20 часов)
- •2.1. Уровни представления баз данных (5 часов)
- •2.2. Категории пользователей банков данных (5 часов)
- •2.3. Концепции и этапы проектирования баз данных (10 часов)
- •Раздел 3. Модели и типы данных в бд (24 часа)
- •3.1. Представление концептуальной модели средствами субд (14 часов)
- •3.2. Типовые модели данных субд (10 часов)
- •Раздел 4. Базовые элементы реляционных бд (25 часов)
- •4.1. Проектирование реляционной базы данных (9 часов)
- •4.2. Нормализация отношений в бд (16 часов)
- •Раздел 5. Язык структурированных запросов sql (28 часов)
- •5.1. Язык манипулирования данными для реляционной модели (8 часов)
- •5.2. Реализация запросов в языке sql (20 часов)
- •Раздел 6. Использование баз данных (28 часов)
- •2.2. Тематические планы дисциплины
- •2.2.1. Тематический план дисциплины для студентов очной формы обучения
- •2.2.2. Тематический план дисциплины для студентов очно-заочной формы обучения
- •2.2.3. Тематический план дисциплины для студентов заочной формы обучения
- •2.3. Структурно-логическая схема дисциплины
- •2.4. Временной график изучения дисциплины
- •2.5. Практический блок Практические занятия (очная форма обучения)
- •Практические занятия (очно-заочная)
- •Практические занятия (заочная формы обучения)
- •Лабораторные работы (очная форма обучения)
- •Лабораторные работы (очно-заочная форма обучения)
- •Лабораторные работы (заочная форма обучения)
- •2.6. Балльно-рейтинговая система
- •3. Информационные ресурсы дисциплины
- •3.1. Библиографический список
- •3.2. Опорный конспект введение
- •Раздел 1. Назначение и основные компоненты системы баз данных
- •1.1. Субд – основа информационных систем
- •1.1.1. Эволюция развития систем управления данными
- •1.1.2. Локальная технология
- •1.1.3. Архитектура с сетью и файловым сервером
- •1.2. Современные архитектуры ис
- •1.2.1. Архитектура "клиент – сервер"
- •1.2.2. Трехзвенная архитектура "клиент – сервер"
- •1.2.3. Архитектура Intranet-приложений
- •Вопросы для самопроверки по теме 1.2
- •Раздел 2. Архитектура банка данных
- •2.1. Уровни представления баз данных
- •2.1.1. Основная терминология
- •2.1.2. Архитектура базы данных.
- •2.1.3. Процесс прохождения пользовательского запроса в субд
- •2.2. Категории пользователей банков данных
- •2.2.1. Классификация пользователей БнД
- •2.2.2. Основные функции группы администратора бд
- •2.3. Концепции и этапы проектирования баз данных
- •2.3.1. Жизненный цикл бд
- •2.3.2. Общая структура процесса проектирования бд
- •Раздел 3. Модели и типы данных в бд
- •3.1. Представление концептуальной модели средствами субд
- •3.1.1. Общие представления о моделях данных субд
- •3.1.2. Классификация моделей данных
- •3.2. Типовые модели данных субд
- •3.2.1. Иерархическая и сетевая модель данных
- •3.2.2. Реляционная и постреляционная модель данных
- •3.2.3. Многомерная модель данных
- •Раздел 4. Базовые элементы реляционных бд
- •4.1. Проектирование реляционной базы данных
- •4.1.1. Свойства и виды отношений
- •4.1.2. Реляционная алгебра
- •4.2. Нормализация отношений в бд
- •4.2.1. Понятие о нормальных формах
- •4.2.2. Формальные методы синтеза и декомпозиции нормальных форм
- •4.2.3. Проектирование с использованием метода сущность – связь
- •Раздел 5. Язык структурированных запросов sql
- •5.1. Язык манипулирования данными для реляционной модели
- •5.1.1. Назначение и история языка sql
- •5.1.2. Операторы языка sql
- •5.1.3. Модификация хранимых отношений в субд
- •5.2. Реализация запросов в языке sql
- •5.2.1. Примеры запросов
- •5.2.2. Агрегатные функции
- •5.2.3. Хранимые запросы
- •Области применения триггеров и хранимых процедур
- •Раздел 6. Использование бд
- •6.1. Программирование и управление транзакциями
- •6.1.1. Управление транзакциями в системах баз данных
- •6.1.2. Менеджеры транзакций
- •6.1.3. Параллельное выполнение транзакций
- •6.1.4. Методы сериализации транзакций.
- •6.1.5. Уровни изолированности пользователей.
- •6.2. Защита баз данных. Целостность и сохранность баз данных
- •6.2.1. Методы обеспечения безопасности
- •6.2.2. Программно-технический аспект информационной безопасности
- •6.2.3. Избирательное и мандатное управление доступом
- •6.3. Современные субд. Тенденции построения и использования баз данных
- •6.3.1. Объектная и реляционная технология
- •6.3.2. Объектно-реляционные субд
- •6.3.3. Критерии сравнения субд
- •Заключение
- •3.3 Глоссарий
- •3.4. Учебное пособие
- •3.5. Методические указания к выполнению лабораторных работ
- •3.5.1. Общие указания
- •3.6. Методические указания к выполнению практических занятий
- •3.6.1. Задания на практические занятия
- •3.6.2. Методические указания к выполнению практических заданий
- •4. Блок контроля освоения дисциплины
- •4.1. Общие указания
- •4.2. Задание на курсовой проект и методические указания к его выполнению
- •Тематика курсовых проектов
- •Рекомендуемые государственные стандарты
- •Пример оформления титульного листа
- •Задание на курсовой проект по дисциплине
- •4.3. Текущий контроль Тренировочные тесты Тест № 1 (по разделу 1)
- •8. Информационная система (ис) – это …
- •Тест №2 (по разделу 2)
- •Тест № 3 (по разделу 3)
- •8. При создании схемы таблицы бд следует описать:
- •Тест № 4 (по разделу 4)
- •Тест № 5 (по разделу 5)
- •Тест № 6 (по разделу 6)
- •3. Согласованность транзакции означает…
- •4. Изоляция транзакции означает…
- •5. Сохранность транзакции означает…
- •6. Транзакция продолжается до тех пор, пока не произойдет одно из следующих событий:
- •7. Оператор commit означает…
- •8. Оператор rollback означает…
- •Правильные ответы на тренировочные тесты
- •4.4. Итоговый контроль Вопросы для подготовки к экзамену
- •Приложение 1. Определение данных в sql.
- •Приложение 2. Журнализация изменений базы данных
- •Приложение 3. Система безопасности в субд
- •1. Информация о дисциплине 3
- •2. Рабочие учебные материалы 6
- •3. Информационные ресурсы дисциплины 23
- •4. Блок контроля освоения дисциплины 143
- •191186, Санкт-Петербург, ул. Миллионная, 5
4.1.2. Реляционная алгебра
В реляционном подходе ответ на конкретный запрос к базе данных также представляется в форме отношения. Поэтому в основе средств, используемых для формулировки запроса, может лежать алгебра отношений, которая используется для моделирования поисковых процессов в базах данных.
Как известно, алгебра есть множество вида
А: < H, S > , где
H -носитель (в данном случае - множество нормализованных отношений);
S -сигнатура (в данном случае - множество операций над отношениями).
Все множество S операций реляционной алгебры разбиты на два подмножества:
Стандартные теоретико-множественные операции:
- объединение U Rrez=R1 U R2,
- пересечение ∩ Rrez=R1 ∩ R2,
- разность \ Rrez=R1 \ R2,
- декартово произведение Rrez= R1 R2.
Специальные операции:
- проекция Rrez (А) = R[A],
- ограничение Rrez = R1[булевское выражение],
- соединение Rrez = R1[булевское выражение]R2,
- деление Rrez = R1 R2.
Операции реляционной алгебры либо унарные (т.е. используют в качестве операнда только одно отношение), либо бинарные, когда имеются два операнда.
Пример с указанными операциями представлен на рис. 3.8. Для имен атрибутов приняты следующие сокращения: ШД – шифр детали, ШМ – шифр материала, ЕИ – единица измерения, НР – норма расхода, НМ – наименование материала, ШМ" – шифр материала на складе.
Исходные отношения R1, R2 и R3:
R1 (ШД, ШМ, ЕИ, НР) R2 (ШД, ШМ, ЕИ, НР) R3 (ШМ", НМ)
д1 м2 1 15 д2 м5 3 3 м2 ст-5
д2 м5 3 3 д2 м3 2 15 м9 ст-7
д2 м9 3 5
д3 м2 1 10
На рис. 3.9 представлен пример декартова произведения отношений R2 и R3.
Rrez (ШД, ШМ, ЕИ, НР, ШМ", НМ)
д2 м5 3 3 м2 ст-5
д2 м3 2 15 м2 ст-5
д2 м5 3 3 м9 ст-7
д2 м3 2 15 м9 ст-7
Рис. 3.9. Декартово произведение двух отношений
Специальные операции
ПРОЕКЦИЯ
Операция унарна и предназначена для уменьшения степени отношения.
Пусть имеется исходное отношение R1(A1,..., An) и список атрибутов А. Проекция отношения R1 на список А обозначается следующим образом:
Rrez (A) = R1 [A] или A(r) { t(A) | tr }.
где - [ ] (квадратные скобки) являются операционными (или A(r)), т.е. используются для обозначения операции ПРОЕКЦИЯ (рис.10.a).
Рис. 3.8. Теоретико-множественные операции над отношениями.
ОГРАНИЧЕНИЕ (СЕЛЕКЦИЯ)
Операция ОГРАНИЧЕНИЕ (селекция, выборка) также, как и проекция, является унарной операцией, но в отличие от проекции ориентирована на выделение нужных строк отношения.
Пусть исходное отношение задано схемой: R1 (A1, . . . , An).
Селекцией A = a(r) называется отношение r (R) = A = a(r){tr | t(A)=a}.
При ограничении производится либо сужение области определения некоторых атрибутов, либо происходит сопоставление атрибутов отношения, которые должны быть определены на одном и том же домене.
Операцию ограничения также записывают следующим образом:
Rrez (A1, ..., An) = R1[булевское выражение для значений атрибутов R1].
На интуитивном уровне операцию ограничения лучше всего представлять как взятие некоторой "горизонтальной" вырезки из отношения-операнда (R1 из рис.3.9).
Rrez (A) = R1 [ШМ, ЕИ] Rrez (A) = ШМ = ”м2” OR ЕИ = ”1”
Результат Результат
м2 1 м2 1
м5 3
м9 3
a) A(r) – проекция b) селекция – R1 [ШМ=”м2” OR ЕИ=”1” ]
Рис. 3.10. Пример операции проекции (a) и селекции (b)
СОЕДИНЕНИЕ
Операция СОЕДИНЕНИЕ двух и более отношений является важнейшей операцией. При этой операции кортежи одного отношения конкатенируют (соединяются) с выборками другого, точно также, как и при декартовом произведении двух отношений, но при условии, что булевское выражение, в каждый терм которого входят атрибуты обоих отношений, принимает значение "истина".
Пусть r(R) и s(S) – отношения. Соединением r и s называется отношение
r s = q(RS) = {t(RS) | tr r, ts s : tr = t(R), ts = t(S)}.
Итак, для двух исходных отношений, заданных схемами:
R1 (A1, ..., An) и R2 (B1, ..., Bm), в результате операции соединения получается отношение со схемой
Rrez (A1, . . . , An, B1, . . . ,Bm) = R1 [булевское выражение] R2.
В булевском выражении термы имеют вид:
(Ai Bj), где - атрибуты Аi и Bj определены на одном домене, а термы сравнения () выбираются из множества: { = , < > , > , < , >= , <= }.
Очень часто булевское выражение состоит из единственного терма. Если таким термом является "=" (знак равенства), то этот частный случай называется операцией эквисоединения двух отношений по атрибутам Ai и Bj.
Если r(R), s(S) – отношения, Ai R , Bi S и dom(Ai) = dom(Bi), 1 i n (Ai и Bi могут быть одинаковыми). Эквисоединением r и s по A1, A2,…,An и B1, B2,…, Bm называется отношение q(RS) = {t | tr r, tss, t(R) = tr, t(S) = ts, t(Ai) = t(Bi)}.
В этом случае булевское выражение есть конъюнкция термов, выражающих равенство соответствующих атрибутов, входящих в список и принадлежащих соединяемым отношениям:
(A1=B1) AND (A2=B2) AND ... AND (Ak=Вk).
Если RS = {B1B2…Bl} = , то соединение rs, результатом которого является множество кортежей t(A1A2…Ak C1C2…Cm), таких, что t(A1A2…Ak)r и t(C1C2…Cm)s, называется декартовым произведением отношений r и s и обозначается r s.
Смысл операции соединения двух отношений более четко можно выразить сведением операции к ранее введенным:
Rrez(A1, ..., An, B1, ..., Bm) = R1 [(булевское выражение)] R2 =
= (R1 R2) [(булевское выражение)],
т.е. операция соединения сводится к декартовому произведению отношений с последующим ограничением (селекцией) получаемого промежуточного отношения.
На рис. 3.11 представлен пример операции эквисоединения отношений R1 и R3, исходное состояние которых показано на рис.3.8.
Rrez (ШД, ШМ, ЕИ, НР, ШМ", НМ) = [R1.ШМ=R3. ШМ"].
д1 м2 1 15 м2 ст-5
д2 м9 3 5 м9 ст-7
д3 м2 1 10 м2 ст-5
Рис. 3.11. Пример операции эквисоединения R1 и R3
При выполнении операции эквисоединения может возникнуть ловушка соединения, т.е. при эквисоединении или -соединения семантически верных отношений может получиться семантически ложное отношение.
ДЕЛЕНИЕ
Пусть r(R) и s(S) – отношения, SR. Положим R = R - S. Тогда r, разделенное на s – это отношение r(R)={t | tss trr: tr(R)=t & tr(S)=ts}.
Отношение rrez – частное от деления r на s, что обозначается rrez = rs. Иначе rs – это максимальное подмножество rrez множества rrez(r), такое, что rrez s r. Соединение – здесь декартово произведение.
Чтобы понять сущность операции деления отношений, целесообразно рассмотреть упрощенный пример.
Пусть задано отношение R1(ШД, ШМ) (рис. 3.12.а), которое задает возможные варианты изготовления деталей из разных материалов. И задано отношение R2 (рис. 3.12.b), указывающее, какие материалы хранятся на складе.
Рис. 3.12. R1 - Варианты изготовления. R2 - Материалы на складе
Если необходимо определить детали, которые могут быть изготовлены из всех материалов, хранимых на складе, то неформально мы можем определить, что такой деталью является только деталь д2, она может быть изготовлена как из материала м5, так и из м9.
Фактически R2 есть подмножество материалов, из которых может быть сделана деталь д2: {м5, м9} {м3, м5, м9}.
Формально этот запрос соответствует операции деления реляционной алгебры, которая обозначается:
Rrez (ШД) = R1[ШМ ШМ"]R2 , где - символ операции деления.
Рассмотрим пример использования алгебры отношений при составлении запросов к базе данных. Пусть БД содержит отношения R1(ШД, ШМ, НР) и R2(ШМ", НМ).
Запрос. Перечислить шифры материалов (ШМ) и их наименования (НМ), которые идут на изготовление одной детали в количестве большем чем 25 кг.
На языке реляционной алгебры запрос будет реализован на основе следующих операций:
Rrez (ШМ, НМ) = ((R1[НР > 25]) [ШМ]) [ШМ=ШМ"] R2[ШМ, НМ]
Круглые скобки определяют последовательность действий:
1) Ограничение отношения R1;
2) Проектирование промежуточного отношения;
3) Эквисоединение с R2;
4) Проектирование полученного результата.
Нетрудно видеть, что при таком подходе закладывается "процедурность" запроса, поэтому для языков манипулирования данными (ЯМД), построенных на алгебре отношений принято говорить как о процедурных языках.
Вопросы для самопроверки по теме 4.1
1. Дайте определение понятию атомарный атрибут.
2. Какой смысл имеет в теории баз данных понятие схемы отношения?
3. Приведите определение понятия ‘отношение’.
4. Какие существуют разновидности ассоциаций между отношениями?
5. Что такое реляционная алгебра?
6. Приведите пример унарной и бинарной алгебраической операции?
7. На какие группы подразделяются алгебраические операции?
8. Что такое состояние отношения и схема БД?
9. Перечислите бинарные операции реляционной алгебры.
