Структура языка 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 Кб (Скачать файл)

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

CREATE. SCHEMA [name | AUTHORIZATION  Creator-Identifier]

Таким образом, если создателем схемы под именем SqlTest является пользователь Smith, то данный оператор будет выглядеть  следующим образом:

CREATE SCHEMA SqlTest AUTHORIZATION Smith;

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

DROP SCHEMA Name [ RESTRICT | CASCADE]

Если указано ключевое слово RESTRICT (именно оно принимается  по умолчанию), схема должна быть пустой, иначе выполнение операции будет отменено. Если указано ключевое слово CASCADE, при выполнении оператора будут автоматически удалены все связанные с удаляемой схемой объекты, причем в порядке, указанном выше. Если одна из этих операций удаления будет завершена неудачно, выполнение всего оператора DROP SCHEMA будет отменено. Общий эффект от выполнения оператора DROP SCHEMA с параметром CASCADE может затронуть значительную часть базы данных, поэтому подобные операторы должны вводиться с исключительной осторожностью.

В настоящее время  операторы CREATE SCHEMA и DROP SCHEMA реализованы в очень немногих СУБД.

 

 

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

 

 

После создания общей  структуры базы данных можно приступить к созданию таблиц, представляющих отношения, входящие в состав проекта  базы данных. Для этой цели используется оператор CREATE TABLE, имеющий следующий  общий формат:

CREATE TABLED TableName

