Назад    Оглавление    Далее

Введение

Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД) [3].

Борясь за покупателя, фирмы, производящие программное обеспечение, стали выпускать на рынок все более и более интеллектуальные и, следовательно, объемные программные комплексы. Приобретая (желая приобрести) такие комплексы, многие организации и отдельные пользователи часто не могли разместить их на собственных ЭВМ, однако не хотели и отказываться от нового сервиса. Для обмена информацией и ее обобществления были созданы сети ЭВМ, где обобществляемые программы и данные стали размещать на специальных обслуживающих устройствах - файловых серверах.

СУБД, работающие с файловыми серверами, позволяют множеству пользователей разных ЭВМ (иногда расположенных достаточно далеко друг от друга) получать доступ к одним и тем же базам данных. При этом упрощается разработка различных автоматизированных систем управления организациями, учебных комплексов, информационных и других систем, где множество сотрудников (учащихся) должны использовать общие данные и обмениваться создаваемыми в процессе работы (обучения). Однако при такой идеологии вся обработка запросов из программ или с терминалов пользователя выполняется на этих серверах. Для обеспечения эффективной работы при решении таких задач была предложена технология "Клиент-Сервер", по которой запросы пользовательских ЭВМ (Клиент) обрабатываются на специальных серверах баз данных (Сервер), а на клиента возвращаются лишь результаты обработки запроса [1].

Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных (табличных) СУБД. Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые мультипользовательские версии СУБД. В них тем или иным путем решаются специфические проблемы параллельных процессов, целостности (правильности) и безопасности данных, а также санкционирования доступа.

Ясно, что совместная работа пользователей в сетях с помощью унифицированных средств общения с базами данных возможна только при наличии стандартного языка манипулирования данными, обладающего средствами для реализации перечисленных выше возможностей.

Таким языком стал SQL, разработанный в 1974 году фирмой IBM для экспериментальной реляционной СУБД System R. После появления на рынке двух пионерских СУБД этой фирмы - SQL/DS (1981 год) и DB2 (1983 год) - он приобрел статус стандарта де-факто для профессиональных реляционных СУБД. В 1987 году SQL стал международным стандартом языка баз данных, а в 1992 году вышла вторая версия этого стандарта. Поэтому все современные версии профессиональных реляционных СУБД (DB2, Oracle, Ingres, Informix, Sybase, Progress, Rdb) и даже нереляционных СУБД (например, Adabas) используют технологию "Клиент-Сервер" и язык SQL. К тому же приходят разработчики СУБД для персональных ЭВМ, многие из которых уже сегодня снабжены языком SQL [4].

Рассматриваемый же ниже непроцедурный язык SQL (Structured Query Language - структурированный язык запросов) ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.

Реализация в SQL концепции операций, ориентированных на табличное представление данных, позволило создать компактный язык с небольшим (менее 30) набором предложений. SQL может использоваться как интерактивный (для выполнения запросов) и как встроенный (для построения прикладных программ).

Основными конструкциями языка служат:

Кроме того, SQL предоставляет возможность выполнять в своих предложениях: Ориентированный на работу с таблицами SQL не имеет достаточных средств для создания сложных прикладных программ. Поэтому в разных СУБД он либо используется вместе с языками программирования высокого уровня (например, такими как Си или Паскаль), либо включен в состав команд специально разработанного языка СУБД (язык систем dBASE, R:BASE, Oracle и т.п.).

Здесь рассматриваются наиболее важные предложения базового варианта SQL, изложенного в стандарте ANSI 1992 года, позволяющие познакомиться с основными средствами манипулирования данными. Недостаток места не позволил подробно рассмотреть другие его конструкции. Однако и таких знаний достаточно для получения данных из баз, находящихся под управлением большинства современных СУБД.

В разделе “Основные понятия реляционной модели базы данных” очень кратко даются необходимые для дальнейшего понимания материала понятия из теории реляционных баз данных.

Раздел “Первое, что нужно знать” посвящен описанию типов данных, арифметических и логических конструкций, а так же функций, изложенных в стандарте языка ANSI SQL-92.

Раздел “Среда SQL*Plus” описывает основные принципы работы со средством SQL*Plus корпорации Oracle – простого командного интерфейса пользователя для работы с сервером Oracle [2]. Если читатель пользуется какой-либо другой прикладной программой, реализующей те же самые функции, он может пропустить этот раздел. Однако, все примеры в тексте пособия приводятся так, как это выглядит в среде SQL*Plus.

В разделе “Выборка данных из базы данных” читатель найдет описание команды SELECT – единственного средства выборки данных в языке SQL. Материал содержит множество примеров, поясняющих использование этой мощной команды для решения конкретных задач.

В следующем разделе “Определение структур данных” описаны элементы языка определения структур данных (Database Definition Language, DDL), предназначенных для создания, модификации и удаления основной структуры для хранения данных в реляционной СУБД – таблицы.

Раздел “Манипулирование данными” посвящен описанию команд языка манипулирования данными (Database Manipulation Language, DML), с помощью которых данные можно заносить данные в таблицы, редактировать их или удалять из таблиц.

Раздел “Управление транзакциями” полностью описывает очень важную тему – язык управления транзакциями (Transaction Control Language, TCL). Транзакция является основной логической единицей для работы реляционных СУБД. Именно с помощью аппарата управления транзакциями СУБД содержит базу данных, с которой работают пользователи, в целостном виде.

Дополнительные объекты для хранения и обработки данных – последовательности, представления и индексы описываются в разделе “Другие объекты базы данных”. Команды для работы с этими объектами относятся к группе команд DDL.

И, наконец, в последнем разделе “Задания для практических занятий” приводятся контрольные упражнения, которые необходимо выполнить читателю для усвоения предлагаемого материала. Эти задания можно выполнять на практических занятиях в компьютерном классе, в домашних условиях, совместно с преподавателем или самостоятельно. В тексте каждого раздела приводятся ссылки на соответствующее практическое занятие, помеченные изображением компьютера.

В приложениях содержится справочный материал - структуры таблиц “Приложение 2” и ER-диаграмма учебной базы данных “Приложение 1”. Эта информация постоянно требуется для выполнения практических заданий.

Текст данного пособия составлен на основании личного опыта автора по преподаванию дисциплины “Базы данных” на математическом факультете кемеровского госуниверситета, практических пособий слушателей авторизованных учебных курсов Oracle [2] и доступной по Интернет литературы. Все замечания или пожелания, которые можно присылать по адресу good@kemsu.ru, с благодарностью примутся и будут учтены при разработке следующего издания учебного пособия.

Автор выражает свою искреннюю благодарность Русаковой Нине Александровне за ценные замечания и редактирование рукописи, а также Дорожановой Людмиле Владимировне за подготовку Web-ориентированного варианта учебного пособия.


Назад    Оглавление    Далее