Реляционная модель данных презентация. Реляционная модель данных базы данных реляционная алгебра


Edgar Frank "Ted" Codd Эдгар Френк Кодд, Dorset, England , Williams Island, Florida создал и описал концепцию реляционных баз данных и реляционную алгебру ; для проектирования БД предложил аппарат нормализации отношений Edgar Frank "Ted" Codd Эдгар Френк Кодд, Dorset, England , Williams Island, Florida создал и описал концепцию реляционных баз данных и реляционную алгебру ; для проектирования БД предложил аппарат нормализации отношений Реляционная модель данных




Информационное правило - вся информация в реляционной БД (включая имена таблиц и столбцов) должна определяться строго как значения в таблицах. Информационное правило - вся информация в реляционной БД (включая имена таблиц и столбцов) должна определяться строго как значения в таблицах. Гарантированный доступ - любое значение в реляционной БД должно быть гарантированно доступно для использования через комбинацию имени таблицы, значения первичного ключа и имени столбца Гарантированный доступ - любое значение в реляционной БД должно быть гарантированно доступно для использования через комбинацию имени таблицы, значения первичного ключа и имени столбца Поддержка пустых значений (null value) - СУБД должна уметь работать с пустыми значениями (неизвестными, неопределёнными или неиспользованными значениями), в отличие от значений по умолчанию и независимо для любых доменов. Поддержка пустых значений (null value) - СУБД должна уметь работать с пустыми значениями (неизвестными, неопределёнными или неиспользованными значениями), в отличие от значений по умолчанию и независимо для любых доменов. Информационное правило - вся информация в реляционной БД (включая имена таблиц и столбцов) должна определяться строго как значения в таблицах. Информационное правило - вся информация в реляционной БД (включая имена таблиц и столбцов) должна определяться строго как значения в таблицах. Гарантированный доступ - любое значение в реляционной БД должно быть гарантированно доступно для использования через комбинацию имени таблицы, значения первичного ключа и имени столбца Гарантированный доступ - любое значение в реляционной БД должно быть гарантированно доступно для использования через комбинацию имени таблицы, значения первичного ключа и имени столбца Поддержка пустых значений (null value) - СУБД должна уметь работать с пустыми значениями (неизвестными, неопределёнными или неиспользованными значениями), в отличие от значений по умолчанию и независимо для любых доменов. Поддержка пустых значений (null value) - СУБД должна уметь работать с пустыми значениями (неизвестными, неопределёнными или неиспользованными значениями), в отличие от значений по умолчанию и независимо для любых доменов. 12 ПРАВИЛ КОДДА


Онлайновый реляционный каталог - описание БД и ее содержания должны быть представлены на логическом уровне как таблицы, к которым можно применять запросы, используя язык базы данных. Онлайновый реляционный каталог - описание БД и ее содержания должны быть представлены на логическом уровне как таблицы, к которым можно применять запросы, используя язык базы данных. Исчерпывающий язык управления данными - по крайней мере, один из поддерживаемых языков должен иметь четко определенный синтаксис и быть всеобъемлющим. Он должен поддерживать описание структуры данных и манипулирование ими, правила целостности, авторизацию и транзакции. Исчерпывающий язык управления данными - по крайней мере, один из поддерживаемых языков должен иметь четко определенный синтаксис и быть всеобъемлющим. Он должен поддерживать описание структуры данных и манипулирование ими, правила целостности, авторизацию и транзакции. Правило обновления представлений (views) - все представления, теоретически обновляемые, могут быть обновлены через систему. Правило обновления представлений (views) - все представления, теоретически обновляемые, могут быть обновлены через систему. Вставка, обновление и удаление - СУБД поддерживает не только запрос на отбор данных, но и вставку, обновление и удаление Вставка, обновление и удаление - СУБД поддерживает не только запрос на отбор данных, но и вставку, обновление и удаление Онлайновый реляционный каталог - описание БД и ее содержания должны быть представлены на логическом уровне как таблицы, к которым можно применять запросы, используя язык базы данных. Онлайновый реляционный каталог - описание БД и ее содержания должны быть представлены на логическом уровне как таблицы, к которым можно применять запросы, используя язык базы данных. Исчерпывающий язык управления данными - по крайней мере, один из поддерживаемых языков должен иметь четко определенный синтаксис и быть всеобъемлющим. Он должен поддерживать описание структуры данных и манипулирование ими, правила целостности, авторизацию и транзакции. Исчерпывающий язык управления данными - по крайней мере, один из поддерживаемых языков должен иметь четко определенный синтаксис и быть всеобъемлющим. Он должен поддерживать описание структуры данных и манипулирование ими, правила целостности, авторизацию и транзакции. Правило обновления представлений (views) - все представления, теоретически обновляемые, могут быть обновлены через систему. Правило обновления представлений (views) - все представления, теоретически обновляемые, могут быть обновлены через систему. Вставка, обновление и удаление - СУБД поддерживает не только запрос на отбор данных, но и вставку, обновление и удаление Вставка, обновление и удаление - СУБД поддерживает не только запрос на отбор данных, но и вставку, обновление и удаление 12 ПРАВИЛ КОДДА


Физическая независимость данных - на программы-приложения и специальные программы логически не влияют изменения физических методов доступа к данным и структур хранилищ данных. Физическая независимость данных - на программы-приложения и специальные программы логически не влияют изменения физических методов доступа к данным и структур хранилищ данных. Логическая независимость данных - на программы-приложения и специальные программы логически не влияют, в пределах разумного, изменения структур таблиц. Логическая независимость данных - на программы-приложения и специальные программы логически не влияют, в пределах разумного, изменения структур таблиц. Независимость целостности - язык БД должен быть способен определять правила целостности. Они должны сохраняться в онлайновом справочнике, и не должно существовать способа их обойти. Независимость целостности - язык БД должен быть способен определять правила целостности. Они должны сохраняться в онлайновом справочнике, и не должно существовать способа их обойти. Независимость распределения - на программы-приложения и специальные программы логически не влияет, первый раз используются данные или повторно. Независимость распределения - на программы-приложения и специальные программы логически не влияет, первый раз используются данные или повторно. Неподрывность - невозможность обойти правила целостности, определенные через язык базы данных, использованием языков низкого уровня Неподрывность - невозможность обойти правила целостности, определенные через язык базы данных, использованием языков низкого уровня Физическая независимость данных - на программы-приложения и специальные программы логически не влияют изменения физических методов доступа к данным и структур хранилищ данных. Физическая независимость данных - на программы-приложения и специальные программы логически не влияют изменения физических методов доступа к данным и структур хранилищ данных. Логическая независимость данных - на программы-приложения и специальные программы логически не влияют, в пределах разумного, изменения структур таблиц. Логическая независимость данных - на программы-приложения и специальные программы логически не влияют, в пределах разумного, изменения структур таблиц. Независимость целостности - язык БД должен быть способен определять правила целостности. Они должны сохраняться в онлайновом справочнике, и не должно существовать способа их обойти. Независимость целостности - язык БД должен быть способен определять правила целостности. Они должны сохраняться в онлайновом справочнике, и не должно существовать способа их обойти. Независимость распределения - на программы-приложения и специальные программы логически не влияет, первый раз используются данные или повторно. Независимость распределения - на программы-приложения и специальные программы логически не влияет, первый раз используются данные или повторно. Неподрывность - невозможность обойти правила целостности, определенные через язык базы данных, использованием языков низкого уровня Неподрывность - невозможность обойти правила целостности, определенные через язык базы данных, использованием языков низкого уровня 12 ПРАВИЛ КОДДА


