база данных. Базы данных Реляционная модель данных Реляционная модель данных (рмд)
Скачать 1.48 Mb.
|
Базы данныхРеляционная модель данных Реляционная модель данных (РМД)В 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)} Отношение – подмножество декартова произведения доменов. Отношение обладает следующими характеристиками. Оно имеет имя, которое отличается от имен всех других отношений в реляционной базе данных. Каждая ячейка отношения содержит только одно элементарное (неделимое) значение. Каждый атрибут имеет уникальное имя. Значения атрибута берутся из одного и того же домена. Пример декартова произведения
Полужирным шрифтом выделены записи, соответствующие экземплярам сущности в предметной области. Пример таблицы реляционной БД
Мощность отношения (кардинальность) – количество кортежей. Степень отношения (арность) – количество атрибутов. Термины. Свойства отношения
первичный ключ столбец, поле, атрибут описание (схема отношения) строка, запись, кортеж Отношение, таблица Отношение обладает двумя основными свойствами: 1. В отношении не должно быть одинаковых кортежей, т.к. это множество. 2. Порядок кортежей в отношении несущественен. Ключи отношенияКлюч – атрибут (группа атрибутов), которые позволяют классифицировать кортеж отношения (запись таблицы). Суперключ – атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения. (Может содержать «лишние» атрибуты). Потенциальный ключ – суперключ, который не содержит подмножества, также являющегося суперключом данного отношения. Потенциальный ключ К обладает двумя свойствами:
Неприводимость: никакое допустимое подмножество ключа К не обладает свойством уникальности. Первичный ключ (ПК) – потенциальный ключ, выбранный для однозначной идентификации кортежей отношения. Значения всех атрибутов первичного ключа являются обязательными. Для каждого отношения может быть определен только один первичный ключ. Вторичный ключ – любой другой ключ, кроме первичного. Может быть необязательным. Внешний ключ – атрибут или множество атрибутов отношения, которое соответствует потенциальному ключу некоторого (возможно, того же самого) отношения. Обычно служит для организации связей между таблицами. «Отдел» – внешний ключ в таблице «Сотрудники» Фактически, внешний ключ – это ограничение целостности, в соответствии с которым множество значений внешнего ключа является подмножеством значений потенциального ключа некоторого отношения. Таблица «Сотрудники» Таблица «Отделы» «Номер отдела» - первичный ключ в таблице «Отделы» Связь один-ко-многим: Отделы – Сотрудники В таблице «Участие»: «Участник» – внешний ключ к таблице «Сотрудники» «Проект» – внешний ключ к таблице «Проекты» Таблица «Сотрудники» Таблица «Проекты» Связь многие-ко-многим: Проекты – Сотрудники Таблица «Участие» Пример связи внутри таблицы
Операции над данными в РМДОперации применяются к кортежам отношений. В РМД используются следующие операции: запомнить: внесение информации в БД (требует формирования значений уникального ключа и обязательных атрибутов кортежа); извлечь: чтение данных; обновить: модификация данных – изменение значений атрибутов кортежей; удалить: физическое или логическое удаление данных (кортежей). При наличии внешних ключей операции модификации данных также отвечают за установление / изменение / разрыв связей. Достоинства и недостатки РМДДостоинства:
максимальная степень независимости данных от программ; наличие декларативного языка запросов. Недостатки: низкая эффективность выполнения запросов; отсутствие однозначного соответствия между сущностями предметной области и таблицами реляционной базы данных. Операции реляционной алгебрыЯзык SQL основан на операциях реляционной алгебры (РА). Операции РА применяются к отношениям и в результате применения операций РА получаются отношения (таблицы). Различают унарные и бинарные операции РА: унарные применяются к одному отношению (таблице), бинарные – к двум. Существует пять основных операций РА: селекция; проекция; декартово произведение; объединение; разность; и три вспомогательных операции РА, которые могут быть выражены через основные: пересечение; соединение; деление. Проекция (project). Проекцией отношения RA1, A2, … An на атрибуты Ai, Aj, … Ak называют отношение RAi, Aj, … Ak, где {Ai, Aj, … Ak} ⸦{A1, A2, … An}. Это унарная операция, служащая для выбора подмножества атрибутов из отношения R. Она уменьшает степень отношения и может уменьшить мощность отношения за счёт исключения одинаковых кортежей.
Селекция (select). Селекцией отношения RA1, A2, … An по условию F называют отношение RA1, A2, … An, содержащее кортежи исходного отношения, в которых значения атрибутов удовлетворяют условию F. Это унарная операция, результатом которой является подмножество кортежей исходного отношения, соответствующих условиям, которые накладываются на значения определённых атрибутов.
Бинарные операции реляционной алгебрыБинарные операции РА: разносхемные – применяются к любым двум отношениям. односхемные – применяются к односхемным отношениям. Исходные отношения должны иметь одинаковое количество столбцов одинаковых (или сравнимых) типов. Сравнимыми считаются типы, относящиеся к одному и тому же семейству типов данных. Семейства типов данных (на примере СУБД Oracle) (в таблице полужирным шрифтом выделены базовые типы каждого семейства):
Разносхемная основная операция РАДекартово произведение (cartesian product). Это бинарная операция над разносхемными отношениями, соответствующая определению декартова произведения для РМД: в результате получается отношение, схема которого включает все атрибуты исходных отношений. Декартовым произведением отношений RA1,…,An и SB1,…,Bk называют отношение TA1,… An, B1,… Bk, содержащее все комбинации кортежей исходных отношений.
Объединение (union).
Объединение – бинарная операция над односхемными отношениями. Объединением отношений RA1,…,An и SA1,…,An называют отношение TA1,… An, при этом кортеж ti входит в T, если он принадлежит R или S: ti ϵ T: ti ϵ R V ti ϵ S. То есть объединение включает в себя все кортежи обоих исходных отношений без повторов. Разность (except).
Разность – бинарная операция над односхемными отношениями. Разностью T = R – S отношений RA1,…,An и SA1,…,An называется множество кортежей R, не входящих в S: ti T: ti R ꓥ not(ti S). Пересечение (intersect).
Пересечение – бинарная операция над односхемными отношениями. Пересечением T = R ∩ S отношений RA1,…,An и SA1,…,An называют отношение TA1,… An, при этом кортеж ti входит в T, если он принадлежит обоим исходным отношениям: ti T: ti R ꓦ ti S. Это можно выразить через разность: R ∩ S = R – (R – S). Разносхемные операции РА: соединение
Соединение (join). Соединение – бинарная операция над разносхемными отношениями. Эта операция определяет подмножество декартова произведения двух разносхемных отношений. Кортеж декартова произведения входит в результирующее отношение, если выполняется условие соединения F, которое задаёт соотношение значений атрибутов разных таблиц. Соединение может быть выражено так: R S = F (R S) F Если условием является равенство значений двух атрибутов исходных отношений, такая операция называется эквисоединением. Естественным называется эквисоединение по одинаковым атрибутам исходных отношений. Операция деленияДеление (division).
Деление – это бинарная операция над двумя разносхемными отношениями. Пусть отношение 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). |