ЗНАЕТЕ ЛИ ВЫ?

Обеспечение безопасности баз данных



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

Транзакция – неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными такая, что возможны два итога [41]:

- результаты транзакции отображаются в БД,

- воздействие транзакции на БД полностью отсутствует.


Технологические объекты

N_об Тип Наим. Год постр. Уст-ка
102   печь печь колонна П-2/1 П-2/2 К-35 депарафинизация депарафинизация крекинг

 

 

Датчики

N_дтч Тип Фирма Марка Год уст-ки N_об
  LE PT LE Метран Метран Метран Метран 22ДД Метран 22ДА Метран 22ДД

 

Измерения

N_дтч Дата Время Знач-е
  01.05.03 01.05.03 02.05.03 02.05.03 19:00:00 19:10:00 12:00:00 12:00:00 3,4 3,4 3,5 20,8

 

 

Рисунок 3.12

 

В СУБД транзакция начинается с оператора BEGIN. Если она завершена оператором COMMIT, то результаты фиксируются в БД, если ROLLBACK – отсутствуют.

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

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

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

 

Операторы языка SQL

Запрос к БД внутри транзакции пишется на языке SQL, с помощью которого формируются предложения [41]:

- определения данных – создание/уничтожение новых таблиц;

- запросов на выборку данных;

- модификации БД (добавление, удаление, изменение);

- управления данными (управление транзакциями, привилегиями).

Кроме того, SQL позволяет выполнять:

- арифметические вычисления;

- упорядочивание строк, столбцов при выводе на экран/принтер;

- интерпретацию данных;

- сохранение результатов запроса в других таблицах;

- группирование данных, суммирование, подсчет и т.д.

Достоинства языка SQL:

- стандартность (поддерживается стандартами ANSI и ISO);

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

- поддержка реляционных БД;

- немедленный доступ к данным без написания программ;

- обеспечение различного представления данных;

- возможность динамического изменения и расширения структуры БД;

- поддержка архитектуры «клиент-сервер».

У каждого объекта БД (сервер, таблица, поле таблицы) есть свое уникальное имя (в SQL имя должно содержать до 18 символов английского алфавита большими буквами).

Рассмотрим три таблицы:

OBJECTS – таблица «Технологические объекты»;

N_OBJ – номер объекта (поле «N_об»);

TIP – тип объекта;

NAIM - наименование объекта;

GOD - год постройки;

SENSORS – таблица «Датчики»;

N_SENS - инвентарный номер датчика (поле «N_дтч»);

TIP - тип датчика;

FIRMA - фирма-производитель;

MARKA - марка датчика;

GOD_UST - год установки на объект;

N_OBJ - номер объекта, на котором установлен датчик;

IZMER – таблица «Измерения»;

N_SENS - инвентарный номер датчика;

DATE - дата измерения;

TIME - время измерения;

MEAN - значение измеренной величины.

Например, если таблица OBJECTS находится на сервере SERV, то полное имя таблицы будет

SERV.OBJECTS

Для доступа к конкретному полю этой таблицы:

SERV.OBJECTS.TIP

Для заполнения таблицы используются следующие типы данных:

DEC(точность) - десятичное число с дробной частью;

NUMERIC - десятичное число с определенной точностью;

INT или INTEGER – целое число;

SMALLINT – целое число;

FLOAT(точность) – экспоненциальная форма числа;

REAL – вещественное число с заданной точностью;

DOUBLE – эквивалент REAL с более высокой точностью;

CHAR(макс. количество символов) – строковая переменная;

TIME – время.

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

Например, команда

SELECT N_SENS, TIP, N_OBJ FROM SENSORS;

выедет таблицу с тремя колонками (номер датчика, тип и номер объекта) с данными из таблицы SENSORS. Признаком завершения команды является точка с запятой.

SELECT * FROM SENSORS;

выводит все данные из таблицы SENSORS.

SELECT DISTINCT TIP, FIRMA, MARKA FROM SENSORS;

выведет все марки датчиков без дублирования (операнд DISTINCT).

Использование условий поиска:

SELECT N_SENS, TIP, MARKA FROM SENSORS

WHERE FIRMA=’Метран’;

выводит список всех датчиков, произведенных фирмой «Метран».

SELECT FIRMA, MARKA, TIP FROM SENSORS

WHERE GOD_UST>2000;

выводит список датчиков, установленных после 2000 года.