Наиболее распространенная трактовка реляционной модели данных принадлежит К.Дейту. Согласно Дейту, реляционная модель состоит из трех частей: Реляционная модель данных Структурной части.Структурной части. Целостной части.Целостной части. Манипуляционной частиМанипуляционной части Структурной части.Структурной части. Целостной части.Целостной части. Манипуляционной частиМанипуляционной части


Структурная часть описывает, какие объекты рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные n- арные отношения.Структурная часть описывает, какие объекты рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные n- арные отношения. Целостная часть описывает ограничения специального вида, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и целостность внешних ключей.Целостная часть описывает ограничения специального вида, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и целостность внешних ключей. Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление.Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление. Реляционная модель данных


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


Основные определения Отношение - это множество кортежей, соответствующих одной схеме отношения. На самом деле, понятие схемы отношения ближе всего к понятию структурного типа данных в языках программирования. Реляционная модель данных Кортеж - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута. "Значение" является допустимым значением домена данного атрибута Попросту говоря, кортеж - это набор именованных значений заданного типа.


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


В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал язык SQL (Structured Query Language). Язык SQL представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий синтаксис, близкий к фразам английского языка и расширенный дополнительными возможностями, отсутствующими в реляционной алгебре и реляционном исчислении.




ОСНОВЫ РЕЛЯЦИОННОЙ АЛГЕБРЫ Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор выглядит как функция с отношениями в качестве аргументов: Замкнутость реляционной алгебры







ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ ОПЕРАТОРЫ Объединение. Объединением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В и телом, состоящим из кортежей, принадлежащих или А, или В, или обоим отношениям. Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение А, и отношение В, то в объединение он входит один раз.








Замечание. Как видно из приведенного примера, потенциальные (возможные) ключи, которые были в отношениях А и В не наследуются объединением этих отношений. Поэтому, в объединении отношений А и В атрибут «номер» может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию объединения как "объединение множеств". Конечно, объединение отношений А и В имеет, как и любое отношение, возможный ключ, например, состоящий из всех атрибутов.









Декартово произведение Декартовым произведением двух отношений А и В называется отношение, заголовок которого является сцеплением заголовков отношений А и В, а тело состоит из кортежей, являющихся сцеплением кортежей отношений А*В={(А1В1)(А1В2)…..AnBn}: Синтаксис Декартово произведение: A TIMES B



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




Выборка (ограничение, селекция) Выборкой (ограничением, селекцией) на отношении А с условием называется отношение с тем же заголовком, что и у отношения А, и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условие дают значение ИСТИНА. представляет собой логическое выражение, в которое могут входить атрибуты отношения А и (или) скалярные выражения. ИСТИНА. представляет собой логическое выражение, в которое могут входить атрибуты отношения А и (или) скалярные выражения. В простейшем случае условие имеет вид, где - один из операторов сравнения (и т.д.), а и - атрибуты отношения или скалярные значения. Такие выборки называются -выборки (тэта- выборки) или -ограничения, -селекции.В простейшем случае условие имеет вид, где - один из операторов сравнения (и т.д.), а и - атрибуты отношения или скалярные значения. Такие выборки называются -выборки (тэта- выборки) или -ограничения, -селекции. Синтаксис операции выборки:Синтаксис операции выборки: Или



