Структура языка SQL

Автор работы: Пользователь скрыл имя, 25 Мая 2013 в 05:07, курсовая работа

Описание работы

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (англ. cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

Содержание работы

Введение…………………………………………………………………………5
Основная часть…………………………………………………………………..8
1.SQL……………………………………………………………………………..8
1.1 Идентификаторы языка SQL……………………………………………10
1.2 Скалярные типы данных языка SQL……………………………………10
1.3 Логические данные (тип boolean)………………………………………11
1.4 Символьные данные (тип character)…………………………………….11
1.5 Битовые данные (тип bit)………………………………………………..12
1.6 Точные числовые данные (тип exact numeric)…………………………12
1.7 Округленные числовые данные (тип approximate numeric)…………..13
1.8 Дата и время (тип datetime)…………………………………………….14
1.9 Интервальный тип данных interval…………………………………….15
2. Структура языка SQL………………………………………………………..16
2.1 Структура запросов SQL…………………………………………………17
2.2 Операторы модификации данных………………………………………..26
2.3 Транзакции в SQL…………………………………………………………34
2.4 Защита данных…………………………………………………………….34
2.5 Обработка ошибок………………………………………………………...36
3. Таблицы SQL………………………………………………………………….38
3.1 Создание баз данных……………………………………………………...39
3.2 Создание таблиц (оператор CREATE TABLE)…………………………40
3.3 Удаление таблиц (оператор DROP TABLE)……………………………42
Заключение………………………………………………………………………43
Глоссарий………………………………………………………………………..46
Список используемой литературы…………………………………………….47
Приложение А…………………………………………………………………..48

Файлы: 1 файл

Структура языка SQL.doc

— 262.00 Кб (Скачать файл)

Содержание

Введение…………………………………………………………………………5

Основная часть…………………………………………………………………..8

1.SQL……………………………………………………………………………..8

1.1 Идентификаторы языка SQL……………………………………………10

1.2 Скалярные типы данных языка SQL……………………………………10

1.3 Логические данные (тип boolean)………………………………………11

1.4 Символьные данные (тип character)…………………………………….11

1.5 Битовые данные (тип bit)………………………………………………..12

1.6 Точные числовые данные (тип exact numeric)…………………………12

1.7 Округленные числовые данные (тип approximate numeric)…………..13

1.8 Дата и время (тип datetime)…………………………………………….14

1.9 Интервальный тип данных interval…………………………………….15

2. Структура языка SQL………………………………………………………..16

2.1 Структура запросов SQL…………………………………………………17

2.2 Операторы модификации данных………………………………………..26

2.3 Транзакции в SQL…………………………………………………………34

2.4 Защита данных…………………………………………………………….34

2.5 Обработка ошибок………………………………………………………...36

3. Таблицы SQL………………………………………………………………….38

3.1 Создание баз данных……………………………………………………...39

3.2 Создание таблиц (оператор CREATE TABLE)…………………………40

3.3 Удаление таблиц (оператор DROP TABLE)……………………………42

Заключение………………………………………………………………………43

Глоссарий………………………………………………………………………..46

Список используемой литературы…………………………………………….47

Приложение А…………………………………………………………………..48

 

 

 

 

 

 

 

 

 

 

Введение

 

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

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

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

В начале 1970-х годов  в одной из исследовательских  лабораторий компании IBM была разработана  экспериментальная реляционная  СУБД IBM System R, для которой затем  был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как англ. Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute).

Целью разработки было создание простого непроцедурного языка, которым  мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (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) с небольшими модификациями, внесёнными позже.

История версий стандарта: 

1986 г. - SQL-86, SQL-87 - первый вариант стандарта, принятый институтом ANSI и одобренный ISO в 1987 году.

1989 г. - SQL-89, FIPS 127-1 немного доработанный вариант предыдущего стандарта.

1992 г. - SQL-92,SQL2, FIPS 127-2 - значительные  изменения (ISO 9075); уровень Entry Level стандарта SQL-92 был принят как стандарт FIPS 127-2.

1999 г. - SQL:1999,  SQL3 - добавлена  поддержка регулярных выражений,  рекурсивных запросов, поддержка  триггеров, базовые процедурные  расширения, нескалярные типы данных  и некоторые объектно-ориентированные возможности.

2003 г. - SQL:2003 - введены расширения  для работы с XML-данными, оконные  функции (применяемые для работы  с OLAP-базами данных, генераторы  последовательностей и основанные  на них типы данных).

2006 г. - SQL:2006 - функциональность  работы с XML-данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery.

