Помощь в написании студенческих работ
Антистрессовый сервис

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

РефератПомощь в написанииУзнать стоимостьмоей работы

Независимость от конкретной СУБД. Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально закладывались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может… Читать ещё >

Язык SQL в системах управления базами данных (реферат, курсовая, диплом, контрольная)

SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL в его чистом (базовом) виде является информационно-логическим языком, а не языком программирования. Вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений, с учётом которых язык уже вполне может рассматриваться в качестве языка программирования.

SQL основывается на реляционной алгебре.

Язык SQL делится на четыре части:

  • · операторы определения данных (англ. Data Definition Language, DDL)
  • · операторы манипуляции данными (англ. Data Manipulation Language, DML)
  • · операторы определения доступа к данным (англ. Data Control Language, DCL)
  • · операторы управления транзакциями (англ. Transaction Control Language, TCL)

Data Definition Language (DDL) (язык описания данных) — это язык, используемый в компьютерных программах для описания структуры баз данных.

Функции языков DDL определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы — «create» («создать»), «alter» («изменить»), «drop» («удалить»). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.

Языки DDL могут существенно различаться у различных производителей СУБД. Существует стандарт SQL, установленный ANSI, но производители СУБД часто предлагают свои собственные «расширения» языка.

Data Manipulation Language (DML) (язык управления [манипулирования] данными) — это язык, используемый в компьютерных программах или пользователями баз данных для получения, вставки, удаления или изменения данных в базах данных.

Языки DML изначально использовались только компьютерными программами, но с появлением SQL стали также использоваться и людьми.

Функции языков DML определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы — «insert» («вставить»), «update» («обновить»), и «delete» («удалить»). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.

Языки DML могут существенно различаться у различных производителей СУБД. Существует стандарт SQL, установленный ANSI, но производители СУБД часто предлагают свои собственные «расширения» языка.

Языки DML разделяются в основном на два типа:

  • · Procedural DMLs — описывают действия над данными.
  • · Declarative DMLs — описывают сами данные.

Операторы управления транзакциями (англ. Transaction Control Language, TCL) компьютерный язык и часть SQL, используемый для обработки транзакций.

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

Различают обычные и распределённые транзакции. Распределённые транзакции подразумевают использование больше чем одной транзакционной системы и требуют на много более сложной логики (например, two-phase commit — двухфазный протокол подтверждения успеха). Также, в некоторых системах реализованы автономные транзакции, или под-транзакции, которые являются автономной частью родительской транзакции.

Примеры TCL команд:

  • · COMMIT применяет транзакцию.
  • · ROLLBACK «откатывает» все изменения сделанные транзакцией.
  • · SAVEPOINT делит транзакцию на более мелкие участки.

Язык SQL имеет слудующие особенности:

Преимущества:

Независимость от конкретной СУБД. Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально закладывались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle, так и с Microsoft SQL Server и IBM DB2). Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.

Наличие стандартов. Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах, например, Core-часть стандарта SQL:2003 представляет собой более 1300 страниц текста.

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

Недостатки:

Несоответствие реляционной модели данных. Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности они указывают на следующие проблемы SQL:

  • · Повторяющиеся строки
  • · Неопределённые значения (nulls)
  • · Явное указание порядка колонок слева направо
  • · Колонки без имени и дублирующиеся имена колонок
  • · Отсутствие поддержки свойства «=»
  • · Использование указателей
  • · Высокая избыточность

В опубликованном Кристофером Дейтом и Хью Дарвеном Третьем Манифесте они излагают принципы СУБД следующего поколения и предлагают язык Tutorial D, который является подлинно реляционным.

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

Отступления от стандартов Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

Сложность работы с иерархическими структурами. Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции древовидными структурами.

Некоторые поставщики СУБД предлагали свои решения. Например, Oracle использует выражение CONNECT BY. В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2.

Несмотря на недостатки, язык SQL вполне пригоден для использования в реляционных СУБД.

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

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

Показать весь текст
Заполнить форму текущей работой