26. Язык SQL. Многотабличные запросы на выборку данных.

Использование множества таблиц в одном запросе

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

При операции соединения (join) таблицы перечисляются в предложении запроса FROM через запятую. Предикат запроса может ссылаться на любой столбец из соединяемых таблиц (обычно WHERE). Имена таблиц предшествуют через точку именам полей.

SELECT Customers. cname, Sales people. sname, Sales people. city

FROM Sales people, Customers

WHERE Sales people. city = Customers. city;

Это типичный пример, когда префиксы действительно необходимы (и в одной и в другой таблице поле - city). В дальнейшем префиксы используем по необходимости.

В запросе для каждого продавца из Sales people проводится проверка предиката.

Операция соединения таблиц посредством ссылочной целостности

Допустим, что между таблицами существует связь по полю snum - номер продавца (за каждым покупателем закреплен продавец).

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

SELECT Customers cname, Salespeople. sname

FROM Customers, Salespeople

WHERE Salespeople. snum = Customers. snum;

Поля snum не представлены в выходных данных, поскольку они не существенны как результаты. Подобным образом могут быть построены объединения нескольких таблиц (>2).

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

Здесь возникает проблема с именами. У копии должны быть другие имена. Проблема решается определением временных имен - алиасов в предложении FROM. Рассмотрим пример поиска пар продавцов, имеющих одинаковый рейтинг:

SELECT first. sname, second. sname, first. rating

FROM Salespeople first, Salespeople second

WHERE first. rating = second. rating;

SQL не делает копии реально, но внешне это выглядит так, что Salespeople распадается на две копии с именами first и second.

После выполнения запроса алиасы утрачивают силу.

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

Есть простой способ исключить трехкратные повторения - сделать предикат асимметричным.

SELECT first. sname, first. rating

FROM Salespeople first, Salespeople second

WHERE first. rating = second. rating;

AND first. sname < second. sname;

Это уже полезный прием для работы.

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

27. Язык SQL. Модификация данных.

SQL - Команды модификации данных

К этой группе относятся операторы добавления, изменения и удаления записей.

Добавить новую запись в таблицу:

INSERT INTO <имя_таблицы> [ (<имя_столбца>,<имя_столбца>,...) ]

VALUES (<значение>,<значение>,..)

Список столбцов в данной команде не является обязательным параметром. В этом случае должны быть указаны значения для всех полей таблицы в том порядке, как эти столбцы были перечислены в команде CREATE TABLE, например:

INSERT INTO publishers VALUES (16,"Microsoft Press","microsoft");

Пример с указанием списка столбцов:

INSERT INTO publishers (publisher, pub_id)

VALUES ("Super Computer Publishing",17);

Модификация записей:

UPDATE <имя_таблицы> SET <имя_столбца>=<значение>,...

[WHERE <условие>]

Если задано ключевое слово WHERE и условие, то команда UPDATE применяется только к тем записям, для которых оно выполняется. Если условие не задано, UPDATE применяется ко всем записям. Пример:

UPDATE publishers SET url="superpub" WHERE pub_id=17;

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

операции сравнения: > , < , >= , <= , = , <> , != . В SQL эти операции могут применяться не только к числовым значениям, но и к строкам ( "<" означает раньше, а ">" позже в алфавитном порядке) и датам ( "<" раньше и ">" позже в хронологическом порядке).

оперции проверки поля на значение NULL: IS NULL, IS NOT NULL

операции проверки на вхождение в диапазон: BETWEEN и NOT BETWEEN.

операции проверки на вхождение в список: IN и NOT IN

операции проверки на вхождение подстроки: LIKE и NOT LIKE

отдельные операции соединяются связями AND, OR, NOT и группируются с помощью скобок.

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

UPDATE publishers SET url="url not defined" WHERE url IS NULL;

Эта команда находит в таблице publishers все неопределенные значения столбца url и заменяет их строкой "url not defined".

Удаление записей

DELETE FROM <имя_таблицы> [ WHERE <условие> ]

Удаляются все записи, удовлетворяющие указанному условию. Если ключевое слово WHERE и условие отстутствуют, из таблицы удаляются все записи. Пример:

DELETE FROM publishers WHERE publisher = "Super Computer Publishing";

Эта команда удаляет запись об издательстве Super Computer Publishing.

28.Локальные сети ЭВМ.

Локальная сеть (ЛВС или LAN — Local Area NetWork) — сеть, связывающая ряд компьютеров в зоне, ограниченной пределами одной комнаты, здания или предприятия.

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

Мост (англ. Bridge) — связывает два фрагмента локальных сетей. Передаёт данные между фрагментами сетей в пакетном виде, не производя в них никаких изменений. Ниже на рисунке показаны три фрагмента локальных сетей, соединённые двумя мостами.

0053
 
Соединение локальных сетей посредством мостов

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

Маршрутизатор (англ. Router) объединяет сети с общим протоколом более эффективно, чем мост. Он позволяет, например, расщеплять большие сообщения на более мелкие куски, обеспечивая тем самым взаимодействие локальных сетей с разным размером пакета.

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

Мостовой маршрутизатор (англ. Brouter) — это гибрид моста и маршрутизатора, который сначала пытается выполнить маршрутизацию, где это только возможно, а затем, в случае неудачи, переходит в режим моста.

Шлюз (англ. GateWay), в отличие от моста, применяется в случаях, когда соединяемые сети имеют различные сетевые протоколы. Поступившее в шлюз сообщение от одной сети преобразуется в другое сообщение, соответствующее требованиям следующей сети. Таким образом, шлюзы не просто соединяют сети, а позволяют им работать как единая сеть. C помощью шлюзов также локальные сети подсоединяются к мэйнфреймам — универсальным мощным компьютерам

29.Технологии клиент-сервер. Технологии FS, RDA и DBS.

Технология и модели “клиент - сервер”.

“Клиент - сервер” – это модель взаимодействия компьютеров в сети. Как правило, компьютеры неравноправны: одни владеют и распоряжаются информационно-вычислительными ресурсами, другие - имеют возможность пользоваться ими - файловой системой, почтовой службой, службой печати, базой данных. Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса, а компьютер, желающий им воспользоваться - клиентом. Например, если ресурс - файлы, то сервер называется файл - сервер, если БД, то сервер БД.

Один и тот же компьютер, в принципе может иметь роль и сервера и клиента. Например, при наличии большой ЭВМ (например 15-400), компьютер может работать сервером для клиентов - ПК и посылать запросы большой ЭВМ.

Этот же принцип распространяется и на взаимодействие программ. Так, SQL - ориентированную СУБД называют сервером БД или SQL –сервером, а программы, обращающиеся к нему - SQL – клиентами.

Первоначально (до ПК), СУБД имели централизованную структуру (Большая ЭВМ - терминалы)- это не являлось “клиентом - сервером”, поскольку вся обработка сосредотачивалась в центральной ЭВМ.

Характерной особенностью технологии “клиент - сервер” является распределенная обработка, реализованная в программе - сервере и программах - клиентах, с взаимодействием согласно некоторому определенному протоколу.

При написании программы (приложения) в предметной области используется следующий основной принцип К-С- технологии.

Функции интерактивного приложения разделяются на 4 группы, имеющие различную природу:

·  Ввод и отображение данных;

·  Прикладные функции предметной области (например, для банковской системы - открытие счета, перевод денег с одного счета на другой и т. п.);

·  Фундаментальные функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т. д.);

·  Служебные функции - связывающие первые три группы.

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

·  Модель файлового сервера (File Server - FS);

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15