Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Общая характеристика структурированного языка запросов SQL. Оператор выбора SELECT языка SQL. Применение агрегатных функций и вложенных запросов в операторе выбора SELECT языка SQL.





Одним из самых распространенных языков запросов является язык SQL (Structure Query Language). Он был разработан в середине 1970-х гг. (IBM). Первой коммерческой системой, в которой реализован этот язык, была система Oracle (1979 г.). В дальнейшем он был реализован в целом ряде популярных СУБД для различных типов ЭВМ и операционных систем. В некоторых СУБД, таких, как Oracle, INGRES, MS SQL-сервер и др., язык SQL используется в качестве основного. В других системах, например СУБД семейства dBase, Access, ADABAS и других, этот язык применяется в качестве альтернативного.

Предшественником SQL был язык SEQUEL (Structured English Query Language).

Использование возможностей языка, реализованных в большинстве систем, упрощает создание гетерогенных систем, а также не создает дополнительных проблем в случае перевода ИС в среду другой СУБД.

Язык SQL близок к классу языков реляционного исчисления кортежей и используется в основном в реляционных СУБД.

Язык SQL обладает развитыми возможностями и может быть использован как конечными пользователями для формулировки не очень сложных запросов, так и специалистами в области обработки данных (прикладными программистами, администраторами баз данных). С развитием SQL наблюдается тенденция к его усложнению.

Язык баз данных SQL включает в себя два языка: язык определения схемы (SQL-DDL) и язык манипулирования данными (SQL-DML). Язык DDL позволяет описывать и создавать такие объекты базы данных, как таблицы, индексы, представления и др. Язык DML дает возможность задавать поисковые и корректирующие запросы к базе данных. Операторы языка манипулирования данными SQL могут использоваться как самостоятельно (интерактивный или автономный SQL), так и совместно с операторами других языков манипулирования данными (встроенный SQL).



Имеется два типа встроенных SQL-операторов: статический SQL и динамический SQL. Статический SQL ссылается на SQL-операторы, которые известны до момента запуска и в дальнейшем не изменяются, в то время как динамические SQL-операторы определяются только во время выполнения программы.

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

SQL является языком высокого уровня. Пользователь не должен при его использовании помнить об открытии и закрытии каких-либо таблиц, определять наиболее эффективный способ реализации запроса, активизировать индексы и т.п. Все это система делает автоматически. Во многих современных СУБД имеются построители запросов SQL. Обычно в этом качестве выступают языки типа QBE.

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

SELECT <список колонок, включаемых в ответ>

FROM <список таблиц>

WHERE <условие>.

Предложения SELECT (отобрать) и FROM (из) должны присутствовать обязательно. Условие WHERE (где) может быть опущено. Тогда в ответ войдут все строки, имеющиеся в таблице (если быть точным, то надо иметь в виду, что такой оператор должен соответствовать реляционной операции «проекция», и если в результате проекции на выбранные столбцы будут появляться дублирующие строки, то они должны быть удалены из ответа; однако SQL позволяет управлять выводом в ответ повторяющихся строк, и можно добиться как вывода только уникальных строк, так и включения в ответ повторяющихся строк).

Оператор SELECT может включать в себя и другие предложения, позволяющие, в частности, осуществлять упорядоченность ответа, выполнять обобщающие функции.

Если в ответ должны войти все колонки, имеющиеся в исходной таблице, то вместо их перечисления в SELECT можно поставить знак «*».

Так, например, запрос «Выдать всю информацию из таблицы «Kadr» по сотрудникам, чей возраст (vozr) равен 40 годам» может быть представлен на SQL следующим образом:

SELECT * FROM kadr WHERE vozr=40;

Условие, задаваемое в предложении WHERE, может быть простым и сложным. Для формулирования сложного условия могут быть использованы логические операторы AND и OR. Так, например, запрос «Выдать всю информацию из таблицы «Kadr» по мужчинам, чей возраст равен 40 годам» (т.е. пол=«мужской» И «возраст=40 лет) может быть представлен на SQL следующим образом:

SELECT * FROM kadr WHERE vozr = 40 AND pol = «м»;

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

Язык SQL позволяет запрашивать вычисляемые значения. В этом случае в предложении SELECT указывается выражение для вычисления значения колонки. Например, в приведенном ниже предложении запрашивается вывод стоимости поставленных товаров путем ее вычисления на основе хранящихся в таблице «Postypl» данных о количестве (kolv) поставленных товаров и их цены (сепа):

