ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 28.07.2021

Просмотров: 487

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Пример


Рассмотрим следующий пример. Пусть заданы отношения, которые моделируют номенклатуру изделий, изготавливаемых в первом филиале (R1) и во втором филиале фирмы (R2). Тогда объединение данных отношений позволяет получить общую номенклатуру изделий, которые производятся в данной фирме. Это будет отношение R3 



2.Пересечение (логическое И)


Пересечением отношений R1 и R2 называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям R1 и R2: 





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


3.Разность

Разность отношений R1 и R2 представляет собой множество всех кортежей, содержащее кортежи из R1 и не содержащее кортежи из R2



Первые две операции являются коммутативными, т.е. результат не зависит от их порядка в формуле(от перемены мест слогаемых сумма не меняется), результат выполнения разности зависит от порядка отношений.


4.Расширенное декартово произведение


Операция допустима для любых двух отношений.




Результат расширенного декартового произведения содержит кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2

Сцеплением, или конкатенацией, кортежей c = <c1, c2, ..., cn> и q = <q1, q2, ..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей c и q обозначается как (c, q).



Специальные операции.



Первой специальной операцией реляционной алгебры является горизонтальный выбор, или операция фильтрации, или операция ограничения отношений. 

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


R12 = R10 [ Шифр детали = 0011003]



Следующей специальной операцией является операция проектирования.


Проекцией отношения R на набор атрибутов В, обозначаемой R[B], называется отношение со схемой, соответствующей набору атрибутов В SR[B] = B, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора В. 

R[B] = { r[B] }

Например нам нужно из таблицы выбрать не все строки, а только имена из столбца «Имена» (это пример для понимания, не ляпните на экзамене, доебутся, ибо таблиц никаких нет в реляционной алгебре, есть только отношения)


Следующей специальной операцией реляционной алгебры является операция условного соединения.

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

Тогда соединением отношений R и Q при условии β будет подмножество декартова произведения отношений R и Q, кортежи которого удовлетворяют условию β, рассматриваемому как одновременное выполнение условий



Пример для понимания: Есть все студенты пятого курса, а есть студенты элитной группы 195, в первой таблице нет оценки за гос, во второй, где только студенты 195 – есть, нам нужно из всех студентов выбрать студентов группы 195, у которых за гос 5, или 2, или 4, как кому нравится


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



 операция деления ставит в соответствие отношениям R и T отношение Q = R[A:B]T, кортежи которого являются теми элементами проекции R[A1], для которых T[B] входит в построенные для них множество образов:



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

Тогда решением этой задачи будет операция деления отношения R10 на отношение R7 по набору атрибутов (Шифр детали, Наименование детали).



  1. Язык SQL – общая структура, стандарты языка.[3. c. 66-72, 18 - тема 3] Подъязык запросов в языке SQL. [3. c 74-89, 18 ­– тема 3] Язык манипулирования данными [3. с. 95-103,18 – тема 4].

SQL (Structured Query Language) — структурированный язык запросов — стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры. 



Стандарты:


  • Первый международный стандарт языка SQL был принят в 1989 г. (далее мы будем называть его SQL/89 или SQL1). Иногда стандарт SQL1 также называют стандартом ANSI/ISO.

  • В конце 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшем будем называть SQL/92 или SQL2. И он не лишен недостат ков, но в то же время является существенно более точным и полным, чем SQL/89.

  • В 1999 г. появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 имеет качественные преобразования. В SQL3 введены новые типы данных, при этом предполагается возможность задания сложных структурированных типов данных, которые в большей степени соответствуют объектной ориентации. Наконец, добавлен раздел, который вводит стандарты на события и триггеры, которые ранее не затрагивались в стандартах, хотя давно уже широко использовались в коммерческих СУБД. В стандарте определены возможности четкой спецификации триггеров как совокупности события и действия. В качестве действия могут выступать не только последовательность операторов SQL, но и операторы управления ходом выполнения программы. В рамках управления транзакциями произошел возврат к старой модели транзакций, допускающей точки сохранения (savepoints). Возможность указания в операторе отката ROOLBACK точек возврата позволит откатывать транзакцию не в начало, а в промежуточную ранее сохраненную точку. Такое решение повышает гибкость реализации сложных алгоритмов обработки информации.



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



Структура:

  • Операторы определения данных (alter, drop,create для таблиц, представлений, индексов)

  • Операторы манипулирования данными(delete, insert,update)

  • Язык запросов(select)

  • Средства управления транзакциями(commit, rollback,savepoint)

  • Средства администрирования данных(alter, drop,create именно для всей БД, grant revoke- дать отнять права)

  • Программный SQL(declare, fetch , open, close, prepare, execute)

Подъязык запросов

Язык запросов (Data Query Language) в SQL состоит из единственного оператора SELECT. Этот единственный оператор поиска реализует все операции реляционной алгебры.

Синтаксис оператора SELECT имеет следующий вид:

SELECT [ALL|DISTINCT] <Список полей>|*

FROM <Список таблиц>

[WHERE <Предикат-условие выборки или соединения>]

[GROUP BY <Список полей результата>]

[HAVING <Предикат-условие для группы>]

[ORDER BY <Список полей, по которым необходимо упорядочить результат>]


В разделе FROM задается перечень исходных отношений (таблиц) запроса.

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

В разделе GROUP BY задается список полей группировки.

В разделе HAVING задаются предикаты-условия, накладываемые на каждую группу.

В части ORDER BY задается список полей упорядочения результата, т. е. список полей, который определяет порядок сортировки в результирующем отношении. Например, если первым полем списка будет указана «Фамилия», а вторым «Номер группы», то в результирующем отношении сначала будут собраны в алфавитном порядке студенты, и если найдутся однофамильцы, то они будут расположены в порядке возрастания номеров групп.

В выражении условий раздела WHERE могут быть использованы следующие предикаты:

  1. Предикаты сравнения { =, <>, >,<, >=,<= }, которые имеют традиционный смысл.

  2. Предикат Between A and B — принимает значения между A и B. Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. Одновременно в стандарте задан и противоположный предикат Not Between A and B, который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы.

  3. Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Одновременно существует противоположный предикат NOT IN (множество), который истинен тогда, когда сравниваемое значение не входит в заданное множество.

  4. Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл

  5. .Предикаты существования EXISTS и несуществования NOT EXISTS. Эти предикаты относятся к встроенным подзапросам, и подробнее мы рассмотрим их, когда коснемся вложенных подзапросов





Про манипулирование – это рассказать что делает insert, update,delete с таблицми


В операции манипулирования данными входят три операции: операция удаления записей — ей соответствует оператор DELETE, операция добавления или ввода новых записей — ей соответствует оператор INSERT и операция изменения (обновления записей) — ей соответствует оператор UPDATE. Рассмотрим каждый из операторов подробнее.

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

Оператор ввода данных INSERT имеет следующий синтаксис:

INSERT INTO имя_таблицы [(<список столбцов>) ] VALUES (<список значений>)

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

Синтаксис оператора DELETE следующий:

DELETE FROM имя_таблицы [WHERE условия_отбора]

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

Операция обновления данных UPDATE требуется тогда, когда происходят изменения во внешнем мире и их надо адекватно отразить в базе данных, так как надо всегда помнить, что база данных отражает некоторую предметную область. Например, в нашем учебном заведении произошло счастливое событие, которое связано с тем, что госпожа Степанова  К. Е. пересдала экзамен по дисциплине «Базы данных» с «двойки» сразу на «четверку». В этом случае нам надо срочно выполнить соответствующую корректировку таблицы R1. Операция обновления имеет следующий формат:

UPDATE имя_таблицы

SET {имя_столбца = новое_значение [,...]}

[WHERE условие_отбора]


  1. Проектирование реляционных баз данных. Теория нормализации. [3. c.104-117, 18 – тема 5]



Процесс проектирования БД представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию объектов предметной области в терминах некоторой формальной модели. В общем случае можно выделить следующие этапы проектирования:

  • словесное описание информационных объектов предметной области;

  • проектирование инфологической модели предметной области — частично формализованное описание объектов предметной области в терминах некоторой инфологической модели, например в терминах ER (Entity RelationShip)-модели;

  • даталогическое или логическое проектирование БД, т. е. описание БД в терминах принятой даталогической модели данных;

  • физическое проектирование БД, т. е. выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения.

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


Корректной схемой БД называется схема БД, в которой отсутствуют нежелательные функциональные зависимости.

Процесс разработки корректной схемы реляционной БД называется логическим проектированием БД. 

Проектирование схемы БД может быть выполнено двумя путями:

  • путем декомпозиции (разбиения), когда исходное множество отношений, входящих в схему БД заменяется другим множеством отношений (число их при этом возрастает), являющихся проекциями исходных отношений;

  • путем синтеза, т. е. компоновки из заданных исходных элементарных зависимостей схемы БД. 

В теории реляционных баз данных выделяют 6 нормальных форм, которые имеют специальные названия:

  • первая нормальная форма (1NF);

  • вторая нормальная форма (2NF);

  • третья нормальная форма (3NF);

  • нормальная форма Бойса–Кодда (BCNF);

  • четвертая нормальная форма (4NF);

  • пятая нормальная форма, или форма проекции-соединения (5NF или PJNF).


Функциональной зависимостью набора атрибутов В отношения R от набора атрибутов A того же отношения, обозначаемой как

R.A -> R.B или A -> B,

называется такое соотношение проекций R[A] и R[B], при котором в каждый момент времени любому элементу проекции R[A] соответствует только один элемент проекции R[B], входящий вместе с ним в какой либо кортеж отношения R. Функциональная зависимость R.A -> R.B называется полной, если набор атрибутов B функционально зависит от A и не зависит функционально от любого подмножества A, т. е. R.A -> R.B называется полной, если Shape4, что читается следующим образом: для любого A1, являющегося подмножеством А, R.B функционально не зависит от R.A1, в противном случае зависимость R.A -> R.B называется неполной.



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

Соответственно ненормализованные отношения, могут интерпретироваться как таблицы с неравномерным заполнением, например таблица «Расписание», которая имеет следующий вид:

                                                                                                       Расписание

 Преподаватель

 День  недели

 Номер  пары

 Название дисциплины

 Тип занятий

 Группа

 Петров В.И

 Понед.  Вторник  Вторник

 1
 1
 2

Теор.выч. проц. 
Комп. графика
Комп. графика

 Лекция
 Лаб.раб 
 Лаб.раб

 4906
 4907
 4906

 Киров В.А.

 Понед.  Вторник  Вторник

 2
 3
 4

 Теор.информ.
 Пр-е на С++ 
 Пр-е на С++

 Лекция  Лаб.раб  Лаб.раб

 4906  4907  4906

 Минин А.А.

 Понед.  Среда  Четверг

 3
 3
 4

 Защита инф.
 Пр-е на VB
 Пр-е на VB

 Лекция  Лаб.раб  Лаб.раб

 4944  4942  4922

 

Для приведения отношения «Расписание» к 1-й нормальной форме необходимо дополнить каждую строку фамилией преподавателя.


Смотрите также файлы