Проекция Проекцией отношения А по атрибутам X,Y,Z, где каждый из атрибутов принадлежит отношению A, называется отношение с заголовком (X,Y,Z) и телом, содержащим множество кортежей вида(x, y, z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z. Синтаксис операции проекции A Замечание. Операция проекции дает "вертикальный срез" отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.



Соединения отношений. Наряду с операциями выборки и проекции, является одной из наиболее важных реляционных операций. Обычно рассматривается несколько разновидностей операции соединения: –Общая операция соединения –Тэта-соединение –Экви-соединение –Естественное соединение




Общая операция соединения Таким образом, операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях А и В имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.


Тэта-соединение Определение Пусть отношение А содержит атрибут Х, отношение В содержит атрибут Y, а Тэта- один из операторов сравнения (и т.д.). Тогда - соединением отношения А по атрибуту Х с отношением В по атрибуту Y называют отношение Это частный случай операции общего соединения. Иногда, для операции -соединения применяют следующий, более короткий синтаксис:


Пример.7 Тэта-соединение Рассмотрим некоторую компанию, в которой хранятся данные о поставщиках и поставляемых деталях. Пусть поставщикам и деталям присвоен некий статус. Пусть бизнес компании организован таким образом, что поставщики имеют право поставлять только те детали, статус которых не выше статуса поставщика


Пример.7 Тэта-соединение Номер поставщика Наименование поставщика (Статус поставщика) Х 1Иванов4 2Петров2 3Сидоров1 Таблица 13 Отношение A (Поставщики) Номер деталиНаименование детали Статус детали Y 1Болт3 2Гайка2 3Винт1 Таблица 14 Отношение B (Детали)


Пример.7 Тэта-соединение Номер Постав- щика Наименова ние поставщика Статус поставщика X Номер детали Наименов а ние детали Статус детали Y 1Иванов41Болт3 1Иванов42Гайка2 1Иванов43Винт1 2Петров13Винт1 3Сидоров22Гайка2 3Сидоров23Винт1 Таблица 15 Отношение "Какие поставщики поставляют какие детали"


Пример8. Экви-соединение Пусть имеются отношения P, D и PD, хранящие информацию о поставщиках, деталях и поставках соответственно (для удобства введем краткие наименования атрибутов): Номер Детали DNUM Наименование детали DNAME 1Болт 2Гайка 3Винт Номер поставщика PNUM Наименование поставщика PNAME 1Иванов 2Петров 3Сидоров Таблица 16 Отношение P (Поставщики) Таблица 17 Отношение D (Детали)


Пример8. Экви-соединение Номер поставщика PNUM Номер детали DNUM Поставляемое количество VOLUME Таблица 18 Отношение PD (Поставки)


Пример8. Экви-соединение Номер поставщик а PNUM1 Наименование поставщика PNAME Номер Поставщика PNUM2 Номер детали DNUM Поставляемо е количество VOLUME 1Иванов Иванов Иванов Петров Петров Сидоров Таблица 19 Отношение "Какие детали поставляются какими поставщиками"


Пример8. Экви-соединение Недостатком экви-соединения является то, что если соединение происходит по атрибутам с одинаковыми наименованиями (а так чаще всего и происходит!), то в результатирующем отношении появляется два атрибута с одинаковыми значениями. В нашем примере атрибуты PNUM1 и PNUM2 содержат дублирующие данные. Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение.


Естественное соединение Определение Пусть даны отношения А(А1,…, Аn,Х1,…, Хm) и B(Х1,…,Хm,В1,…,Вn), имеющие одинаковые атрибуты (Х1,…,Хn) (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах). Тогда естественным соединением отношений А и В называется отношение с заголовком (А1,…, Аn,Х1,…, Хm,В1,…,Вn) и телом, содержащим множество кортежей (а1,…,аn,x1,…,xn,b1,…,bn), таких, что Естественное соединение настолько важно, что для него используют специальный синтаксис: A JOIN B


Естественное соединение Замечание. В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем одинаковым атрибутам. Замечание. Естественное соединение эквивалентно следующей последовательности реляционных операций: –Переименовать одинаковые атрибуты в отношениях –Выполнить декартово произведение отношений –Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена –Выполнить проекцию, удалив повторяющиеся атрибуты –Переименовать атрибуты, вернув им первоначальные имена Замечание. Можно выполнять последовательное естественное соединение нескольких отношений. Нетрудно проверить, что естественное соединение (как, впрочем, и соединение общего вида) обладает свойством ассоциативности, т.е. (A JOIN B) JOIN C=A JOIN (И JOIN C)


Пример9. Естественное соединение В предыдущем примере ответ на вопрос "какие детали поставляются поставщиками", более просто записывается в виде естественного соединения трех отношений P JOIN PD JOIN D (для удобства просмотра порядок атрибутов изменен, это является допустимым по свойствам отношений): Номер поставщика PNUM Наименование поставщика PNAME Номер детали DNUM Наименован ие детали DNAME Поставляемое количество VOLUME 1Иванов1Болт100 1Иванов2Гайка200 1Иванов3Винт300 2Петров1Болт150 2Петров2Гайка250 3Сидоров1Болт1000 Таблица 20 Отношение P JOIN PD JOIN D


Деление Определение. Пусть даны отношения А(Х1,…, Хn,Y1,…, Ym) и B(Y1,…,Ym), причем атрибуты Y1,…,Ym - общие для двух отношений. Делением отношений A на B называется отношение с заголовком (X1,…,Xn) и телом, содержащим множество кортежей (x1,…,xn), таких, что для всех кортежей в отношении A найдется кортеж. Отношение A выступает в роли делимого, отношение B выступает в роли делителя. Деление отношений аналогично делению чисел с остатком. Синтаксис операции деления:


Пример. Деление Ответим на вопрос, "какие поставщики поставляют все детали?". В качестве делимого возьмем проекцию X=PD[ PNUM,DNUM ], содержащую номера поставщиков и номера поставляемых ими деталей: Номер Поставщика PNUM Номер Детали DNUM Таблица 21 Проекция X=PD


Пример. Деление В качестве делителя возьмем проекцию Y=D [ DNUM], содержащую список номеров всех деталей (не обязательно поставляемых кем- либо): Номер детали DNUM Таблица 22 Проекция Y=D Select DISTINCT PNUM from Y, X where NOT EXIST (Select DNUM from X where Y.DNUM=X.DNUM) Деление дает список номеров поставщиков, поставляющих все детали: Таблица 23 Отношение X DEVIDEBY Y Номер поставщика PNUM 1


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


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

ОСНОВНЫЕ ПОНЯТИЯ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ

  • В основе реляционных систем лежит реляционная модель данных .
  • Принципы реляционной модели были заложены в 1969–1970 гг. американским ученым Е. Ф. Коддом (E. F. Codd), в то время работавшим в корпорации IBM. Будучи математиком по образованию, он привнес в область управления базами данных строгие математические принципы и точность, которых не хватало ранним системам. Хотя реляционный подход утвердился не сразу, можно отметить, что почти все созданные с конца 70-х гг. продукты баз данных основаны именно на реляционном подходе.
  • Подавляющее большинство научных исследований в области баз данных в течение последних 35 лет также проводилось именно в этом направлении.
  • Рассматривая и постепенно уточняя основные понятия реляционной модели, будем иметь в виду три компоненты модели данных:
    • структуры данных,
    • операции, которые можно выполнять над данными, и
    • ограничения, связанные с обеспечением целостности данных.
  • Основной структурой данных в реляционной модели являются таблицы , называемые в реляционной теории отношениями. Собственно от термина отношение (по-английски relation) и произошло само название модели – реляционная . На рисунке приведен пример такой таблицы-отношения и пояснение основных терминов реляционной модели – кортеж, кардинальное число, атрибут, степень, домен, первичный ключ .
ОСНОВНЫЕ ПОНЯТИЯ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ
  • Отношение это таблица , подобная приведенной на рисунке, состоящая из строк и столбцов и имеющая вверху строку, называемую заголовок отношения .
  • Строки таблицы-отношения называются кортежами (tuple), а столбцы атрибутами (attribute).
  • Количество кортежей в отношении называется кардинальным числом отношения, а количество атрибутов называется степенью отношения.
  • Каждый атрибут в отношении имеет наименование , которое указывается в заголовочной части отношения.
  • Ключ отношения – это атрибут или набор атрибутов отношения такие, что в любой момент времени в отношении не существует строк, для которых значение или комбинация значений ключевых атрибутов являются одинаковыми. Ключ , таким образом, является уникальным идентификатором кортежей отношения (на рисунке ключевой атрибут выделен жирным шрифтом).
  • Домен отношения – это множество значений, из которого могут браться значения конкретного атрибута. То есть конкретный набор значений атрибута в любой момент времени должен быть подмножеством множества значений домена, на котором определен этот атрибут. Значения атрибута, которые отсутствуют в множестве, задаваемом доменом, являются недопустимыми.
ОСНОВНЫЕ ПОНЯТИЯ РЕЛЯЦИОННОЙ МОДЕЛИ ДАННЫХ
  • Понятие домена является важным для реляционной модели. Домен фактически задает ограничения, которым должны удовлетворять значения соответствующего атрибута.
  • Как уже отмечалось, приведенные выше определения не являются строгими. Такие термины как таблица, строка, столбец, строго говоря, не являются полностью эквивалентными используемым в реляционной модели математическим понятиям отношение, кортеж, атрибут соответственно. Однако на практике их часто используют именно как синонимы, что, в общем, допустимо, если при этом понимать, какой действительный смысл вкладывается в эти термины.
  • Основные задачи проектирования баз данных:
    • Обеспечение хранения в БД всей необходимой информации.
    • Обеспечение возможности получения данных по всем необходимым запросам.
    • Сокращение избыточности и дублирования данных.
    • Обеспечение целостности данных (правильности их содержания): исключение противоречий в содержании данных, исключение их потери и т.д.
  • Основные этапы проектирования баз данных:
  • 1) Концептуальное (инфологическое) проектирование – построение формализованной модели предметной области. Такая модель строится с использованием стандартных языковых средств, обычно графических, например ER-диаграмм (диаграмм «Сущность-связь»). Такая модель строится без ориентации на какую-либо конкретную СУБД.
    • Основные элементы данной модели:
    • Описание объектов предметной области и связей между ними.
    • Описание информационных потребностей пользователей (описание основных запросов к БД).
    • Описание алгоритмических зависимостей между данными.
    • Описание ограничений целостности, т.е. требований к допустимым значениям данных и к связям между ними.
