https://electroinfo.net

girniy.ru 1

Системы управления базами данных


1. Понятие системы управления базами данных 1

2. Основные функции СУБД 1

2.1. Непосредственное управление данными во внешней памяти 1

2.2. Управление буферами оперативной памяти 1

2.3. Управление транзакциями 1

2.4. Журнализация 2

2.5. Поддержка языков БД 2

3. Состав СУБД 3

3.1. Ядро СУБД 3

3.2. Компилятор языка БД и подсистема поддержки времени выполнения 3

3.3. Утилиты БД 3

4. Обзор возможностей и особенностей различных СУБД 4

4.1. Access 4

4.2. Visual FoxPro 5

4.3. SQL Server 6

5. Локальные и удаленные базы данных 6

5.1 Локальная база данных 6

5.2. Удаленная база данных 6

5.3. Обработка данных по технологии клиент-сервер 7

6. Язык запросов SQL 7

6.1. Состав языка SQL 8

6.2. Примеры применения операторов языка SQL 9

7. Современные технологии разработки СУБД (CASE-технологии) 10


1. Понятие системы управления базами данных


Основная особенность СУБД – это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банки данных, а затем «Базы данных» (БД).

База данных – это интегрированная совокупность данных, предназначенных для многофункционального использования и модификации одним или несколькими пользователями. Под управлением данными понимается весь круг операций с данными входящими в БД, необходимых для решения поставленных задач и выдачи их результатов в удобном для пользователя виде.

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

2. Основные функции СУБД


К числу функций СУБД принято относить следующие:

2.1. Непосредственное управление данными во внешней памяти


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

2.2. Управление буферами оперативной памяти


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

2.3. Управление транзакциями

Транзакция – это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. (Например, в информационной системе с файлами СТУДЕНТЫ и ГРУППЫ единственным способом не нарушить целостность БД при выполнении операции перевода в группу нового студента является объединение элементарных операций над файлами СТУДЕНТЫ и ГРУППЫ в одну транзакцию.)


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

2.4. Журнализация


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

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

Во всех случаях придерживаются стратегии «упреждающей» записи в журнал (так называемого протокола Write Ahead Log – WAL). Эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД.

2.5. Поддержка языков БД


Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка – язык определения схемы БД (SDL – Schema Definition Language) и язык манипулирования данными (DML – Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).

Перечислим некоторые функции реляционной СУБД, поддерживаемые на «языковом» уровне (т.е. функции, поддерживаемые при реализации интерфейса SQL).

Прежде всего, язык SQL сочетает средства SDL и DML, т.е. позволяет определять схему реляционной БД и манипулировать данными. При этом именование объектов БД (для реляционной БД – именование таблиц и их столбцов) поддерживается на языковом уровне в том смысле, что компилятор языка SQL производит преобразование имен объектов в их внутренние идентификаторы на основании специально поддерживаемых служебных таблиц-каталогов. Внутренняя часть СУБД (ядро) вообще не работает с именами таблиц и их столбцов.

Язык SQL содержит специальные средства определения ограничений целостности БД. Ограничения целостности хранятся в специальных таблицах-каталогах, и обеспечение контроля целостности БД производится на языковом уровне.


Наконец, авторизация доступа к объектам БД производится также на основе специального набора операторов SQL. Идея состоит в том, что для выполнения операторов SQL разного вида пользователь должен обладать различными полномочиями. Пользователь, создавший таблицу БД, обладает полным набором полномочий для работы с этой таблицей. В число этих полномочий входит полномочие на передачу всех или части полномочий другим пользователям, включая полномочие на передачу полномочий. Полномочия пользователей описываются в специальных таблицах-каталогах, контроль полномочий поддерживается на языковом уровне.

3. Состав СУБД


Естественно, организация типичной СУБД и состав ее компонентов соответствует рассмотренному нами набору функций.

