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

Автор работы: Пользователь скрыл имя, 19 Ноября 2013 в 00:35, курсовая работа

Краткое описание

При написании данной работы была рассмотрена структура языка SQL, а так же одна из большинства групп операторов SQL. При рассмотрении были, по возможности, приведены примеры для баз данных. Показаны: область применения и основные функции языка.
SQL является непроцедурным языком, построенным на использовании обычных английских слов (таких как SELECT, INSERT, DELETE). Он может применяться как профессионалами, так и рядовыми пользователями. Этот язык формально и фактически стал стандартным языком определения и манипулирования реляционными базами данных.

Содержание

ВВЕДЕНИЕ 3
ОСНОВНАЯ ЧАСТЬ 6
1 ЯЗЫК SQL - ОСНОВНЫЕ ФУНКЦИИ И ВОЗМОЖНОСТИ 6
1.1 ИСТОРИЯ ЯЗЫКА SQL 6
1.2 СТАНДАРТИЗАЦИЯ УПРАВЛЕНИЯ И ОБМЕНА ДАННЫМИ 9
2 СТРУКТУРА ЯЗЫКА SQL 14
2.1 ТАБЛИЦЫ SQL 14
2.2 СТРУКТУРА ЗАПРОСОВ SQL 15
2.3 ОПЕРАТОРЫ SQL 21
2.4 ТРАНЗАКЦИИ В SQL 27
ЗАКЛЮЧЕНИЕ 29
ГЛОССАРИЙ 31
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 33

Вложенные файлы: 1 файл

Базы данных .docx

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

1.32.17.01.00.00 ISO/IEC AWI 20944 " Информационные  технологии - Сервисы доступа к  метаданным" (Information technology - Metadata Access Service). 

WG03 - рабочая группа, разрабатывающая стандарт языка взаимодействия с базами данных. Круг вопросов, рассматриваемых WG03, включает развитие языка для описания структуры и содержания базы данных в многопользовательских и многосерверных средах. Рассматриваемые спецификации определяют стандартные типы данных, механизмы для создания новых типов данных, включая определения их поведения. Кроме того, рабочая группа занимается вопросами стандартизации интерфейса разрабатываемого языка с другими языками программирования, а также вопросами стандартизации типов данных и их поведения в рассматриваемом языке с другими языками представления и обработки данных. В число наиболее интересных проектов данной группы входят следующие: 

1.32.03.05.09.00 ISO/IEC CD 9075-9 "ИТ- Язык SQL: Управление внешними данными" (Information technology - Database Languages - SQL - Part 9: Management of External Data (SQL/MED)); 

1.32.03.05.14.00 ISO/IEC WD 9075-14 "ИТ- Язык SQL: Взаимодействие SQL и ХМL" (Information technology --Database Language SQL - Part 14: SQL/XML (for SQL:200n)). 

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

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

1.32.05.04.00.00 ISO/IEC CD 9579 ed 4 "ИТ - Удаленный доступ к данным в SQL" (Information technology - Remote Database Access for SQL: (RDA/SQL). Edition 4). 

