Главная страница

база данных. Базы данных Реляционная модель данных Реляционная модель данных (рмд)


Скачать 1.48 Mb.
НазваниеБазы данных Реляционная модель данных Реляционная модель данных (рмд)
Анкорбаза данных
Дата04.10.2022
Размер1.48 Mb.
Формат файлаppt
Имя файлаdb02_rmd.ppt
ТипДокументы
#712500

Базы данных


Реляционная модель данных

Реляционная модель данных (РМД)


В 1970 г. американский математик Эдгар Ф. Кодд опубликовал статью, с которой отсчитывается начало существования РМД:
Codd E.F. (1970). A relational model of .data for large shared data banks. Comm. ACM, 13(6), pp. 377-387.
Цели создания реляционной модели:
Обеспечение высокой степени независимости от данных. Прикладные программы не должны зависеть от изменений внутреннего представления данных, в частности от изменений организации файлов, переупорядочивания записей и наличия или отсутствия дополнительных путей доступа к данным.
Создание прочного фундамента для решения семантических вопросов, а также проблем непротиворечивости и избыточности данных. В частности, в статье Кодда вводится понятие нормализованных отношений, т.е. отношений без повторяющихся групп атрибутов.
Расширение языков управления данными за счет включения операций над множествами.

Реляционная модель данных (РМД)


РМД основана на теории множеств.
Домен, D – множество значений, которые может принимать элемент данных.
Декартово произведение доменов – множество всех возможных комбинаций значений доменов:
D1×D2×... ×Dn = {(d1i , d2i , ..., dni)}, где dki  Dk
(d1i , d2i , ..., dni) – кортеж, элемент декартова произведения.
Пример: D1 = (1, 2), D2 = (a, b, c).
D1×D2 = {(1,a), (1,b), (1,c), (2,a), (2,b), (2,c)}
Отношение – подмножество декартова произведения доменов.
Отношение обладает следующими характеристиками.
Оно имеет имя, которое отличается от имен всех других отношений в реляционной базе данных.
Каждая ячейка отношения содержит только одно элементарное (неделимое) значение.
Каждый атрибут имеет уникальное имя.
Значения атрибута берутся из одного и того же домена.

Пример декартова произведения


Должность


ФИО


Должность


Оклад


директор


Белов С.Ю.


директор


40000


инженер


Белов С.Ю.


директор


75000


экономист


Белов С.Ю.


инженер


40000


Белов С.Ю.


инженер


75000


ФИО


Белов С.Ю.


экономист


40000


Белов С.Ю.


Белов С.Ю.


экономист


75000


Рогов А.И.


Рогов А.И.


директор


40000


Панина А.А.


Рогов А.И.


директор


75000


Волкова Н.М.


Рогов А.И.


инженер


40000


Рогов А.И.


инженер


75000


Оклад


Рогов А.И.


экономист


40000


40000











75000


Волкова Н.М.


экономист


40000


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

Пример таблицы реляционной БД


Табельный номер


ФИО сотрудника


Должность


Оклад


Год рождения


Отдел


023


Волкова Елена Павловна


секретарь


26000


1985


2


113


Белов Сергей Юрьевич


инженер


39800


1980


1


101


Рогов Сергей Михайлович


директор


62000


1972


2


056


Панина Анна Алексеевна


инженер-программист


41800


1978


1


...


...


...


...


...


...


098


Фролов Юрий Вадимович


начальник отдела


49200


1971


9


Мощность отношения (кардинальность) – количество кортежей.
Степень отношения (арность) – количество атрибутов.

Термины. Свойства отношения


Табельный номер


ФИО сотрудника


Должность


Оклад


Год рождения


023


Волкова Елена Павловна


секретарь


26000


1985


113


Белов Сергей Юрьевич


инженер


39800


1980


первичный ключ


столбец, поле, атрибут


описание (схема отношения)


строка, запись, кортеж


Отношение, таблица


Отношение обладает двумя основными свойствами:
1. В отношении не должно быть одинаковых кортежей, т.к. это множество.
2. Порядок кортежей в отношении несущественен.

Ключи отношения