SELECT naimprod, datapost, kolv*cena

FROM postypl;

Запрос может быть простым, состоящим из одного оператора SELECT, и вложенным, когда один оператор SELECT включается в состав другого оператора. Этот включенный оператор называется подзапросом (subselect) или подчиненным запросом. Существуют два типа вложенных подзапросов: обычный и коррелированный. В обычном подзапросе внутренний запрос выполняется первым, и его результат используется для выполнения основного запроса. В коррелированном подзапросе внешний запрос выполняется первым, и его результат используется для выполнения внутреннего запроса. Внутренний запрос выполняется для каждой строки, возвращенной внешним запросом.

В запросе можно указать упорядоченность ответа по определенному признаку (полю, совокупности полей, выражению).

Возможна подгруппировка данных в целях получения подытогов или других обобщающих величин (среднее, минимум, максимум и др.). Набор агрегатных функций отличается в разных системах. В стандарт SQL-92 включены следующие агрегатные функции: Count- подсчет, Avg - среднее, Sum - сумма, Мах - максимум, Min минимум.

В запросе допускается только один уровень группировки. Группировка может осуществляться как по одному полю, так и по совокупности нолей.

При выполнении запроса может возникнуть необходимость соединения двух или более таблиц. Возможны разные способы задания условия соединения (вложенные запросы, задание условия соединения в предложении WHERE, операция JOIN в предложении FROM).

В некоторых реализациях языка SQL отобранные оператором SELECT данные могут быть сохранены в виде таблицы базы данных.

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

COUNT – подсчет;

SUM – сумма;

МАХ – максимум;

MIN – минимум;

AVG – среднее.

Чаще всего функции агрегирования используются совместно с предложением GROUP BY, но могут применяться и самостоятельно. В последнем случае результат относится не к какой-то группе, а ко всей выборке.

Существуют два типа функции COUNT. Первый тип использует символ «*». В этом случае функция подсчитывает количество строк в группе. Отдельные значения столбцов при этом не учитываются, и результат не будет зависеть от того, имеются ли в полях значения Null и указан ли параметр DISTINCT. Второй тип функции COUNT игнорирует значения Null.

Если в ответ требуется включить все поля таблицы, то для этого можно использовать символ «*». Если запрос многотабличный, то следует применять конструкцию {спецификатор.*}

Основные этапы проектирования реляционных баз данных. Общие сведения о даталогическом и инфологическом проектировании. Проблемы проектирования баз данных. Аномалии модификации (обновления, удаления, добавления).

Проект - это схема - эскиз некоторого устройства, который в дальнейшем будет воплощен в реальность. Проект реляционной БД - это набор взаимосвязанных отношений, в которых определены все атрибуты, заданы первичные ключи отношений и заданы еще некоторые дополнительные свойства отношений, которые относятся к принципам поддержки целостности. Фактически проект БД — это фундамент будущего программного комплекса, который будет использоваться достаточно долго и многими пользователями. Этапы жизненного цикла БД: Проектирование БД>Проектирование приложений >Реализация БД>Разработка специальных средств администрирования БД>Эксплуатация БД.

Процесс проектирования БД представляет собой последовательность переходов от неформального словесного описания информационной структуры предметной области к формализованному описанию объектов предметной области в терминах некоторой модели. Этапы проектирования:

Системный анализ и словесное описание информационных объектов предметной области.

Проектирование инфологической модели предметной области — частично формализованное описание объектов предметной области в терминах некоторой семантической модели (Е-модели).

Даталогическое или логическое проектирование БД.

Физическое проектирование БД, то есть выбор эффективного размещения БД на внешних носителях для обеспечения наиболее эффективной работы приложения.

Этапы проектирования БД: Системный анализ предметной области>Инфологическое проектирование >Выбор СУБД>Даталогическое проектирование (или логическое)>Физическое проектирование.

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

Предметный подход — когда информационные потребности будущих пользователей БД жестко не фиксируются. Мы не можем точно выделить минимальный набор объектов предметной области, которые необходимо описывать.

