- •1 Основные понятия и определения
- •1.1Информационные системы и банки данных
- •1.2Назначение и основные компоненты банка данных
- •1.3Трех уровневая архитектура абстракций базы данных.
- •1.4Физическая и логическая независимость данных
- •1.5Администратор базы данных
- •1.6Системы управления базами данных
- •1.7Схема обмена данными при работе с базой данных
- •1.8Локальные информационные системы
- •1.9Информационные системы в сетях
- •2Модели данных концептуального уровня
- •2.1Иерархическая модель данных
- •2.2Сетевая модель
- •2.3Реляционная модель
- •2.4Постреляционная модель
- •2.5Многомерная модель
- •2.6Объектно-ориентированная модель
- •3Физические модели баз данных
- •3.1Файловые структуры, используемые в базах данных
- •3.2 Хешированные файлы
- •3.2.1Стратегия разрешения коллизий с областью переполнения
- •3.2.2Организация стратегии свободного замещения
- •3.3Индексные файлы
- •3.3.1Файлы с плотным индексом, или индексно-прямые файлы
- •3.3.2Файлы с неплотным индексом, или индексно-последовательные файлы
- •3.3.3Организация индексов в виде b-tree (в-деревьев)
- •3.4Моделирование отношений «один-ко-многим» на файловых структурах
- •3.5Инвертированные списки
- •3.6Модели бесфайловой организации данных
- •4Реляционная модель данных
- •4.1Основные определения
- •4.2Соглашения об отношениях в реляционных системах
- •4.3Классы отношений
- •4.3.1Классы отношений с точки зрения способов создания и хранения
- •4.3.2Классификация отношений с точки зрения их содержания
- •4.4Операции реляционной алгебры
- •4.4.1Основные понятия
- •4.4.2Базовые теоретико-множественные операции
- •4.4.3Специальные операции реляционной алгебры
- •4.4.4Связи между отношениями (таблицами)
- •4.5Реляционное исчисление
- •4.6Язык запросов по образцу qbe
- •4.7Структурированный язык запросов sql
- •4.7.1История развития sql
- •4.7.2Общая характеристика языка
- •4.7.3Структура sql
- •4.7.4Оператор выбора select
- •4.7.5Применение агрегатных функций и группировки
- •4.7.6Раздел order by и ключевое слово top
- •4.7.7Вложенные запросы
- •4.7.8Внутренние и внешние объединения
- •4.7.9Перекрестные запросы
- •4.7.10Операторы манипулирования данными
- •4.7.11Запросы на создание таблиц
- •4.7.12Использование языка определения данных
- •4.8Правила Кодда (требования к реляционным бд)
- •5Проектирование баз данных
- •5.1Этапы проектирования бд
- •5.2Проблемы проектирования реляционных баз данных
- •5.3Нормализация отношений
- •5.4Метод сущность-связь
- •5.5Средства автоматизации проектирования
- •5.5.1Основные определения
- •5.5.2Модели жизненного цикла
- •5.5.3Модели структурного проектирования
- •5.5.4Объектно-ориентированные модели
- •5.5.5 Классификация case-средств
- •6Защита информации в базах данных
- •6.1Общие подходы к обеспечению безопасности данных
- •6.2Назначение и проверка полномочий, проверка подлинности
- •6.3Средства защиты базы данных
- •7Базы данных в сетях
- •7.1Организация базы данных в локальной сети
- •7.2Модели архитектуры клиент-сервер
- •7.3Управление распределенными данными
- •8История развития баз данных
4.4.3Специальные операции реляционной алгебры
Первой специальной операцией реляционной алгебры является селекция (выбор, горизонтальный выбор, операция фильтрации, операция ограничения отношений).
Селекция (выбор) – это операция создания нового отношения, включающего те кортежи исходного отношения, для которых истинно условие выбора или фильтрации.
Например, выбрать из R9 детали с шифром 003412.
R10 = R9[Шифр детали = «003412»]
R10 |
||
Шифр детали |
Название детали |
Цех |
003412 |
Гайка М1 |
Цех 1 |
003412 |
Гайка М1 |
Цех 2 |
Следующей специальной операцией является проекция.
Пусть R – отношение, SR = (A1,A2,…, An) – схема отношения R.
Обозначим через В подмножество [Ai]; B {Ai}.
При этом пусть B1 – множество атрибутов из {A}, не вошедших в B.
Проекцией отношения R на набор атрибутов B, обозначаемой R[B], называется отношение со схемой, соответствующей набору атрибутов B SR[B] = B, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора B.
По определению отношений все дублирующие кортежи удаляются из результирующего отношения.
Проекцию называют иногда операцией вертикального выбора, позволяющей получить только требуемые характеристики моделируемого объекта. Чаще всего проекция используется как промежуточный шаг в операциях горизонтального выбора, или фильтрации. Кроме того, она используется самостоятельно на заключительном этапе получения ответа на запрос.
Например, выберем все цеха, которые изготавливают деталь «Гайка М1». Воспользуемся отношением R10, полученным при реализации операции выбора, и выполним проекцию на столбец «Цех». Результатом выполнения этих операций будет отношение R11: R11 = R10[Цех].
R11 |
Цех |
Цех 1 |
Цех 2 |
Следующей специальной операцией реляционной алгебры является операция соединения.
В отличие от рассмотренных специальных операций реляционной алгебры: выбора и проекции, которые являются унарными, то есть производятся над одним отношением, операция соединения является бинарной, то есть исходными для нее являются два отношения, а результатом – одно.
Пусть R = {r}, Q = {q} – исходные отношения, SR, SQ – схемы отношений R и Q соответственно.
SR = (A1, A2, …, Ak); SQ = (B1, B2, …, Bm),
где Ai, Bj – имена атрибутов в схеме отношений R и Q соответственно.
При этом полагаем, что заданы наборы атрибутов А и В А {Ai} i=1,k; B {Bj} j=1,m , и эти наборы состоят из -сравнимых атрибутов.
Тогда соединением отношений R и Q при условии будет подмножество декартова произведения отношений R и Q, кортежи которого удовлетворяют условию . Соединение обозначают следующим образом: R [] Q.
Например, рассмотрим следующий запрос. Пусть отношение R12 содержит перечень деталей с указанием материалов, из которых эти детали изготавливаются:
R12 |
||
Шифр детали |
Название детали |
Материал |
003412 |
Гайка М1 |
Сталь-ст1 |
003415 |
Гайка М2 |
Сталь-ст2 |
003416 |
Гайка М3 |
Сталь-ст1 |
003477 |
Болт М1 |
Сталь-ст2 |
Получить перечень деталей, которые изготавливаются в цехе 1 из материала «сталь-ст2»:
R13 = (R12[(R12.Шифр детали = R9.Шифр детали) R9.Цех = “Цех 1” R12.Материал = «сталь-ст1»]R9)[Название детали].
Важными с практической точки зрения частными случаями соединения являются эквисоединение и естественное соединение.
Операция эквисоединения характеризуется тем, что условие сравнения задает равенство операндов.
Операция естественного соединения применяется к двум отношениям, имеющим общий атрибут (простой или составной). Этот атрибут в отношениях имеет одно и то же имя (совокупность имен) и определен на одном и том же домене (доменах).
Пусть отношение А имеет атрибуты (X1, X2…Xm, Y1, Y2…Yn), а отношение В (Y1, Y2…Yn, Z1, Z2, …Zk).
Атрибуты Y1, Y2 … Yn, и только они являются общими для этих отношений. Пусть атрибуты с одинаковыми именами определены на одних и тех же доменах.
Для простоты множества атрибутов обозначим буквами: X,Y,Z
Естественным соединением А и В (A Join B) называется отношение с атрибутами X, Y, Z, состоящими из кортежей (x, y, z), таких, для которых в отношении А атрибуты X=xY=y, при этом в отношении В атрибуты Y=yZ=z.
Выполняется свойство ассоциативности :
(A Join B) JoinС = A Join (B Join C)
Пример: А = (код, имя, статус, город) – поставщики,
В = (номер, вес, город) – детали
A:
Код |
Имя |
Статус |
Город |
1 |
Иванов |
20 |
Москва |
2 |
Петров |
10 |
Казань |
3 |
Сидоров |
30 |
Казань |
4 |
Семенов |
20 |
Москва |
5 |
Конкин |
30 |
Новгород |
В:
Номер |
Вес |
Город |
1 |
12 |
Москва |
2 |
17 |
Казань |
3 |
17 |
Ростов |
4 |
14 |
Москва |
5 |
12 |
Казань |
6 |
19 |
Москва |
A Join B:
Код |
Имя |
Статус |
Город |
Номер |
Вес |
1 |
Иванов |
20 |
Москва |
1 |
12 |
1 |
Иванов |
20 |
Москва |
4 |
14 |
1 |
Иванов |
20 |
Москва |
6 |
19 |
2 |
Петров |
10 |
Казань |
2 |
17 |
2 |
Петров |
10 |
Казань |
5 |
12 |
3 |
Сидоров |
30 |
Казань |
2 |
17 |
3 |
Сидоров |
30 |
Казань |
5 |
12 |
4 |
Семёнов |
20 |
Москва |
1 |
12 |
4 |
Семёнов |
20 |
Москва |
4 |
14 |
4 |
Семёнов |
20 |
Москва |
6 |
19 |
Последней специальной операцией реляционной алгебры является деление.
Результат деления отношения R с атрибутами А и В на отношение Q с атрибутом В, где А и В простые или составные атрибуты, причем атрибут В – общий атрибут, определенный на одном и том же домене (множестве доменов составного атрибута), является отношение Р с атрибутом А, состоящее из кортежей r таких, что в отношении R имеются кортежи (r,s), причем множество значений s включает множество значений атрибута В отношения Q.
Деление обозначают следующим образом: P = R[A:B]Q.
Например, пусть отношение R содержит сведения о том, что и в каких цехах выпускается, отношение Q – сведения о номенклатуре всех выпускаемых деталей. Требуется определить перечень цехов, в которых выпускается вся номенклатура деталей. Тогда решением этой задачи будет операция деления отношения R на отношение Q по набору атрибутов (Шифр детали, Наименование детали).
P = R [Шифр детали, Наименование детали : Шифр детали, Наименование детали]Q.
-
R
Шифр детали
Наименование детали
Цех
003412
Гайка М1
Цех 1
003415
Гайка М2
Цех 1
003416
Гайка М3
Цех 1
003477
Болт М1
Цех 1
003412
Гайка М1
Цех 2
003477
Болт М1
Цех 2
-
Q
Шифр детали
Наименование детали
003412
Гайка М1
003415
Гайка М2
003416
Гайка М3
003477
Болт М1
-
P
Цех
Цех 1
Дополнительные операции реляционной алгебры, предложенные Дейтом, включают: переименование, расширение, подведение итогов, присвоение, вставку, обновление, удаление, реляционное сравнение
---------------------------------------------------------------
