Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 6: язык запросов SQL. История, стандарты, терминология. СубдСодержание книги
Поиск на нашем сайте Введение Одним из основных преимуществ реляционного подхода к организации баз данных (БД) является то, что пользователи реляционных БД получают возможность эффективной работы в терминах простых и наглядных понятий таблиц, их строк и столбцов без потребности знания реальной организации данных во внешней памяти. Реляционная модель данных, содержащая набор четких предписаний к базовой организации любой реляционной системы управления базами данных (СУБД), позволяет пользователям работать в ненавигационной манере, т.е. для выборки информации из БД человек должен всего лишь указать список интересующих его таблиц и те условия, которым должны удовлетворять выбираемые данные. СУБД скрывает от пользователя выполняемые ею последовательные просмотры таблиц, выполняя их наиболее эффективным образом. Основная особенность реляционных систем состоит в том, что результатом выполнения любого запроса к таблицам БД является также таблица, которую можно сохранить в БД и/или по отношению к которой можно выполнять новые запросы. Очень важным требованием к реляционным СУБД является наличие мощного и в тоже время простого языка, позволяющего выполнять все необходимые пользователям операции. Таким повсеместно принятым языком стал язык реляционных БД SQL (Structured Query Language, Язык Структурных/Структурированных Запросов). До появления SQL в СУБД (независимо от того, на какой модели они основывались) приходилось поддерживать, по крайней мере, три языка, которые обычно имели мало общего: · язык определения данных (ЯОД), служащий для спецификации структур БД (обычно общую структуру БД называют схемой БД); · язык манипулирования данными (ЯМД), позволяющий создавать прикладные программы, взаимодействующие с БД; · язык администрирования БД (ЯАБД), с помощью которого можно было выполнять служебные действия (например, изменять структуру БД или производить ее настройку с целью повышения эффективности). Кроме того, если требовалось предоставить пользователям СУБД интерактивный доступ к БД, приходилось вводить еще один язык, операторы которого выполняются в диалоговом режиме. Язык SQL позволяет решать все эти задачи. Следует отметить, что к достоинствам языка SQL относится наличие международных стандартов. Первый международный стандарт был принят в 1989 г., и соответствующая версия языка называется SQL-89. Этот стандарт поддерживается практически во всех современных коммерческих реляционных СУБД (например, в Informix, Sybase, Ingres и т.д.). Второй международный стандарт был принят в 1992 г. - SQL-92. Этот вариант языка существенно шире, чем SQL-89. К настоящему времени основные компании-производители СУБД только частично поддерживают этот стандарт. Тем не менее, он является исключительно важным документом как для реально практикующих разработчиков программного обеспечения, так и для специалистов, связанных с подбором аппаратно-программных средств. История языка SQL История наиболее распространенного в настоящее время языка реляционных баз данных SQL насчитывает уже более 25 лет. Первый, достаточно полный функционально, но не полностью синтаксически и семантически определенный вариант языка SQL (его исходным названием было SEQUEL – Structured English Query Language) был разработан и частично реализован в рамках проекта экспериментальной реляционной СУБД System R (проект выполнялся с 1974 по 1979 гг. в научно-исследовательской лаборатории компании IBM в г.Сан-Хосе, Калифорния). Название языка SQL (Structured Query Language - структурированный язык запросов) только частично отражает его суть. Конечно, язык всегда был главным образом ориентирован на удобную и понятную пользователям формулировку запросов к реляционной БД, но на самом деле с самого начала задумывался как полный язык БД. Под этим мы понимаем то, что (по крайней мере, теоретически) знание SQL полностью достаточно для выполнения любых осмысленных действий с базой данных, управляемой SQL-ориентированной СУБД. Помимо операторов формулирования запросов и манипулирования БД язык содержит: средства определения схемы БД и манипулирования схемой; операторы для определения ограничений целостности и триггеров; средства определения представлений БД; средства авторизации доступа к отношениям и их полям; средства управления транзакциями. Другими словами, язык SQL претендует на то, что он способен полностью представить реляционную модель данных, т.е. его средств достаточно для представления всех аспектов реляционных баз данных в терминах Кодда. (Сразу заметим, что с этим утверждением многие несогласны, полагая, что некоторые возможности SQL расширяют классическую реляционную модель, а некоторые другие возможности - ее ограничивают.) Вместе с тем, несмотря на многолетнюю историю языка, для многих начинающих пользователей современных реляционных СУБД (включая разработчиков информационных систем) подчас трудно понять, можно ли говорить о языке SQL как таковом (в том смысле, в котором можно говорить о языках программирования Си или Паскаль, не привязываясь к их конкретной реализации) или же существует столько разнообразных вариантов SQL, сколько имеется разных SQL-ориентированных СУБД. Нужно сказать, что этот вопрос остается трудным, и ответить на него полностью однозначно не удается. Действительно, сегодня, видимо, невозможно найти две реализации, в которых диалекты SQL полностью бы совпадали. Но на самом деле то же относится и к разным реализациям языков программирования (сравните, например, реализационные диалекты языка Си компиляторов Borland и GCC). Важно другое. Существует международный стандарт языка Си (ANSI/ISOC), который должен поддерживаться в любом компиляторе, претендующем на совместимость со стандартом (хотя реализационный диалект языка может содержать существенные расширения). Именно наличие стандарта языка Си в совокупности с другими стандартами Открытых Систем обеспечивает возможность создания легко переносимых прикладных (и иногда и системных) программ. После появления в 1989 г. первого международного стандарта языка SQL (SQL-89) и, в особенности, после принятия в 1992 г. второго международного стандарта SQL-92 стало возможным говорить про стандартную среду SQL-ориентированной СУБД. Для грамотного использования любой SQL-ориентированной реляционной СУБД знание стандартов языка кажется необходимым. Этапы стандартизации SQL Работа по стандартизации языка SQL началась практически одновременно с появлением первых его коммерческих реализаций. В качестве стандарта нельзя было использовать SQL System R. Этот вариант языка не был должным образом технически проработан и, кроме того, его слишком сложно было бы реализовать. С другой стороны, первые коммерческие реализации языка настолько различались, что ни один из реализованных диалектов не имел шансов быть принятым в качестве стандарта. В частности, это относится и к первому корпоративному стандарту языка, принятому компанией IBM. Принятый в 1989 г. [ISO89] Международный Стандарт SQL (SQL/89) во многих частях имеет чрезвычайно общий характер и допускает очень широкое толкование. В этом стандарте полностью отсутствуют такие разделы как манипулирование схемой БД и динамический SQL. Многие существенные аспекты языка в соответствии со стандартом определяются в реализации. Поэтому на фоне завершения разработки этого стандарта была начата работа над стандартом SQL2. Она также длилась несколько лет, пока, наконец, в марте 1992г. не был выработан окончательный проект стандарта [ISO92] (теперь его принято называть SQL/92). Этот стандарт существенно более полный и охватывает практически все необходимые для реализации аспекты: манипулирование схемой БД, управление транзакциями и сессиями (сессия - это последовательность транзакций, в пределах которой сохраняются временные отношения), подключение к БД, динамический SQL. Cтандартизованы также отношения-каталоги БД, которые хотя и не связаны с языком непосредственно, но сильно влияют на реализацию. Одновременно с завершением работ по определению стандарта SQL2 была начата разработка стандарта SQL3.
|
||
|
Последнее изменение этой страницы: 2016-12-27; просмотров: 390; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |