русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

История развития языка SQL


Дата добавления: 2015-07-09; просмотров: 2625; Нарушение авторских прав


SQL на практике

ВВЕДЕНИЕ

Большинство современных СУБД построено на реляционной модели данных. Для получения информации из отношений (таблиц) базы данных в качестве языка манипулирования данными в теоретическом плане используются абстрактных язык реляционной алгебры.

В качестве практического языка работы с данными в середине 70-х годов фирмой IBM разработан язык структурных запросов SQL, ставший впоследствии стандартом de-facto при работе с базами данных. Не смотря на то, SQL часто подвергается суровой критике за недостаточное соответствие реляционным принципам, его изучение является актуальным как в практическом плане, так и чисто в теоретическом.

История развития языка SQL

Работа над созданием языка была начата сразу после появления статью Э.Кодда в 1970г. в лабораториях компании IBM для проверки возможностей реляционной модели.

СУБД System R - экспериментальная исследовательская система с языком SEQUEL (позже SQL), созданная IBM:

  • Полный реляционный язык БД
  • Операторы манипулирования БД
  • Средства определения и манипулирования схемой БД
  • Определение ограничений целостности
  • Определение представлений
  • Определение индексов
  • Авторизация доступа к отношениям и их полям
  • Точки сохранения транзакций и откаты

SQL в коммерческих реализациях

