Ответы на экзамен по Информационному обеспечению систем управления - Structured Query Language - структурированный язык запросов

Понятие о языке SQL (Structured Query Language - структурированный язык запросов).

 

 

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

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

-операторы определения данных (англ. Data Definition Language, DDL)

-операторы манипуляции данными (англ. Data Manipulation Language, DML)

-операторы определения доступа к данным (англ. Data Control Language, DCL)

Основные типы данных, поддерживаемые в SQL:

- INTERGER- целое число (до 10 значащих цифр)

- SMALLINT – короткое целое (до 5 цифр)

- DECIMAL (p*q) – десятичное число – всего р- цифр, q- после запятой

- FLOAT- число с плавающей точкой

- CHAR (n) – символьная переменная фиксированной длины из n символов

- VARCHAR (n) - символьная переменная нефиксированной длины, n - max количество символов.

 - DATE, - TIME, -DATETIME, -MONEY

 

История

 

В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД System R (англ.), для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как англ. Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL. Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (англ. cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.Стоит отметить, что SEQUEL был не единственным языком подобного назначения. В Калифорнийском Университете Беркли была разработана некоммерческая СУБД Ingres (являвшаяся, между прочим, дальним прародителем популярной сейчас некоммерческой СУБД PostgreSQL), которая являлась реляционной СУБД, но использовала свой собственный язык QUEL, который, однако, не выдержал конкуренции по количеству поддерживающих его СУБД с языком SQL. Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle) и System/38 от IBM, основанная на System/R. Вопреки сложившемуся мнению, первой стала именно СУБД Oracle V2.Первый официальный стандарт языка SQL был принят ANSI в 1986 и ISO (Международной организацией по стандартизации) в 1987 (так называемый SQL-86) и несколько уточнён в 1989 году. Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 г. нового расширенного стандарта (ANSI SQL-92 или просто SQL2). Следующим стандартом стал SQL:1999 (SQL3). В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесёнными позже.

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

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

 

-Наличие стандартов (наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка).

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

 

Недостатки:

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

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

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

 

 

 

Вы здесь: Home Автоматизация Ответы на экзамен по Информационному обеспечению систем управления