- •14. Нормализация переменных отношения. Нормальные формы: 1нф, 2нф, 3нф, нфбк. Декомпозиция без потерь.
- •15. Язык запросов sql. Классификация языковых средств sql. Операторы sql, относящиеся к ddl, dml, dcl, tcl.
- •16. Язык запросов sql. Общий синтаксис и возможности оператора select. Особенности использования null-значений. Виды соединений (Natural Join, Inner Join, Left outer Join, Right outer Join).
- •17. Язык запросов sql. Общий синтаксис и возможности оператора select. Запросы с использованием group by.
- •Язык запросов sql. Представления, хранимые процедуры, функции и триггеры.
- •Администрирование баз данных. Задачи администрирования, функции администратора бд (абд), требования к квалификации абд.
- •Оперативные (operational) абд:
15. Язык запросов sql. Классификация языковых средств sql. Операторы sql, относящиеся к ddl, dml, dcl, tcl.
Одним из языков манипулирования данными является язык SQL. SQL-Structured Ouery language – структурный язык запросов.
Языковые средства современных СУБД можно разделить на четыре основных категории:
DDL (Data Definition Language – язык определения данных),
DML (Data Manipulation Language – язык манипулирования данными),
DCL (Data Control Language – язык администрирования БД)
TCL (Transaction Control Language - язык управления транзакциями).
DDL предназначен для создания структур в БД, или, как принято говорить, создания схемы БД. Для реляционных БД это операции создания/удаления таблиц и их изменение (CREATE, DROP, ALTER), настройки свойств полей таблиц, задания связей между таблицами и подобные операции.
DML служит для выборки, удаления и изменения данных в имеющейся схеме БД (INSERT, DELETE, UPDATE, SELECT).
DCL предназначен для задания прав доступа на объекты БД (GRANT, REVOKE).
Диалекты SQL
СУБД |
Название |
Расшифровка |
MS SQL Server |
T-SQL |
Transact-SQL |
Oracle |
PL/SQL |
Procedural Language/SQL |
Можно сделать 2 противоположных заключения:
Наличие стандарта языка SQL позволяет создавать приложения БД, независимые от СУБД и работающие с различными СУБД.
Различия в реализациях языка в разных СУБД сильно затрудняют создание приложений БД, независимых от СУБД.
16. Язык запросов sql. Общий синтаксис и возможности оператора select. Особенности использования null-значений. Виды соединений (Natural Join, Inner Join, Left outer Join, Right outer Join).
Одним из языков манипулирования данными является язык SQL. SQL-Structured Ouery language – структурный язык запросов.
Оператор SELECT является фактически самым важным для пользователя и самым сложным оператором SQL. Он предназначен для выборки данных из таблиц, т.е. он, собственно, и реализует одно их основных назначение базы данных- предоставлять информацию пользователю. Оператор SELECT всегда выполняется над некоторыми таблицами, входящими в базу данных. Результатом выполнения оператора SELECT всегда является таблица. Таким образом, по результатам действий оператор SELECT похож на операторы реляционной алгебры. Любой оператор реляционной алгебры может быть выражен подходящим образом сформулированным оператором SELECT. Сложность оператора SELECT определяется тем, что он содержит в себе все возможности реляционной алгебры, а также дополнительные возможности, которых в реляционной алгебре нет.
Рассмотрим некоторые возможности оператора SELECT. Общая форма оператора SELECT выглядит так:
SELECT столбцы FROM таблицы [WHERE условия]
[GROUP ВУ группа [HAVING групповые-условия]]
[ORDER ВУ сортировка-столбцов]
Условия, которые задаются с помощью оператора WHERE, должны быть представлены в виде предикатов. В данных условиях могут использоваться следующие операции: >,<,=,!=,>=,<=,<> , а также логические AND, OR, NOT для соединения нескольких условий. Также используются Like и Between AND
Иногда для получения результата нам нужно объединить две таблицы.
Inner Join возвращает все ряды из обоих таблиц, в которых имеется соответствие. Left Join возвращает все ряды из первой таблицы, даже если какому-то ряду нет соответствия во второй таблице. Right Join соответственно наоборот.
Natural Join – частный вид Inner Join. Natural Join производит соединение таблиц по общему полю в первой и второй таблицы, при этом не дублируя его в результативной таблице.
Для обозначения значений, которые нам неизвестны или отсутствуют, было принято использовать пометку NULL, иначе называемым пустым значением.
При этом NULL не является значением в полном смысле. Мы просто обозначаем, что значение отсутствует. NULL значения можно использовать в особенном виде соединения – внешние соединения (OUTER JOINS) - LEFT OUTER JOIN/RIGHT OUTER JOIN, которое было бы невозможно в отсутствие NULL значений.
Существование NULL-значений добавляет в реляционную модель новое ограничение целостности атрибута: NULLABLE/NOT NULLABLE. NULLABLE разрешает атрибуту принимать NULL-значения, NOT NULLABLE – запрещает. В большинстве СУБД потенциальные ключи не могут принимать NULL-значений.
