- •Московский авиационный институт (Государственный технический университет)
- •Управление базами данных
- •4 Семестр
- •Лекция 1
- •Роль sql
- •Преимущества sql
- •Лекция 2
- •Лекция 3
- •Лекция 4
- •Структура предиката в предложении Where
- •Лекция 5
- •Лекция 6
- •Использование множества таблиц в одном запросе.
- •Лекция 7
- •Лекция 8
- •Представления (View)
- •Создание представлений (инструкция create view)
- •Лекция 9
- •Контроль над обновлением представлений (предложение with check option)
- •Лекция 10
- •Лекция 11
- •Триггеры
- •Лекция 12
- •Лекция 13
- •Лекция 14
- •Управление распределенными базами данных
- •Лекция 15
- •Лекция 16
- •Литература
Роль sql
В настоящее время, SQL выполняет много различных функций:
SQL — язык интерактивных запросов. Пользователи вводят команды SQL в интерактивных программах с целью выборки данных и отображения их на экране. Это удобный способ выполнения специальных запросов.
SQL — язык программирования баз данных. Чтобы получить доступ к базе данных, программисты вставляют в свои программы команды SQL. Эта методика используется как в программах, написанных пользователями, так и в служебных программах баз данных (таких как генераторы отчетов).
SQL — язык администрирования баз данных. Администратор базы данных, находящейся на рабочей станции или на сервере, использует SQL для определения структуры базы данных и управления доступом к данным.
SQL — язык создания приложений клиент/сервер. В программах для персональных компьютеров SQL используется как средство организации связи по локальной сети с сервером баз данных, в которой хранятся совместно используемые данные. Архитектура клиент/сервер весьма популярна в приложениях корпоративного уровня.
SQL — язык доступа к данным в среде Internet. На Web-серверах SQL используется как стандартный язык для доступа к корпоративным базам данных.
SQL — язык распределенных баз данных. В системах управления распределенными базами данных SQL помогает распределять данные среди нескольких взаимодействующих вычислительных систем. Программное обеспечение каждой системы посредством SQL связывается с другими системами, посылая им запросы на доступ к данным.
SQL — язык шлюзов баз данных. В вычислительных сетях с различными СУБД SQL часто используется в шлюзовой программе, которая позволяет СУБД одного типа связываться с СУБД другого типа.
Таким образом, SQL превратился в полезный и мощный инструмент, обеспечивающий пользователям, программам и вычислительным системам доступ к информации, содержащейся в реляционных базах данных.
Преимущества sql
SQL — это легкий для понимания язык и в то же время универсальное программное средство управления данными.
Успех языку SQL принесли следующие его особенности:
независимость от конкретных СУБД;
межплатформенная переносимость;
наличие стандартов;
одобрение компанией IBM (СУБД DB2);
поддержка со стороны компании Microsoft (протокол ODBC и технология ADO);
реляционная основа;
высокоуровневая структура, напоминающая английский язык;
возможность выполнения специальных интерактивных запросов;
обеспечение программного доступа к базам данных;
возможность различного представления данных;
полноценность как языка, предназначенного для работы с базами данных;
возможность динамического определения данных;
поддержка архитектуры клиент/сервер;
расширяемость и поддержка объектно-ориентированных технологий;
возможность доступа к данным в среде Internet;
интеграция с языком Java (протокол JDBC).
Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, рабочих станциях и крупных серверах. Ниже эти факторы рассмотрены более подробно.
Независимость от конкретных СУБД
Все ведущие поставщики СУБД используют SQL, и ни одна новая СУБД, не поддерживающая SQL, не может рассчитывать на успех. Реляционную базу данных и программы, которые с ней работают, можно перенести с одной СУБД на другую с минимальными доработками и переподготовкой персонала. Программные средства, входящие в состав СУБД для персональных компьютеров, такие как программы для создания запросов, генераторы отчетов и генераторы приложений, работают с реляционными базами данных многих типов. Таким образом, SQL обеспечивает независимость от конкретных СУБД, что является одной из наиболее важных причин его популярности.
Межплатформенная переносимость
Реляционные СУБД выполняются на различных вычислительных системах: от мэйнфреймов и систем среднего уровня до персональных компьютеров, рабочих станций и переносных ПК. Они функционируют на отдельных компьютерах, в локальных и корпоративных сетях и даже в Internet. Приложения, созданные с помощью SQL и рассчитанные на однопользовательские системы, по мере своего развития могут быть перенесены в более крупные системы. Наконец, информация из корпоративных реляционных баз данных может быть загружена в базы данных отдельных подразделений или в персональные базы данных пользователей.
Стандарты языка SQL
Официальный стандарт языка SQL был опубликован Американским национальным институтом стандартов (American National Standards Institute — ANSI) и Международной организацией по стандартизации (International Standards Organization — ISO) в 1986 году, расширен в 1989 году, а затем — в 1992 году. Кроме того, SQL является федеральным стандартом США в области обработки информации (FIPS — Federal Information Processing Standard) и, следовательно, соответствие ему является одним из основных требований, содержащихся в больших правительственных контрактах на разработки в компьютерной промышленности. В течение последних десяти лет многие другие международные, правительственные и промышленные группы вносили свой вклад в стандартизацию различных составляющих SQL, таких как интерфейсы программирования и объектно-ориентированные расширения. Со временем многие из подобных инициатив стали составной частью стандарта ANSI/ISO Все эти стандарты служат как бы официальной печатью, одобряющей SQL, и от ускорили завоевание им рынка.
Одобрение SQL компанией IBM (СУБД DB2)
SQL был разработан научными сотрудниками компании IBM и широко используете; ею во множестве пакетов программного обеспечения. Подтверждением этому служи' флагманская СУБД DB2 компании IBM. Все основные семейства компьютеров компании IBM поддерживают SQL: система PS/2 для персональных компьютеров, систем; среднего уровня AS/400, система RS/6000 на базе UNIX, а также операционные системы MVS(ОС ЕС) и VM(СВМ ЕС) для мэйнфреймов. Широкая поддержка SQL фирмой IBM ускорила его признание и еще в самом начале возникновения и развития рынка баз данных явилась своего рода недвусмысленным указанием для других поставщиков баз данных и программных систем, в каком направлении необходимо двигаться.
Поддержка со стороны Microsoft (ODBC и ADO)
Компания Microsoft рассматривает подсистему доступа к базам данных как важную часть своей операционной системы Windows. Стандартом этой компании по обеспечению доступа к базам данных является ODBC (Open Database Connectivity — открытый доступ к базам данных) — программный интерфейс, основанный на SQL Протокол ODBC поддерживается наиболее распространенными приложениями Windows (электронными таблицами, текстовыми процессорами, базами данных и т.п.) разработанными как самой компанией Microsoft, так и другими ведущими поставщиками. Поддержка ODBC обеспечивается также всеми ведущими реляционными СУБД. Позднее Microsoft реализовала объектно-ориентированные надстройки над ODBC, в частности технологии OLE DB и ADO.
Реляционная основа
SQL является языком реляционных баз данных, поэтому он стал популярным тогда, когда популярной стала реляционная модель представления данных. Табличная структура реляционной базы данных интуитивно понятна пользователям, поэтому язык SQL является простым и легким для изучения. Реляционная модель имеет солидный теоретический фундамент, послуживший основой для эволюции и реализации реляционных баз данных. На волне популярности, вызванной успехом реляционной модели, SQL стал единственным языком для реляционных баз данных.
Высокоуровневая структура, напоминающая английский язык
Инструкции SQL выглядят как обычные английские предложения, что упрощает их изучение и понимание. Частично это обусловлено тем, что инструкции SQL описывают данные, которые необходимо получить, а не определяют способ т поиска. Таблицы и столбцы в реляционной базе данных могут иметь длинные описательные имена. В результате большинство инструкций SQL означают именно то, что точно соответствует их именам, поэтому их можно читать как простые, понятные предложения.
Интерактивные запросы
SQL является языком интерактивных запросов, который обеспечивает пользователям немедленный доступ к данным. С помощью SQL пользователь может в интерактивном режиме получить ответы на самые сложные запросы в считанные минуты или секунды, тогда как программисту потребовались бы дни или недели, чтобы написать для пользователя соответствующую программу. Из-за того что SQL допускает интерактивное формирование запросов, данные становятся более доступными и могут помочь в принятии решений, делая их более обоснованными.
Программный доступ к базе данных
Программисты пользуются языком SQL, чтобы писать приложения, в которых содержатся обращения к базам данных. Одни и те же инструкции SQL используются как для интерактивного, так и для программного доступа, поэтому части программ, содержащие обращения к базе данных, можно вначале тестировать в интерактивном режиме, а затем встраивать в программу. В традиционных базах данных для программного доступа используются одни программные средства, а для выполнения интерактивных запросов — другие, без какой либо связи между этими двумя режимами доступа.
Различные представления данных
С помощью SQL создатель базы данных может сделать так, что различные пользователи базы данных будут видеть различные представления ее структуры и содержимого. Например, базу данных можно спроектировать таким образом, что каждый пользователь будет видеть только данные, относящиеся к его подразделению или торговому региону. Кроме того, данные из различных частей базы данных могут быть скомбинированы и представлены пользователю в виде одной простой таблицы. Следовательно, представления можно использовать для усиления защиты базы данных и ее настройки под конкретные требования отдельных пользователей.
Полноценный язык для работы с базами данных
Первоначально SQL был задуман как язык интерактивных запросов, но сейчас он вышел далеко за рамки выборки данных. SQL является полноценным и логичным языком, предназначенным для создания базы данных, управления ее защитой, изменения ее содержимого, выборки данных и совместного их использования несколькими пользователями, работающими параллельно. Приемы, освоенные при изучении одного раздела языка, могут затем применяться в других командах, что повышает производительность работы пользователей.
Динамическое определение данных
С помощью SQL можно динамически изменять и расширять структуру базы данных даже в то время, когда пользователи обращаются к ее содержимому. Это большое преимущество перед языками статического определения данных, которые запрещают доступ к базе данных во время изменения ее структуры. Таким образом, SQL обеспечивает максимальную гибкость, так как дает базе данных возможность адаптироваться к изменяющимся требованиям, не прерывая работу приложения, выполняющегося в реальном масштабе времени.
Архитектура клиент/сервер
SQL — естественное средство для реализации приложений клиент/сервер. В этой роли SQL служит связующим звеном между клиентской системой, взаимодействующей с пользователем, и серверной системой, управляющей базой данных, позволяя каждой системе сосредоточиться на выполнении своих функций. Кроме того, SQ дает возможность персональным компьютерам функционировать в качестве клиента по отношению к сетевым серверам или более крупным базам данных, установленных на мэйнфреймах; это позволяет получать доступ к корпоративным данным из приложений, работающих на персональных компьютерах.
Объектно-ориентированные технологии
Основным препятствием на пути развития языка SQL стало появление объектных баз данных как следствие общей направленности компьютерного рынка в сторону объектно-ориентированных технологий. В ответ на это поставщики реляционных СУБД начали постепенно модернизировать SQL, добавляя в него различные объектные возможности. Появившиеся в результате "объектно-реляционные" базы данных стали более популярной альтернативой чисто объектным базам данных, гарантировав таким образом "спокойную жизнь" языку SQL в следующем десятилетии.
Доступ к данным в среде Internet
Взрыв популярности Internet и World Wide Web привел к тому, что к концу 90-годов SQL стал рассматриваться и как стандартный язык для доступа к данным среде Internet. Первоначально, в эпоху зарождения WWW, разработчики, занимавшиеся отображением на Web-страницах информации, извлеченной из баз данных применяли SQL как средство взаимодействия со шлюзами баз данных. Позднее, появлением трехуровневой архитектуры Internet с четким разделением на тонкие клиенты, серверы приложений и серверы баз данных, SQL стал связующим звеном между вторым и третьим уровнями.
Интеграция с языком Java (JDBC)
В целях обеспечения связи между Java-приложениями и реляционными базам данных компания Sun Microsystems (создатель Java) разработала протокол JDBC (Java Database Connectivity) — набор стандартных API-функций, позволяющих программам, написанным на языке Java, использовать SQL для доступа к данным. Многие ведущие поставщики СУБД также объявили о включении поддержки этого языка свои продукты, предоставляя возможность, например, писать хранимые процедуры на языке Java. Это подчеркивает важность SQL в эпоху значительного роста интерес к программированию на Java.
Контрольные вопросы
Перечислите функции языка SQL;
Каковы основные преимущества SQL
Положение SQL в архитектуре клиент-сервер.