Логически в современной реляционной СУБД можно выделить наиболее внутреннюю часть – ядро СУБД (часто его называют Data Base Engine), компилятор языка БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит. В некоторых системах эти части выделяются явно, в других – нет, но логически такое разделение можно провести во всех СУБД.

3.1. Ядро СУБД

Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Соответственно, можно выделить такие компоненты ядра (по крайней мере, логически, хотя в некоторых системах эти компоненты выделяются явно), как менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала. Функции этих компонентов взаимосвязаны, и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно продуманным и проверенным протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL (или в подсистеме поддержки выполнения таких программ) и утилитах БД. Ядро СУБД является основной резидентной частью СУБД. При использовании архитектуры «клиент-сервер» ядро является основной составляющей серверной части системы.

3.2. Компилятор языка БД и подсистема поддержки времени выполнения


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

3.3. Утилиты БД


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

4. Обзор возможностей и особенностей различных СУБД


Рассмотрим средства разработки, которые предлагает Microsoft. Эта компания в настоящий момент предлагает несколько программных продуктов семейства СУБД: Access, SQL Server, Visual FoxPro. Эти средства могут быть использованы, так по отдельности – для решения конкретно поставленной задачи, как и в качестве интегрированного набора. Основные характеристики продуктов приведены в следующей таблице.

Название

Основные преимущества

Основное назначение

Access


Простота освоения

Возможность использования непрофессиональным программистом.

Имеет мощные средства подготовки отчетов из БД различных форматов.

Создание отчетов произвольной формы на основании различных данных.

Разработка не коммерческих приложений.

SQL-Server

Высокая степень защиты данных.

Мощные средства работы с данными.

Высокая производительность.

Хранение больших массивов данных.

Хранение данных, требующих соблюдения режима секретности или при не допустимости их потери.

Visual FoxPro

Высокий уровень объектной модели.

Высокая скорость обработки данных.

Интеграция объектно-ориентированного языка программирования с Xbase и SQL.

Многоплатформенность.

Создание приложений масштаба предприятия.

Создание приложений для работы на различных платформах (Windows 3.x,, Windows 95,, Macintosh и т. д.).

Рассмотрим названные СУБД.

4.1. Access


Microsoft Access – одна из самых популярных настольных СУБД, рассчитанная как на начинающего, так и на квалифицированного пользователя. Главное качество Access, которое привлекает к нему многих пользователей, – тесная интеграция с Microsoft Office. В отличие от других рассматриваемых средств разработки, СУБД Access имеет русифицированный интерфейс и частично переведенный на русский язык файл контекстной помощи.

СУБД Access для работы с данными использует процессор баз данных Microsoft Jet, объекты доступа к данным и средства быстрого построения интерфейса – Конструктор форм. Для получения распечаток используются Конструкторы отчетов. Автоматизация рутинных операций может быть выполнена с помощью макрокоманд. Access из всех рассматриваемых средств разработки имеет, пожалуй, самый богатый набор визуальных средств. Если функциональность визуальных средств оказывается недостаточной, пользователи Access могут обратиться к созданию процедур и функций на языке программирования Visual Basic for Application. Можно целиком создавать базы данных с помощью кодирования, когда в этом появляется необходимость.


Для коммерческого распространения приложений, разработанных на Access, предназначен пакет Access Developer Toolkit, вместе с которым поставляются и несколько дополнительных объектов ActiveX. Посредством драйверов ISAM можно получить доступ к файлам таблиц некоторых других форматов: DBASE, Paradox, Excel, текстовым файлам, FoxPro 2.x, а посредством технологии ODBC – и к файлам многих других форматов.

(ODBC – Open DataBase Connectivity – технологический стандарт Microsoft, предполагающий создание единого интерфейса доступа к различным базам данных на различных платформах.)

Вся работа с базой данных осуществляется через контейнеры базы данных. Отсюда осуществляется доступ ко всем объектам, а именно: таблицам, запросам, формам, отчетам, макросам, модулям.

