- •Управление транзакциями
- •Журнализация
- •Поддержка языков бд
- •№6 Иерархические базы данных
- •№7 Сетевые базы данных
- •Теоретико-множественные операторы Объединение
- •Пересечение
- •Вычитание
- •Декартово произведение
- •Проекция
- •Деление
- •Общая операция соединения
- •Тэта-соединение
- •Экви-соединение
- •Естественное соединение
- •Операторы dml (Data Manipulation Language) - операторы манипулирования данными предоставляет возможность выборки информации из базы данных и ее преобразования.
- •Операторы защиты и управления данными
- •Синтаксис команды update
- •5.1.2.4 Страница Date
- •5.1.2.5 Страница Time
- •5.1.2.6 Страница Number
- •Определение индексов и ссылочной целостности.
- •Заполнение таблицы данными.
- •Создание приложения для работы с базой данных «Телефонная книжка».
- •Удаление триггера
Экви-соединение
Наиболее важным частным случаем -соединения является случай, когда есть просто равенство.
Синтаксис экви-соединения:
Естественное соединение
Определение
10. Пусть даны
отношения
и
,
имеющие одинаковые атрибуты
(т.е.
атрибуты с одинаковыми именами и
определенные на одинаковых доменах).
Тогда
естественным
соединением отношений
и
называется
отношение с заголовком
и
телом, содержащим множество кортежей
,
таких, что
и
.
Естественное соединение настолько важно, что для него используют специальный синтаксис:
Пример
10. В
предыдущем примере ответ на вопрос
"какие детали поставляются поставщиками",
более просто записывается в виде
естественного соединения трех отношений
(для
удобства просмотра порядок атрибутов
изменен, это является допустимым по
свойствам отношений):
Номер поставщика 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
№22
Язык SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).
В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность обработки данных в базе. Например, при подготовке запроса в среде Access можно перейти из окна Конструктора запросов (формулировки запроса по образцу на языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случае проще выполнить путем изменения оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.
Язык SQL не обладает функциями полноценного языка разработки, а
ориентирован на доступ к данным, поэтому его включают в состав
средств разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMPS и Pascal.
Отличие SQL от процедурных языков программирования.
SQL относится к классу непроцедурных языков программирования. SQL ориентирован не на записи, а на множества.
Это означает следующее: в качестве входной информации для формулируемого на языке SQL запроса к базе данных используется множество кортежей-записей одной или нескольких таблиц-отношений. В результате выполнения запроса также образуется множество кортежей результирующей таблицы-отношения. В SQL результатом любой операции над отношениями также является отношение.
Запрос SQL задает не процедуру, а условия, которым должны удовлетворять кортежи результирующего отношения, сформулированные в терминах входного (или входных) отношения(й).
Существуют и используются две формы языка SQL: интерактивный SQL и встроенный SQL.
Интерактивный SQL используется для задания SQL-запросов пользователем и получения результата в интерактивном режиме.
Встроенный SQL состоит из команд SQL, встроенных внутрь программ, обычно написанных на каком-то другом языке (Паскаль, С, C++ и др.).
Встроенный SQL делает программы, более мощными, гибкими и эффективными, обеспечивая их применение для работы с данными, хранящимися в реляционных базах. При этом, однако, требуются дополнительные средства интерфейса SQL с языком, в который он встраивается.
Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям.
Можно выделить следующие группы операторов (перечислены не все операторы SQL):
Операторы DDL (Data Definition Language) - операторы определения объектов базы данных дает возможность создания, изменения и удаления различных объектов базы данных (таблиц, индексов, пользователей, привилегий и т.д.).
CREATE SCHEMA - создать схему базы данных
DROP SHEMA - удалить схему базы данных
CREATE TABLE - создать таблицу
ALTER TABLE - изменить таблицу
DROP TABLE - удалить таблицу
CREATE DOMAIN - создать домен
ALTER DOMAIN - изменить домен
DROP DOMAIN - удалить домен
CREATE COLLATION - создать последовательность
DROP COLLATION - удалить последовательность
CREATE VIEW - создать представление
DROP VIEW - удалить представление