В операторе WHERE должны быть использованы логические операции: >, <, =, >=, <=, AND, OR, NOT. Кроме того, могут использоваться специальные операнды IN, BETWEEN, LIKE, IS NULL.

Операнд IN определяет набор значений, в который данное значение должно быть включено, например,

SELECT MARKA, GOD_UST FROM SENSORS

WHERE FIRMA IN (‘Метран’, ‘Siemens’, ‘Fisher’);

выводит только датчики указанных фирм;

SELECT MARKA, FIRMA FROM SENSORS

WHERE GOD_UST BETWEEN 1985 AND 1989;

выводит список датчиков, установленный в период с 1985 по 1989 год;

SELECT N_SENS FROM SENSORS WHERE MARKA IS NULL;

выводит список датчиков, у которых не указана марка.

Для получения итоговых данных могут использоваться функции: SUM – сумма значений, COUNT – количество, AVG – среднее значение, MAX и MIN – максимальное и минимальное значения.

Для группирования данных используется операнд GROUP BY:

SELECT N_SENS, MAX(MEAN) FROM IZMER

WHERE (DATE > 01/05/03 AND DATE < 31/05/03)

GROUP BY N_SENS;

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

Упорядочивание таблиц по возрастанию производится операндом ORDER BY <поле> ASC или убыванию ORDER BY <поле> DESC.

Для объединения нескольких запросов в одну транзакцию используется оператор UNION:

SELECT … UNION SELECT … ;

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

SELECT SENSORS.TIP,IZMER.DATE,IZMER.TIME,IZMER.MEAN

FROM SENSORS, IZMER

WHERE SENSORS.N_SENS=IZMER.N_SENS;

выводит таблицу из четырех колонок: тип датчика, дата, время и значение изерения.

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

Добавление новых записей в таблицу производится оператором INSERT INTO <таблица> VALUES, например:

INSERT INTO SENSORS VALUES (10260, ‘FE’,

‘Grundfos’, ‘Flow’, 2003, 102);

INSERT INTO SENSORS(N_SENS, TIP, N_OBJ)

VALUES (10278, ‘LE’, 102);

добавляет в таблицу SENSORS запись о новом уровнемере с номером 10278, установленном на объекте 102, без указания марки и фирмы-изготовителя.

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

DELETE FROM IZMER WHERE DATE=01/05/2003;

удалит все записи за 1 мая 2003 года.

Изменение записей производится командой UPDATE:

UPDATE SENSORS

SET FIRMA=’Теплоприбор’, MARKA=’ТХА-0515’

WHERE TIP=’TE’;

заменит все датчики температуры на термопары ТХА-0515 фиры «Теплоприбор».

Создание новой таблицы

CREATE TABLE SENSORS

(N_SENS INTEGER, TIP CHAR(5), MARKA CHAR(20),

GOD_UST INTEGER, N_OBJ INTEGER);

создает пустую таблицу SENSORS с указанными полями. После каждого имени поля указан тип хранимых в нем данных.

Изменение структуры таблицы:

ALTER TABLE SENSORS ADD REMNT INTEGER;

добавление поля REMNT в таблицу SENSORS.

 

Методология IDEF

Модели систем

Методология IDEF используется преимущественно на верхних уровнях управления в качестве универсального средства для описания выполняемых какой-либо системой функций, структуры обрабатываемой и хранимой информации, а также для анализа динамических свойств данной системы управления [42, 43].

Согласно методологии, модель системы может быть представлена в виде совокупности трех моделей:

- функциональной,

- информационной,

- динамической.

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

Функциональная модель строится по т.н. методологии IDEF0, более известной как SADT (Structure Analysis and Design Technique). Она дает представления о том, какие функции выполняются (должны выполняться) в рассматриваемой системе, что является исходными данными для них, какой результат выполнения каждой функции, а также каковы причинно-следственные связи между ними.

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

Динамическая модель формируется путем преобразования функциональной модели в вид раскрашенных сетей Петри. Используемая методология носит название IDEF/CPN (Colored Petri Nets). Сети Петри предназначены для моделирования динамики дискретных систем и обеспечены мощными средствами для определения их динамических свойств. Анализ систем на сетях Петри позволяет сделать определенные выводы по оптимизации структур моделируемых систем.

 





Последнее изменение этой страницы: 2016-04-07; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.237.205.144 (0.013 с.)