WHERE StudID IN
(SELECT StudID
FROM StudentDisc
WHEREDiscID = 1)
В языке SQL имеется возможность работы с группой строк таблиц для выполнения статистических функций Avg, Min, Max, Count, StDev, а также для работы с многомерными данными. Группирование строк задается предложением GROUP BY, указывающим один или несколько столбцов или выражение.
Пояснение операций работы с группой строк.
а) получение средней оценки по всем студентам, по всем дисциплинам:
SELECT AVG(StudentDisc.Mark) as 'Средняя оценка',
FROM StudentDisc;
Результатом будет одно значение (42+43+45)/3.
б) получение высшей оценки по каждой дисциплине:
SELECT MAX(StudentDisc.Mark) as 'Лучшая оценка',
FROM StudentDisc
GROUP BY DiscID;
Результатом будут два значения 43 и 45.
Кроме группирования можно задавать упорядочение при выводе. Это осуществляется с помощью предложения ORDER BY.
Операция SELECT является непроцедурной; она не определяет точные шаги, которые сервер базы данных должен предпринять, для получения запрошенных данных. Это означает, что сервер базы данных должен проанализировать инструкцию для определения самого эффективного способа извлечения запрошенных данных. Это называется оптимизацией SELECT, соответствующий программный компонент называют оптимизатором запросов. Входные данные оптимизатора состоят из самого запроса, схемы базы данных (определений таблиц и индексов) и статистики базы данных. Выходные данные оптимизатора - план выполнения запроса, иногда называемый планом запроса или просто планом. Содержимое плана запроса описывается более подробно далее в этом разделе.
План выполнения запроса представляет собой определение следующего.
· Последовательности, в которой происходит обращение к исходным таблицам. Как правило, существует много последовательностей, в которых сервер базы данных может обращаться к базовым таблицам для построения результирующего набора. Например, если инструкция SELECT ссылается на три таблицы, сервер базы данных сначала может обратиться к TableA, использовать данные из TableA для извлечения соответствующих строк из TableB и затем использовать данные из TableB для извлечения данных из TableC. Другие последовательности, в которых сервер базы данных может обращаться к таблицам: TableC, TableB, TableA или TableB, TableA, TableC или TableB, TableC, TableA или TableC, TableA, TableB;
· Способа извлечения данных из каждой таблицы. Например, необходимы только несколько строк с определенными ключевыми значениями, то можно использовать индекс. Если необходимы все строки в таблице, то можно выполнить просмотр таблицы. Если таблица является очень маленькой, то просмотр таблицы могут быть самым эффективным способом для п обращений к таблице.
Процесс выбора одного плана выполнения из множества потенциально возможных планов называется оптимизацией. При оценке затрат ресурсов оптимизатор запросов основывается на сохраняемой статистике извлечений относительно столбцов и индексов.
Оптимизатор запросов дает возможность серверу базы данных вносить динамическую коррекцию в изменяющиеся условия в базе данных, не требуя ввода данных от администратора базы данных или программиста.
Синтаксический анализатор просматривает предложение SELECT и разбивает его на логические единицы, такие как ключевые слова, выражения, операторы и идентификаторы.
Затем строится дерево запроса, иногда называемое деревом последовательности, с описанием логических шагов, необходимых для преобразования исходных данных в формат, требуемый результирующему набору.
Оптимизатор запросов анализирует различные способы, с помощью которых можно обратиться к исходным таблицам. Затем он выбирает последовательность действий, которые возвращают результаты быстрее всего и используют меньше ресурсов и обновляет дерево запроса, чтобы сохранить эту точную последовательность действий. Конечную, оптимизированную версию дерева запроса называют планом выполнения (execution plan). Он может получать имя и сохраняться в системе для последующего использования.
Основная литература
Учебник / Учебное пособие | Раздел | Страницы |
1. Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001.- 304 с.; ил. | Глава 12 | 248-275 |
2. Хомоненко А.Д, Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / под ред. проф. Хомоненко А.Д., 6-ое изд. – М.:Бином-Пресс; СПб.:Корона-Век, 2007.-736с. | Гл.13 | 476-524 |
Дополнительная литература
Учебник / Учебное пособие | Раздел | Страницы |
1. Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.;М.; СПб.: Издательский дом “Вильямс”,. 1999. – 848 с.: ил. (7-е и 8-е издание). | 8.3 – 8.8 | 229-251 |
2. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ. - М.: Издательский дом “Вильямс”,. 2001. – 1120 с.: ил. | 13.1 – 13.4 | 420-470 |
Тема 5. Защита и безопасность при доступе данным в многопользовательской среде
Лекция №6. Защита и безопасность данных
В рамках данной лекции рассматриваются нижеследующие вопросы:
· Управление доступом: избирательное и обязательное
· Проблемы многопользовательского режима.
· Безопасность участников и объектов базы данных
· Угрозы и уязвимости
· Категории пользователей. Администратор БД. Владелец БД, владелец объекта БД.
· Роли уровня сервера и базы данных
Управление доступом: избирательное и обязательное.
Существуют 2 подхода к вопросу обеспечения безопасности данных: избирательный подход или обязательный подход. В обоих подходах объектом защиты может быть как вся база данных целиком или какой-либо набор отношений, так и некоторое значение данных для заданного атрибута внутри некоторого кортежа в определенном отношении. Эти подходы отличаются следующими свойствами:
В случае избирательного управления некий пользователь обладает различными правами (привилегиями или полномочиями) при работе с различными объектами. Более того, разные пользователи могут иметь разные правами доступа к одному и тому же объекту. Поэтому избирательные схемы характеризуются значительной гибкостью.
В случае обязательного управления, наоборот, каждому объекту данных присваивается некоторый классификационный уровень, а каждый пользователь получает некоторый уровень допуска. Следовательно, при таком подходе доступ к определенному объекту данных предоставляют пользователю только с уровнем допуска, точно соответствующим классификационному уровню объекта. Поэтому обязательные схемы являются достаточно жесткими, но более надежными.
Обеспечение безопасности в рамках современных СУБД осуществляется на уровнях платформы, проверки подлинности, объектов БД и приложений.
Под платформой подразумевают физическое оборудование и сетевые компьютеры, с помощью которых клиенты соединяются с серверами базы данных, а также исполняемые двоичные файлы, реализующие обработку запросов базы данных.