ЭТАПЫ И ОСНОВНЫЕ ПРИНЦИПЫ ПРОЕКТИРОВАНИЯ БАЗЫ ДАННЫХ
  • 2) Логическое (даталогическое) проектирование – отображение инфологической модели на модель данных, используемую в конкретной СУБД, например на реляционную модель данных. Для реляционных СУБД даталогическая модель – набор таблиц, обычно с указанием ключевых полей, связей между таблицами. Если инфологическая модель построена в виде ER-диаграмм (или других формализованных средств), то даталогическое проектирование представляет собой построение таблиц по определённым формализованным правилам, а также нормализацию этих таблиц. Этот этап может быть в значительной степени автоматизирован.
  • 3) Физическое проектирование – реализация даталогической модели средствами конкретной СУБД, а также выбор решений, связанных с физической средой хранения данных: выбор методов управления дисковой памятью, методов доступа к данным, методов сжатия данных и т.д. – эти задачи решаются в основном средствами СУБД и скрыты от разработчика БД.
  • На этапе инфологического проектирования в ходе сбора информации о предметной области требуется выяснить:
    • основные объекты предметной области (объекты, о которых должна храниться информация в БД);
    • атрибуты объектов;
    • связи между объектами;
    • основные запросы к БД.
ЭТАПЫ И ОСНОВНЫЕ ПРИНЦИПЫ ПРОЕКТИРОВАНИЯ БАЗЫ ДАННЫХ
  • Принципы разработки многопользовательских баз данных долж-ны сводиться к соблюдению двух обязательных условий: систем-ного подхода и стандартизации .
  • Системный подход. Системный подход к разработке информа-ционной системы означает, что такая система рассматривается как большая система, состоящая из некоторого множества вза-имосвязанных и взаимодействующих между собой элементов. При проектировании информационных систем необходимо соблюдать следующие принципы:
    • учет интересов всех потенциальных пользователей систем;
    • модульный принцип разработки и внедрения.
  • Стандартизация. Стандартизация разработки информационных систем, учитывая их многопользовательский характер, имеет сле-дующие аспекты:
    • информационный;
    • программный;
    • аппаратный.
  • Стандартизация информационного обеспечения обусловлена принципами компьютерной обработки символьной информации, так как объекты баз данных должны однозначно распознаваться компьютером.
ER-МОДЕЛЬ ДАННЫХ
  • Модель сущность-связь (ERM) - модель данных, позволяющая описывать концептуальные схемы предметной области.
  • ER-модель используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи , которые могут устанавливаться между этими сущностями.
  • Во время проектирования баз данных происходит преобразование ER-модели в конкретную схему базы данных на основе выбранной модели данных (реляционной, объектной, сетевой или др.).
  • ER-модель представляет собой формальную конструкцию , которая сама по себе не предписывает никаких графических средств её визуализации.
  • Модель «сущность-связь» была предложена в 1976 году Питером Пин-Шен Ченом (англ. Peter Pin-Shen Chen), американским профессором компьютерных наук в университете штата Луизиана.
ER-МОДЕЛЬ ДАННЫХ
  • Нотация Питера Чена
  • Множества сущностей изображаются в виде прямоугольников, множества отношений изображаются в виде ромбов.
  • Если сущность участвует в отношении , они связаны линией. Если отношение не является обязательным, то линия пунктирная.
  • Атрибуты изображаются в виде овалов и связываются линией с одним отношением или с одной сущностью
  • Преобразование концептуальной модели в реляционную состоит в следующем:
    • Построить набор предварительных таблиц и указать первичные ключи.
    • Провести процесс нормализации.
  • Первый пункт мы рассматривали в третьем уроке, со вторым мы пока не знакомы, но ознакомимся на практике. Итак, нам надо построить набор таблиц.
  • Сделать это несложно, т.к. таблицы - это наши объекты, а поля таблиц - атрибуты объектов. Набор предварительных таблиц, исходя из нашей концептуальной модели, выглядит так:
ПРЕОБРАЗОВАНИЕ КОНЦЕПТУАЛЬНОЙ МОДЕЛИ В РЕЛЯЦИОННУЮ
  • Таким образом, у нас определены таблицы , поля , первичные ключи (РК) и связи (FK).
  • В таблицах Журнал поставок и Журнал покупок первичные ключи - составные , т.е. состоят из двух полей .
  • Теоретически бывают таблицы, в которых все поля являются одним составным ключом .
  • Нормализация - это пошаговый, обратимый процесс замены исходной схемы другой схемой, в которой таблицы имеют более простую и логичную структуру. Это нужно для устранения избыточности данных.

| Виды моделей данных

Урок 40
Виды моделей данных

Изучив эту тему, вы узнаете и повторите::

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

Связи между таблицами реляционной модели данных

Реляционная модель данных, как правило, состоит из нескольких связанных между собой таблиц. Если вы связываете два объекта нитью, то к одному концу нити привязан один объект, к другому концу привязан второй объект. Также и между таблицами: один конец связи относится к одной таблице, а второй конец связи - к другой. Таким образом, связь всегда соединяет только две таблицы.

Связи между таблицами имеют один из трех типов:

- «один-к-одному»;
- «один-ко-многим»;
- «многие-ко-многим».

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

Предположим у нас есть две таблицы - ТАБ1 и ТАБ2. 

Связь «один-к-одному» (условное обозначение 1:1) означает, что одной записи в таблице ТАБ1 соответствует только одна запись в таблице ТАБ2, а одной записи в таблице ТАБ2 соответствует только одна запись в таблице ТАБ1. При связи «один-к- одному» обе таблицы, и ТАБ1 и ТАБ2, имеют одинаковое количество записей и между этими записями установлено взаимнооднозначное соответствие.

Например, одна таблица описывает класс Школы. В ней могут быть помещены такие данные, как номер школы, направление (образовательный уклон), адрес, телефон. Другая таблица описывает класс Директора школ по следующим параметрам: фамилия, имя, отчество, личные данные директора. Поскольку у любой школы может быть только один директор, и любой человек может быть директором только в одной школе, то между такими двумя таблицами имеет место связь «один-к-одному». Связь «один-к-одному» является довольно редким типом связей.

Связь «один-ко-многим» (условное обозначение 1:М) означает, что одной записи в таблице ТАБ1 (конец связи «один») соответствует много записей в таблице ТАБ2 (конец связи «многие»), но одной записи в таблице ТАБ2 соответствует только одна запись в таблице ТАБ1. Таблица со стороны связи «один» называется главной, а таблица со стороны связи «многие» называется подчиненной. Эта связь характерна также тем, что записи в главной таблице могут и не иметь подчиненных записей, но для каждой записи в подчиненной таблице обязательно должна быть запись в главной таблице. Связь «один-ко-многим» является наиболее распространенным типом связей.

