Оператор SQL:
SELECT *
FROM A
EXCEPT
SELECT *
FROM B
Реляционный оператор переименования RENAME выражается при помощи ключевого слова AS в списке отбираемых полей оператора SELECT. Таким образом, язык SQL является реляционно-полным.
Остальные операторы реляционной алгебры (соединение, пересечение, деление) выражаются через примитивные, следовательно, могут быть выражены операторами SQL. Тем не менее, для практических целей приведем их.
Оператор соединения
Реляционная алгебра:
Оператор SQL:
SELECT A.Поле1, A.Поле2, …, B.Поле1, B.Поле2, …
FROM A, B
WHERE c;
или
SELECT A.Поле1, A.Поле2, …, B.Поле1, B.Поле2, …
FROM A CROSS JOIN B
WHERE c;
Реляционная алгебра:
Оператор SQL:
SELECT *
FROM A
INTERSECT
SELECT *
FROM B;
Реляционная алгебра:
Оператор SQL:
SELECT DISTINCT A.X
FROM A
WHERE NOT EXIST
(SELECT *
FROM B
WHERE NOT EXIST
(SELECT *
FROM A A1
WHERE
A1.X = A.X AND
A1.Y = B.Y));
Пусть отношение A содержит данные о поставках деталей, отношение B содержит список всех деталей, которые могут поставляться. Атрибут X является номером поставщика, атрибут Y является номером детали.
Разделить отношение A на отношение B означает в данном примере "отобрать номера поставщиков, которые поставляют все детали".
Преобразуем текст выражения:
"Отобрать номера поставщиков, которые поставляют все детали" эквивалентно
"Отобрать те номера поставщиков из таблицы A, для которых не существует непоставляемых деталей в таблице B" эквивалентно
"Отобрать те номера поставщиков из таблицы A, для которых не существует тех номеров деталей из таблицы B, которые не поставляются этим поставщиком" эквивалентно
"Отобрать те номера поставщиков из таблицы A, для которых не существует тех номеров деталей из таблицы B, для которых не существует записей о поставках в таблице A для этого поставщика и этой детали".
Последнее выражение дословно переводится на язык SQL. При переводе выражения на язык SQL нужно учесть, что во внутреннем подзапросе таблица A должна быть переименована, для того чтобы отличать ее от экземпляра этой же таблицы, используемой во внешнем запросе.
Фактически стандартным языком доступа к базам данных в настоящее время стал язык SQL (Structured Query Language).
Язык SQL оперирует терминами, несколько отличающимися от терминов реляционной теории, например, вместо "отношений" используются "таблицы", вместо "кортежей" - "строки", вместо "атрибутов" - "колонки" или "столбцы".
Стандарт языка SQL, хотя и основан на реляционной теории, но во многих местах отходит он нее.
Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям:
Операторы DDL (Data Definition Language) - операторы определения объектов базы данных.
Операторы DML (Data Manipulation Language) - операторы манипулирования данными.
Операторы защиты и управления данными, и др.
Одним из основных операторов DML является оператор SELECT, позволяющий извлекать данные из таблиц и получать ответы на различные запросы. Оператор SELECT содержит в себе все возможности реляционной алгебры. Это означает, что любой оператор реляционной алгебры может быть выражен при помощи подходящего оператора SELECT. Этим доказывается реляционная полнота языка SQL.
Различают концептуальную схему выполнения оператора SELECT и фактическую схему его выполнения. Концептуальная схема описывает, в какой логической последовательности должны выполняться операции, чтобы получить результат. При реальном выполнении оператора SELECT на первый план выступает достижение максимальной скорости выполнения запроса. Для этого используется оптимизатор, который, анализируя различные планы выполнения запроса, выбирает наилучший из них.
№ п/п | Понятие | Определение |
1 | Информационная система | система, реализующая автоматизированный сбор, обработку и манипулирование данными и включающая технические средства обработки данных, программное обеспечение и соответствующий персонал |
2 | База данных (БД) | поименованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области |
3 | Объект | элемент предметной области, информацию о котором мы сохраняем |
4 | Поле | элементарная единица логической организации данных, которая соответствует неделимой единице информации - реквизиту |
5 | Запись | совокупность логически связанных полей |
6 | Файл (таблица) | совокупность экземпляров записей одной структуры |
7 | Модель данных | совокупность структур данных и операций их обработки |
8 | Реляционная модель данных | совокупность взаимосвязанных двумерных таблиц - объектов модели |
9 | Атрибут | поименованная характеристика объекта. Атрибут показывает, какая информация должна быть собрана об объекте |
10 | Связи | соответствия, отношения, возникающие между объектами предметной области |
11 | Сущность | основное содержание объекта предметной области, о котором собирают информацию. В качестве сущности могут выступать место, вещь, личность, явление |
12 | Конструктор (Builder) | инструмент Access, который облегчает выполнение конкретного задания |
Список использованных источников
1. Дейт К.Дж. Введение в системы баз данных. 6-е изд. - М.: Вильямс. 2000. – 317 с.
2. Конноли Т., Бегг Л., Страчан А. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. Вильямс 2003. – Таблицы, картинки. Леонтьев В.П. ПК: универсальный справочник пользователя - М.: 2003. – 251 с.
3. Дейт К. Введение в системы баз данных. 6-е изд. – М.: Вильямс, 2000. – 657с
4. В.В. Фаронов Основы программирования в SQL. - М.: Издатель Молгачева С.В., 2002. – 329 с.
5. Самоучитель по языку SQL (SQL DML) [Электронный ресурс] – Режим доступа http://www.sql-ex.ru/help
6. Коннолли Т., Бегг К., Страчан А. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 2-е изд. – С-Пб.: Вильямс, 2000. – 1120 с.
7. Корнеев В.В., Гареев А.Ф., Васютин С.В., Райх В.В. Базы данных. Интеллектуальная обработка информации. 2-е изд. – М.: Изд. Молгачева С.В., 2001. – 494 с.
8. Мамаев Е. MicrosoftSQLServer 2000 – СПБ.: БХВ-Петербург, 2002.
База данных в восприятии пользователя