Информационно-аналитические БД. Реляционные модели Основной структурой данных в модели является отношение, именно поэтому модель получила название реляционной (от английского relation – отношение). N-арным отношением R называют подмножество декартова произведения D1 D2 ... Dn множеств D1, D2, ..., Dn ( n > 1 ), необязательно различных. Исходные множества D1, D2, ..., Dn называют в модели доменами. где D1 D2 ... Dn – полное декартово произведение. Полное декартово произведение – это набор всевозможных сочетаний из n элементов каждое, где каждый элемент берется из своего домена. Например, имеем три домена: D1 содержит три фамилии, D2 – набор из двух учебных дисциплин и D3 – набор из трех оценок. Допустим, содержимое доменов следующее: D1 = {Иванов, Крылов, Степанов}; D2 = {Теория автоматов, Базы данных} ; D3 = {3, 4, 5} Информационно-аналитические БД. Реляционные модели Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент – это одна из фамилий, второй – это название одной из учебных дисциплин, а третий – одна из оценок. <Иванов,Теория автоматов,3>; <Иванов,Теория автоматов,4>; <Иванов,Теория автоматов,5> <Крылов,Теория автоматов,3>; <Крылов,Теория автоматов,4>; <Крылов,Теория автоматов,5>; <Степанов,Теория автоматов,3>; <Степанов,Теория автоматов,4>; <Степанов,Теория автоматов,5>; <Иванов,Базы данных,3>; <Иванов,Базы данных,4>; <Иванов,Базы данных,5>; <Крылов,Базы данных,3>; <Крылов,Базы данных,4>; <Крылов,Базы данных,5>; <Степанов,Базы данных,3>; <Степанов,Базы данных,4>; <Степанов,Базы данных,5> Информационно-аналитические БД. Реляционные модели Отношение R моделирует реальную ситуацию, и оно может содержать, допустим, только 5 строк, которые соответствуют результатам сессии (Крылов экзамен по "Базам данных" еще не сдавал): <Иванов,Теория автоматов,4>; <Крылов,Теория автоматов,5>; <Степанов,Теория автоматов,5>; <Иванов,Базы данных,3>; <Степанов,Базы данных,4> R Фамилия Иванов Иванов Крылов Степанов Степанов Дисциплина Теория автоматов Базы данных Теория автоматов Теория автоматов Базы данных Оценка 4 3 5 5 4 Данная таблица обладает рядом специфических свойств: 1. В таблице нет двух одинаковых строк. 2. Таблица имеет столбцы, соответствующие атрибутам отношения. 3. Каждый атрибут в отношении имеет уникальное имя. 4. Порядок строк в таблице произвольный. Вхождение домена в отношение принято называть атрибутом. Строки отношения называются кортежами. Количество атрибутов в отношении называется степенью, или рангом, отношения. Информационно-аналитические БД. Реляционные модели R Фамилия Иванов Иванов Крылов Степанов Степанов Дисциплина Теория автоматов Базы данных Теория автоматов Теория автоматов Базы данных Оценка 4 3 5 5 4 R1 Дисциплина Теория автоматов Теория автоматов Теория автоматов Базы данных Базы данных Фамилия Крылов Степанов Иванов Иванов Степанов Оценка 5 5 4 3 4 В соответствии со свойствами отношений два отношения, отличающиеся только порядком строк или порядком столбцов, будут интерпретироваться в рамках реляционной модели как одинаковые, то есть отношение R и отношение R1 одинаковы с точки зрения реляционной модели данных. Информационно-аналитические БД. Реляционные модели Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, к которому они относятся: Если атрибуты принимают значения из одного и того же домена, то они называются -сравнимыми, где – множество допустимых операций сравнения, заданных для данного домена. Например, если домен содержит числовые данные , то для него допустимы все операции сравнения, тогда Схемы двух отношений называются эквивалентными, если они имеют одинаковую степень и возможно такое упорядочение имен атрибутов в схемах, что на одинаковых местах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие значения из одного домена. SR1 = (A1, A2, ..., An) – схема отношения R1. SR2 = (Bi1, Bi2,..., Bin) – схема отношения R2 после упорядочения имен атрибутов. Тогда Информационно-аналитические БД. Реляционные модели Реляционная модель представляет базу данных в виде множества взаимосвязанных отношений. В этой модели, так же как и в остальных, поддерживаются иерархические связи между отношениями. В каждой связи одно отношение может выступать как основное, а другое отношение выступает в роли подчиненного. Это означает, что один кортеж основного отношения может быть связан с несколькими кортежами подчиненного отношения. Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении это первичный ключ отношения ( PRIMARY KEY ), который однозначно определяет кортеж основного отношения. В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом, то есть он определяет множество кортежей подчиненного отношения, которые связаны с единственным кортежем основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом ( FOREIGN KEY ). Информационно-аналитические БД. Реляционные модели PRIMARY KEY отношения Сотрудник атрибут Паспорт является FOREIGN KEY для отношения "карьера". Информационно-аналитические БД. Теоретико-множественные операции реляционной алгебры Объединением двух отношений называется отношение, содержащее множество кортежей, принадлежащих либо первому, либо второму исходным отношениям, либо обоим отношениям одновременно. Пусть заданы два отношения R1 = { r1 } , R2 = { r2}, где r1 и r2 - соответственно кортежи отношений R1 и R2, то объединение Здесь r – кортеж нового отношения, – операция логического сложения "ИЛИ" (дизъюнкция). R1 Шифр детали 00011073 00011075 00011076 00011003 00011006 00013063 00013066 Название детали Гайка M1 Гайка М2 Гайка М3 Болт М1 Болт М3 Шайба М1 Шайба М3 R2 Шифр детали 00011073 00011076 00011077 00011004 Название детали Гайка M1 Гайка М3 Гайка М4 Болт М2 R3 Шифр детали 00011073 00011075 00011076 00011003 00011006 00013063 00013066 00011077 00011004 Название детали Гайка M1 Гайка М2 Гайка М3 Болт М1 Болт М3 Шайба М1 Шайба М3 Гайка М4 Болт М2 Информационно-аналитические БД. Теоретико-множественные операции реляционной алгебры Пересечением отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям R1 и R2: здесь – операция логического умножения "И" (конъюнкция). В отношении R4 содержатся перечень деталей, которые выпускаются одновременно на двух участках цеха. R4 Шифр детали 00011073 00011076 00011006 Название детали Гайка M1 Гайка М3 Болт М3 Информационно-аналитические БД. Теоретико-множественные операции реляционной алгебры Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2: Отношение R5 содержит перечень деталей, изготавливаемых только на участке 1. Отношение R6 содержит перечень деталей, изготавливаемых только на участке 2. R2 00011006 Болт М3 R5 Шифр детали 00011075 00011003 00013063 00013066 Название детали Гайка М2 Болт М1 Шайба М1 Шайба М3 R6 Шифр детали 00011077 00011004 Название детали Гайка М4 Болт М2 Информационно-аналитические БД. Теоретико-множественные операции реляционной алгебры R1= (ФИО, Паспорт, Школа); R2= (ФИО, Паспорт, Школа); R3= (ФИО, Паспорт, Школа). Отношение R1 содержит список абитуриентов, сдававших репетиционные экзамены. Отношение R2 содержит список абитуриентов, сдававших экзамены на общих условиях. Отношение R3 содержит список абитуриентов, принятых в институт. 1. Список абитуриентов, которые поступали два раза и не поступили в вуз. 2. Список абитуриентов, которые поступили в вуз с первого раза. 3. Список абитуриентов, которые поступили в вуз только со второго раза. 4. Список абитуриентов, которые поступали только один раз и не поступили. Информационно-аналитические БД. Теоретико-множественные операции реляционной алгебры Расширенное декартово произведение Сцеплением, или конкатенацией, кортежей c = <c1, c2, ..., cn> и q = <q1, q2, ..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей c и q обозначается как (c , q). (c, q) = <c1, c2, ... , cn, q1, q2, ..., qm> Расширенным декартовым произведением отношения R1 степени n со схемой SR1 = (A1, A2, ... , An), и отношения R2 степени m со схемой SR2 = (B1, B2, ..., Bm), называется отношение R3 степени n+m со схемой SR3 = (A1, A2, ... , An, B1, B2, ..., Bm), содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2. То есть если R1 = { r }, R2 = { q } Информационно-аналитические БД. Теоретико-множественные операции реляционной алгебры R7 Шифр детали 00011073 00011075 00011076 00011003 00011006 00013063 00013066 00011077 00011004 00011005 00011006 00013062 Название детали Гайка M1 Гайка М2 Гайка М3 Болт М1 Болт М3 Шайба М1 Шайба М3 Гайка М4 Болт М2 Болт М5 Болт М6 Шайба М2 R8 Цех Цех 1 Цех 2 Цех 3 R9 Шифр детали Название детали Цех 00011073 Гайка M1 Цех 1 00011075 Гайка М2 Цех 1 00011076 Гайка М3 Цех 1 00011003 Болт М1 Цех 1 00011006 Болт М3 Цех 1 00013063 Шайба М1 Цех 1 00013066 Шайба М3 Цех 1 00011077 Гайка М4 Цех 1 00011004 Болт М2 Цех 1 00011005 Болт М5 Цех 1 00011006 Болт М6 Цех 1 00013062 Шайба М2 Цех 1 00011073 Гайка M1 Цех 2 00011075 Гайка М2 Цех 2 00011076 Гайка М3 Цех 2 00011003 Болт М1 Цех 2 00011006 Болт М3 Цех 2 00013063 Шайба М1 Цех 2 00013066 Шайба М3 Цех 2 00011077 Гайка М4 Цех 2 00011004 Болт М2 Цех 2 00011005 Болт М5 Цех 2 00011006 Болт М6 Цех 2 00013062 Шайба М2 Цех 2 00011073 Гайка M1 Цех 3 00011075 Гайка М2 Цех 3 00011076 Гайка М3 Цех 3 00011003 Болт М1 Цех 3 00011006 Болт М3 Цех 3 00013063 Шайба М1 Цех 3 00013066 Шайба М3 Цех 3 00011077 Гайка М4 Цех 3 00011004 Болт М2 Цех 3 00011005 Болт М5 Цех 3 00011006 Болт М6 Цех 3 00013062 Шайба М2 Цех 3 Информационно-аналитические БД. Теоретико-множественные операции реляционной алгебры R9 R10 Шифр детали Название детали Цех 00011073 Гайка M1 Цех 1 Шифр детали Название детали Цех 00011075 Гайка М2 Цех 1 00011073 Гайка M1 Цех 1 00011076 Гайка М3 Цех 1 00011075 Гайка М2 Цех 1 00011003 Болт М1 Цех 1 00011006 Болт М3 Цех 1 00011076 Гайка М3 Цех 1 00013063 Шайба М1 Цех 1 00011003 Болт М1 Цех 1 00013066 Шайба М3 Цех 1 00011006 Болт М3 Цех 1 00011077 Гайка М4 Цех 1 00013063 Шайба М1 Цех 1 00011004 Болт М2 Цех 1 00013066 Шайба М3 Цех 1 00011005 Болт М5 Цех 1 00011006 Болт М6 Цех 1 00011077 Гайка М4 Цех 1 00013062 Шайба М2 Цех 1 00011004 Болт М2 Цех 1 00011073 Гайка M1 Цех 2 00011006 Болт М3 Цех 2 00011075 Гайка М2 Цех 2 00013063 Шайба М1 Цех 2 00011076 Гайка М3 Цех 2 00013066 Шайба М3 Цех 2 00011003 Болт М1 Цех 2 00011006 Болт М3 Цех 2 00011077 Гайка М4 Цех 2 00013063 Шайба М1 Цех 2 00011004 Болт М2 Цех 2 00013066 Шайба М3 Цех 2 00011006 Болт М6 Цех 2 00011077 Гайка М4 Цех 2 00013062 Шайба М2 Цех 2 00011004 Болт М2 Цех 2 00011073 Гайка M1 Цех 3 00011005 Болт М5 Цех 2 00011006 Болт М6 Цех 2 00011075 Гайка М2 Цех 3 00013062 Шайба М2 Цех 2 00011076 Гайка М3 Цех 3 00011073 Гайка M1 Цех 3 00011003 Болт М1 Цех 3 00011075 Гайка М2 Цех 3 00011006 Болт М3 Цех 3 00011076 Гайка М3 Цех 3 00013063 Шайба М1 Цех 3 00011003 Болт М1 Цех 3 00011006 Болт М3 Цех 3 00013066 Шайба М3 Цех 3 00013063 Шайба М1 Цех 3 00011077 Гайка М4 Цех 3 00013066 Шайба М3 Цех 3 00011005 Болт М5 Цех 3 00011077 Гайка М4 Цех 3 00011006 Болт М6 Цех 3 00011004 Болт М2 Цех 3 00011005 Болт М5 Цех 1 00011005 Болт М5 Цех 3 00011006 Болт М6 Цех 3 00011006 Болт М6 Цех 1 00013062 Шайба М2 Цех 3 00013062 Шайба М2 Цех 1 R11 Шифр детали 00011073 00011075 00011076 00011004 00013062 00011003 00011005 Название детали Гайка M1 Гайка М2 Гайка М3 Болт М2 Шайба М2 Болт М1 Болт М5 Цех Цех 2 Цех 2 Цех 2 Цех 3 Цех 3 Цех 2 Цех 3 Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция фильтрации Пусть – булевское выражение, составленное из термов сравнения с помощью связок И (), ИЛИ (), НЕ () и, возможно, скобок. В качестве термов сравнения допускаются: • терм А ос , где А – имя некоторого атрибута, принимающего значения из домена D ; – константа, взятая из того же домена D, D, oc – одна из допустимых для данного домена D операций сравнения; • терм А ос В, где А, В – имена некоторых -сравнимых атрибутов, то есть атрибутов, принимающих значения из одного и того же домена D. Тогда результатом операции выбора, или фильтрации, заданной на отношении R в виде булевского выражения, определенного на атрибутах отношения R, называется отношение включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации: Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция фильтрации R10 Шифр детали Название детали Цех 00011073 Гайка M1 Цех 1 00011075 Гайка М2 Цех 1 00011076 Гайка М3 Цех 1 00011003 Болт М1 Цех 1 00011006 Болт М3 Цех 1 00013063 Шайба М1 Цех 1 00013066 Шайба М3 Цех 1 00011077 Гайка М4 Цех 1 00011004 Болт М2 Цех 1 00011006 Болт М3 Цех 2 00013063 Шайба М1 Цех 2 00013066 Шайба М3 Цех 2 00011077 Гайка М4 Цех 2 00011004 Болт М2 Цех 2 00011006 Болт М6 Цех 2 00013062 Шайба М2 Цех 2 00011073 Гайка M1 Цех 3 00011075 Гайка М2 Цех 3 00011076 Гайка М3 Цех 3 00011003 Болт М1 Цех 3 00011006 Болт М3 Цех 3 00013063 Шайба М1 Цех 3 00013066 Шайба М3 Цех 3 00011077 Гайка М4 Цех 3 00011005 Болт М5 Цех 3 00011006 Болт М6 Цех 3 00011005 Болт М5 Цех 1 00011006 Болт М6 Цех 1 00013062 Шайба М2 Цех 1 Например, выбрать из R10 детали с шифром "0011003". R12 = R10 [Шифр детали = "0011003"] R12 Шифр детали 00011003 00011003 Название детали Болт М1 Болт М1 Цех Цех 1 Цех 3 Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция проектирования Пусть R – отношение, SR = (A1, ... , An) – схема отношения R. Обозначим через B подмножество [ Ai ] ; При этом пусть B1 – множество атрибутов из { Ai}, не вошедших в B. Если B = {A1i, Ai2,..., Aik}, B = {A1, A2j ,..., Akj} и то r [B], s = < a1j, a2j, ... , amj > ; Проекцией отношения R на набор атрибутов В, обозначаемой R[B], называется отношение со схемой, соответствующей набору атрибутов В SR[B] = B, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора В. R[B] = { r[B] } По определению отношений все дублирующие кортежи удаляются из результирующего отношения. Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция проектирования Выберем все цеха, которые изготавливают деталь "Болт М1". Для этого нам необходимо из отношения R10 выбрать детали с заданным названием, а потом полученное отношение спроектировать на столбец "Цех". Результатом выполнения этих операций будет отношение R14: R13 = R10 [ Название детали = "Болт М1" ] R14 = R13 [ Цех ] R13 Шифр детали 00011003 00011003 Название детали Болт М1 Болт М1 Цех Цех 1 Цех 3 R14 Цех Цех 1 Цех 3 Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция условного соединения Пусть R = {r}, Q={q} - исходные отношения, SR, SQ - схемы отношений R и Q соответственно. SR = (A1, A2, ... , Ak) ; SQ = (B1, B2, ... , Bm), где Ai, Bj – имена атрибутов в схемах отношений R и Q соответственно. При этом полагаем, что заданы наборы атрибутов А и В и эти наборы состоят из -сравнимых атрибутов. Тогда соединением отношений R и Q при условии будет подмножество декартова произведения отношений R и Q, кортежи которого удовлетворяют условию , рассматриваемому как одновременное выполнение условий: 1. 2. Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция условного соединения Пусть отношение R15 содержит перечень деталей с указанием материалов, из которых эти детали изготавливаются, и оно имеет вид: R15 Шифр детали 00011073 00011075 00011076 00011003 00011006 00013063 00013066 00011077 00011004 00011005 00013062 Название детали Гайка M1 Гайка М2 Гайка М3 Болт М1 Болт М3 Шайба М1 Шайба М3 Гайка М4 Болт М2 Болт М5 Шайба М2 Материал сталь-ст1 сталь-ст2 сталь-ст1 сталь-ст3 сталь-ст3 сталь-ст1 сталь-ст1 сталь-ст2 сталь-ст3 сталь-ст3 сталь-ст1 R16 Название детали Гайка M1 Гайка М3 Шайба М1 Шайба М3 Шайба М2 Получим перечень деталей, которые изготавливаются в цеху 1 из материала "сталь-ст1" Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция деления Пусть R – отношение со схемой SR = (A1, A2 ,..., Ak) ; Пусть A – некоторый набор атрибутов A1 – набор атрибутов, не входящих в множество A. Пересечение множеств A и A1 пусто: объединение множеств равно множеству всех атрибутов исходного отношения: Тогда множеством образов элемента у проекции R[A] называется множество таких элементов y проекции R[A], для которых сцепление (x, y) является кортежами отношения R, то есть множество образов Например, множеством образов отношения R15 по материалу "сталь-ст2" будет множество кортежей R15.Материал = {< 00011075, Гайка М2, "сталь-ст2">, < 00011077, Гайка М4, "сталь-ст2">} Информационно-аналитические БД. Специальные операции реляционной алгебры. Операция деления Пусть даны два отношения R и T соответственно со схемами: SR = (A1, A2, ... , Ak); ST = (B1, B2, ... , Bm) ; A и B - наборы атрибутов этих отношений, одинаковой длины (без повторений) Проекции R[A] и T[B] совместимы по объединению, то есть имеют эквивалентные схемы: SR[A] ~ ST[B] . Тогда операция деления ставит в соответствие отношениям R и T отношение Q = R[A:B]T, кортежи которого являются теми элементами проекции R[A1], для которых T[B] входит в построенные для них множество образов: R 17 = R10[Шифр детали, Наименование детали: Шифр детали, Наименование детали]R7 R 17 Цех Цех1 Информационно-аналитические БД. Пример применения операций реляционной алгебры R1 = <ФИО, Дисциплина, Оценка> ; R2 = <ФИО, Группа> ; R3 = < Группы, Дисциплина>, где R1 – информация о попытках (как успешных, так и неуспешных) сдачи экзаменов студентами; R2 – состав групп; R3 – список дисциплин, которые надо сдавать каждой группе. • Список студентов, которые сдали экзамен по БД на "отлично". • Список тех, кто должен был сдавать экзамен по БД, но пока еще не сдавал. • Список всех, кто сдавал экзамен по "БД". R5 = (R1 [Дисциплина = "БД"])[ФИО] ; и, наконец, результат – все, кто есть в первом множестве, но не во втором: S=R4 \R5 ; Информационно-аналитические БД. Пример применения операций реляционной алгебры • Список несчастных, имеющих несколько двоек: • Список круглых отличников. Строим список всех пар <студент– дисциплина>, которые в принципе должны быть сданы: R4 = (R2[R2 Группа = R3.Группа] R3)[ФИО, Дисциплина] ; Строим список пар <студент– дисциплина>, где получена оценка "отлично": R5 = (R1[Оценка = 5])[ФИО, Дисциплина] ; Строим список студентов, что-либо не сдавших на "отлично": R6 = (R4 \ R5)[ФИО]. Наконец, исключив последнее отношение из общего списка студентов, получаем результат: R2[ФИО] \ R6