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




 

Определение модели данных предусматривает указание множества допустимых информационных конструкций, множества допустимых операций и множества ограничений для хранимых значений данных.

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

Реляционная модель данных характеризуется следующими компонентами:

- информационная конструкция – отношение с двухуровневой структурой;

- допустимые операции – проекция, выборка, соединение и некоторые другие;

- ограничения – функциональные зависимости между атрибутами отношения.

Реляционная база данных представляет собой множество отношений, а ее схема содержит следующие компоненты:

где – множество имен атрибутов,

– множество имен отношений,

– вхождение атрибутов в домены – области определения,

– вхождение атрибутов в отношения (описание структуры отношений),

– множество ограничений в базе данных (в том числе функциональных зависимостей).

Данные в реляционной модели представляются в виде таблицы, при этом:

- название таблицы и перечень названий граф соответствует схеме отношения;

- каждое значение отношения соответствует строке таблицы;

- все строки таблицы различны;

- порядок строк и столбцов произвольный.

Описание процессов обработки отношений может быть выполнено двумя способами:

- указание перечня операций, выполнение которых приводит к требуемому результату (процедурный подход);

- описание свойств, которым должно удовлетворять результирующее отношение (декларативный подход).

Приводимые далее операции над отношениями ориентированы на процедурное описание алгоритмов обработки данных.

Система отношений и операций над ними образуют реляционную алгебру. Для реляционной модели данных определены следующие операции.

1. Проекция – операция, которая переносит в результирующее отношение те столбцы исходного отношения, которые указаны в условии операции. Алгебраическая запись проекции имеет вид:

,

где – исходное отношение;

– результирующее отношение;

– список атрибутов в структуре отношения (условие проекции).

2. Выборка – операция, которая переносит в результирующее отношение те строки исходного отношения, которые удовлетворяют условию выборки. Алгебраическая запись выборки имеет вид:

,

где – исходное отношение;

– результирующее отношение;

– условие выборки.

Условие выборки может иметь вид:

ИМЯ_АТРИБУТА <знак сравнения> ЗНАЧЕНИЕ (например, ЦЕНА > 30);

ИМЯ_АТРИБУТА1 <знак сравнения> ИМЯ_АТРИБУТА2 (например, ФАКТ> ПЛАН).

Допустимые знаки сравнения: "=", "<>", ">", "<", "≤", "≥".

3. Объединение содержит строки, присутствующие либо в отношении , либо в .

4. Пересечение содержит строки, присутствующие в отношениях и одновременно.

5. Вычитание содержит те строки из , которые отсутствуют в .

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

Алгебраическая запись имеет вид:

,

где – исходные отношения,

– результирующее отношение,

– условие соединения.

Условие соединения имеет вид:

ИМЯ_АТРИБУТА1 <знак сравнения> ИМЯ_АТРИБУТА2, где имена атрибутов находятся в разных отношениях.

7. Натуральное соединение - это соединение, для которого:

знаком сравнения в условии соединения является "=",

ИМЯ_АТРИБУТА1 и ИМЯ_АТРИБУТА2 должны совпадать и содержать пересечение списков атрибутов исходных отношений.

Обозначение натурального соединения не содержит условия соединения и имеет вид:

.

При этом, в отличие от простого соединения, в результирующем отношении, полученном с помощью натурального соединения, графы таблицы не будут повторяться. Количество строк в результирующем отношении равно произведению от количества строк, удовлетворяющих условию соединения в двух исходных отношениях.

Натуральное соединение определено и в тех случаях, когда соединяемые отношения совпадают по структуре или не содержат общих атрибутов. Если структура отношений и одинакова, то натуральное соединение фактически выполняет пересечение отношений: . Если структура отношений и такова, что они не содержат общих атрибутов, то считается, что условие соединения выполнено для любой пары сопоставляемых строк и натуральное соединение сцепляет каждую строку из отношения с каждой строкой из отношения .

8. Операция взятия образа. В отношении образом значения атрибута является множество значений атрибута , и каждый элемент этого множества образует вместе с некоторую строку (или часть строки) отношения :