Системный анализ должен заканчиваться подробным описанием информации об объектах предметной области, которая требуется для решения конкретных задач и которая должна храниться в БД. Даталогическое проектирование. В реляционных БД даталогическое или логическое проектирование приводит к разработке схемы БД, то есть совокупности схем отношений, которые адекватно моделируют абстрактные объекты предметной области и семантические связи между этими объектами. Основой анализа корректности схемы являются так называемые функциональные зависимости между атрибутами БД. Некоторые зависимости между атрибутами отношений являются нежелательными из-за побочных эффектов и аномалий, которые они вызывают при модификации БД. При этом под процессом модификации БД мы понимаем внесение новых данных в БД или удаление некоторых данных из БД, а также обновление значений некоторых атрибутов. В результате выполнения этого этапа должны быть получены следующие результирующие документы:

Описание концептуальной схемы БД в терминах выбранной СУБД.

Описание внешних моделей в терминах выбранной СУБД.

Описание декларативных правил поддержки целостности базы данных.

Разработка процедур поддержки семантической целостности базы данных.

Процесс разработки корректной схемы реляционной БД называется логическим проектированием БД.

Проектирование схемы БД может быть выполнено двумя путями:

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

путем синтеза, то есть путем компоновки из заданных исходных элементарных зависимостей между объектами предметной области схемы БД.

Инфологическое моделирование.Инфологическое проектирование прежде всего связано с попыткой представления семантики предметной области в модели БД. Концептуальное проектирование является центральной частью, ядром всего процесса проектирования баз данных.

Основными компонентами концептуальной модели ПО являются:

описание объектов ПО и связей между ними

описание информационных потребностей пользователей

описание существующей информационной системы

описание алгоритмических зависимостей показателей

описание ограничений целостности

описание функциональной структуры системы, для которой создается АИС

требования к ИС и существующие ограничения.

Формализованное описание предметной области называют ее концептуальной моделью (КМ).

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

Конечным результатом даталогического проектирования является описание логической структуры базы данных на ЯОД. Однако если проектирование выполняется вручную, но для большей наглядности сначала строится схематическое графическое изображение структуры базы данных.

Данные о предметной области и особенностях обработки информации в ней фиксируются в инфологической модели. В такой модели должна быть отображена вся информация, циркулирующая в информационной системе. В связи с этим одним из первых шагов проектирования является определение состава БД, т.е. перечня тех показателей, которые целесообразно хранить в БД.При проектировании логической структуры БД осуществляются преобразование исходной инфологической модели в модель данных, поддерживаемую конкретной СУБД, и проверка адекватности полученной даталогической модели отображаемой предметной области.Связи между сущностями предметной области, отраженные в инфологической модели, могут отображаться в даталогической модели либо посредством совместного расположения соответствующих им информационных элементов, либо путем объявления связи между ними. Связь может передаваться как на внутризаписном, так и на межзаписном уровне.

При переходе от инфологической модели к даталогической следует иметь в виду, что инфологическая модель включает в себя всю информацию о предметной области, необходимую и достаточную для проектирования БД. Это не означает; что все сущности, зафиксированные в ИЛМ, должны в явном виде отражаться в даталогической модели. Прежде чем строить даталогическую модель, необходимо решить, какая информация будет храниться в базе данных. Например, в инфологической модели должны быть отражены вычисляемые показатели, но вовсе не обязательно, что они должны храниться в базе данных.

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

Логическое проектирование заключается в определении числа и структуры таблиц, формировании запросов к БД, определении типов отчетных документов, разработке алгоритмов обработки информации, создании форм для ввода и редактирования данных в базе и решении ряда других задач. Решение задач логического проектирования БД определяется спецификой задач предметной области. При проектировании структур данных для АИС можно выделить три основных подхода:

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

2. Формулирование знаний о системе и требований к обработке данных.

3. Структурирование информации для использования в информационной системе.

Следует различать простое (неизбыточное) и избыточное дублирование данных. Наличие первого из них допускается в базах данных, а избыточное дублирование данных может приводить к проблемам при обработке данных. Избыточное дублирование данных создает проблемы при обработке кортежей отношения, названные Э. Коддом «аномалиями обновления отношения». Он показал, что для некоторых отношений проблемы возникают при попытке удаления, добавления или редактирования их кортежей.

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

Аномалии модификации проявляются в том, что изменение значения одного данного может повлечь за собой просмотр всей таблицы и соответствующее изменение некоторых других записей таблицы.

Аномалии удаления состоят в том, что при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемым данным.

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









ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2021 zdamsam.ru Размещенные материалы защищены законодательством РФ.