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

Вопрос 2. Создание сокета.

Сокет предназначен для хранения адреса и порта адресата. Существует процедура generic socket.

Интерфейс сокетов

Для хранения информации об адресе и порте адресата существуют стандартные структуры, например структура generic socket:

#include <netinet/in.h>

struct sockaddr_in{

sa_family_r sin_family; /* семейство адресов */

in_port_t sin_port; /* номер порта */

struct in_addr sin_addr; /* IP-адреса */

unsigned char sin_zero[8]; /* Поле выравнивания */

}

Создание сокетов

При любых моделях связи (а есть их 2: с установкой и без установки) клиент и сервер должны создать абонентские точки (в RFC они называются transport end point, они же - сокеты), которые являются дескрипторами, используемыми для установки связи между процессами в сети. Они создаются при помощи системного вызова socket. Системные вызовы отличаются от обычных подпрограмм тем, что они хранятся не в библиотеках, а в ядре операционной системы. Ядро ОС Unix постоянно резидентно в оперативной памяти (всегда можно оперативно обратиться).

id=open(...)

read(...)

#include <sys/socket.h>

int socket(int domain, int type, int protocol);

1) Параметр domain определяет коммуникационный домен, в котором будет использоваться сокет. Например, значение AF_INET этого параметра определяет, что будет использован домен Internet (т.е. процессы будут взаимодействовать через Интернет). Значение AF_UNIX - домен, который используется, если процессы находятся на одном и том же компьютере.

2) Параметр type - это тип создаваемого сокета. Имеет два значения - это соответственно SOCK_STREAM и SOCK_DGRAM. SOCK_STREAM указывается при создании сокета для работы в режиме виртуальных соединений (режим с установкой соединений), SOCK_DGRAM - для работы в режиме передачи дейтаграмм.

3) Параметр protocol определяет используемый протокол. Этот параметр обычно задаётся равным нулю. При этом по умолчанию сокет типа SOCK_STREAM будет использовать протокол TCP, а SOCK_DGRAM - протокол UDP. Оба данных протокола являются стандартными протоколами UNIX, поэтому виртуальное соединение часто называют tcp-соединением, а пересылку или передачау дейтаграмм - работу с udp-сокетами. Системный вызов socket() обычно возвращает неотрицательное целое число (если -1 - это ошибка), которое является дескриптором файла сокета, что позволяет считать механизм сокетов разновидностью обобщённого файлового ввода-вывода Unix.

Билет №9.

Вопрос 1. Хранимые процедуры и триггеры.

Хранимая процедура. Механизм ХП позволяет хранит в БД программы в скомпилированном виде. Процедуры пишутся на соответствующем языке ANSI SQL , Transact SQL, PL/SQL, SPL. Выполнение ХП происходит в рамках сервера.

ХП – мощное средство программного сервера и обслуживает БД, увеличивая производительность системы за счет уменьшения трафика. Хранимые процедуры хранятся на сервере СУБД и используются когда необходимо выполнить повторяющиеся в определенном порядке запросы к серверу MSSQL. Расширенные хранимые процедуры- это разновидность хранимый процедур но в них можно использовать обращения к подпрограммам написанных на С или С++ что позволяет расширить возможности Transact SQL.Предоставляются в DLL .Имена начинаются хр. XP_cmdshell данная процедура предоставляет доступ к командной строке ОС, т.к. данная процедура обладает широкими возможностями то доступ к ней разрешен только владельце БД мастер. Мастер есть пользователь наделенной ролью администратор БД.

ХП могут возвращать значения и модифицировать их, ХП может вычислить результаты и возвратить их.

Плюсы:

  1. Высокая производительность.

  2. Работа с архитектурой клиент-сервер.

  3. Уровень безопасности – высокий.

  4. Усиление правил сервера работы с данными.

ХП компилируются при первом выполнении и сохраняется в служебной таблице БД. При компилировании они активизируются. Откомпилированные ХП могут улучшить производительность.

Создание ХП Create procedure [владелец.] имя процедуры [;число] [имя параметра тип данных [выход]]…

[@ имя параметра тип данных [=умножение] [выход]]

Пример: create procedure all.employees as select *from employees

Вызов: exec all.employees

Name department badge

Petrov Labs 123

Smirnov Software 456

Новую ХП можно создать только к текущей БД.

Параметр процедуры. Есть возможность передавать ей значения с которыми она должна работать.

  1. Может быть определен 1 или много параметров.

  2. Перед именем ставиться @.

  3. Имена являются локальными(только в процедуре где используются).

Create procedure proc 7 (@p1 char (15), @p2 char (20), @p3 int)

As insert into workers

Values (@p1, @p2, @p3)

Вызов: exec proc 7 ‘Petrov’, ‘Labs’, 3333

Команда вывода: select *from workers where badge = 3333

Экран:

Name department badge

Petrov Labs 3333

ХП не может быть унифицирована, непосредственно сначала нужно удалять и потом создавать заново.

Удаление: drop procedure имя процедуры(например proc 7).

ХП могут использовать переменные в транзакции. Они определяются DECLARE- где указывается тип данных, начальное значение, может быть установлено командой select.

Declare @ имя переменной тип данных …

Select @ имя переменной = выражение.

Триггер.

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

Create Trigger [владелец.] имя триггера

ON [владелец.] имя таблицы

FOR {insert, update, delete}

[with incryption]

AS

Инструкция SQL.

Когда выполняется триггер SQL сервер создает специальную таблицу куда он помещает данные вызванные выполнением триггера (имя таблицы. Insert, delete). Поскольку триггеры выполняются после определенной строки, в таблице дублируют 1 или несколько строк таблицы. Бывают вставляющие, корректирующие, удаляющие триггеры.