Например, пусть таблица Дома содержит сведения об улицах и номерах домов, таблица Квартиры содержит сведения о номере квартиры в доме, количестве комнат, общей жилой площади. Между таблицами Дома и Квартиры имеет место связь «один- ко-многим» - «один» со стороны таблицы Дома, «многие» со стороны таблицы Квартиры. Это так, потому что один дом мо жет содержать много квартир, но любая конкретная квартира находится только в одном доме. Когда описывают связь типа «один-ко-многим», то сначала указывают главную таблицу, а затем подчиненную.

Связь «многие-ко-многим» (условное обозначение М:М) означает, что одной записи в ТАБ1 соответствует много записей в ТАБ2, а одной записи в ТАБ2 соответствует много записей в ТАБ1.

Например, в таблице Остановки содержатся адреса остановок для маршрутов городского транспорта, а в таблице Маршруты - перечень маршрутов. Между этими таблицами установлена связь «многие-ко-многим», так как на одну остановку могут прибывать многие маршруты, и наоборот, каждому маршруту соответствует много остановок.

Графическое обозначение реляционной модели

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

Рис. 4.9. Реляционная модель

Составим реляционную модель для базы данных Песни. Представим сведения о песнях в виде двух взаимосвязанных классов - Исполнители и Песни. Тогда вместо одной таблицы получится две (табл. 4.3, 4.4).

Будем рассматривать такую модель, где каждую песню исполняет только один исполнитель. Тогда можно сказать, что классы Исполнители и Песни связаны отношением «один-ко-многим». Естественно, что в таблице Исполнители будет меньше записей, чем в таблице Песни.

Таблица 4.3. Исполнители

Таблица 4.4. Песни

Если бы мы приняли условие, что каждая песня может быть исполнена несколькими исполнителями, то отношение между таблицами стало бы «многие-ко-многим», и это была бы уже другая модель.

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

Как правило, это поле имеет имя Код <имя объекта>. Это поле вводится в расчете на дальнейшую компьютерную обработку данных. Дело в том, что программной среде «легче» работать с числами, чем с текстом. Порядковые номера не повторяются, поэтому такое поле можно выбрать в качестве ключевого.

Так в таблицу Исполнители можно ввести поле Код исполнителя числового типа, а в таблицу Песни - поле Код песни.

В таблицах, связанных отношением «один-ко-многим», связь между таблицами осуществляется по ключевому полю следующим образом. В таблицу Песни добавляется поле с названием Код исполнителя и для каждой песни в нем указываются соответствующие номера исполнителей. Такой номер, по сути, несет в себе всю информацию об исполнителе, представленную в соответствующей таблице. Это и означает, что связь между таблицами осуществлена по ключу Код исполнителя. Реляционная модель этой базы данных представлена на рис. 4.10.

Рис. 4.10. Реляционная модель базы данных Любимые песни

Возникает закономерный вопрос: зачем нужно было разделять одну таблицу на две? На первый взгляд может показаться, что одна таблица (см. табл. 4.1) удобнее для восприятия информации. Но в такой таблице нам надо было каждый раз полностью указывать название исполнителя и все его характеристики. Поскольку по свойству реляционных таблиц каждая запись (строка) считается независимой от других записей, то такая таблица не отражает в полной мере связь между песнями и исполнителями. Более того, если в какой-то строке вы записали исполнителя с ошибкой, то это будет восприниматься как новое значение. Если же исполнители выделены в отдельную таблицу, то такие операции как удаление или изменение данных можно производить намного легче и быстрее.

Надо заметить, что связь «многие-ко-многим» реализуется другим, более сложным, способом.

Преобразование иерархической и сетевой моделей данных к реляционной

Мы познакомились с тремя моделями данных. Реляционная модель является наиболее предпочтительной моделью хранения данных. Большинство компьютерных сред ориентированы на реляционную модель. Иерархическую и сетевую модель можно свести к реляционной.

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

Рассмотрим пример иерархической модели населенных пунктов планеты Земля (рис. 4.11). В ней выделен корневой уровень - планета Земля, второй уровень обозначает континенты, третий - страны, четвертый - населенные пункты.

Рис. 4.11. Иерархическая модель Планета Земля

Корневой уровень будет служить названием базы данных. Каждый следующий уровень описываем в виде отдельной таблицы. Получаем следующую реляционную модель (рис. 4.12).

Рис. 4.12. Реляционная модель Планета Земля

Между таблицами установлены связи типа «один-ко-многим». Связь со стороны «один» относится к таблице, описывающей верхний уровень, связи со стороны «многие» относится к таблице, описывающей подчиненный уровень.

Для сетевой модели Увлечения подростков (рис. 4.13) каждый уровень также оформляем в виде отдельной таблицы. Между таблицами установлена связь «многие-ко-многим».

Рис. 4.13. Реляционная модель Увлечения подростков

Контрольные вопросы и задания

1. Что такое модель данных и для чего она нужна?

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

3. Какие вы знаете формы представления информационной модели? Сравните их и сделайте вывод о том, когда лучше использовать ту или иную форму представления.

4. Приведите примеры моделей данных для разных предметных областей.

5. Что представляет собой иерархическая модель данных в общем виде?

6. Что такое узел иерархической модели данных?

7. В чем состоят свойства иерархической модели данных?

8. Приведите примеры иерархических моделей данных.

9. Что представляет собой сетевая модель данных в общем виде?

10. В чем состоят свойства сетевой модели данных?

11. Приведите примеры сетевых моделей данных.

12. Что представляет собой реляционная модель данных в общем виде?

13. Как вы понимаете связь между информационными объектами 1:1? Приведите примеры такого типа связей.

14. Как вы понимаете связь между информационными объектами 1:М? Приведите примеры этого типа связей.

15. Как вы понимаете связь между информационными объектами М:М? Приведите примеры данного типа связей.

16. В чем состоят свойства реляционной модели данных?

17. Приведите примеры реляционных моделей данных.

18. Как графически отображается реляционная модель данных?

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

20. Приведите примеры преобразования сетевой модели в реляционную.

1 слайд

2 слайд

Ядром любой базы данных является модель данных. Модель данных представляет собой множество структур данных, ограничений целостности и операций манипулирования данными. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними. Модель данных - совокупность структур данных и операций их обработки.

3 слайд

4 слайд

Иерархическая модель данных Объекты, связанные иерархическими отношениями, образуют ориентированный граф (перевернутое дерево). К основным понятиям иерархической структуры относятся: уровень, элемент (узел), связь. Узел - это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. Каждый узел на более низком уровне связан только с одним узлом, находящимся на более высоком уровне. Иерархическое дерево имеет только одну вершину (корень дерева), не подчиненную никакой другой вершине и находящуюся на самом верхнем (первом) уровне. Зависимые (подчиненные) узлы находятся на втором, третьем и т.д. уровнях. Количество деревьев в базе данных определяется числом корневых записей. К каждой записи базы данных существует только один (иерархический) путь от корневой записи.

5 слайд

6 слайд

Сетевая модель данных В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом. Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах. Возможно участие одного студента в нескольких ИР, а также участие нескольких студентов в разработке одной ИР.

7 слайд

Реляционная модель данных Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами: каждый элемент таблицы - один элемент данных; все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину; каждый столбец имеет уникальное имя; одинаковые строки в таблице отсутствуют; порядок следования строк и столбцов может быть произвольным.

8 слайд

Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ. В примере ключевым полем таблицы является "№ личного дела".

Рассматриваемые вопросы: 1. Реляционная модель — Краткий обзор истории реляционной модели — Используемая терминология — Альтернативная терминология — Математические отношения — Отношения и их свойства в базе данных — Реляционные ключи — Представление схем в реляционной базе данных — Реляционная целостность 2. Реляционные языки 3. Реляционная алгебра — Унарные операции реляционной алгебры — Операции с множествами — Операции соединения — Деление 4. Реляционное исчисление — Реляционное исчисление кортежей — Реляционное исчисление доменов 5. Другие языки

Реляционная модель Структура обработки информации в реляционной БД Реляционная алгебра Данные. Реляционная модель данных Реляционная БД SQL-стандартн ый язык запросов

Реляционная модель Цели создания реляционной модели: 1) Обеспечение высокой степени независимости от данных. 2) Н ормализ ация отношений, т. е. создание отношени й без повторяющихся групп. 3) Рас ширение языков управления данными за счет включения операций над множествами.

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

Используемая терминология Структура реляционных данных Отношение Атрибут Домен Кардинальность Кортеж Степень отношения Таблицы данных Реляционная база данных

Используемая терминология Н омер Фамилия Оценка 6 Иванов 5 17 Петров 4 19 Сидоров 4. 5О Т Н О Ш Е Н И Е С Т Е П Е Н Ь К А Р Д И Н А Л Ь Н О С Т ЬАТРИБУТЫ КОРТЕЖ Структура реляционных данных

Используемая терминология Отношение — это плоская таблица (двумерная) , состоящая из столбцов и строк. Атрибут — это поименованный столбец отношения. Домен — это набор допустимых значений для одного или нескольких атрибутов, благодаря ему пользователь может централизованно определять смысл и источник значений, которые могут получать атрибуты. Кортеж — это строка отношения. Кортежи называются расширением, состоянием или телом отношения, которое постоянно меняется. Описание структуры отношения вместе со спецификацией доменов и любыми другими ограничениями возможных значений атрибутов иногда называют его заголовком (или содержанием (intension)).

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

Альтернативная терминология Официальные термины Альтернативный вариант 1 Альтернативный вариант 2 Отношение Таблица Файл Кортеж Строка Запись Атрибут Столбец Поле

Отношения и их свойства в базе данных Реляционная схема – это имя отношения, за которым следует множество пар атрибутов и доменов. атрибут ы А 1 , А 2, . . Аn реляционн ая схем а: домен ы D 1, D 2 . . Dn {А 1: D 1. . . An: Dn } В реляционной модели отношение можно представить как произвольное подмножество декартового произведения, а таблица – это физическое представление такого отношения.

Отношения и их свойства в базе данных Свойства отношений: Отношение имеет неповторимое имя. Каждая ячейка отношения содержит только атомарное (неделимое) значение. Каждый атрибут имеет уникальное имя. Значения атрибута берутся из одного и того же домена. Порядок следования атрибутов не имеет никакого значения. Каждый кортеж является уникальным, т. е. дубликатов кортежей быть не может. П орядок следования кортежей в отношении не имеет никакого значения.

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

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

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

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

Реляционная целостность Модель данных имеет две части: — управляющую часть, которая определяет типы допустимых операций с данными, — набор ограничений целостности, которые гарантируют корректность данных. Определитель NULL вводится в связи с поддержанием правил целостности и указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этого кортежа. Нули и пробелы представляют собой некоторые значения, тогда как ключевое слово NULL призвано обозначать отсутствие какого-либо значения.

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

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

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

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

Основные операции реляционной алгебры: — выборка (selection) — проекция (р rojection) — декартово произведение (с artesian product) — объединение (union) — разность (set difference) Дополнительные операции: — соединения (join) — пересечения (intersection) — деления (division) Реляционная алгебра

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

Унарные операции реляционной алгебры Простейший случай: X Y — условие (предикат), – один из операторов сравнения (, и т. д.), X и Y — атрибуты отношения R или скалярные значения. Синтаксис операции выборки: R where , или R where (X Y) Синтаксис на языке SQL: select * from R where (X Y)

Унарные операции реляционной алгебры Пример о пераци и выборки Отношение R (информация о студентах) Результат выборки R where Средний бал<5 Номер студента Фамилия Средний балл 6 17 19 Иванов Петров Сидоров 5 4 4, 5 Номер студента Фамилия Средний балл 17 19 Петров Сидоров 4 4,

Унарные операции реляционной алгебры Операция проекции: Работает с одним отношением R. Определяет новое отношение с заголовком (X , …, Z) , содержащее вертикальное подмножество отношения R , создаваемое посредством извлечения значений указанных атрибутов из результата строк-дубликатов. Синтаксис операции проекции: R [ X , …, Z ] Синтаксис на языке SQL: Select X , Y , …, Z from R

Унарные операции реляционной алгебры Пример о пераци и проекции Отношение R (информация о преподавателях) Предмет География История Философия Табельный номер Фамилия Предмет 4587 Бондаренко География 2136 Воронин История 5496 Анисимова Философия Проекция R [Предмет]

Операции с множествами Декартово произведение R×S определяет новое отношение, которое является результатом конкатенации (т. е. сцепления) каждого кортежа из отношения R с к аждым кортежем из отношения S. Синтаксис операции декартового произведения: R times S Синтаксис на языке SQL: Select * from R , S

Номер студента Фамилия 6 Иванов 17 Петров 19 Сидоров Код предмета Название 101 Физика 102 Математика 103 Информатика. Операции с множествами Пример декартового произведения Отношение R (Студенты) Отношение S (Предметы)

Номер студента Фамилия Код предмета Название 6 Иванов 101 Физика 6 Иванов 102 Математика 6 Иванов 103 Информатика 17 Петров 101 Физика 17 Петров 102 Математика 17 Петров 103 Информатика 19 Сидоров 101 Физика 19 Сидоров 102 Математика 19 Сидоров 103 Информатика. Отношение R TIMES SОперации с множествами

Операции с множествами Операция объединения R S получается в результате конкатенации R и S , с образованием одного отношения с тем же заголовком, что и у отношений R и S и телом, состоящим из кортежей, прин адлежащих или R , или S , или обоим отношениям (с максимальным количеством кортеже й) , если кортежи-дубликаты исключены. Синтаксис операции объединения: R union S. Синтаксис на языке SQL: (Select * from R) union (select * from S)

Номер студента Фамилия Средний балл 6 Иванов 5 17 Петров 4 19 Сидоров 4, 5 Номер студента Фамилия Средний балл 6 Иванов 5 18 Пушников 3, 5 19 Сидоров 4, 5Операции с множествами Пример операции объединения Отношение R (информация о студентах) Отношение S (информация о студентах)

Номер студента Фамилия Средний балл 6 Иванов 5 17 Петров 4 19 Сидоров 4, 5 18 Пушников 3, 5Объединение отношений R и S Операции с множествами