Ключ – атрибут (группа атрибутов), которые позволяют классифицировать кортеж отношения (запись таблицы).
Суперключатрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения. (Может содержать «лишние» атрибуты).
Потенциальный ключ – суперключ, который не содержит подмножества, также являющегося суперключом данного отношения. Потенциальный ключ К обладает двумя свойствами:
    Уникальность (в рамках кортежей данного отношения);
    Неприводимость: никакое допустимое подмножество ключа К не обладает свойством уникальности.

    Первичный ключ (ПК) – потенциальный ключ, выбранный для однозначной идентификации кортежей отношения. Значения всех атрибутов первичного ключа являются обязательными. Для каждого отношения может быть определен только один первичный ключ.
    Вторичный ключ – любой другой ключ, кроме первичного. Может быть необязательным.
    Внешний ключ – атрибут или множество атрибутов отношения, которое соответствует потенциальному ключу некоторого (возможно, того же самого) отношения. Обычно служит для организации связей между таблицами.

«Отдел» – внешний ключ в таблице «Сотрудники»
Фактически, внешний ключ – это ограничение целостности, в соответствии с которым множество значений внешнего ключа является подмножеством значений потенциального ключа некоторого отношения.


Таблица «Сотрудники»


Таблица «Отделы»


«Номер отдела» - первичный ключ в таблице «Отделы»


Связь один-ко-многим: Отделы – Сотрудники


В таблице «Участие»:
«Участник» – внешний ключ к таблице «Сотрудники»
«Проект» – внешний ключ к таблице «Проекты»


Таблица «Сотрудники»


Таблица «Проекты»


Связь многие-ко-многим: Проекты – Сотрудники


Таблица «Участие»

Пример связи внутри таблицы


Табельный номер


ФИО сотрудника


Должность


Оклад


Начальник


023


Волкова Елена Павловна


секретарь


26000


101


113


Белов Сергей Юрьевич


инженер


39800


205


101


Рогов Сергей Михайлович


директор


62000


NULL


205


Махова Ольга Алексеевна


начальник отдела


51300


101


...


...


...


...


...

Операции над данными в РМД


Операции применяются к кортежам отношений.
В РМД используются следующие операции:
запомнить: внесение информации в БД (требует формирования значений уникального ключа и обязательных атрибутов кортежа);
извлечь: чтение данных;
обновить: модификация данных – изменение значений атрибутов кортежей;
удалить: физическое или логическое удаление данных (кортежей).
При наличии внешних ключей операции модификации данных также отвечают за установление / изменение / разрыв связей.

Достоинства и недостатки РМД


Достоинства:
    наличие теоретического базиса;
    максимальная степень независимости данных от программ;
    наличие декларативного языка запросов.

    Недостатки:

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

Операции реляционной алгебры


Язык SQL основан на операциях реляционной алгебры (РА).
Операции РА применяются к отношениям и в результате применения операций РА получаются отношения (таблицы).
Различают унарные и бинарные операции РА: унарные применяются к одному отношению (таблице), бинарные – к двум.
Существует пять основных операций РА:
селекция;
проекция;
декартово произведение;
объединение;
разность;
и три вспомогательных операции РА, которые могут быть выражены через основные:
пересечение;
соединение;
деление.


Проекция (project).
Проекцией  отношения RA1, A2, … An на атрибуты Ai, Aj, … Ak называют отношение RAi, Aj, … Ak, где {Ai, Aj, … Ak} ⸦{A1, A2, … An}.
Это унарная операция, служащая для выбора подмножества атрибутов из отношения R. Она уменьшает степень отношения и может уменьшить мощность отношения за счёт исключения одинаковых кортежей.


Отношение R


Проекция A,C(R)


A


B


C


A


C


a


b


c


a


c


c


a


d


c


d


c


b


d


Селекция (select).
Селекцией  отношения RA1, A2, … An по условию F называют отношение RA1, A2, … An, содержащее кортежи исходного отношения, в которых значения атрибутов удовлетворяют условию F.
Это унарная операция, результатом которой является подмножество кортежей исходного отношения, соответствующих условиям, которые накладываются на значения определённых атрибутов.


Отношение R


Селекция C=d(R)


A


B


C


A


B


C


a


b


c


c


a


d


c


a


d


c


b


d


c


b


d

Бинарные операции реляционной алгебры


Бинарные операции РА:
разносхемные – применяются к любым двум отношениям.
односхемные – применяются к односхемным отношениям. Исходные отношения должны иметь одинаковое количество столбцов одинаковых (или сравнимых) типов. Сравнимыми считаются типы, относящиеся к одному и тому же семейству типов данных.
Семейства типов данных (на примере СУБД Oracle) (в таблице полужирным шрифтом выделены базовые типы каждого семейства):


