С помощью какого программного обеспечения создаются информационные системы и базы данных

Обновлено: 02.07.2024

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

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

11.1. Основные задачи программного обеспечения баз данных

При работе с реляционными базами данных можно условно выделить две основные задачи:

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

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

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

  • Программное обеспечение клиента SQL-сервер (Transact SQL, SQL Server Query Analyzer и др.)
  • MS Access (ODBC)
  • MS Visual Basic
  • MS Visual Studio
  • MS Visual FoxPro
  • Java (JDBC)
  • Borland Delphi
  • Borland C++Builder и др.
  • Библиотеки функций (API, ODBC и др.)

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

11.2. Проблемы создания и ведения реляционных баз данных

При создании базы данных и организации работы с ней возникают три основные проблемы:

  • собственно создание базы данных (создание таблиц, индексов, ограничений целостности);
  • обеспечение безопасности и разграничения доступа;
  • организация доступа к элементам таблицы (выборка, редактирование, удаление, добавление).

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

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

СТУДЕНТ (Код студента, Фамилия, Имя, Отчество, Дата поступления).

Теперь мы хотим выполнить некоторый запрос к базе данных, результатом которого должны стать те строки таблицы СТУДЕНТ, для которых дата поступления окажется больше 01.06.2006. Рассмотрим последовательность действий для реализации данного запроса.

  1. Получаем доступ к таблице СТУДЕНТ и устанавливаем указатель текущей строки на первую строку таблицы.
  2. Анализируем поле "Дата поступления " в текущей строке.
  3. Если значение "Дата поступления" > "01.06.2006", распечатываем на экране данные об абитуриенте.
  4. Если таблица не кончилась, перемещаем указатель текущей строки на следующую строку и переходим к шагу 2, иначе заканчиваем работу.

Любой человек, знакомый с программированием, легко представит себе реализацию подобного алгоритма на любом языке программирования высокого уровня. Вот, в частности, пример реализации на Object Pascal :

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

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

Кроме того, должен учитываться механизм взаимодействия в рамках архитектуры "клиент – сервер ". Пользовательская программа выполняется на компьютере–клиенте. Запрос к базе данных реализуется компьютером – сервером. Необходим механизм формирования в пользовательской программе клиента запроса к базе данных сервера. В этом случае навигационный подход неприемлем. В связи с этим, для работы с базами данных разработан и используется другой подход, основанный на использовании так называемых языков запросов, которые задают не последовательность необходимых действий, а условия, которым должен удовлетворять результат (при добавлении столбца, выборке записи, добавлении записи и т. п.). Такой подход решает все три вышеперечисленные проблемы.

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

Язык SQL (Structured Query Language – структурированный язык запросов) применяется для общения пользователя с реляционной базой данных и состоит из трех частей [ [ 11.2 ] ]:

  • DDL ( Data Definition Language ) – язык определения данных. Предназначен для создания базы данных (таблиц, индексов и т.д.) и редактирования ее схемы.
  • DCL (Data Control Language ) – язык управления данными. Содержит операторы для разграничения доступа пользователей к объектам базы данных.
  • DML ( Data Manipulation Language ) – язык обработки данных . Содержит операторы для внесения изменений в содержимое таблиц базы данных.

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

В архитектуре "клиент – сервер " язык SQL занимает очень важное место . Именно он используется как язык общения клиентского программного обеспечения с серверной СУБД , расположенной на удаленном компьютере. Так, клиент посылает серверу запрос на языке SQL , а сервер разбирает его, интерпретирует, выбирает план выполнения , выполняет запрос и отсылает клиенту результат.

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

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

Читайте также: