- •Занятие 1. Безусловная выборка. Синтаксис запроса.
- •Простая выборка
- •Выборка уникальных значений
- •Задания. Базовый уровень:
- •Повышенный уровень
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •Занятие 2. Расширенные sql-запросы. Выборка с условием. Выборка вычисляемых значений
- •Выборка с условием
- •Выборка с использованием оператора between
- •Выборка с использованием оператора in (принадлежит)
- •Выборка с использованием шаблонов
- •Имя поля like строковая константа
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •11. Каким образом получить выборку вычисляемых значений? Занятие 3. Расширенные sql-запросы. Выборка из связанных таблиц. Группировка данных. Сортировка
- •Выборка из связанных таблиц
- •Простое соединение
- •Соединение с дополнительным условием
- •Соединение трех таблиц
- •Использование группировки данных при организации запросов
- •Использование группировки данных совместно с условием
- •Использование having
- •Сортировка
- •Повышенный уровень
- •Занятие 4. Расширенные sql-запросы. Использование квантора существования в запросах. Коррелированные и некоррелированные подзапросы
- •Использование квантора существования в запросах
- •Коррелированные и некоррелированные подзапросы
- •Задания (базовый уровень):
- •Вопросы. Базовый уровень:
- •Повышенный уровень
- •Занятие 5. Расширенные sql-запросы. Модификация, удаление и добавление данных. Проверка условий целостности данных
- •Модификация данных в таблицах
- •Удаление данных
- •Добавление записей
- •Insert into таблица [(поле [,поле] ...)] values (константа [,константа]...)
- •Insert into таблица [(поле [,поле] ...)] подзапрос
- •Целостность
- •Занятие 6. Объединение, пересечение и разность отношений. Операторы union, intersect, exept
- •Объединение множеств
- •Занятие 7. Соединение отношений. Виды соединений. Оператор join.
- •Задания (базовый уровень):
- •Задания (повышенный уровень)
- •Занятие 8. Администрирование бд. Привилегии. Представления
- •Предоставление доступа к отдельным таблицам
- •Представления
- •16.3. Поясните разницу между системными и объектными привилегиями.
- •Методические указания
- •355000, Ставрополь, пр. Кулакова, 8
Задания (базовый уровень):
1.Изучить приведенные примеры получения левого, правого и естественного соединений.
Задания (повышенный уровень)
2. В деканат сданы ведомости группы по трем предметам (алгебра, геометрия, история), представляющие собой таблицы. Ведомости соответствуют схемам отношений: Алгебра (№ п/п, ФИО, номер зачетной книжки, оценка);
Геометрия (№ п/п, ФИО, номер зачетной книжки, оценка);
История (№ п/п, ФИО, номер зачетной книжки, оценка).
Получить сводную ведомость в виде отношения Ведомость(№ п/п, ФИО, номер зачетной книжки, алгебра.оценка, геометрия.оценка, история.оценка)
с помощью языка SQL.
Вопросы:
Базовый уровень
1. К каким отношениям можно применить операцию «естественное соединение»?
Повышенный уровень
2. Поясните разницу между левым и правым соединением.
Занятие 8. Администрирование бд. Привилегии. Представления
Цель занятия: изучение операторов GRANT и REVOKE.
Теоретическое обоснование
Привилегии
Термин «привилегии» при работе с БД соответствует набору полномочий для выполнения определенных действий с объектами БД, к которым пользователь имеет право доступа. Управление доступом входит в обязанности администратора баз данных. Все привилегии можно разделить на системные и объектные. Рассмотрим операторы языка SQL, которые применяются для управления доступом к БД.
В системах клиент/сервер доступ к базе данных могут получать только зарегистрированные в системе пользователи. Для регистрации новых пользователей используется команда GRANT:
GRANT привилегия
TO имя пользователя
[ IDENTIFIED BY пароль ]
Перечень возможных системных привилегий в таблице 8.1.
Таблица 8.1 - Системные привилегии
CONNECT (соединять, связывать, быть согласованным) |
Имея эту привилегию, пользователь может подключаться к базе данных и работать с объектами, к которым он имеет привилегии по доступу. Пользователь может создавать представления, синонимы и межтабличные связи. |
RESOURCE (ресурсы) |
Эта привилегия разрешает пользователю создавать объекты базы данных, включая таблицы и индексы. |
DBA (АБД) |
Эта привилегия разрешает пользователю выполнять действия администратора базы данных. |
Пример:
GRANT DBA TO SYSADM IDENTIFIED BY SYSTEM
Предоставление доступа к отдельным таблицам
Кроме предоставления общих привилегий пользователю, можно определить уточненные привилегии на объект БД, например, таблицу или даже на ее отдельные поля. Для этого используется следующий вариант команды GRANT:
GRANT [SELECT] [,INSERT] [,DELETE] [,UPDATE (список столбцов) ]
ON имя таблицы имя представления
TO имя пользователя PUBLIC
[WITH GRANT OPTION]
SQL поддерживает два аргумента для команды GRANT, которые имеют специальное значение. Это ALL PRIVILEGES (или ALL) и PUBLIC.
ALL PRIVILEGES (или ALL) заменяет список всех привилегий. PUBLIC означает, что доступом пользуются все пользователи.
Команда WITH GRANT OPTION позволяет пользователю передавать привилегии другим пользователям.
Примеры:
1) GRANT ALL ON students TO Ivanov WITH GRANT OPTION
Эта команда предоставляет все полномочия по работе с таблицей (или представлением) students пользователю Иванову, он имеет право передавать привилегии другим пользователям.
2) GRANT UPDATE(f_name, l_name, city) , SELECT ON Customer TO PUBLIC
Эта команда предоставляет возможность всем пользователям делать запросы к таблице Customer и модифицировать столбцы f_name, l_name, city.
3) Grant read access ON library TO PUBLIC
Эта команда предоставляет возможность всем пользователям получать доступ «только для чтения» к таблице library.
Отмена ранее предоставленных привилегий осуществляется по команде REVOKE, имеющей следующий синтаксис:
REVOKE список операций ALL PRIVILEGES
ON имя _объекта
FROM список пользователей PUBLIC
[cascaderestrict]
Применение команды cascade отменяет все привилегии, назначенные во фразе WITH GRANT OPTION.
Пример:
REVOKE ALL PRIVILEGES ON tab1
FROM user4 restrict
операция будет отвергнута, если user4 передал привилегии еще кому-то.
