- •19 Основные операторы реляцион. Алгебры. Оператор соединения. Формы оператора соединения. Пример.
- •1 Иванов 22
- •Intersect –пересечение
- •Операторы по охвату своих функций избыточны, т.К. Набор состоит из 5-и операторов.
- •Этих восьми операторов недостаточно для построения субд на принципе реляционной алгебры.
19 Основные операторы реляцион. Алгебры. Оператор соединения. Формы оператора соединения. Пример.
Оператор JOIN-соединение Cf (R1,R2)
По условию заданному функ-ей f представл. собой отнош-е R, кот. можно получить путем декартового произведения, относ. R1 и R2 с последующ. применением результата. Операция выборки по формуле f.
Customer
CCODE FNAME ACODE
1 Иванов 22
2 Петров 21
3 Сидоров 22
AGENT
ACODE PHONE
21
22
24
Естеств. соед. связ-т. таблицы, выбирая только строки с их общим значением их общих атрибутов.
Их соед. это результат 3-х ступенч. процедуры.
CCODE FNAME ACODE
1 Иванов 22
1 Иванов 22
1 Иванов 22
К получ. рез-ту примен. оператор SELECT, к кот. примен. только те строки где значение кода агента.
Т.о. устраняются дублируемые столбцы.
Окончат. Результатом действ. Оператора естественного соед., в кот не включены совпадающие пары и представлены только совпад-ие копии атрибутов.
Другая форма оператора JOIN эквисоединения, связ. Таблицы по условию равенства при кот. сравниваются упорядоч. столбцы каждой таблицы. В результирующем выводе эквисоединения JOIN не удаляются дублируемые столбцы, а условие соединения табл. должно быть явно определено. Если использ. другие операторы сравнения то соединения назыв. ТЕТАсоединения.
Реляционные операторы. Уровень соответствия требованиям к реляционным БД может определятся степенью поддержки реляционной алгебры.Вариант предлагаемый Коддом определяет теоретические способы манипулирования содержимым таблиц с помощью 8 реляционных опер.
Select- выбор
Project-проекция
Join –соединение
Intersect –пересечение
Union – объединение
Difference – разность
Product – произведение
Divide – деление
Недостатки реляционной алгебры Кодда:
Операторы по охвату своих функций избыточны, т.к. набор состоит из 5-и операторов.
Этих восьми операторов недостаточно для построения СУБД на принципе реляционной алгебры.
Чтобы БД считали реляционной её СУБД должна поддерживать SELECT, JOIN, PROJECT.
Билет №20
Реляционные операторы. Уровень соответствия требованиям к реляционным БД может определятся степенью поддержки реляционной алгебры.Вариант предлагаемый Коддом определяет теоретические способы манипулирования содержимым таблиц с помощью 8 реляционных опер.
Select- выбор
Project-проекция
Join –соединение
Intersect –пересечение
Union – объединение
Difference – разность
Product – произведение
Divide – деление
Недостатки реляционной алгебры Кодда:
Операторы по охвату своих функций избыточны, т.К. Набор состоит из 5-и операторов.
Этих восьми операторов недостаточно для построения субд на принципе реляционной алгебры.
Чтобы БД считали реляционной её СУБД должна поддерживать SELECT, JOIN, PROJECT.
Оператор JOIN-соединение Cf (R1,R2)
По условию зад-му функ-ей f представл. собой отнош-е R, кот. можно получить путем декартового произведения, относ. R1 и R2 с последующ. применением результата.
Во внешнем соед. Остаются совпад-щие пары, все несовпад. Значения в другой таблице должны принимать пустые знач.
Если рассматривать внешние соед. На примере CUSTOMER и AGENT то возможно:
Левостороннее внешнее соед., выводит все строки CUSTOMER включая те кот. Не имеют совпад знач. в таблице AGENT.
Ccode Fname Acode Phone
1 Иванов 22 133-…
2 Петров 21 123-…
3 Сидоров 22 133-…
4 Смирнов 23 null
2. Правостороннее внешн. Соед., выводит все строки табл. AGENT, включая те строки, кот. Не имеют совпад. Знач в CUSTOMER.
Ccode Fname Acode Phone
2 Петров 21 123-…
1 Иванов 22 133-…
3 Сидоров 22 133-…
null null 23 143-…
Билет№21
Реляционные операторы. Уровень соответствия требованиям к реляционным БД может определятся степенью поддержки реляционной алгебры.Вариант предлагаемый Коддом определяет теоретические способы манипулирования содержимым таблиц с помощью 8 реляционных опер.
Select- выбор
Project-проекция
Join –соединение
Intersect –пересечение
Union – объединение
Difference – разность
Product – произведение
Divide – деление
Недостатки реляционной алгебры Кодда:
Операторы по охвату своих функций избыточны, т.к. набор состоит из 5-и операторов.
Этих восьми операторов недостаточно для построения СУБД на принципе реляционной алгебры.
Чтобы БД считали реляционной её СУБД должна поддерживать SELECT, JOIN, PROJECT.
DIVIDE –деление.
Результатом деления отношения R1 с атрибутами a и b на отношение R2 с атрибутом b, где a и b простые сост-е атрибуты, причем в общий атрибут определенный на одном и том же домене, является отношением заголовка и телом r, так, что R1 (имеющ. Картежи r,s), причем множ. Знач. s включает множ. Знач. атрибутов в отнош. R2.
См. табл. DIVIDE.
Будучи включенным в результирующ. табл. в знач. столбца Loc не изпольз. таблицами совместно, должно быть ассоциировано в таблице делителя с каждым знач. в таблице делимое.
Единств. Знач. ассоциируемое как с A так и с B-5. Дополнительные операции реляционной алгебры включают следующее:
Переименование-позволяет изменить имя атрибута.
Расширение- порождает новое выраж. похожее на исходное, но отлич. знач., кот. получ.путем вычисл.
Операция подведения итогов.
Билет № 22
Язык запросов SQL.
Запрос представляет собой спец.образом описанное требование, определяющее состав производимых над БД операций по выборке, удалению или модификации хранимых данных. СУБД чаще всего используют два осн.языка описания запросов:Язык QBE(запросов по образцу ),SQL (структурный язык запроса)
Хар-ки языка QBE.
Теоретич. Основа QBE явл. реляционные исчисления с переменными – доменами. Язык QBE позволяет задавать сложные запросы в БД, путем заполнения некоторой запросной формы СУБД.
В каждой СУБД есть свой вариант языка QBE результатом явл. новые таблицы называемые ответной , в случае операции модификации или удаления данных.
Хар-ка SQL.
SQL основан. На реляционном исчислении с переменными картежами. Язык имеет несколько стандартов – самый распрастр. SQL- 92. SQL стал фактич. Стандартным языком доступа к БД. Многие не реляционные системы имеют средства доступа к реляционным данным. Целью этого явл. переносимость приложение между различными СУБД. Язык SQL является реляционно полным, это означает , что любой оператор реляционной алгебры может быть выражен некоторым оператором языка SQL. SQL явл. непроцедурным языком, он ориентирован на доступ к данным и не содержит операторов управления, операторов ввода-вывода и.т.д. Поэтому его включают в состав средств разработки программ, в этом случае его называют встроенный SQL. SQL предназначен для манипулирования данными: добавление, модификация, удаление, выборка., и их администрирование(создание, удаление, модификация таблиц, индексов, представлений). Разл. 2 основных способа использования встроенного SQL-статического и динамического. При статическом использовании языка в тесте программы имеются вызовы операторов SQL, кот. Жестко включены в выполняемый модуль после компиляции. При динамическом использовании SQL предполагается динамическое построение вызовов SQL операторов и интерпретация этих вызовов в ходе выполнения программ. Динамический метод обычно примен. в случаях, когда в прилож. заранее не известен вид SQL вызова и он строится в диалоге с пользователем. Основное назнач. SQL-подготовка и выполн. запросов.
Операторы SQL.
Операторы DDL –определение объектов БД.
CREATE SCHEMA
DROP SCHEMA – удалить
CREATE TABLE
ALTER TABLE – изменить таблицу
DROP TABLE
CREATE VIEW –создать представление.
DML (операторы манипулирования данными)
SELECT-выбрать строку из т.
INSERT-добавить строку из т.
UPDATE-изменить строки в т.
DELETE
COMMIT-зафиксировать изменения.
ROLLBACK-отменить внесенные изменения.
Операторы защиты и управления данными
CREATE ASSERTION-создать ограничения
DROP ASSERTION
GRANT-предоставит привилегии пользователю.
REVOKE-отменить привилегии.
Билет №23
Оператор SELECT
Все запросы на получение практич. любого кол-ва данных из одной или неск. табл. выполн. с помощью оператора SELECT. В общем случае результатом выполн. оператора SELECT явл. новая табл. К этой новой рабочей табл. может быть снова применен оператор SELECT. Такие операторы могут быть вложенными друг в друга.
Пример.: Пусть есть таблица Т1 со столбцами А1, А2, А3…, и таблица Т2 со столбцами А1, А2….
SELECT T1.A1,T1.A2,T2.A1
FROM T1,T2
WHERE T1.A3=T2.A3 AND T2.A2 IS NOT NULL
ORDER BY T1.A2,T2.A1 DESC;
SELECT-указывает, что необходимо выбрать данные из указанных столбцов и если необходимо и если необх., выполнить перед выводом их преобразования в соотв. указ. выраж. или функциями.
FROM- из перечисленных таблиц в кот располож эти столбцы
WHERE- где строки из указанных таблиц должны удовлетворять указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL функции
HAVING- имел в результате лишь те группы, кот. Удовлетворяют указанному перечню отбора групп.
ORDER BY- упорядочив результаты выборки по указанному перечню столбцов по возврастанию (по убыванию)
Выборка без использования WHERE (Простая выборка)
Табл. CUSTOMER
SELECT CCODE, FNAME, ACODE FROM CUSTOMER;
Или более коротко:
SELECT * FROM CUSTOMER;
*-краткое обозначение всех имен полей в таблице указанной после фразы FROM.
При этом порядок вывода полей соотв порядку в кот. эти поля определялись при создании таблицы.
Для искл. дубликатов и одновременного упорядоч. перечня необх. дополнить запрос ключевым словом DISTINCT(различные)
SELECT DISTINCT
ACODE FROM CUSTOMER
Билет 24
Оператор SELECT
Все запросы на получение практич. любого кол-ва данных из одной или неск. табл. выполн. с помощью оператора SELECT. В общем случае результатом выполн. оператора SELECT явл. новая табл. К этой новой рабочей табл. может быть снова применен оператор SELECT. Такие операторы могут быть вложенными друг в друга.
Пример.: Пусть есть таблица Т1 со столбцами А1, А2, А3…, и таблица Т2 со столбцами А1, А2….
SELECT T1.A1,T1.A2,T2.A1
FROM T1,T2
WHERE T1.A3=T2.A3 AND T2.A2 IS NOT NULL
ORDER BY T1.A2,T2.A1 DESC;
SELECT-указывает, что необходимо выбрать данные из указанных столбцов и если необходимо и если необх., выполнить перед выводом их преобразования в соотв. указ. выраж. или функциями.
FROM- из перечисленных таблиц в кот располож эти столбцы
WHERE- где строки из указанных таблиц должны удовлетворять указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL функции
HAVING- имел в результате лишь те группы, кот. Удовлетворяют указанному перечню отбора групп.
ORDER BY- упорядочив результаты выборки по указанному перечню столбцов по возврастанию (по убыванию)
Выборка с использованием условий WHERE
SELECT NAME , QUANT, PRICE
FROM PRODUCT WHERE PRICE<30
AND QUANT>10;
NAME QUANT PRICE
Каран-ш 15 20
Линейка 20 25