Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_po_SUBD.docx
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
135.36 Кб
Скачать

Использование подзапросов, основанных на таблицах внешних запросов

Пример. Пусть таблице SSTUD хранятся сведения о студентах, обучающихся в том же городе, в котором они живут. Заполнить эту таблицу данными из таблицы STUDENT.

INSERT INTO SSTUD

SELECT *

FROM STUDENT A

WHERE CITY IN

(SELECT CITY

FROM UNIVERSITY B

WHERE A.UNIV_ID=B.UNIV_ID); (33.14)

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

INSERT INTO EXAM

SELECT *

FROM EXAM_MARKS A

WHERE MARK =

(SELECT MAX (MARK)

FROM EXAM_MARKS B

WHERE A.EXAM_DATE = B.EXAM_DATE);

  1. Использование подзапросов с delete

Пример. Удалить все данные о студентах, которые учатся в Воронеж

DELETE

FROM STUDENT

WHERE UNIV_ID IN

(SELECT UNIV_ID

FROM UNIVERSITY

WHERE CITY = ‘ВОРОНЕЖ’); (33.16)

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

Пример. Удалить данные о студентах, которые учатся в университетах, имеющих рейтинг 401

DELETE

FROM STUDENT

WHERE EXISTS

(SELECT *

FROM UNIVERSITY

WHERE RATTING = 401

AND STUDENT.UNIV_ID = UNIVERSITY.UNIV_ID); (33.17)

Второй способ решения этой задачи.

DELETE

FROM STUDENT

WHERE 401 IN

(SELECT RATTING

FROM UNIVERSITY

WHERE STUDENT.UNIV_ID = UNIVERSITY.UNIV_ID); (33.18)

  1. Использование подзапросов с update

С помощью команды UPDATE можно применять подзапросы в любой форме, приемлемой для команды DELETE.

Пример. Увеличить стипендии на 20% студентам, которые имеют оценки только 4 и 5.

UPDATE STUDENT A

SET STIPEND = STIPEND+STIPEND*20/100

WHERE 4<=

(SELECT MIN (MARK)

FROM EXAM_MARKS B

WHERE B.STUDENT_ID = A.STUDENT_ID);

  1. Основные особенности архитектуры клиент-сервер

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

Сервер локальной сети предоставляет ресурсы рабочим станциям или/и другим серверам.

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

Основные принципы системной архитектуры клиент-сервер.

Система разбивается на 2 части, которые могут выполняться в различных углах сети: клиентскую и серверную часть

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

Интерфейс серверной части определён и фиксирован. Поэтому возможно создание новых клиентских частей существующей системы.

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

Термин Сервер БД обычно используют для обозначения всей СУБД, основанной на архитектуре клиент-сервер, включая и серверную и клиентские части.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]