В последнее время для  обмена данными и представления  информации все чаще используется язык XML (eXtensible Markup Language). Этот язык не привязан к какой-либо конкретной платформе или к конкретному производителю. Первая спецификация языка XML 1.0 получила статус рекомендации консорциума W3C в 1998 г. Далее консорциум W3C разработал и опубликовал ряд стандартов, связанных с XML (Extensible Markup Language (XML) Version 1.0 (second edition):http://www.w3.org/TR/REC-xml), включая стандарт на механизм связывания XLink и XPointer, стандарт синтаксиса схемы, описывающей набор данных (Recommendation) XML Schema Part 1: Structures, 2 May, 2001, (Recommendation) XML Schema Part 2: Datatypes, 2 May, 2001:http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/, http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/), спецификации по определению и использованию пространства имен (Namespaces in XML, 14 January, 1999: http://www.w3.org/TR/REC-xml-names). 

Консорциум W3C, продолжая  работу над стандартизацией XML, опубликовал  рекомендации по DOM XML - объектной модели документа, представляющей XML-документ в виде объекта. 

Вопросами стандартизации XML также частично занимается OASIS (организация  по продвижению стандартов структурирования информации - Organization for the Advancement of Structured Information Standards: http://www.oasis-open.org/). 

Инженерной группой IETF был  разработан стандарт SOAP (Simple Object Access Protocol), использующий язык XML, как язык для обмена данными. Фактически SOAP позволяет посредством применения XML реализовывать межплатформенный доступ к данным, связывая воедино применение таких технологий, как CORBA, EJB и COM. 

Разрабатываемый в настоящее  время консорциумом W3C стандарт XQL (XML Query Language:http://www.w3.org/TR/2001/WD-xquery-20011220/) включает вопросы, связанные со спецификацией методов выполнения запросов к набору XML-документов. 

В рамках WG3 32 подкомитета JTC1 также разрабатывается стандарт, связанный с использованием языка XML: "ИТ - Язык SQL - часть 14: Спецификация SQL/XML" ( Information technology - Database languages - SQL - Part 14: XML-Related Specifications (SQL/XML)). Разрабатываемый стандарт рассматривает механизмы преобразования данных, описываемых средствами языка SQL, в данные, представляемые языком XML, и обратно, включая алгоритмы соответствия SQL-таблиц типам данных XML-схемы, соответствия SQL-значений значениям XML, а также приводит описание XML-схемы для SQL/XML. По этому стандарту опубликован Final Committee Draft ISO/IEC FCD 9075-14. 

Одним из наиболее значительных стандартов, разрабатываемых в настоящее  время и предназначаемых для  обмена данными, является стандарт ISO/IEC WD 9579, Fourth Edition "ИТ - удаленный доступ к базам данных для SQL" (Information Technology - Remote Database Access for SQL with Extended Security). 

Рассматриваемый стандартRDA/SQL базируется на уже существующих следующих стандартах IETF (http://www.internic.net): 

RFC 791 Internet Protocol; 

RFC 793 Transmission Control Protocol; 

RFC 819 The Domain Naming Convention for Internet User Applications; 

RFC 1122 Requirements for Internet Hosts - Communication Layers; 

RFC 1123 Requirements for Internet Hosts - Application and Support; 

RFC 2246 The TLS Protocol. 

RDA/SQL может быть использован для реализации удаленного доступа к СУБД, соответствующей стандарту ISO/IEC 9075 (Database Language SQL). 

Стандарт RDA/SQL описывает  модель для удаленного взаимодействия SQL-клиента с одним или несколькими SQL-серверами посредством коммуникационных протоколов. 

RDA/SQL устанавливает соответствие RDA-протокола стандартным протоколам TCP/IP и TLS (Transport Layer Security), вводит понятия RDA-сообщения, RDA-оператора, RDA-протокола и RDA-передачи. 

В стандарте определяется RDA-модель среды SQL (рис 1.1.) и функциональные компоненты, составляющие среду RDA-клиента  и среду RDA-сервера. 

Рис. 1.1. RDA-модель среды SQL

RDA-модель определяет провайдера  транспортного уровня, реализующего  взаимодействие между RDA-клиентом  и RDA-сервером. 

Стандарт ISO/IEC 9075-3 (SQL/CLI) описывает  результирующий набор, определяемый на стороне сервера, а стандарт RDA/SQL описывает RDA-операторы, предназначаемые  для взаимодействия с результирующим набором и соответствующие вызовам SQL/CLI. Наряду с RDA-операторами данный стандарт вводит коды атрибутов, используемые RDA. К настоящему времени рабочей группой WR5 опубликована 4 редакция разрабатываемого стандарта RDA/SQL.

 

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

Все операторы языка SQL можно разделить на несколько типов:

Операторы манипулирования  данных - позволяют управлять значениями, представляемыми в таблицах.

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

Операторы модификации данных - позволяют создавать/удалять базовые  таблицы и изменять их структуру (добавлять столбцы, связи между  таблицами).

Операторы защиты данных - позволяют  авторизировать пользователей, давать им привилегии (разрешения на просмотр данных из одной или нескольких таблиц, изменение данных и т.д.).

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

Оператор ошибки - после  выполнения последнего SQL запроса содержит код выполнения операции (код ошибки либо удачного выполнения).

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

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

2.1 Таблицы SQL

В реляционной базе данных информация организована в виде таблиц, разделённых на строки и столбцы, на пересечении которых содержатся значения данных.

Основными объектами реляционной  базы данных являются:

(TABLE) Таблица - Прямоугольная  таблица, состоящая из строк  и столбцов. Задать таблицу –  значит указать, из каких столбцов  она состоит.

(ROW) Строка - Запись, состоящая  из полей – столбцов. В каждом  поле содержится его значение, либо значение NULL – "пусто". Строк в таблице может быть  сколько угодно. Физический порядок  их расположения друг относительно  друга неопределен.

(COLUMN) Столбец - Каждый  столбец в таблице имеет собственные имя и тип.

2.2 Структура запросов  SQL

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

В синтаксических конструкциях для обращения к БД используются следующие обозначения:

1) звездочка (*) для обозначения "все" – употребляется в обычном для программирования смысле, т.е. "все случаи, удовлетворяющие определению";

2) квадратные скобки ([]) – означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);

3) фигурные скобки ({}) – означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;