Числовые:
DEC, DECIMAL,
DOUBLE PRECISION,
FLOAT, INT, INTEGER,
NUMBER,
NUMERIC,
REAL, SMALLINT


Символьные:
CHAR, CHARACTER,
LONG, LONG RAW
RAW,
ROWID,
STRING,
VARCHAR, VARCHAR2


Календарные:
DATE

Разносхемная основная операция РА


Декартово произведение (cartesian product).
Это бинарная операция над разносхемными отношениями, соответствующая определению декартова произведения для РМД: в результате получается отношение, схема которого включает все атрибуты исходных отношений.
Декартовым произведением отношений RA1,…,An и SB1,…,Bk называют отношение TA1,… An, B1,… Bk, содержащее все комбинации кортежей исходных отношений.


Отношение R


Отношение S


Декартово произведение RS


A


B


C


D


E


A


B


C


D


E


1


4


g


h


a


1


4


g


h


a


2


5


a


b


c


1


4


a


b


c


3


6


2


5


g


h


a


2


5


a


b


c


3


6


g


h


a


3


6


a


b


c


Объединение (union).


Отношение R


Отношение S


Объединение R U S


A


B


C


A


B


C


A


B


C


a


b


c


g


h


a


a


b


c


c


a


d


a


b


c


c


a


d


c


h


c


h


d


d


c


h


c


g


h


a


h


d


d


Объединение – бинарная операция над односхемными отношениями. Объединением отношений RA1,…,An и SA1,…,An называют отношение


TA1,… An, при этом кортеж ti входит в T, если он принадлежит R или S:
ti ϵ T: ti ϵ R V ti ϵ S.
То есть объединение включает в себя все кортежи обоих исходных отношений без повторов.


Разность (except).


Отношение R


Отношение S


Разность R–S


A


B


C


A


B


C


A


B


C


a


b


c


g


h


a


c


a


d


c


a


d


a


b


c


c


h


c


c


h


c


h


d


d


Разность – бинарная операция над односхемными отношениями. Разностью T = R – S отношений RA1,…,An и SA1,…,An называется множество кортежей R, не входящих в S:
ti  T: ti  R ꓥ not(ti  S).


Пересечение (intersect).


Отношение R


Отношение S


Пересечение R–S


A


B


C


A


B


C


A


B


C


a


b


c


g


h


a


a


b


c


c


a


d


a


b


c


c


a


d


c


h


c


c


a


d


d


r


t


g


u


v


Пересечение – бинарная операция над односхемными отношениями.
Пересечением T = R ∩ S отношений RA1,…,An и SA1,…,An называют отношение TA1,… An, при этом кортеж ti входит в T, если он принадлежит обоим исходным отношениям:
ti  T: ti  R ꓦ ti  S.
Это можно выразить через разность:
R ∩ S = R – (R – S).

Разносхемные операции РА: соединение


Отношение R


Отношение S


Соединение RS


A


B


C


A


D


E


A


B


C


D


E


a


b


c


g


h


a


c


a


d


b


c


c


a


d


c


b


c


c


h


c


b


c


c


h


c


h


d


d


g


b


d


h


a


g


b


d


Соединение (join).
Соединение – бинарная операция над разносхемными отношениями. Эта операция определяет подмножество декартова произведения двух разносхемных отношений. Кортеж декартова произведения входит в результирующее отношение, если выполняется условие соединения F, которое задаёт соотношение значений атрибутов разных таблиц. Соединение может быть выражено так:
R  S = F (R  S)


F
Если условием является равенство значений двух атрибутов исходных отношений, такая операция называется эквисоединением. Естественным называется эквисоединение по одинаковым атрибутам исходных отношений.

Операция деления


Деление (division).


Отношение R


Отношение S


Частное R/S


A


B


C


D


C


D


A


B


a


b


c


b


c


b


a


b


a


b


g


h


g


h


c


f


c


f


g


h


c


f


c


b


a


v


c


b


c


v


g


h


Деление – это бинарная операция над двумя разносхемными отношениями.
Пусть отношение R содержит атрибуты {r1,r2,...,rk, rk+1,...,rn}, а отношение S – атрибуты {rk+1,...,rn}. Тогда результирующее отношение T содержит атрибуты {r1,r2,...,rk}. Кортеж ti входит в T, если его декартово произведение с отношением S входит в R:
ti ϵ T : ti S ⸦ R.
Деление может быть выражено так:
R / S = r1,…,rk (R) – r1,…,rk ((r1,…,rk (R)  S) – R).



написать администратору сайта