Access 7.0 может выступать как в роли OLE – контролера, так и OLE сервера. Это значит, что можно контролировать работу приложений Access из любого приложения, при условии, что оно может выступать в роли OLE контролера и наоборот.

(OLE – Object Linking and Embedding – технология, позволяющая создавать приложения, включающие в свой состав объекты, полученные из других приложений.)

Встроенный SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным.

Access – это типичная настольная база данных. В то же время на небольшом предприятии с количеством компьютеров не больше десяти, ресурсов Access вполне может хватить для обслуживания всего делопроизводства, естественно в связке с Microsoft Office. То есть все пользователи могут обращаться к одной базе данных, установленной на одной рабочей станции, которая не обязательно должна быть выделенным сервером. Access имеет встроенную систему защиты: можно создавать группы, пользователей, присваивать права доступа ко всем объектам, индивидуальные пароли пользователям, закрывать базу данных от просмотра внешними программами.

4.2. Visual FoxPro

Visual FoxPro – одна из наиболее быстрых СУБД для персональных компьютеров. Интерфейс Visual FoxPro отвечает представлениям о современной графической среде и напоминает интерфейс прочих программ Microsoft. Основная работа с данными выполняется с помощью различных инструментальных средств, поэтому команды меню часто имеют вспомогательный характер и их состав гибко меняется в зависимости от того, какое средство активно в данный момент.

Отличительные черты Visual FoxPro можно описать следующим образом:

1. Обеспечение возможности быстрой разработки прикладной программы базируется на включении средств, которые позволяют повысить скорость работы программиста. В первую очередь это средства объективно-ориентировочного программирования, позволяющие пользователю формировать компоненты своего проекта (объекта), которые затем могут многократно использоваться. В связи с этим традиционный Xbase язык в Visual FoxPro расширен, что позволяет создавать истинные объекты, классы и подклассы. Кроме того, объекты могут быть созданы с помощью визуальных средств и визуально использоваться в любое время.

2. Обеспечение полного набора средств для управления событиями. Традиционно в Xbase от программиста требовалось написать собственный драйвер для обработки необходимого набора событий. Но число событий, к которым может обращаться пользователь, весьма велико, и, следовательно, обработка событий является непростой задачей. Visual FoxPro имеет истинно управляемую событиями модель, так что по умолчанию система раньше, чем пользователи обрабатывает объектные события. Кроме того, программист теперь имеет полный доступ к набору стандартных, основанных на функционировании Windows событий (например, движение мыши, которые допускают перетаскивание объектов).

3. Обеспечение мощного набора инструментальных средств для программиста. Разработчики систем автоматизации обработки данных, кроме мощного набора визуальных средств проектирования могут использовать широкие возможности по интеграции систем хранения данных и доступа к серверам данных с помощью технологии ODBC. Основные новшества – это расширение встроенного языка SQL, встроенный механизм обеспечения транзакций, возможность обращения к серверу на том диалекте SQL, который поддерживает сервер.


4. Обеспечение полной интеграции Visual FoxPro в семейство прикладных программ Micrpоsoft. Visual FoxPro обеспечивает полную поддержку OLE, что облегчает взаимодействие с другим программным обеспечением в среде Windows.

4.3. SQL Server


Microsoft SQL Server 6.5 – одна из наиболее мощных СУБД архитектуры клиент-сервер. Эта СУБД позволяет удовлетворять такие требования, предъявляемые к системам распределенной обработке данных, как тиражирование данных, параллельная обработка, поддержка больших баз данных на относительно не дорогих аппаратных платформах при сохранении несмежного управления.

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

5. Локальные и удаленные базы данных


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

5.1 Локальная база данных


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

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


К этой группе относятся Paradox, dBase, Access.

5.2. Удаленная база данных


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

