Скачать презентацию Тема SQL Введение в SQL Литература Скачать презентацию Тема SQL Введение в SQL Литература

SQL-vvedenie.ppt

  • Количество слайдов: 41

Тема. SQL Введение в SQL Тема. SQL Введение в SQL

Литература • • Грабер М. SQL. – М. ЛОРИ, 2001. – 646 с. : Литература • • Грабер М. SQL. – М. ЛОРИ, 2001. – 646 с. : ил. Грабер М. SQL. Справочное руководство. – М. ЛОРИ, 1997. Грабер М. Введение в SQL. Пер. с англ. – М. : ЛОРИ, 1996. Генник Дж. SQL. Карманный справочник. – СПб. : Питер, 2004. Жилинский А. Самоучитель Microsoft SQL Server 2005. – СПб. : БХБ-Петербург, 2007. С. Д. Кузнецов. Базы данных: языки и модели. Москва, Бином, 2008 Дьюсен Р. SQL Server 2008 для начинающихся разработчиков: Пер с англ. - СПб. : БХВ-Петербург, 2009

План лекции • SQL. История развития языка SQL • Общая характеристика SQL • Стандарты План лекции • SQL. История развития языка SQL • Общая характеристика SQL • Стандарты SQL • Реализации SQL в современных СУБД. SQL-серверы.

 • SQL - Structure Query Language • Предшественником SQL был язык SEQUEL (Structured • SQL - Structure Query Language • Предшественником SQL был язык SEQUEL (Structured English Query Language). • Близок к реляционному исчислению кортежей

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

История развития языка SQL • Работа была начата сразу после появления статьи Э. Кодда История развития языка SQL • Работа была начата сразу после появления статьи Э. Кодда в 1970 г. в лабораториях компании IBM для проверки возможностей реляционной модели. • Был разработан в середине 1970 году (IBM) – System R. • Первой коммерческой системой, в которой был реализован этот язык, была система Oracle (1979 г. ).

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

SQL в коммерческих реализациях • 1979 - Oracle (Relation Software Inc. - Oracle corp. SQL в коммерческих реализациях • 1979 - Oracle (Relation Software Inc. - Oracle corp. ); • 1981 -1982 - DB 2 (IBM), Ingres - CAOpen. Ingres (Relation Technology Inc. - Computer Associates) • 1984 - Informix (Informix Sofrware); • 1986 - Sybase (Sybase Corp. ) • 1988 - SQL Server (Microsoft совместно с Sybase ) 1994 –отделился от Sybase

SQL Интерактивный Статический встроенный Динамический SQL Интерактивный Статический встроенный Динамический

Курсоры • Курсоры используются только во встроенном • SQL. Курсор создается с помощью команды Курсоры • Курсоры используются только во встроенном • SQL. Курсор создается с помощью команды DECLARE имя_курсора CURSOR FOR подзапрос; Курсоры используются для того, чтобы «согласовать» теоретико-множественный язык SQL и включающие языки, которые являются языками позаписной обработки.

SQL язык определения схемы (SQL-DDL) язык манипулирования данными (SQL-DML) язык управления данными (DCL ‑ SQL язык определения схемы (SQL-DDL) язык манипулирования данными (SQL-DML) язык управления данными (DCL ‑ Data Control Language) Подмножества языка SQL DCL - используется для создания объектов, относящихся к управлению доступом пользователей к базе данных, а также для назначения пользователям подходящих уровней привилегий доступа

Другое выделение компонет • DDL (Data Definition Language — язык определения данных); • DML Другое выделение компонет • DDL (Data Definition Language — язык определения данных); • DML (Data Manipulation Language — язык манипуляций данными); • DQL (Data Query Language — язык запросов к данным); • DCL (Data Control Language — язык управления данными); • команды администрирования данных; • команды управления транзакциями.

Виды запросов • Поисковые • Корректирующие – включение новой записи (INSERT), – обновление отдельных Виды запросов • Поисковые • Корректирующие – включение новой записи (INSERT), – обновление отдельных полей (UPDATE), – удаление записи или группы записей (DELETE).

DDL - Data Definition Language • CREATE TABLE • ALTER TABLE • DROP TABLE DDL - Data Definition Language • CREATE TABLE • ALTER TABLE • DROP TABLE • CREATE INDEX • ALTER INDEX • DROP INDEX

DML -Data Manipulation Language • INSERT • UPDATE • DELETE DML -Data Manipulation Language • INSERT • UPDATE • DELETE

DQL - Data Query Language • SELECT DQL - Data Query Language • SELECT

Поисковый запрос ( «усеченный» синтаксис) SELECT <список колонок, включаемых в ответ> FROM <список таблиц> Поисковый запрос ( «усеченный» синтаксис) SELECT <список колонок, включаемых в ответ> FROM <список таблиц> WHERE <условие> пример: SELECT * FROM kadr WHERE vozr = 40 AND pol = «м» ;

Оператор SELECT оперирует над множествами строк и результатом обработки в общем случае является множество Оператор SELECT оперирует над множествами строк и результатом обработки в общем случае является множество строк. К этим множествам могут быть применены теоретико-множественные операции объединение (UNION), пересечение (INTERSECTION), разность (DIFFERENCE, MINUS, EXCEPT) и другие. В разных реализациях языка SQL наборы теоретико-множественных операций различаются

 • Язык SQL позволяет запрашивать вычисляемые значения пример: SELECT naimprod, datapost, kolv*cena AS • Язык SQL позволяет запрашивать вычисляемые значения пример: SELECT naimprod, datapost, kolv*cena AS summa FROM postypl ;

Возможна подгруппировка данных с целью получения подитогов или других обобщающих величин. В стандарт SQL Возможна подгруппировка данных с целью получения подитогов или других обобщающих величин. В стандарт SQL 92 включены следующие агрегатные функции: count – подсчет, avg – среднее, sum – сумма, max – максимум, min – минимум.

таблица истинности (трехзначная логика) Истина (True) Ложь (False) Неопределенное значение (NULL или Unknown) таблица истинности (трехзначная логика) Истина (True) Ложь (False) Неопределенное значение (NULL или Unknown)

DCL - Data Control Language • ALTER PASSWORD • GRANT • REVOKE • CREATE DCL - Data Control Language • ALTER PASSWORD • GRANT • REVOKE • CREATE SYNONYM позволяют осуществлять контроль над возможностью доступа к данным внутри базы данных

Команды администрирования данных дают пользователю возможность выполнять аудит и анализ операций внутри базы данных, Команды администрирования данных дают пользователю возможность выполнять аудит и анализ операций внутри базы данных, а также выполнять анализ производительности системы в целом • START AUDIT • STOP AUDIT

Команды управления транзакциями • COMMIT - используется для того, чтобы сохранить транзакции. • ROLLBACK Команды управления транзакциями • COMMIT - используется для того, чтобы сохранить транзакции. • ROLLBACK - используется для того, чтобы отменить транзакции. • SAVEPOINT - создает точки внутри групп транзакций, к которым отсылает команда ROLLBACK. • SET TRANSACTION - позволяет назначить транзакции имя.

SQL. Метаинформация хранится в виде реляционных таблиц SQL. Метаинформация хранится в виде реляционных таблиц

СТАНДАРТЫ SQL СТАНДАРТЫ SQL

Стандарты SQL • ANSI – Американский национальный институт • • стандартов ISO – Международная Стандарты SQL • ANSI – Американский национальный институт • • стандартов ISO – Международная организация стандартов Стандарт SQL был впервые опубликован в 1986 г. - обеспечивал минимальную функциональность обновлялся в 1989 – механизм поддержания ссылочной целостности и 1992 г. - расширенная функциональность 1999 (SQL-3) – интеграция с объектноориентированным подходом SQL: 2003 SQL: 2008 Каждая версия замещает предыдущую, так что требования соответствия стандарту более ранних версий не имеют официальной силы.

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

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

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

 • SQL 92 определяет три списка • возможностей по достигнутой совместимости: Entry, Intermediate • SQL 92 определяет три списка • возможностей по достигнутой совместимости: Entry, Intermediate и Full (Начальная, Промежуточная и Полная). Большинство СУБД претендующих на совместимость со стандартом SQL, соответствовали только уровню Entry, так как полный список возможностей для уровней Intermediate и Full был или слишком объёмный или приводил к конфликту с существующим поведением СУБД.

 • В 1995 г. стандарт был дополнен спецификацией • интерфейса уровня вызова (Call-Level • В 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: 1999 стандарт определяет большой список отдельных возможностей, в отличие от неэффективного Начиная с SQL: 1999 стандарт определяет большой список отдельных возможностей, в отличие от неэффективного широкого разделения на три уровня в SQL 92.

SQL: 1999 (SQL 3) SQL 3 характеризуется как SQL: 1999 (SQL 3) SQL 3 характеризуется как "объектно-ориентированный SQL" и является основой нескольких объектно-реляционных систем управления базами данных (ORACLE 8 компании Oracle, Universal Server компании Informix, DB 2 Universal Database компании IBM и др. )

 • • • Версии стандартов SQL: 2008 и SQL: 2003 разбиты на несколько • • • Версии стандартов SQL: 2008 и SQL: 2003 разбиты на несколько частей: ISO/IEC 9075 -1 Framework (SQL/Framework) ISO/IEC 9075 -2 Foundation (SQL/Foundation) ISO/IEC 9075 -3 Call Level Interface (SQL/CLI) ISO/IEC 9075 -4 Persistent Stored Modules (SQL/PSM) ISO/IEC 9075 -9 Management of External Data (SQL/MED) ISO/IEC 9075 -10 Object Language Bindings (SQL/OLB) ISO/IEC 9075 -11 Information and Definition Schemas (SQL/Schemata) ISO/IEC 9075 -13 Routines and Types using the Java Language (SQL/JRT) ISO/IEC 9075 -14 XML-related specifications (SQL/XML)

SQL: 2003 • • • наиболее серьезные изменения языка SQL, специфицированные в части 2 SQL: 2003 • • • наиболее серьезные изменения языка SQL, специфицированные в части 2 стандарта SQL: 2003, касаются следующих аспектов: типы данных; подпрограммы, вызываемые из SQL; расширенные возможности оператора CREATE TABLE; новый объект схемы – генератор последовательностей; новые виды столбцов – идентифицирующие столбцы (identity column) и генерируемые столбцы (generated column); новый оператор MERGE;

 • В SQL: 2003 исключена поддержка типов • битовых строк BIT и BIT • В SQL: 2003 исключена поддержка типов • битовых строк BIT и BIT VARYING. Основанием явилось то, что эти типы не поддерживаются в существующих SQL-ориентированных СУБД, и компании-производители не собираются внедрять поддержку битовых строк в обозримом будущем (типы битовых строк просуществовали в стандарте SQL очень недолго - они появились только в стандарте SQL: 1999). Введен новый точный числовой целый тип – BIGINT. Тип BIGINT аналогичен ранее существовавшим в SQL целым типам INTEGER и SMALLINT.

SQL: 2003. Конструктор типов мультимножества • MULTISET • В отличие от массива, мультимножество является SQL: 2003. Конструктор типов мультимножества • MULTISET • В отличие от массива, мультимножество является неограниченной коллекцией; при конструировании типа мультимножеств не указывается предельная кардинальность значений этого типа.

SQL: 2008 Версия 2008 известна как ISO/IEC 9075: 2008 или просто как SQL: 2008. SQL: 2008 Версия 2008 известна как ISO/IEC 9075: 2008 или просто как SQL: 2008.

SQL-серверы СУБД Производитель Oracle Corp. MS SQL Server- Microsoft Informix – Informix Sybase – SQL-серверы СУБД Производитель Oracle Corp. MS SQL Server- Microsoft Informix – Informix Sybase – Sybase DB 2 IBM - URL www. oracle. com www. microsoft. com www. informix. com www. sybase. com www. 4. ibm. com