Системы управления базами данных
База данных предполагает наличие комплекса программных средств, обслуживающих эту базу данных и позволяющих использовать содержащуюся в ней информацию. Такие комплексы программ называют системами управления базами данных (СУБД) ‑ это программное обеспечение (система), поддерживающая организацию, анализ, поиск, обновление и загрузку данных, иначе говоря, наполнение и манипулирование данными, представляющими интерес для пользователей при решении прикладных задач. Иными словами, СУБД является интерфейсом между базой данных и прикладными задачами.
Ниже перечислены основные функции СУБД:
1. Определение данных ‑ определить, какая именно информация будет храниться в базе данных, задать свойства данных, их тип (например, число цифр или символов), а также указать, как эти данные связаны между собой. В некоторых случаях есть возможность задавать форматы и критерии проверки данных.
2. Обработка данных ‑ данные могут обрабатываться самыми различными способами. Можно выбирать любые поля, фильтровать и сортировать данные. Можно объединять данные с другой, связанной с ними, информацией и вычислять итоговые значения.
3. Управление данными ‑ можно указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию. Можно также определять правила коллективного доступа.
Входящие в состав современных СУБД средства совместно выполняют следующие функции:
1) описание данных, их структуры (обычно описание данных и их структуры происходит при инициировании новой базы данных или добавлении к существующей базе новых разделов (отношений); описание данных необходимо для контроля корректности использования данных, для поддержания целостности базы данных);
2) первичный ввод, пополнение информации в базе данных;
3) удаление устаревшей информации из базы данных;
4) корректировку данных, для поддержания их актуальности;
5) упорядочение (сортировку) данных по некоторым признакам;
6) поиск информации по некоторым признакам (для описания запросов имеется специальный язык запросов, он обеспечивает также интерфейс между базой данных и прикладными программами пользователей, позволяет этим программам использовать базы данных);
7) подготовку и генерацию отчетов (средства подготовки отчетов позволяют создавать и распечатывать сводки по заданным формам на основе информации базы данных);
8) защиту информации и разграничение доступа пользователей к ней (некоторые разделы базы данных могут быть закрыты для пользователя совсем, только для чтения или открыты для изменения; кроме того, при многопользовательском режиме работы с базой данных необходимо, чтобы изменения вносились корректно; для сохранения целостности данных служит механизм транзакций при манипулировании данными ‑ выполнение манипуляций небольшими пакетами, результаты каждого из которых в случае возникновения некорректности операций “откатываются” и данные возвращаются к исходному состоянию);
9) резервное сохранение и восстановление базы данных, которое позволяет восстановить утраченную при сбоях и авариях аппаратуры информацию базы данных, а также накопить статистику работы пользователей с базой данных;
10) поддержку интерфейса с пользователями, который обеспечивается средствами ведения диалога (по мере развития и совершенствования СУБД этот интерфейс становится все более дружественным); дружественность существующих средств интерфейса предполагает:
а) наличие развитой системы помощи (подсказки), к которой в любой момент может обратиться пользователь, не прерывая сеанса работы с компьютером и базой данных;
б) защиту от необдуманных действий, предупреждающую пользователя и предотвращающую потерю информации в случае поспешных или ошибочных команд;
в) наличие нескольких вариантов выполнения одних и тех же действий, из которых пользователь может выбрать наиболее удобные для себя, соответствующие его подготовке, квалификации, привычкам;
г) тщательно продуманную систему ведения человеко-машинного диалога, отображение информации на дисплее, использование клавиш клавиатуры.
В настоящее время выделяют пять уровней проблематики систем управления базами данных:
реляционные базы данных, 1970‑90 гг.;
объектно-ориентированные базы данных, 1980‑90 гг.;
интеллектуальные базы данных, 1985‑90 гг.;
распределенные базы данных, начало 1990 гг.;
базы данных мультимедиа и виртуальной реальности настоящего времени.
Архитектурно СУБД состоит из двух основных компонентов: языка определения данных (ЯОД), позволяющего создать схему описания данных в базе, и языка манипулирования данными (ЯМД), выполняющего операции с базой данных (наполнение, обновление, удаление, выборку информации). Данные языки могут быть реализованы в виде тренажеров или интерпретаторов. Помимо ЯОД и ЯМД к СУБД следует отнести средства (или языки) подготовки отчетов (СПО), позволяющие подготовить сводки (отчеты) на основе информации, найденной в базе данных, по заданным формам.
Язык определения данных (DDL – data definition language) – это язык высокого уровня декларативного (непроцедурного) типа, предназначенный для формализованного описания типов данных, их структур и взаимосвязей.
Иначе говоря, язык определения данных (DDL) – набор инструкций в СУБД, используемый для описания объектов данных и их атрибутов. ЯОД используется при создании БД и последующем ее сопровождении (ведении).
Исходные тексты описания данных на этом языке после трансляции отображаются в управляющие таблицы, задающие размещение в памяти ЭВМ и связи между собой рассматриваемых данных. В соответствии с этими описаниями СУБД находит в базе требуемые данные, правильно преобразует их и передает, например, в прикладную программу пользователя, которой они потребовались. При записи данных в базу, СУБД по этим описаниям определяет место в памяти ЭВМ, куда их требуется поместить, преобразует к заданному виду и устанавливает необходимые связи.
Язык манипулирования (обработки) данными, (или язык запросов) (DML – data manipulation language) – набор инструкций в СУБД, используемый для обработки данных, например, следующего типа:
• произвести выборку данного, значение которого удовлетворяет заданным условиям;
• произвести выборку всех данных определенного типа, значения которых удовлетворяют заданным условиям;
• найти в базе позицию данного и поместить туда новое значение (или удалить данное) и т.д.
Широкое распространение имеют СУБД для персональных компьютеров типа DBASE (DBASE III, IV, FoxPro, Paradox), Clipper, Clarion. Эти СУБД ориентированы на однопользовательский режим работы с базой данных и имеют очень ограниченные возможности. Языки подобных СУБД представляют собой сочетание команд выборки, организации диалога, генерации отчетов. В связи с развитием компьютерных сетей, в которых персональные компьютеры выступают в качестве развитых (интеллектуальных) терминалов, новые версии СУБД все в большей степени включают в себя возможности описанного ниже языка манипулирования данными SQL.
В последнее время среди СУБД стали популярными программы ACCESS (входит в состав MS Office), Lotus, Oracle.
Для управления базами данных клиент/сервер наибольшее распространение получил язык SQL (от английских слов Structured Query Language). SQL реализует как ЯМД, так и ЯОД.
Основное достоинство SQL заключается в том, что он унифицирован: стандартный набор инструкций SQL можно использовать в любой системе управления базами данных, которые совместимы с SQL. Первый американский стандарт SQL был зарегистрирован в 1986 г. как ANSI X3.135-1986. Стандартом текущей версии является ANSI X3.135-1992, широко известный как SQL-92
Примечание: ANSI (Американский национальный институт стандартизации) — это организация, которая занимается созданием и обновлением научных и инженерных стандартов. ANSI-стандарт SQL был принят в качестве всемирного стандарта отделом ООН Международной организации стандартизации (ISO) в 1987 г.
SQL является языком реляционных баз данных, SQL — язык, ориентированный на работу с множествами! Таким образом, ANSI SQL не включает ни средств управления выполнением программы (ветвлений и циклов), ни средств для создания форм или отчетов. Функции управления реализуются в языках программирования, например, xBASE, С, C++ или COBOL. Однако в некоторые версии SQL (например в Transact-SQL, Microsoft SQL Server) добавлены два оператора (IF ELSE и WHILE). Разработчики новых систем управления базами данных, совместимых с ANSI SQL, могут добавлять к языку свои расширения, но обязаны следить за тем, чтобы в новых системах поддерживался набор базовых команд ANSI. Реализация ANSI/ISO SQL никак не зависит от используемого системного языка.
ANSI SQL включает набор стандартных команд, сгруппированных по шести категориям: описание данных, выполнение запросов, манипулирование данными, управление курсором, управление транзакциями, а также администрирование или управление. В 1989 г. в исходный стандарт ANSI были добавлены инструкции для обеспечения целостности данных.