Операции с множествами Операция разности R-S определяет отношение с тем же заголовком, что и у отношений R и S , и телом, состоящим из кортежей, принадлежащих отношению R и не принадлежащих отношению S , таких, которые имеются в отношении R , но отсутствуют в отношении S. Синтаксис операции разности: R minus S Синтаксис на языке SQL: (select * from R) exept (select * from S)

Операции с множествами (щшибка) Пример операции разности Отношение R Номер студента Фамилия Средний балл 6 Иванов 5 17 Петров 4 19 Сидоров 4, 5 Отношение S Номер студент Фамилия Средний балл 6 Петров 4 18 Сидоров 4, 5 20 20 Пушников 3,

Операции с множествами Номер студента Фамилия Средний балл 17 Петров 4 19 Сидоров 4, 5Отношение R MINUS S

Операции с множествами Операция пересечения R ∩ S определяет отношение, которое содержит кортежи, присутствующие как в отношении R , так и в отношении S. Синтаксис операции пересечения: R intersect S Синтаксис на языке SQL: (Select * from R) intersect (select * from S)

Операции с множествами Пример операции пересечения Номер студента Фамилия Средний балл 6 Иванов 5 17 Петров 4 19 Сидоров 4, 5Отношение R (информация о студентах) Номер студента Фамилия Средний балл 6 Иванов 5 18 Пушников 3, 5 20 Сидоров 4, 5Отношение S (информация о студентах)

Номер студента Фамилия Средний балл 6 Иванов 5 Операции с множествами Отношение R INTERSECT S

Операции соединения Операция соединения — комбинация декартового произведения и выборки, эквивалентна операции выборки из декартового произведения двух операндов отношений тех кортежей, которые удовлетворяют условию, указанному в предикате соединения в качестве формулы выборки. Соединением отношений R и S по условию F называется отношение (R times S) where F Синтаксис на языке SQL: Select R. *, S. * from R, S where f

Операции соединения Тип ы операций соединения: — т ета-соединение — соединение по эквивалентности (частный случай тета-соединения) — естественное соединение — внешнее соединение — полусоединение

Операции соединения Т ета-соединение определяет отношение, которое содержит кортежи из декартового произведения отношений R и S , удовлетворяющие предикату F. Предикат F имеет вид, где — один из операторов сравнения (<, >=, = или -=). — соединением отношения R по атрибуту X с отношением S по атрибуту Y называют отношение (R times S) where (X Y). Синтаксис на языке SQL: Select * from R, S where (R. X S. Y) SRF iib. Sa. R. .

Операции соединения Пример тета-соединения В базе данных хранится информация о: — преподавателях; — предметах. Примечание: преподаватели имеют право преподавать предметы, статус которых не выше статуса преподавателя. Табельный номер Фамилия X(Статус преподавателя) 4587 Бондаренко 4 2136 Воронин 1 5496 Анисимова 2 Отношение R (Преподаватели) Код предмета Название Y(Статус предмета) 101 История 3 102 География 2 103 Философия 1 Отношение S (Предметы)

Операции соединения Ответ на вопрос: “Какие преподаватели имеют право преподавать какие предметы? » дает -соединение R [ X Y ] S: Табельный номер Фамилия X(Статус преподавателя) Код предмета Название Y(Статус предмета) 4587 Бондаренко 4 101 История 3 4587 Бондаренко 4 102 География 2 4587 Бондаренко 4 103 Философия 1 2136 Воронин 1 103 Философия 1 5496 Анисимова 2 102 География 2 5496 Анисимова 2 103 Философия 1 Отношение «Какие преподаватели преподают какие предметы? «

Операции соединения Э кви-соединение (соединение по эквивалентности) — частный случай -соединения, когда есть просто равенство (предикат F содержи т только оператор равенства (=)). Синтаксис экви-соединения: R [ X = Y ] S Синтаксис на языке SQL: select R. *, S . * from R, S where (R. X = S. Y)

Операции соединения(Ошибка) Пример экви-соединения Номер студента S NUM Фамилия студента S NAME 6 Иванов 17 Петров 19 Сидоров Отношение S (Студенты) Код предмета PCOD Название предмета P NAME 101 Физика 102 Математика 103 Информатика Отношение P (Предметы)

Номер студента S NUM Код предмета PCOD Средний бал по предмету SRBALL 6 101 4, 5 6 102 4 6 103 5 17 101 3, 5 17 102 4 19 101 4, 5 Операции соединения Отношение SP (Изучение) Ответ на вопрос: » Какие предметы изучаются студентами? “, дает экви-соединение S [ S NUM= S NUM] SP. Т. к. в отношениях имеются одинаковые атрибуты, то требуется сначала их переименовать. Получаем: (S rename S NUM as S NUM 1)[ S NUM 1= S NUM 2](SP rename S NUM as S NUM 2).

Номер студента S NUM 1 Фамилия студента S NAME Номер студента S NUM 2 Код предмета PCOD Средний балл по предмету SRBALL 6 Иванов 6 101 4, 5 6 Иванов 6 102 4 6 Иванов 6 103 5 17 Петров 17 101 3, 5 17 Петров 17 102 4 19 Сидоров 19 101 4, 5 Операции соединения Отношение «Какие предметы изучаются какими студентами? «

Операции соединения Естественное соединене — соединение по эквивалентности двух отношений R и S , выполненное по всем общим атрибутам, из результатов которого исключается по одному экземпляру каждого общего атрибута. Синтаксис естественного соединения: R join S. Естественное соединение производится по всем одинаковым атрибутам. SR

Операции соединения Пример естественного соединения Упрощенная запись: Ответ на вопрос «Какие предметы изучаются какими студентами? “ в виде естественного соединения трех отношений S join SP join P: Номер студента S NUM Фамилия студента S NAME Код предмета PCOD Название предмета P NAME Средний балл по предмету SRBALL 6 Иванов 101 Физика 4, 5 6 Иванов 102 Математика 4 6 Иванов 103 Информатика 5 17 Петров 101 Физика 3, 5 17 Петров 102 Математика 4 19 Сидоров 101 Физика 4, 5 Отношение S JOIN SP JOIN P

Операции соединения Операция внешнего соединения используется при соединении двух отношений, столбцы которых имеют несовпадающие значения. Внешнее соединение: левое и правое. Левое внешнее соединение: кортежи отношения R , не имеющие совпадающих значений в общих столбцах отношения S , также включаются в результирующее отношение. О бозначения отсутствующих значений во втором отношении — определитель NULL. SR

Номер студента Фамилия Средний бал 6 Иванов 5 17 Петров 3 19 Сидоров 4 Примечание: с тудент может принимать участие в олимпиадах по предметам, установленный общий бал которых не больше среднего бала студента. Задание: н а основе отношений R и S создать список, в котором указаны студенты и предметы, по которым они учавствуют в олимпиадах. Операции соединения Пример левого внешнего соединения Отношение R

Отношение S Код предмета Название Общий балл 101 Физика 4, 5 102 Химия 4 Номер студента Фамилия Средний балл Код предмета Название Общий балл 6 Иванов 5 101 Физика 4, 5 6 Иванов 5 102 Химия 4 17 Петров 3 NULL 19 Сидоров 4 102 Химия 4 Таблица ((П (R)) S)< Операции соединения

Операции соединения Правое внешнее соединение: в результирующем отношении содержатся все кортежи правого отношения. Полное внешнее соединение: в результирующее отношение помещаются все кортежи из обоих отношений и для обозначения несовпадающих значений кортежей используются определители NULL.

Операции соединения Операция полусоединения: определяет отношение, которое содержит те кортежи отношения R , которые входят в соединение отношений R и S. Формулировка операции полусоединения с помощью операторов проекции и соединения: SRF)SR(ПSRFAF где А — набор всех атрибутов в отношении R.

Пример операции полусоединения Номер студента Фамилия Средний балл Код предмета Название Общий балл 6 Иванов 5 101 Физика 4, 5 6 Иванов 5 102 Химия 4 19 Сидоров 4 102 Химия 4Операции соединения

Операция деления П усть: — отношение R определено на множестве атрибутов А; — отношение S - на множестве атрибутов В; — В А; — С=А-В (С является множеством атрибутов отношения R , которые не являются атрибутами отношения S). Результат деления R S — набор кортежей отношения R , определенных на множестве атрибутов С, которые соответствуют комбинации всех кортежей отношения S.

Операция деления Пример операции деления Отношение R Номер группы Количество студентов ФИО куратора Код предмета Название предмета ТМ-31 20 Иванов 01 Математика ТМ-32 22 Петров 01 Математика ТИ-31 13 Сидоров 01 Математика ТМ-31 20 Иванов 02 Физика ТМ-32 22 Петров 02 Физика

Отношение S T 1: Select ’Код предмета’, ’Название предмета’ from RОперация деления Номер группы Количество студентов ФИО куратора ТМ-31 20 Иванов ТМ-32 22 Петров ТИ-31 13 Сидоров Код предмета Название предмета 01 Математика 02 Физика

T 21: Select * from T 1, S Операция деления Код предмета Название предмета Номер группы Количество студентов ФИО куратора 01 Математика ТМ-31 20 Иванов 01 Математика ТМ-32 22 Петров 01 Математика ТИ-31 13 Сидоров 02 Физика ТМ-31 20 Иванов 02 Физика ТМ-32 22 Петров 02 Физика ТИ-31 13 Сидоров

T 22: (Select * from T 21) exept (Select * from R) T 2: Select ’Код предмета’, ’Название предмета’ from T 22 Операция деления Р= T 1- T 2 Код предмета Название предмета Номер группы Количество студентов ФИО куратора 02 Физика ТИ-31 13 Сидоров Код предмета Название предмета 02 Физика Код предмета Название предмета 01 Математика

Реляционное исчисление Происхождение н азвания “ реляционное исчисление ”: от части символьной логики, которая называется исчислением предикатов. Реляционное исчисление существует в двух формах: — реляционного исчисления кортежей; — реляционного исчисления доменов.

Реляционное исчисление Предикат в логике первого порядка ─ истинностная функция с параметрами. Суждение ─ выражение, которое принимает функция после подстановки значений вместо параметров. Суждение: истинное и ложное. Пусть: Р — предикат; х — переменная. Тогда: — множество всех значений х, при которых суждение Р – истина. Предикаты могут соединяться с помощью логических операторов: (AND), (О R) и (N OT) с образованием составных предикатов.)}x(P|x{

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

Пример З апрос: “ Выбрать атрибуты № склада, адрес, идент. код, дата, ФИО заказчика для заказов с количеством >60 » Запись запроса: { S | R (S) ^ S. количество > 6 0} Пояснение: Выражение “S. количество часов ” — значение атрибута количество часов для кортежа. Реляционное исчисление кортежей

Реляционное исчисление кортежей Д ва типа кванторов, используемых для указания количества экземпляров, к которым должен быть применен предикат: — квантор существования (символ “существует”) : используется в формуле, которая должна быть истинной хотя бы для одного экземпляра; — квантор общности (символ “для всех”): используется в выражениях, которые относятся ко всем экземплярам.

П ример применения квантора существования Студент (S) ^ {Зв} (Год рождения (B) ^ (В. имя =S. имя) ^ В. группа =’ ТИ-31 ‘) В ыражение означает: в отношении Год рождения существует кортеж, который имеет такое же значение атрибута имя, что и значение атрибута имя в текущем кортеже S из отношения Студент, а атрибут группа из кортежа В имеет значение ‘ ТИ-31 ‘. Пример применения квантора общности (B) (В. группа * ‘ ТИ-31 ‘) Выражение означает: ни в одном кортеже отношения Год рождения значение атрибута группа не равно ‘ ТМ-31 ‘. Реляционное исчисление кортежей

Свободные переменные — переменные кортежа, которые неквалифицируются кванторами, в противном случае они называются связанными переменными. В реляционном исчислении допустимые формулы – только недвусмысленные и небессмысленные последовательности. Реляционное исчисление кортежей

Правила построения формулы в исчислении предикатов: 1. Если Р — n -арная формула (предикат с n аргументами), t 1, t 2, …, tn — константы или переменные, то Р (t 1, t 2, …, tn) — правильно построенная формула. 2. Если t и t 2 — константы или переменные из одного домена, — один из операторов сравнения (<, >=, -=), то t 1 t 2 — правильно построенная формула. 3. Если F 1 , F 2 — формулы, то F 1 F 2 — конъюнкция формул, F 1 F 2 — дизъюнкция, — отрицание. 4. Если F 1 — формул а со свободной переменной X , то F (Х) и F(Х) — также формулы. FРеляционное исчисление кортежей

Реляционное исчисление доменов Значения переменных, используемых в реляционном исчислении доменов берутся из доменов, а не из кортежей отношений. Путь: Р(d 1, d 2, …, dn) — предикат; d 1, d 2, …, dn — переменные. Тогда: { d 1, d 2, …, dn |Р(d 1, d 2, …, dn)} — множество всех переменных домена, для которых предикат — истина. Выражение R(х, у) — истинное тогда и только тогда, когда в отношении R имеется кортеж со значениями х и у в двух его атрибутах.

Пример Найти: имена всех менеджеров, зарплата которых превышает 2500 гривен. {Имя, Фамилия должность, зарплата ((фамилия, должность, зарплата) должность= ‘менеджер’ зарплата>2500)} Реляционное исчисление доменов

Другие языки Дополнительные категории реляционных языков: — на основе преобразований; — графические языки; — языки четвертого поколения. Языки на основе преобразований — класс непроцедурных языков Используют отношения для преобразования исходных данных к требуемому вид у (примеры: SQUARE , SEQUEL и его версии, SQL).

Графические языки — рисунок или другое графическое отображение структуры отношения. Пользователь создает некий образец желаемого результата, и система возвращает затребованные данные в указанном формате (пример: QBE). Языки четвертого поколения: — создают полностью готовое и соответствующее требованиям заказчика прикладное приложение с помощью ограниченного набора команд; — предоставляют дружественную по отношению к пользователю среду разработки. Другие языки