{ (columName data Type  [NOT NULL] [UNIQUE]

[DEFAULT defaultoption]  [CHSCK (searchCondition}:] [, …] }

[PRIMARY KEY (ListOfColumns)  ]

{ [UNIQUE {listOfCoIumns) ]  [,. . .] }

{ [FOREIGN KEY (listOfFdreignKeyColumns)

REFERENCES ParentTabl eName [(listOfCandidateKeyColuims) ],

[MATCH {PARTIAL  | FULL}

[ON UPDATE. referentialAction]

[ON DELETE referential Action] } [, , .-.] }

{[CHECK (searchCondtitioa)]  [, . , , ] } )

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

В результате выполнения этого оператора будет создана  таблица, имя которой определяется параметром TableName, состоящая из одного или нескольких столбцов типа dataType. Для задания значения, применяемого по умолчанию при вставке данных в конкретный столбец, предусмотрена необязательная конструкция DEFAULT. В базе данных это значение применяется по умолчанию в тех случаях, если в операторе INSERT не задано значение для такого столбца. Кроме прочих значений, опция определения применяемого по умолчанию значения defaultoption может включать литералы. Конструкции NОТ NULL, UNIGUE и CHECK рассматривались в предыдущем разделе. Остальные конструкции известны под названием ограничений таблицы и могут быть дополнительно обозначены с помощью следующей конструкции:

CONSTRAINT ConstraintName

 

 

 

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

 

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

DROP TABLE.TableWame [RESTRICT I CASCADE]

Например, для удаления таблицы PropertyForRent можно использовать следующий оператор:

DROP TABLE PropertyForRent;

Однако следует отметить, что эта команда удалит не только указанную таблицу, но и все входящие в нее строки данных. Если требуется удалить из таблицы лишь строки данных, сохранив в базе описание самой таблицы, то следует использовать оператор DELETE. Оператор DROP TABLE дополнительно позволяет указывать, следует ли операцию удаления выполнять каскадно.

- RESTRICT. Операция DROP отвергается, если в базе данных имеются другие объекты, существование которых зависит от того, существует ли в базе данных удаляемая таблица.

- CASCADE. Операция DROP продолжается, и из базы данных автоматически удаляются все зависимые объекты (и объекты, зависящие от этих объектов).

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

Заключение

 

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

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

Основные достоинства  языка SQL заключаются в следующем:

стандартность – как уже было сказано, использование языка SQL в программах стандартизировано международными организациями;

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

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

реляционная основа языка  – SQL является языком реляционных БД, поэтому он стал популярным тогда, когда  получила широкое распространение  реляционная модель представления  данных. Табличная структура реляционной  БД хорошо понятна, а потому язык SQL прост для изучения;

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

возможность программного доступа к БД – язык SQL легко  использовать в приложениях, которым  необходимо обращаться к базам данных. Одни и те же операторы SQL употребляются  как для интерактивного, так и  программного доступа, поэтому части программ, содержащие обращение к БД, можно вначале проверить в интерактивном режиме, а затем встраивать в программу;

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

возможность динамического  изменения и расширения структуры  БД – язык SQL позволяет манипулировать структурой БД, тем самым обеспечивая  гибкость с точки зрения приспособленности  БД к изменяющимся требованиям предметной области;

поддержка архитектуры клиент-сервер – SQL – одно из лучших средств для реализации приложений на платформе клиент-сервер. SQL служит связующим звеном между взаимодействующей с пользователем клиентской системой и серверной системой, управляющей БД, позволяя каждой из них сосредоточиться на выполнении своих функций.

Стандарт языка SQL, хотя и основан на реляционной теории, но во многих местах отходит он нее.

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

- повторяющиеся строки;

- неопределённые значения (nulls);

- явное указание порядка  колонок слева направо;

- колонки без имени  и дублирующиеся имена колонок;

- отсутствие поддержки свойства «=»;

- использование указателей;

- высокая избыточность.

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

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

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

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

 

Глоссарий

 

 

№ п/п

Понятие

Определение

1

Информационная система

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

2

База данных (БД)

Поименованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.

3

Объект

Элемент предметной области, информацию о котором мы сохраняем.

4

Поле

Элементарная единица логической организации данных, которая соответствует  неделимой единице информации –  реквизиту.

5

Запись

Совокупность логически связанных  полей.

6

Файл (таблица)

Совокупность экземпляров записей  одной структуры.

7

Модель данных

Совокупность структур данных и  операций их обработки.

8

Реляционная модель данных

Совокупность взаимосвязанных  двумерных таблиц - объектов модели.

9

Атрибут

Поименованная характеристика объекта. Атрибут показывает, какая информация должна быть собрана об объекте.

10

Связи

Соответствия, отношения, возникающие  между объектами предметной области.


 

 

 

 

 

 

 

 

 

Список использованной литературы

 

 

  1. Базы данных [Текст] / А. Д. Хомоненко [и др.]. – 5-е изд., перераб. и доп. – М. : КОРОНА век, 2010.
  2. Кузин, А. В. Базы данных [Текст] / А. В. Кузин, С. В. Левонисова. – М. : Академия, 2010.
  3. Фуфаев, Э. В. Базы данных [Текст] / Э. В. Фуфаев, Д. Э. Фуфаев. – М. : Академия, 2009.

4.  Голенищев, Э. П. Информационное обеспечение систем управления [Текст] / Э. П. Голенищев, И. В. Клименко. – Ростов н/Д : Феникс, 2003.

5. Григорьев, Ю. А. Банки данных [Текст] : учебник для вузов / Ю. А. Григорьев, Г. И. Ревунков. – М. : МГТУ им. Баумана, 2002.

6. Когаловский, М. Р. Энциклопедия технологий баз данных [Текст] / М. Р. Когаловский. – М. : Финансы и статистика, 2005.

  1. Марков, А. С. Базы данных: Введение в теорию и методологию [Текст] / А. С. Марков, К. Ю. Лисовский. – М. : Финансы и статистика, 2006.
  2. Смирнов, С. Н. Безопасность систем баз данных: учеб. пособие / С. Н. Смирнов. – М.: Гелиос АРВ, 2007.
  3. Смирнов, С. Н. Обработка документов средствами Oracle. Практикум по XML и JDBC [Текст] : учеб. пособие / С. Н. Смирнов. – М. : Гелиос АРВ, 2004.

 

 

 

 

 

 

 

 

 

 

 

 

Приложение А

Схема БД Компьютерная фирма состоит из четырех отношений:

1) Product(maker, model, type);

2) PC(code, model, speed, ram, hd, cd, price);

3) Laptop(code, model, speed, ram, hd, screen, price);

4) Printer(code, model, color, type, price).

 

Отношение Product представляет производителя (maker), номер модели (model) и тип (PC - ПК, Laptop - ПК-блокнот или Printer - принтер). Предполагается, что  номера моделей уникальны для  всех производителей и типов продуктов. В отношении PC для каждого номера модели, обозначающего ПК, указаны скорость -speed (процессора в мегагерцах), общий объем RAM (в мегабайтах), размер диска -hd (в гигабайтах), скорость считывающего устройства CD (например, 4х) и цена - price. Отношение Laptop аналогично отношению РС за исключением того, что вместо скорости CD содержится размер экрана -screen (в дюймах). В отношении Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный - Laser, струйный - Jet или матричный - Matrix) и цена.

 


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