Выборка (ограничение, селекция)
Реляционная модель данных
Основы реляционной модели данных были впервые изложены в статье Е.Кодда в 1970 г.
Согласно Дейту, реляционная модель состоит из трех частей:
· Структурной части;
· Целостной части;
· Манипуляционной части.
Структурная часть
Типы данных
Реляционная модель требует, чтобы типы используемых данных были простыми. Как правило, типы данных делятся на три группы:
· Простые типы данных;
· Структурированные типы данных;
· Ссылочные типы данных.
Простые, или атомарные, типы данных не обладают внутренней структурой. Данные такого типа называют скалярами. К простым типам данных относятся следующие типы:
· Логический;
· Строковый;
· Численный.
Различные языки программирования могут расширять и уточнять этот список, добавляя такие типы как:
· Целый;
· Вещественный;
· Дата;
· Время;
· Денежный;
· Перечислимый;
· и т.д…
Структурированные типы данных предназначены для задания сложных структур данных. Структурированные типы данных конструируются из составляющих элементов, называемых компонентами, которые, в свою очередь, могут обладать структурой. В качестве структурированных типов данных можно привести следующие типы данных:
· Массивы;
· Записи.
Ссылочный тип данных (указатели) предназначен для обеспечения возможности указания на другие данные. Указатели характерны для языков процедурного типа, в которых есть понятие области памяти для хранения данных. Ссылочный тип данных предназначен для обработки сложных изменяющихся структур, например деревьев, графов, рекурсивных структур.
Для реляционной модели данных тип используемых данных не важен. Требование, чтобы тип данных был простым, нужно понимать так, что в реляционных операциях не должна учитываться внутренняя структура данных.
Домен - это семантическое понятие. Домен можно рассматривать как подмножество значений некоторого типа данных имеющих определенный смысл. Домен характеризуется следующими свойствами:
· Домен имеет уникальное имя (в пределах базы данных).
· Домен определен на некотором простом типе данных или на другом домене.
· Домен может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для данного домена.
· Домен несет определенную смысловую нагрузку.
Определение 1. Атрибут отношения есть пара вида <Имя_атрибута : Имя_домена>.
Определение 2. Отношение R, определенное на множестве доменов (не обязательно различных), содержит две части: заголовок и тело.
Заголовок отношения содержит фиксированное количество атрибутов отношения.
Тело отношения содержит множество кортежей отношения. Каждый кортеж отношения представляет собой множество пар вида <Имя_атрибута : Значение_атрибута>, таких, что значение атрибута принадлежит домену.
Определение 3. Реляционной базой данных называется набор отношений.
Определение 4. Схемой реляционной базы данных называется набор заголовков отношений, входящих в базу данных.
Целостная часть
NULL-значения
Наличие NULL-значений приводит к изменению логики – трехзначной логики (3VL).
Определение 1. Пусть дано отношение R. Подмножество атрибутов K отношения будем называть потенциальным ключом, если обладает следующими свойствами:
· Свойством уникальности - в отношении R не может быть двух различных кортежей, с одинаковым значением.
· Свойством неизбыточности - никакое подмножество в K не обладает свойством уникальности.
Правило целостности сущностей: атрибуты, входящие в состав некоторого потенциального ключа не могут принимать nullзначений.
В реляционных базах данных основными являются взаимосвязи типа "одинкомногим". Взаимосвязи типа "многокомногим" реализуются использованием нескольких взаимосвязей типа "одинкомногим". Отношение, входящее в связь со стороны "один" (например, "Поставщики"), называют родительским отношением. Отношение, входящее в связь со стороны "много" (например, "Поставки"), называется дочернем отношением.
Механизм реализации взаимосвязи "одинкомногим" состоит в том, что в дочернее отношение добавляются атрибуты, являющиеся ссылками на ключевые атрибуты родительского отношения. Эти атрибуты и являются внешними ключами, определяющими, с какими кортежами родительского отношения связаны кортежи дочернего отношения. Такие атрибуты еще называют мигрирующими из родительского отношения.
Определение 2. Пусть дано отношение R. Подмножество атрибутов FK отношения R будем называть внешним ключом, если:
· Существует отношение S (R и S не обязательно различны) с отенциальным ключом K.
· Каждое значение FK в отношении R всегда совпадает со значением K для некоторого кортежа из S, либо является null-значением. Отношение S называется родительским отношением, отношение R называется дочерним отношением.
Правило целостности внешних ключей: внешние ключи не должны быть несогласованными, т.е. для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительском отношении.
Манипуляционная часть
Доступ к реляционным данным выполняется с помощью реляционной алгебры или эквивалентного реляционного исчисления. На практике алгебра исчислений не встречается, но языки доступа к данным основаны на реляционной алгебре. Язык доступа называется реляционно полным, если он по своим возможностям не уступает реляционной алгебре.
Теоретико-множественные операторы:
· Объединение;
· Пересечение;
· Вычитание;
· Декартово произведение.
Специальные реляционные операторы:
· Выборка;
· Проекция;
· Соединение;
· Деление.
Часть операторов требует, чтобы отношения имели одинаковые заголовки. Такие отношения называются совместимыми по типу.
Объединение
Объединением двух совместимых по типу отношений A и B называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям.
Синтаксис операции объединения:
A UNION B A U B
Пересечение
Пересечением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B.
Синтаксис операции пересечения:
A INTERSECT B A ∩ B
Вычитание
Вычитанием двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений, и телом, состоящим из кортежей, принадлежащих отношению и не принадлежащих отношению.
Синтаксис операции вычитания:
A MINUS B A \ B
Декартово произведение
Декартовым произведением двух отношений A(A1,A2,..,An) и B(B1,B2,..,Bm) называется отношение, заголовок которого является сцеплением заголовков отношений A и B: (A1,A2,..,An,B1,B2,..,Bm).
Тело состоит из кортежей, являющихся сцеплением кортежей отношений A и B: (a1,a2,..,an,b1,b2,..,bm), таких, что и .
Синтаксис операции декартового произведения:
A TIMES B A * B AB
Выборка (ограничение, селекция)
Выборкой (ограничением, селекцией) на отношении A с условием c называется отношение с тем же заголовком, что и у отношения A, и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. с представляет собой логическое выражение, в которое могут входить атрибуты отношения A и (или) скалярные выражения.
Синтаксис операции выборки:
А WHERE c
Проекция
Проекцией отношения A по атрибутам X,Y,..,Z, где каждый из атрибутов принадлежит отношению A, называется отношение с заголовком (X,Y,..,Z) и телом, содержащим множество кортежей вида (x,y,..,z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным z, …, значением атрибута Z равным z.
Синтаксис операции проекции:
A[X,Y,..,Z]
Соединение
Обычно рассматривается несколько разновидностей операции соединения:
· Общая операция соединения;
· Тэта-соединение;
· Экви-соединение;
· Естественное соединение.
Все разновидности соединения являются частными случаями общей операции соединения.
Общая операция соединения
Соединением отношений A и B по условию называется отношение
(A TIMES B) WHERE c (AB)[c]
c представляет собой логическое выражение, в которое могут входить атрибуты отношений A и B и (или) скалярные выражения.
Операция соединения есть результат последовательного применения операций декартового произведения и выборки.
Тэта-соединение
Пусть отношение содержит A атрибут X, отношение B содержит атрибут Y, а Θ - один из операторов сравнения. Тогда Θ-соединением A отношения по атрибуту X с отношением B по атрибуту Y называют отношение
(A TIMES B) WHERE XΘY
Это частный случай операции общего соединения.
A[XΘY]B
Экви-соединение
Наиболее важным частным случаем Θ-соединения является случай, когда Θ есть просто равенство.
Синтаксис экви-соединения:
A[X=Y]B
Естественное соединение
Пусть даны отношения A(A1,..,An,X1,X2,..,Xk) и B(X1,X2,..,Xk,B1,..,Bm), имеющие одинаковые атрибуты X1,X2,..,Xk.Тогда естественным соединением отношений A и B называется отношение с заголовком (A1,..,An,X1,X2,..,Xk,B1,..,Bm) и телом, содержащим множество кортежей (a1,..,an,x1,x2,..,xk,b1,..,bm).
Естественное соединение настолько важно, что для него используют специальный синтаксис: A JOIN B
Деление
Пусть даны отношения A(A1,..,An,X1,X2,..,Xk) и B(X1,X2,..,Xk), причем атрибуты X1,X2,..,Xk- общие для двух отношений. Делением отношений A на B называется отношение с заголовком (A1,A2,..,An) и телом, содержащим множество кортежей (a1,a2,..,an), таких, что для всех кортежей (x1,x2,..,xk) B в отношении A найдется кортеж (a1,..,an,x1,x2,..,xk).
Синтаксис операции деления:
A DEVIDE BY B A / B