где – знак операции "образ",

– значение, образ которого вычисляется,

– имя атрибута для значения .

9. Деление. Результатом операции деления является отношение , содержащее пересечение образов всех строк отношения-делителя , вычисленных на основе отношения-делимого :

Необходимо отметить, что любое результирующее отношение, полученное с помощью перечисленных выше операций, не содержит одинаковых строк.

Ниже рассмотрены примеры выполнения перечисленных выше операций.

 

Пусть даны два отношения и :

 

Завод Продукция План Факт
Луч Ч-15    
Луч Ч-17    
Чайка Ч-15    
Чайка Ч-20    

 

Продукция Цена Комплектующие
Ч-15   БАТ
Ч-15   РК
Ч-20   БАТ
Ч-20   РК
Ч-17   РК

 

На основе отношения может быть получена проекция:

:

 

Завод Продукция Факт
Луч Ч-15  
Луч Ч-17  
Чайка Ч-15  
Чайка Ч-20  

 

Так как порядок столбцов в результирующем отношении может быть произвольным, то возможно выполнение проекции вида: .

 

На основе отношения может быть получена проекция, представляющая собой справочник цен на продукцию:

:

 

Продукция Цена
Ч-15  
Ч-20  
Ч-17  

 

Как видно из примера, результат проекции в реляционной алгебре не содержит одинаковые строки.

 

Отношение с заданной структурой может быть получено из различных отношений исходной базы данных. Однако результаты проекций могут не совпадать между собой.

Пусть, например, требуется сформировать список отделов некоторого учреждения, используя базу данных, в которой имеются отношения:

Служащий(Фамилия, Отдел,…)

и

Технолог(Фамилия, Отдел,…).

Проекции Служащий[Отдел] и Технолог[Отдел], вообще говоря, не будут совпадать между собой, так как в некоторых отделах может не быть технолога. Поэтому для поучения корректного списка всех отделов проекция должна выполняться с использованием отношения Служащий[Отдел], которое содержит в себе больший объем информации.

 

На основе отношения с помощью операции выборки могут быть получены следующие отношения:

и

:

 

Завод Продукция План Факт
Луч Ч-15    
Чайка Ч-15    

 

 

Завод Продукция План Факт
Луч Ч-15    
Луч Ч-17    
Чайка Ч-15    

 

Пусть дано отношение :

 

Продукция Цена
Ч-25  
Ч-26  

 

Тогда при объединении отношений и можно получить расширенный справочник цен на продукцию:

:

 

Продукция Цена
Ч-15  
Ч-20  
Ч-17  
Ч-25  
Ч-26  

 

Обычное соединение отношений и в виде:

дает некорректные результаты соединения, так как столбец ПРОДУКЦИЯ повторяется в отношении дважды:

 

Завод Продукция План Факт Продукция Цена
Луч Ч-15     Ч-15  
Луч Ч-17     Ч-17  
Чайка Ч-15     Ч-15  
Чайка Ч-20     Ч-20  

 

Натуральное соединение по условию равенства атрибутов «Продукция» в отношениях и дает корректные результаты:

 

Завод Продукция План Факт Цена
Луч Ч-15      
Луч Ч-17      
Чайка Ч-15      
Чайка Ч-20      

 

Пусть отношение содержит информацию о студентах, владеющих теми или иными языками программирования:

 

Фамилия Язык программирования
Горюшкин Си
Горюшкин Java
Горюшкин Паскаль
Мальцев Си
Мальцев Паскаль
Пыленок Си
Пыленок Java
Селиверсткин VBA
Селиверсткин Паскаль

Для получения списка студентов, знающих одновременно языки программирования Си и Java, необходимо использовать операцию деления отношений, заключающуюся в нахождении образов для языков программирования Си и Java и в последующем пересечении этих образов:

;

;

.

Таким образом, одновременно знают языки программирования Си и Java только два студента: Горюшкин и Пыленок.

Следует отметить, что операция выборки для решения данной задачи неприменима, поскольку выборка выполняется только по какому-либо одному атрибуту при построчном анализе отношения.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: