Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ УПРАВЛЕНИЕ ДАННЫМИ 2012.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

3.2. Реляционное исчисление на кортежах

Выражение в реляционном исчислении на кортежах имеют вид:

{S | F(S)}, где S – переменная-кортеж, F-формула.

Пример: все продавцы, получающие зарплату больше 10000

{S | Продавцы(S) & S.Зарплата>10000}

Формулы могут строиться с помощью логических операций конъюнкции, дизъюнкции, отрицания и операций сравнения. Используются кванторы существования и всеобщности, например:

Выбрать все сделки Иванова:

{S | Сделки(S) & ( B)(Продавцы(B) & B.N = S.N_Продавца & B.Имя=’Иванов’)}

3.3. Реляционное исчисление на доменах

Выражение имеет вид: {d1, d2,…,dn | F(d1,d2,…, dm)}; m>=n, где d1…dm – переменные области определения (домена). F – формула, которая может быть отношением или выражением сравнения.

Пример: Найти номера и имена всех продавцов, зарплата которых > 10000.

{N, Имя | ( Город, Отдел, N_Начальника)(Продавцы(N, Имя, Отдел, Город, Зарплата, N_Начальника)& (Зарплата>10000))}

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

Вопросы для самопроверки:

1. Что из трех математических основ требует процедурного программирования (то есть программирования с поэтапным получением результата), а что – декларативного (то есть описания желаемого результата)?

4. SQL

4.1. Введение в sql

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

Язык SQL состоит из трех подъязыков, которые описаны в Табл. 8:

Табл. 8. Подъязыки языка SQL

Подъязык

Описание

Операторы

Определение данных (Data Definition Language, DDL)

Предназначен для создания различных объектов БД

Create - создание,

Alter - изменение,

Drop – удаление

следующих объектов:

Database – базы данных,

Table - таблицы,

View - представления,

Index – индекса,

Trigger – триггера,

Procedure – процедуры.

Управление данными (Data Control Language, DCL).

Предназначен для управления правами доступа пользователей к различным объектам БД

Grant – наделить правами,

Revoke – отнять права.

Манипулирование данными (Data Manipulation Language, DML)

Предназначен для работы с данными.

Select – выбрать данные,

Insert – создать новые данные,

Update – изменить данные,

Delete – удалить данные.

Операторы определения и управления данными просты, часто они скрыты от разработчика, если он пользуется мастерами при создании БД. Их рассмотрение выходит за пределы данной книги. Все богатство языка SQL заключено в операторе Select, который используется со вспомогательными операторами, приведенными в Табл. 9.

Табл. 9. Вспомогательные операторы для Select

Группа операторов

Описание операторов

Тип выборки

All – выбрать все записи

Distinct – выбрать записи, удалив повторы

Селекция, сортировка и группировка

order by [asc | desc] – сортировка по возрастанию или убыванию,

Where – селекция записей,

group by - группировка,

having – селекция групп,

[left | right | full | inner] join…on – различные виды соединений таблиц

Операторы сравнения и логические операторы

=, <>, >, <, >=, <= - операторы сравнения,

Or, Аnd, Not – логические И, ИЛИ, отрицание,

is [not] null – проверка на (не)пустое значение

in, between, like, starting,containing – операторы примерного совпадения полей строковых типов.

Агрегирующие операторы

Count – подсчет количества строк,

Sum – сумма,

Avg – среднее значение,

Min – минимальное значение,

Max – максимальное значение.

Кванторы

Any – какой-нибудь,

All – все,

Singular – единственный,

Exists – существует.

Операции над множествами

Union – объединение,

Intersect – пересечение,

Except – разность.

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