1979 - Oracle (Relation Software Inc.- Oracle corp.;

1981-1982 - DB2 (IBM), Ingres - CA-OpenIngres (Relation Technology Inc. - Computer Associates)

1984 - Informix (Informix Sofrware);

1986 - Sybase (Sybase Corp.)

  • Реализован во всех коммерческих реляционных СУБД
  • Все фирмы провозглашают соответствие стандарту SQL
  • Реализованные диалекты очень близки
  • Путь "сверху вниз" - уточнение и упрощение SQL System R
  • Путь "снизу вверх" - от диалектов реализации различных фирм (наращивание возможностей, обычное отсутствие полного описания языка)

Стандартизация SQL



  • Все фирмы провозглашают соответствие стандарту SQL
  • Реализованные диалекты очень близки
  • Деятельность началась одновременно с появлением первых коммерческих реализаций
  • В качестве стандарта нельзя было использовать SQL System R(не было технической проработки, слишком сложно реализовать)
  • Нельзя было принять за стандарт коммерческий диалект (слишком различались)

Международный стандарт 1989 г.

  • Во многих частях имеет чрезвычайно общий характер и допускает очень широкое толкование
  • Отсутствуют важные разделы (манипулирование схемой БД, динамический SQL, многое определяется в реализации)
  • Наибольшие достижения (стандартизация синтаксиса и семантики операторов выборки и манипулирования данными, фиксация средств ограничений целостности БД: определение первичного и внешнего ключей отношений, проверочные ограничения целостности)

Международный стандарт 1992 г. (SQL2)

  • Расширено манипулирование таблицами (Alter table, Drop table)
  • Манипулирование схемой БД (Users, Tables, Views, Columns, Domains, Table_priveleges, Table_constraints, , , )
  • Возможность управления доменами (Create domain имя char(25) . . .и при определении имен столбцов эти имена определяются через имена доменов)
  • Новые типы данных (Date, Time, Datetime, . . .) и новые функции
  • Управление транзакциями и сессиями (сессия - последовательность транзакций, в пределах которой сохраняются временные отношения)
  • Подключение к БД
  • Развитие динамического SQL

В 1995 г. стандарт был дополнен спецификацией интерфейса уровня вызова (Call-Level Interface - SQL/CLI). SQL/CLI представляет собой набор спецификаций интерфейсов процедур, вызовы которых позволяют выполнять динамически задаваемые операторы SQL. По сути дела, SQL/CLI представляет собой альтернативу динамическому SQL и послужил основой для создания повсеместно распространенных сегодня интерфейсов ODBC (Open Database Connectivity) и JDBC (Java Database Connectivity).

В 1996 г. к стандарту SQL/92 был добавлен еще один компонент - SQL/PSM (Persistent Stored Modules). Основная цель этой спецификации состоит в том, чтобы стандартизировать способы определения и использования хранимых процедур, т. е. специальным образом оформленных программ, включающих операторы SQL, которые сохраняются в базе данных, могут вызываться приложениями и выполняются внутри СУБД.

Стандарт SQL:1999 (SQL3)

Незадолго до завершения работ по определению стандарта SQL2 была начата разработка стандарта SQL3. Реально работу над новым стандартом удалось частично завершить только в 1999 г., и по этой причине (а также в связи с проблемой 2000 года) стандарт получил название SQL:1999.

1999 г. были приняты пять первых частей стандарта SQL:1999. Первая часть (SQL/Framework) посвящена описанию концептуальной структуры стандарта: приводится развернутая аннотация следующих четырех частей.

Вторая часть SQL:1999 (SQL/Foundation) образует базис стандарта. Вводится система типов языка, формулируются правила определения функциональных зависимостей и возможных ключей, определяются синтаксис и семантика основных операторов SQL:

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

Третью часть занимает уточненная по сравнению с SQL/92 спецификация SQL/CLI. В четвертой части специфицируется SQL/PSM - синтаксис и семантика языка определения хранимых процедур (стандарт синтаксиса триггеров и процедур). Наконец, в пятой части - SQL/Bindings - определяются правила связывания SQL для стандартных версий языков программирования FORTRAN, COBOL, PL/1, Pascal, Ada, C и MUMPS.

В стандарт SQL:1999 не вошли и существуют в виде отдельных стандартов:

  • стандарт управления распределенными транзакциями (SQL/Transaction);
  • стандарт поддержки темпоральных свойств данных (SQL/Temporal);
  • стандарт управления внешними данными (SQL/MED);
  • поддержка оперативной аналитической обработки (SQL/OLAP).

Стандарт SQL:2003

Кроме исправления некоторых неточностей допущенных в SQL:1999, стандарт SQL:2003 внес ряд новшеств:

  • · Изменена структура организации стандарта (часть SQL/Bindings объединена с SQL/Foundation, новые части SQL/Schemata, SQL/JRT (Java) и SQL/XML);
  • · Изменения в системе типов данных (исключена поддержка битовых строк BIT и BIT VARYING, добавлен конструктор типов мультимножеств (MULTISET), новый тип BIGINT и тип XML);
  • · Табличные функции (возвращают на выходе таблицу);
  • · Расширенные возможности оператора CREATE TABLE (создание подобных уже существующим таблиц (LIKE) или частичный экспорт структуры (AS);
  • · Генераторы последовательностей (sequence generators);
  • · Идентифицирующие столбцы (identity columns) и генерируемые столбцы (generated columns);
  • · Оператор MERGE для обновления базы (объединение шагов INSERT и UPDATE при обновлении одной таблицы ил другой);

 

SQL в примерах

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

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

Таблица поставщиков S:

Create table S (n_post char(5) not NULL,

name char(20),

reiting smallint,

town char(15))

Таблица деталей Р:

Create table P (n_det char(6) ,

name char(20),

cvet char(7),

ves smallint,

town char(15))

Таблица поставок SP:

Create table SP (n_post char(5) ,

n_det char(6),

date_post date,

kol smallint)

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

Содержание таблиц базы данных следующее:

Таблица поставщиков (S)

Hомеp_поставщика Фамилия Рейтинг Гоpод
S1 Смит Лондон
S2 Джонс Париж
S3 Блейк Париж
S4 Кларк Лондон
S5 Адамс Атенс

Таблица деталей (P)

Номер детали Название Цвет Вес Гоpод
P1 Гайка Красный Лондон
P2 Болт Зеленый Париж
P3 Винт Голубой Рим
P4 Винт Красный Лондон
P5 Кулачок Голубой Париж
P6 Блюм Красный Лондон

Таблица поставок (SP)

Номер поставщика Номер детали Дата поставки Количество
S1 P1 01.02.2005
S1 P2 05.04.2005
S1 P3 12.05.2005
S1 P4 15.06.2005
S1 P5 22.07.2005
S1 P6 13.08.2005
S2 P1 03.03.2005
S2 P2 12.06.2005
S3 P2 04.04.2005
S4 P2 23.03.2005
S4 P4 17.06.2005
S4 P5 22.08.2005


<== предыдущая лекция | следующая лекция ==>
Практические задания по SQL | I. Простые запросы на языке SQL


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.149 сек.