Лекция_1 (1119133)
Текст из файла
Дополнительные главы базданныхСергей Дмитриевич КузнецовИнститут системного программирования РАНkuzloc@ispras.ruСодержание курса (1) История стандарта языка SQL. Типыданных. Средства языка SQL дляопределения и изменения доменов,базовых таблиц и ограниченийцелостностиИстория стандарта SQL и структура языка Этапы процесса стандартизации языка SQL Структура языка SQL20.05.2016Доп. главы баз данных. Лекция 12Содержание курса (2)Типы данных SQL Точные числовые типы, приближенные числовые типы,типы символьных и битовых строк, темпоральные типы,Булевский тип, типы коллекций, анонимные строчныетипы, типы, определяемые пользователем, ссылочныетипыСредства определения, изменения и ликвидациидоменовСредства определения, изменения и ликвидациибазовых таблицСредства определения и отмены общихограничений целостности20.05.2016Доп.
главы баз данных. Лекция 13Содержание курса (3)Базовые возможности выборки данныхв языке SQLОбщая структура оператора выборки в языке SQL Семантика оператора выборки Ссылки на таблицы раздела FROMo Табличное выражение, спецификация запроса и выражениезапросовo Ссылки на базовые, представляемые и порождаемые таблицыПредставляемые таблицы, или представления20.05.2016Доп. главы баз данных. Лекция 14Содержание курса (4)Базовые возможности выборки данныхв языке SQLЛогические выражения раздела WHERE Предикат сравнения, предикат between, предикат null,предикат in, предикат like, предикат similar, предикатexists, предикат unique, предикат overlaps, предикатсравнения с квантором, предикат match, предикат distinctЛогические выражения раздела HAVING20.05.2016Доп.
главы баз данных. Лекция 15Содержание курса (5)Базовые возможности модификациибаз данных в языке SQLПредставления, над которыми возможныоперации обновления Представления, допускающие применение операцийобновления, в стандарте SQL/92 Представления, допускающие применение операцийобновления, в стандарте SQL:1999 Раздел WITH CHECK OPTION определения представления Исторический очерк20.05.2016Доп. главы баз данных.
Лекция 16Содержание курса (6)Базовые возможности модификациибаз данных в языке SQL◦ Операции обновления баз данных имеханизм триггеров Понятие триггера в SQL:1999 Синтаксис определения триггеров и типытриггеров Выполнение триггеров Триггеры и ссылочные действия20.05.2016Доп. главы баз данных. Лекция 17Содержание курса (7)Механизмы авторизации доступа иуправления подключениями, сессиямии транзакциями в языке SQLПоддержка авторизации доступа к данным вязыке SQL Пользователи и роли Использование идентификаторов пользователей и именролей Создание и ликвидация ролей Передача привилегий и ролей Изменение текущих идентификаторов пользователей иимен ролей Аннулирование привилегий и ролей20.05.2016Доп. главы баз данных.
Лекция 18Содержание курса (8) Механизмы авторизации доступа иуправления подключениями,сессиями и транзакциями в языкеSQLУправление транзакциями в SQL Порождение транзакций в SQL Уровни изоляции SQL-транзакции Завершение транзакций Транзакции и ограничения целостности Точки сохранения20.05.2016Доп. главы баз данных. Лекция 19Содержание курса (9) Механизмы авторизации доступа иуправления подключениями,сессиями и транзакциями в языкеSQLПодключения и сессии Установление соединений Операторы SQL для управления соединениямиo Оператор CONNECTo Оператор SET CONNECTIONo Оператор DISCONNECT20.05.2016Доп.
главы баз данных. Лекция 110Лекция 1. Общее введение в SQL, типыданных и средства определения доменовПосле небольшой исторической справки икраткого введения в структуру языка SQL будутрассмотрены типы данных, допустимые в языкеSQL и в SQL-ориентированных базах данных, атакже языковые средства определения,изменения определения и отмены определениядоменов. В начале лекции мы представим небольшойисторический обзор SQL◦ язык уже далеко не молод◦ в 2004 г. сообщество баз данных отметило его 30летний юбилей◦ чтобы правильно понимать и трактовать современныеварианты SQL, нужно знать историю языка хотя бы вобщих чертах20.05.2016Доп. главы баз данных.
Лекция 111Краткая история языка SQL (1)Язык SQL, предназначенный для взаимодействияс базами данных, появился в середине 70-х гг.(первые публикации датируются 1974 г.) и былразработан в компании IBM в рамках проектаэкспериментальной реляционной СУБД System R Исходное название языка SEQUEL (StructuredEnglish Query Language) только частичноотражало суть этого языка Конечно, язык был ориентирован главнымобразом на удобную и понятную пользователямформулировку запросов к реляционным БД.20.05.2016Доп.
главы баз данных. Лекция 112Краткая история языка SQL (2)Но, в действительности, он почти с самого началаявлялся полным языком БД, обеспечивающимпомимо средств формулирования запросов иманипулирования БД следующие возможности:◦ средства определения и манипулирования схемой БД;◦ средства определения ограничений целостности итриггеров;◦ средства определения представлений БД;◦ средства определения структур физического уровня,поддерживающих эффективное выполнение запросов;◦ средства авторизации доступа к отношениям и ихполям67);◦ средства определения точек сохранения транзакции ивыполнения фиксации и откатов транзакций20.05.2016Доп.
главы баз данных. Лекция 113Краткая история языка SQL (3)В языке отсутствовали средства явнойсинхронизации доступа к объектам БД состороны параллельно выполняемых транзакций: ссамого начала предполагалось, что необходимуюсинхронизацию неявно выполняет СУБД. В настоящее время язык SQL реализован во всехкоммерческих реляционных СУБД и почти во всехСУБД, которые изначально основывались не нареляционном подходе Все компании-производители провозглашаютсоответствие своей реализации стандарту SQL, ина самом деле реализованные диалекты SQLочень близки Этого удалось добиться не сразу.20.05.2016Доп. главы баз данных. Лекция 114Краткая история языка SQL (4)Наиболее близки к System R были две системы компанииIBM – SQL/DS и DB2Разработчики обеих систем использовали опыт проектаSystem R, а СУБД SQL/DS напрямую основывалась напрограммном коде System RОтсюда предельная близость диалектов SQL,реализованных в этих системах, к SQL System RИз SQL System R были удалены только те части, которыебыли недостаточно проработаны (например, точкисохранения) или реализация которых вызывала слишкомбольшие технические трудности (например,ограничения целостности и триггеры)Можно назвать этот путь к коммерческой реализацииSQL движением сверху вниз.20.05.2016Доп.
главы баз данных. Лекция 115Краткая история языка SQL (5)Другой подход применялся в таких системах, какOracle, Informix и Sybase. Несмотря на различие вспособах разработки систем, реализация SQLвезде происходила «снизу вверх» В первых выпущенных на рынок версиях этихсистем использовалось ограниченноеподмножество SQL System R В частности, в первой известной нам реализацииSQL в СУБД Oracle в операторах выборки недопускалось использование вложенныхподзапросов и отсутствовала возможностьформулировки запросов с соединенияминескольких отношений20.05.2016Доп. главы баз данных.
Лекция 116Краткая история языка SQL (6)Особенностью большинства современных коммерческихСУБД, затрудняющей сравнение существующихдиалектов SQL, является отсутствие единообразногоописания языка Обычно описание разбросано по разным руководствам иперемешано с описанием специфических для даннойсистемы языковых средств, не имеющих прямогоотношения к SQL Тем не менее, можно сказать, что базовый набороператоров SQL, включающий операторы определениясхемы БД, выборки и манипулирования данными,авторизации доступа к данным, поддержки встраиванияSQL в языки программирования и операторыдинамического SQL, в коммерческих реализацияхустоялся и более или менее соответствует стандарту20.05.2016Доп.
главы баз данных. Лекция 117Краткая история языка SQL (7)Деятельность по стандартизации языка SQL началасьпрактически одновременно с появлением его первыхкоммерческих реализацийВ 1982 г. комитету по базам данных Американскогонационального института стандартов (ANSI) былопоручено разработать спецификацию стандартногоязыка реляционных баз данныхПервый документ из числа имеющихся у авторапроектов стандарта датирован октябрем 1985 г. иявляется уже не первым проектом стандарта ANSIСтандарт был принят ANSI в 1986 г., а в 1987 г.
одобренМеждународной организацией по стандартизации (ISO)Этот стандарт принято называть SQL/8620.05.2016Доп. главы баз данных. Лекция 118Краткая история языка SQL (8)Понятно, что в качестве основы стандартанельзя было использовать SQL System RВо-первых, этот вариант языка не былдолжным образом технически проработанВо-вторых, его слишком сложно было быреализовать (кто знает, как бы сложиласьсудьба SQL, если бы все идеи проекта SystemR были реализованы полностью)Поэтому за основу был взят диалект языкаSQL, сложившийся в IBM к началу 1980-х гг.В сущности, этот диалект представлял собойтехнически проработанное подмножествоSQL System R20.05.2016Доп.
главы баз данных. Лекция 119Краткая история языка SQL (9)К 1989 г. стандарт SQL/86 был несколько расширен, ибыл подготовлен и принят следующий стандарт,получивший название ANSI/ISO SQL/89Анализ доступных документов показывает, что процессстандартизации SQL происходил очень сложно сиспользованием не только научных доводовВ результате SQL/89 во многих частях имеетчрезвычайно общий характер и допускает оченьширокое толкованиеВ этом стандарте полностью отсутствуют такие важныеразделы, как манипулирование схемой БД идинамический SQLМногие важные аспекты языка в соответствии состандартом определяются в реализации20.05.2016Доп.
главы баз данных. Лекция 120Краткая история языка SQL (10)Наиболее важными достижениями стандарта SQL/89 являютсячеткая стандартизация синтаксиса и семантики оператороввыборки данных и манипулирования данными и фиксациясредств ограничения целостности БДБыли специфицированы средства определения первичного ивнешних ключей отношений и так называемых проверочныхограничений целостности, которые представляют собойподмножество немедленно проверяемых ограниченийцелостности SQL System RСредства определения внешних ключей позволяют легкоформулировать требования так называемой ссылочнойцелостности БДЭто распространенное в реляционных БД требование можнобыло сформулировать и на основе общего механизмаограничений целостности SQL System R, но формулировка наоснове понятия внешнего ключа более проста и понятна20.05.2016Доп.
главы баз данных. Лекция 121Краткая история языка SQL (11)Осознавая неполноту стандарта SQL, на фоне завершенияразработки этого стандарта специалисты различных компанийначали работу над стандартом SQL2Эта работа также длилась несколько лет, было выпущеномножество проектов стандарта, пока наконец в марте 1992 г.не был принят окончательный проект стандарта (SQL/92)Этот стандарт существенно полнее стандарта SQL/89 иохватывает практически все аспекты, необходимые дляреализации приложений: манипулирование схемой БД,управление транзакциями (появились точки сохранения) исессиями (сессия – это последовательность транзакций, впределах которой сохраняются временные отношения),подключения к БД, динамический SQLНаконец, были стандартизованы отношения-каталоги БД, чтовообще-то не связано непосредственно с языком, но оченьсильно влияет на реализацию20.05.2016Доп.
главы баз данных. Лекция 122Краткая история языка SQL (12)В 1995 г. стандарт был дополнен спецификациейинтерфейса уровня вызова (Call-Level Interface –SQL/CLI). SQL/CLI представляет собой наборспецификаций интерфейсов процедур, вызовы которыхпозволяют выполнять динамически задаваемыеоператоры SQL По сути дела, SQL/CLI представляет собой альтернативудинамическому SQL Интерфейсы процедур определены для всех основныхязыков программирования: С, Ada, Pascal, PL/1 и т. д. Следует заметить, что стандарт SQL/CLI послужилосновой для создания повсеместно распространенныхсегодня интерфейсов ODBC (Open Database Connectivity)и JDBC (Java Database Connectivity).20.05.2016Доп.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.