Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование оператора Exists.
Оператор Exists равносилен квантору существования. Exists (select *) проверяет пустое или нет множество ответов, если пустое, то возвращает ложь, если не пустое, то возвращает истина. Not exists –действует наоборот. Пример. Выдать фамилии поставщиков, поставляющих деталь номер 2: Select фамилия from Поставщики 1 where exists (select * from поставки 2 where 1.код_поставщика=2.код_поставщика and код_детали=2) Использование квантора exists для поиска пересечения и разности. Пересечение
Найти множество городов, где есть поставщики и детали (организуем его следующим образом: выбираем город поставщика и проверяем хранятся ли в этом городе детали). Select distinct город from Поставщики 1 where exists (select * from Детали 2 where 1.город=2.город) Разность
A B
Найти множество городов, где есть поставщик, но нет детали. В этом случае в предыдущий запрос нужно вместо exists поставить not exists. Квантор общности моделирующий операцию деления. Реализация деления идет на основе формулы . Выдать фамилии поставщиков, которые поставляют все детали (иначе выдать фамилии поставщиков такие, что для всех деталей существует поставщик их поставляющий). select фамилия from Поставщики 1 where not exists (select * from Детали 2 where not exists (select * from Поставки 3 where 1.код-поставщика=3.код-поставщика and 2.код-детали=3.код_детали)) Соответствия между операциями Реляционной алгебры и SQL. Мощность языка SQL совпадает с мощностью реляционной алгебры, все операции реляционной алгебры можно записать и на языке SQL. Запись части операций мы рассмотрели выше, теперь рассмотрим оставшиеся. Проекция записывается следующим образом Select ст1, ст2, ст3 from таблица. Селекция записывается через where условие. Объединение (union) рассмотрим на примере: Перечислить города, в которых находится поставщик или деталь Select город from Поставщики union all (select город from Детали). Декартово произведение Select 1.*, 2.* from Поставщики 1, Детали 2 А если еще записать [where условие], то тогда это будет соединение. Технологии клиент-сервер. Сервер – это компьютер, управляющий некоторыми ресурсами и предоставляющий их для коллективного использования. Сервера бывают почтовые, баз данных, вычислительные. Клиент – это программа или компьютер, обращающийся к услугам сервера
Существуют разные технологии клиент-сервер. Любая программа может быть представлена из нескольких частей: · Ввод/вывод (интерфейсная часть); · Вычисление на основе каких-либо бизнес правил; · Обращение к данным; · Управляющая часть, создает единый алгоритм. В зависимости от того, как поделить эти части между сервером и клиентом, получаются различные технологии. 1 вариант - файловый сервер. Введем обозначения: К – клиент, С – сервер. К выполняет 1,2,4 части, а на С содержится информация, необходимая для запроса, т.е. С выполняет 3 часть. запрос К С ответ-файл В данной технологии основная нагрузка падает на клиента. 2 вариант – удаленный доступ. Данная технология позволяет получить только ту информацию, которая нас интересует, а не весь файл.
Запросы пишутся на динамическом SQL. А в ответ получаем ту порцию информации, которую запросили, эта порция информации называется курсором. Динамический SQL - это операторы SQL, которые передаются и выполняются не сервере. Имеют место следующие операторы: Prepare имя_оператора from строка Select Insert Delete Update Execute имя_оператора – позволяет выполнить запомненный на сервере оператор; Drop имя_оператора – позволяет удалит оператор; Эти операторы передаются в интерактивном режиме, а если хотим записать в рамках какой-то программы, то, например на Паскале, это будет выглядеть так: Exec sql “sql оператор”. Описание курсора на SQL: Declare имя_курсора [scroll] cursor for подзапрос [for update]. Курсор может быть обычным, то есть просматриваемым в одном направлении, от начала к концу, если стоит scroll, то просматривать курсор можно в любом направлении. Если стоит for update, то это значит, что курсор изменяемый, все изменения будут запоминаться на сервере. Операции с курсором: Open имя_курсора – позволяет получить курсор; Fetch имя_курсора – позволяет перейти к следующей записи курсора, если перед именем курсора поставить Last, то перейдем к последней записи, First – к первой записи, Current к текущей; Close имя_курсора – закрытие курсора, но он остается определенным; Free имя_курсора – удаление курсора. 3 вариант – сервер Базы Данных.
Бизнес-правила хранятся на сервере в виде хранимых процедур. Хранимые процедуры – это программы, написанные на некотором языке хранимых процедур с SQL вставками. Их можно написать заранее и поместить в библиотеку.
|
||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 210; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.5.239 (0.009 с.) |