Программа работы с удаленной базой данных состоит из двух частей: клиентской и серверной. Клиентская часть программы, работающая на компьютере пользователя, обеспечивает взаимодействие с серверной программой: посредством запросов, передаваемых на удаленный компьютер, предоставляет доступ к данным.

Серверная часть программы, работающая на удаленном компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL.

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

5.3. Обработка данных по технологии клиент-сервер


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

Основная функция компьютера-клиента состоит в выполнении приложения (интерфейса с пользователем и логики представления) и осуществлении связи с сервером, когда этого требует приложение. Параметры компьютера-клиента, характеристики оперативной и дисковой памяти, другого оборудования, выбор операционной системы определяется требованиями приложения.


Как следует уже из самого термина, главная функция компьютера-сервера заключается в обслуживании потребностей клиента. Чаще всего компьютер с сервером баз данных выделяется только для выполнения операций с базами данных. Связь с клиентом, анализ и выполнение запроса к базе данных, включая возврат клиенту результата запроса, управление одновременным доступом к базе данных многих пользователей, перенаправление запросов к другим серверам сети, выполнение реляционных операций, управление словарем-справочником данных и обеспечение защиты – таковы некоторые основные функции сервера баз данных. Одно из важных требований к серверу – это то, что операционная система, в среде которой размещен сервер баз данных, должна быть многозадачной (и, желательно, но не обязательно, многопользовательской). Например, СУБД Oracle, установленная на персональном компьютере с операционной системой MS-DOS (или PC-DOS), не удовлетворяющей требованию многозадачности, не может использоваться как сервер баз данных. И та же СУБД Oracle, установленная на компьютере с многозадачной (хотя и не многопользовательской) операционной системой OS/2, может быть сервером баз данных.

Преимущества технологии клиент-сервер:


  • независимость от платформ (доступ к разнородным сетевым средам, в состав которых входят компьютеры разных типов с различными операционными системами);

  • большее число пользователей;

  • экономичность (доступность недорогого компьютерного оборудования и все большее распространение локальных сетей делают технологию клиент-сервер экономичнее других технологий обработки данных);

  • возможность привлечения больших вычислительных ресурсов для операций с базами данных (поскольку приложения выполняются на компьютерах-клиентах, на компьютере-сервере для операций с базами данных высвобождаются дополнительные ресурсы).

6. Язык запросов SQL

SQL (Structured Query Language – структурированный язык запросов) – язык программирования, который используется при работе с реляционными базами данных в большинстве современных СУБД (Access, Paradox, ORACLE и др.).

Язык SQL считается стандартом языков запросов для работы с реляционными базами данных. Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной Организацией по Стандартизации).

Однако помимо SQL ANSI существует множество диалектов, с которыми работают различные системы. Например, Sybase SQL Server и Microsoft SQL используют синтаксис, существенно отличающийся от стандарта ANSI. InterBase, Oracle и многие другие в основном придерживаться стандарта ANSI, но каждый разработчик вносит в него и свои усовершенствования.

6.1. Состав языка SQL


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

Поэтому, в язык SQL в качестве составных частей входят:

  • язык манипулирования данными (Data Manipulation Language, DML)

  • язык определения данных (Data Definition Language, DDL)

  • язык управления данными (Data Control Language, DCL).

Подчеркнем, что это не отдельные языки, а модули, содержащие различные команды одного языка.

Язык манипулирования данными используется, как это следует из его названия, для манипулирования данными в таблицах баз данных. Он включает 4 основных команды:

SELECT

Выбрать

INSERT

Вставить


UPDATE

Обновить

DELETE

Удалить

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

CREATE DATABASE

Создать базу данных

CREATE TABLE

Создать таблицу

CREATE VIEW

Создать виртуальную таблицу

CREATE INDEX

Создать индекс

CREATE TRIGGER

создать триггер

CREATE PROCEDURE

Создать процедуру

ALTER DATABASE

Модифицировать базу данных

ALTER TABLE

Модифицировать таблицу

ALTER VIEW