2008 г. - SQL:2008 - улучшены  возможности оконных функций,  устранены некоторые неоднозначности  стандарта SQL:2003.

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

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

 

 

 

 

 

 

 

 

 

 

Основная  часть

  1. SQL

 

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

На рисунке 1 изображена схема работы SQL.

Рисунок 1 - Схема работы SQL

 

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

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

  1. Организация данных. SQL дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между элементами базы данных.
  2. Чтение данных. SQL дает пользователю или приложению возможность читать из базы данных содержащиеся в ней данные и пользоваться ими.
  3. Обработка данных. SQL дает пользователю или приложению возможность изменять базу данных, т.е. добавлять в нее новые данные, а также удалять или обновлять уже имеющиеся в ней данные.
  4. Управление доступом. С помощью SQL можно ограничить возможности пользователя по чтению и изменению данных и защитить их от несанкционированного доступа.
  5. Совместное использование данных. SQL координирует совместное использование данных пользователями, работающими параллельно, чтобы они не мешали друг другу.
  6. Целостность данных. SQL позволяет обеспечить целостность базы данных, защищая ее от разрушения из-за несогласованных изменений или отказа системы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.1 Идентификаторы языка SQL

 

Идентификаторы языка SQL предназначены для обозначения  объектов в базе данных и являются именами таблиц, представлений и  столбцов. Символы, которые могут  использоваться в создаваемых пользователем идентификаторах языка SQL, должны быть определены как набор символов. Стандарт ISO задает набор символов, который должен использоваться по умолчанию; он включает строчные и прописные буквы латинского алфавита (A-Z, a-z), цифры (0-9) и символ подчеркивания (_). Допускается использование и альтернативного набора символов.

 

На формат идентификаторов  накладываются следующие ограничения:

- может иметь длину  до 128 символов (большинство диалектов  предусматривает более жесткие  ограничения);

- должен начинаться с буквы;

- не должен содержать  пробелов.

 

1.2 Скалярные типы данных  языка SQL

 

В Приложении А перечислены скалярные  типы данных языка SQL, которые определены стандартом ISO. В некоторых случаях  в целях упрощения манипулирования  и преобразования, а также из-за сходства основных свойств данные типов character и bit объединяются под названием «строковые типы данных», а данные типов exact numeric и approximate numeric — под названием «числовые типы данных». В стандарте SQL3 определены также большие символьные и двоичные объекты.

 

 

 

 

1.3 Логические данные (тип  boolean)

 

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

 

1.4 Символьные данные (тип  character)

 

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

CHARACTER [VARYING] [length]

CHARACTER (может быть сокращено до СНАЕ) и

CHARACTER VARYING (может быть сокращено до VARCHAR)

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

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

 

1.5 Битовые  данные (тип bit)

 

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

OBIT IVARYING] [length].

 

1.6 Точные числовые данные (тип exact numeric)

 

Тип точных числовых данных используется для определения чисел, которые  имеют точное представление в  компьютере. Числа состоят из цифр и необязательных символов (десятичной точки, знака «плюс» или «минус»). Данные точного числового типа определяются значностъю (precision) и длиной, дробной части (scale). Значность задает общее количество значащих десятичных цифр числа, в которое входят длина целой и дробной частей, но без учета самой десятичной точки. Дробная часть указывает количество дробных десятичных разрядов числа. Например, точное число -12,345 имеет значность, равную 5 цифрам, и дробную часть длиной 3. Особой разновидностью точных чисел являются целые числа.

Существует несколько способов определения данных точного числового типа:

NUMERIC [ precision - [, scale] ]

DECIMAL [ precision [, scale] ]

INTEGER

SMALLXNT

INTEGER (может быть сокращено до INT) и DECIMAL (до DEC)

Типы NUMERIC и DECIMAL предназначены  для хранения чисел в десятичном формате. По умолчанию длина дробной части равна нулю, а принимаемая по умолчанию значность зависит от реализации. Тип INTEGER используется для хранения больших положительных или отрицательных целых чисел. Тип SMALLINT используется для хранения небольших положительных или отрицательных целых чисел. При использовании этого типа данных расход внешней памяти существенно сокращается. Например, максимальное абсолютное значение числа, которое может сохраняться в столбцах с типом данных SMALLINT, чаще всего составляет 32 767. Для столбца rooms таблицы PropertyForRent, в котором сохраняются сведения о количестве комнат сдаваемого в аренду объекта, можно выбрать тип SMALLINT и объявить его следующим образом:

Информация о работе Структура языка SQL