- •V. Системы управления бд: общие сведения
- •Типы связей. Все информационные объекты предметной области связаны между собой. Различаются связи нескольких типов, для которых введены следующие обозначения:
- •Операторы sql для управления соединениями. В эту группу входят операторы connect, set connection и disconnect. Оператор connect определяется следующими синтаксическими правилами:
- •Команда select – выборка, самая часто используемая команда, с помощью её идет выбор данных из таблицы. Запроса с применением select выглядит с.О.:
- •Структура команды select следующая:
- •Insert into users_base (user_name, city, birth_day) values (‘Александр’, ‘Ростов’, ’20.06.1991’);
- •Такой запрос выведет только те строки, которые будут соответствовать условию where.
- •Оператор exists может быть полезен для вовлечения внешних ключей (foreign keys). В следующем примере идет проверка, имеет ли значение атрибута 'fred the 45' какое-либо задание. Первый вариант:
Оператор exists может быть полезен для вовлечения внешних ключей (foreign keys). В следующем примере идет проверка, имеет ли значение атрибута 'fred the 45' какое-либо задание. Первый вариант:
SELECT distinct 'x' FROM job WHERE name = 'fred the 45'
Во втором варианте используем оператор EXISTS и получаем уменьшение времени обработки почти в два раза.
SELECT 'x' FROM dual WHERE exists (SELECT 'x' FROM job where name = 'fred the 45')
Причина ускорения обработки состоит в том, что ядро СУБД остановится после того, как найдено хотя бы одно совпадение name = 'fred the 45'. Поэтому СУБД не будет просматривать всю таблицу целиком.
Эффективность операторов EXISTS и IN зависит от количества данных в каждой из таблиц, задействованных в запросе. В запросе с использованием IN управляющей таблицей является подзапрос, указанный в IN(), основной запрос повторяется для каждой строки возвращаемой подзапросом в IN(). В запросе с использованием EXISTS наоборот, управляющим является основной запрос, и подзапрос, указанный в EXISTS() повторяется для каждой строки, выбираемой в основном запросе. Таким образом, если подзапрос возвращает малое количество строк, а основной запрос возвращает большое количество строк, причем для каждой из строк полученных в подзапросе, то следует использовать оператор IN.
Рекомендации по стилю написания SQL операторов. SQL операторы следует писать таким образом, чтобы облегчить процесс их чтения, понимания и исправления. Логически обособленная последовательность операторов должна находиться в отдельном файле. Операторы следует выравнивать так, чтобы текст программы выглядел аккуратно. Каждое из запрашиваемых в SELECT полей должно быть на отдельной строке. Каждая из таблиц, перечисленных в ключевом слове FROM должна быть на отдельной строке.
Ключевые слова следует писать ПРОПИСНЫМИ БУКВАМИ. Перечисленные ниже ключевые слова следует писать с новой строки с одной и той же позиции:
SELECT INTO FROM WHERE AND/OR GROUP BY HAVING CONNECT BY FOR UPDATE OF ORDER BY
В целях облегчения читаемости и понимания запроса в предложении WHERE следует сначала писать условия объединяющие таблицы, а потом условия ограничивающие выборку.
В SQL обычно существует несколько вариантов выполнения одного и того же запроса. Поэтому следует исследовать различные варианты написания запросов с целью выбора наилучшего.
Выводы
Рассмотрены возможные варианты эксплуатации БД при различной архитектуре вычислительной системы. Представлено описание основных моделей данных (иерархическая, сетевая, реляционная, объектно-ориентированная, многомерная). Дано описание основных команд языка манипулирования данными для реляционной модели – SQL.
Список литературы
Когаловский М.Р.Технология баз данных на персональных ЭВМ. - М.: Финансы и статистика, 1992. - 224с.
Кренке Д. Теория и практика построения БД. — Изд. 9-е Спб.: Питер, 2004. — 864 с.
Олле Т. Предложения КОДАСИЛ по управлению БД. - М.: Мир, 1981. – 286 с.
Системы управления базами данных и знаний: Справ. изд./А.Н.Наумов, А.М.Вендров, В.К.Иванов и др., Под ред. А.Н.Наумова - М.: финансы и статистика, 1991 - 352 с.
Перечень вопросов для самопроверки
Какие СУБД Вы знаете?
Какие команды SQLВы знаете?
Нарисуйте место БД в различных архитектурах вычислительных систем.
Какие модели данных Вы знаете?
Назовите основные способы описания данных.