Модифицировать виртуальную таблицу

ALTER INDEX

Модифицировать индекс

ALTER TRIGGER

Модифицировать триггер

ALTER PROCEDURE

Модифицировать процедуру

DROP DATABASE

Удалить базу данных


DROP TABLE

Удалить таблицу

DROP VIEW

Удалить виртуальную таблицу

DROP INDEX

Удалить индекс

DROP TRIGGER

Удалить триггер

DROP PROCEDURE

Удалить процедуру

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать «язык управления доступом». Он состоит из двух основных команд:

GRANT

Дать права

REVOKE

Забрать права

Мы не будем приводить точный синтаксис команд SQL (который приводится в документации конкретной СУБД), а приведем примеры использования.

6.2. Примеры применения операторов языка SQL


Создание таблицы:

CREATE TABLE Students (Номер INTEGER, Имя TEXT, Фамилия TEXT, [Дата рождения] DATETIME );

Будет создана таблица Students, в составе которой одно числовое поле – Номер; два текстовых поля – Имя и Фамилия; одно поле типа дата/время – Дата рождения.

Изменение структуры таблицы:

ALTER TABLE Students ADD COLUMN [Наличие стипендии] LOGICAL;

В имеющуюся таблицу Students будет добавлено новое поле Наличие стипендии логического типа.

Ввод данных в таблицу:

INSERT INTO Students (Номер, Имя, Фамилия, [Дата рождения])


VALUES (12, "Иван", "Петров", 14/5/1986);

В таблицу Students будет добавлена запись, в которой поля Номер, Имя, Фамилия, Дата рождения будут заполнены указанными значениями.

Удаление записей в таблице:

DELETE * FROM Students WHERE Фамилия="Петров";

Из таблицы будут удалены все записи, в которых значение поля Фамилия совпадает с «Петров».

Обновление (замена) значений полей записи:

UPDATE Students SET [Наличие стипендии] = TRUE

WHERE Фамилия="Петров" And Имя="Иван";

В записях, значение поля Фамилия в которых совпадает с «Петров», поля Имя – с «Иван», изменить значение поля Наличие стипендии на TRUE.

Выборка данных:

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

SELECT Имя, Фамилия FROM Students;

Выбираются все записи таблицы Students в составе указанных полей: Имя, Фамилия.

SELECT Имя, Фамилия FROM Students ORDER BY [Дата рождения];

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

SELECT * FROM Students WHERE [Наличие стипендии]=TRUE

ORDER BY Фамилия;

Выбираются все записи (будут отражены все имеющиеся поля) из таблицы Students, в которых значение поля Наличие стипендии совпадает с TRUE, упорядочение записей осуществляется по алфавиту значения поле Фамилия.

7. Современные технологии разработки СУБД (CASE-технологии)


Средства CASE-технологии относительно новое, сформировавшееся на рубеже 80-х гг. направление.

Термин CASE (Computer Aided Software Engineering) используется в настоящее время в весьма широком смысле. Первоначальное значение термина CASE, ограниченное вопросами автоматизации разработки только лишь программного обеспечения (ПО), в настоящее время приобрело новый смысл, охватывающий процесс разработки сложных информационных систем (ИС) в целом. Теперь под термином CASE-технологии понимаются программные средства, поддерживающие процессы создания и сопровождения ИС, включая анализ и формулировку требований, проектирование прикладного ПО (приложений) и баз данных, генерацию кода, тестирование, документирование, обеспечение качества, конфигурационное управление и управление проектом, а также другие процессы.


CASE-технология представляет собой методологию проектирования ИС, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех этапах разработки и сопровождения ИС и разрабатывать приложения в соответствии с информационными потребностями пользователей. Большинство существующих CASE-средств основано на методологиях структурного (в основном) или объектно-ориентированного анализа и проектирования, использующих спецификации в виде диаграмм или текстов для описания внешних требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств.

Помимо возможности применения современных методов системной и программной инженерии, CASE обладают следующими достоинствами:


  • улучшают качество создаваемого ПО за счет средств автоматического контроля;

  • позволяют за короткое время создать прототип будущей системы, что позволяет на ранних этапах оценить ожидаемый результат;

  • ускоряют процесс проектирования и разработки;

  • поддерживают развитие и сопровождение разработки;

  • поддерживают технологии повторного использования компонент разработки.

Средства CASE-технологии делятся на две группы:

  1. встроенные в систему реализации – все решения по проектированию и реализации привязаны к выбранной СУБД;

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

Приведем примеры CASE-средств.

ERwin – средство концептуального моделирования БД, реализующее проектирование схемы БД, генерацию ее описания на языке целевой СУБД (ORACLE, Informix, Ingres, Sybase, DB/2, Microsoft SQL Server, Progress и др.) и реинжиниринг существующей БД. ERwin выпускается в нескольких различных конфигурациях, ориентированных на наиболее распространенные средства разработки приложений.


S-Designor 4.2 представляет собой CASE-средство для проектирования реляционных баз данных. По своим функциональным возможностям и стоимости он близок к CASE-средству ERwin, отличаясь внешне используемой на диаграммах нотацией. S-Designor реализует стандартную методологию моделирования данных и генерирует описание БД для таких СУБД, как ORACLE, Informix, Ingres, Sybase, DB/2, Microsoft SQL Server и др. Для существующих систем выполняется реинжиниринг БД. S-Designor совместим с рядом средств разработки приложений (PowerBuilder, Uniface, TeamWindows и др.) и позволяет экспортировать описание БД.

CASE.Аналитик 1.1 является практически единственным в настоящее время конкурентоспособным отечественным CASE-средством функционального моделирования. Среда функционирования: процессор – 386 и выше, основная память – 4 Мб, дисковая память – 5 Мб, MS Windows 3.x или Windows 95. База данных проекта реализована в формате СУБД Paradox и является открытой для доступа. С помощью отдельного программного продукта (Catherine) выполняется обмен данными с CASE-средством ERwin. При этом из проекта, выполненного в CASE.Аналитике, экспортируется описание структур данных и накопителей данных, которое по определенным правилам формирует описание сущностей и их атрибутов.

Silverrun американской фирмы Сomputer Systems Advisers, Inc. (CSA) используется для анализа и проектирования ИС бизнес-класса. Для автоматической генерации схем баз данных у Silverrun существуют мосты к наиболее распространенным СУБД: Oracle, Informix, DB2, Ingres, SQL Server, Sybase и др. Для передачи данных в средства разработки приложений имеются мосты к языкам PowerBuilder, SQL Windows, Uniface, Delphi и др. Имеются реализации Silverrun трех платформ – MS Windows, Macintosh и OS/2 Presentation Manager – с возможностью обмена проектными данными между ними.

Vantage Team Builder (Westmount I-CASE) представляет собой интегрированный программный продукт, ориентированный поддержку полного жизненного цикла ПО. Vantage Team Builder поставляется в различных конфигурациях в зависимости от используемых СУБД (ORACLE, Informix, Sybase или Ingres) и функционирует на всех основных UNIX-платформах. Vantage Team Builder можно использовать в конфигурации «клиент-сервер», при этом база проектных данных может располагаться на сервере, а рабочие места разработчиков могут быть клиентами.

Uniface 6.1 – продукт фирмы Compuware (США) – представляет собой среду разработки крупномасштабных приложений в архитектуре «клиент-сервер». В список поддерживаемых СУБД входят DB2, VSAM и IMS; среда функционирования – все основные UNIX–платформы и MS Windows.

CASE-средство Designer/2000 2.0 фирмы ORACLE является интегрированным CASE-средством, обеспечивающим в совокупности со средствами разработки приложений Developer/2000 поддержку полного жизненного цикла ПО для систем, использующих СУБД ORACLE.