4) многоточие (…) – указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;

5) прямая черта (|) – означает наличие выбора из двух или более возможностей. Например, обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);

6) точка с запятой (;) – завершающий элемент предложений SQL;

7) запятая (,) – используется для разделения элементов списков;

8) пробелы ( ) – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;

9) жирные прописные латинские  буквы и символы – используются  для написания конструкций языка  SQL и должны (если это специально  не оговорено) записываться в  точности так, как показано-……..;

10) строчные буквы используются  для написания конструкций, которые  должны заменяться конкретными  значениями, выбранными пользователем,  причем для определенности отдельные  слова этих конструкций связываются  между собой символом подчеркивания (_);

11) термины "таблица"  и "столбец" заменяют (с целью  сокращения текста синтаксических  конструкций) термины "имя_таблицы", "имя_столбца", …, соответственно;

12) термин "таблица" - используется  для обобщения таких видов  таблиц, как базовая_таблица, представление или псевдоним; здесь псевдоним служит для временного (на момент выполнения запроса) переименования и (или) создания рабочей копии базовой_таблицы (представления).

В дальнейшем все примеры приводятся для базы данных приведенной в  приложении.

Оператор SELECT осуществляет выборку из базы данных и имеет наиболее сложную структуру среди всех операторов языка SQL. Простейший оператор SELECT выглядит:

SELECT * FROM PC;

Он осуществляет выборку всех записей  из объекта БД табличного типа с  именем PC. При этом столбцы и строки результирующего набора не упорядочены. Чтобы упорядочить поля результирующего набора, их следует перечислить через запятую в нужном порядке после слова SELECT:

SELECT price, speed, hd, ram, cd, model, code

FROM Pc;

Вертикальную проекцию таблицы  РC можно получить, если перечислить только необходимые поля. Например, чтобы получить информацию только о скорости процессора и объеме оперативной памяти компьютеров, следует выполнить запрос:

SELECT speed, ram FROM PC;

Следует отметить, что вертикальная выборка может содержать дубликаты  строк в том случае, если она  не содержит потенциального ключа, однозначно определяющего запись. В таблице PC потенциальным ключом является поле code, которое выбрано в качестве первичного ключа таблицы. Поскольку это поле отсутствует в запросе, в приведенном выше результирующем наборе имеются дубликаты строк (например, строки 1 и 3). Если требуется получить уникальные строки (скажем, нас интересуют только различные комбинации скорости процессора и объема памяти, а не характеристики всех имеющихся компьютеров), то можно использовать ключевое слово DISTINCT:

SELECT DISTINCT speed, ram FROM Pc;

Помимо DISTINCT может применяться  также ключевое слово ALL (все строки), которое принимается по умолчанию. Чтобы упорядочить строки результирующего  набора, можно выполнить сортировку по любому количеству полей, указанных  в предложении SELECT. Для этого используется предложение ORDER BY , являющееся всегда последним предложением в операторе SELECT. При этом в списке полей могут  указываться как имена полей, так и их порядковые позиции в  списке предложения SELECT. Так если требуется  упорядочить результирующий набор  по объему оперативной памяти в порядке  убывания, можно записать:

SELECT DISTINCT speed, ram

FROM Pc

ORDER BY ram DESC

Или

SELECT DISTINCT speed, ram

FROM Pc

ORDER BY 2 DESC

Сортировку можно проводить  по возрастанию (параметр ASC принимается  по умолчанию) или по убыванию (параметр DESC). Сортировка по двум полям:

SELECT DISTINCT speed, ram

FROM Pc

ORDER BY ram DESC, speed DESC

Горизонтальную выборку реализует  предложение WHERE , которое записывается после предложения FROM. При этом в  результирующий набор попадут только те строки из источника записей, для  каждой из которых значение предиката  равно TRUE. То есть предикат проверяется  для каждой записи.

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