Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

699

.pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
3.63 Mб
Скачать

Следующим элементом диаграммы компонентов являются интерфейсы. Интерфейс графически изображается окружностью, которая соединяется с компонентом отрезком линии без стрелок (рис 45, а). При этом имя интерфейса, которое обязательно должно начинаться с заглавной буквы I, записывается рядом с окружностью. Семантически линия означает реализацию интерфейса, а наличие интерфейсов у компонента означает, что данный компонент реализует соответствующий набор интерфейсов.

а

б

Рис. 45. Графическое изображение интерфейсов на диаграмме компонентов

Другим способом представления интерфейса на диаграмме компонентов является его изображение в виде прямоугольника класса со стереотипом «интерфейс» и возможными секциями атрибутов и операций (рис. 45, б). Как правило, этот вариант обозначения используется для представления внутренней структуры интерфейса, которая может быть важна для реализации.

Отношение зависимости на диаграмме компонентов изображается пунктирной линией со стрелкой, направленной от клиента (зависимого элемента) к источнику (независимому элементу).

81

1.5. Тестирование и отладка АИС

На данном этапе осуществляется корректировка информационного, аппаратного, программного обеспечения, проводится разработка методического обеспечения (документации разработчика, пользователя) и т.п.

Результат: оптимальный состав и эффективное функционирование АИС.

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

1.6. Эксплуатация и контроль версий

Особенностями АИС, созданных по архитектуре кли- ент-сервер, являются их многоуровневость и многомодульность, поэтому при их эксплуатации и развитии на первое место выходят вопросы контроля версий, т.е. добавление новых и развитие старых модулей с выводом из эксплуатации старых. Например, если ежедневный контроль версий не ведется, то, как показала практика, БД АИС за год эксплуатации может насчитывать более 1000 таблиц, из которых эффективно использоваться будет лишь 20–30 %.

Результат: наращиваемость и безызбыточный состав гибкой, масштабируемой АИС.

82

ГЛАВА 2. СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ

Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. Языки баз данных выполняют основные функции:

описание данных;

манипулирование данными;

определение доступа к данным;

управление транзакциями.

2.1. Язык SQL

Язык SQL (Structured Query Language – язык структу-

рированных запросов) – стандарт языка доступа к базам данных. Язык SQL является основой взаимодействия приложений и пользователя с серверами реляционных баз данных. SQL поддерживает реляционную схему БД. Язык SQL включает операторы формирования запросов, изменения БД, операторы определения схемы БД, изменения в схеме БД и средства управления транзакциями. Специальные операторы позволяют авторизировать доступ к объектам БД, т.е. предоставляют пользователям различные полномочия. Результатом выполнения SQL-запроса является таблица.

Таблица – это любой объект СУБД. В SQL Server существует несколько разновидностей таблиц: постоянные, локальные временные, глобальные временные и табличные переменные. Помимо этого существуют табличные типы и табличные параметры.

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

Операторы SQL делятся:

83

на операторы определения данных (Data Definition Language, DDL):

CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т.д.),

ALTER изменяет объект, DROP удаляет объект;

операторы манипуляции данными (Data Manipulation Language, DML):

SELECT считывает данные, удовлетворяющие заданным условиям,

INSERT добавляет новые данные, UPDATE изменяет существующие данные, DELETE удаляет данные;

операторы определения доступа к данным (Data Control Language, DCL):

GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом,

REVOKE отзывает ранее выданные разрешения, DENY задает запрет, имеющий приоритет над разре-

шением;

операторы управления транзакциями (Transaction Control Language, TCL):

COMMIT применяет транзакцию,

ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,

SAVEPOINT делит транзакцию на более мелкие уча-

стки [17].

Язык PL/SQL (Procedural Language/Structured Query Language) – язык программирования, процедурное расширение языка SQL, разработанное корпорацией Oracle. PL/SQL встроен в Oracle Database. Также PL/SQL исполь-

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

84

вычислений в среде клиент-сервер. PL\SQL позволяет передать на сервер программный блок PL\SQL, содержащий логику приложения, как оператор SQL, одним запросом. Используя PL\SQL, можно значительно сократить объем обработки клиентской части приложения и нагрузку на сеть.

PL/SQL дает возможность использовать переменные, операторы, массивы, курсоры и исключения. Начиная с версии 8 доступна и объектно-ориентированная модель. Операторы SQL могут быть легко вызваны непосредственно из PL/SQL-процедуры, функции или триггера.

Язык Transact-SQL

T-SQL – это диалект языка структурированных запро-

сов (SQL), применяемый СУБД SQL Server. SQL Server по-

зволяет создать программируемые объекты: хранимые процедуры, функции и триггеры на языке T-SQL (TransactSQL).

SQL был расширен такими дополнительными возможностями, как:

управляющие операторы,

локальные и глобальные переменные,

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

поддержка аутентификации Microsoft Windows.

Язык Transact-SQL используется MS SQL Server. Все

приложения, взаимодействующие с экземпляром MS SQL Server, независимо от их реализации и пользовательского интерфейса, отправляют серверу инструкции Transact-SQL.

Типы данных SQL и PL\SQL

1.Встроенные типы данных, включая коллекции и за-

писи.

2.Объектные типы данных.

85

Язык PL/SQL поддерживает следующие категории ти-

пов:

Скалярные типы данных (Scalar) – содержат одно значение. Оно зависит от типа данных переменной.

Составные типы (Composite) – содержат внутренние элементы, которые могут быть скалярного или составного типов. К ним относятся записи и таблицы PL/SQL.

Ссылочные типы данных (Reference) – содержат значения, называемые указателями (Pointers), указывающие на другие места хранения.

Типы данных LOB (Large object (LOB)) – содержат так называемые указатели места (locators), определяющие местоположение больших объектов (например, графических образов)), которые хранятся отдельно от других столбцов строки (out of line).

Cкалярные типы

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

CHAR (size), VARCHAR2 (size). Большинство реали-

заций поддерживают строки переменной длины для типов данных VARCHAR и LONG VARCHAR (или просто LONG).

RAW(maximum_length) LONG RAW (для двоичных данных).

Точные числовые типы – это числа, с десятичной точкой или без десятичной точки, которые могут представляться в виде [+|-]<целое без знака>[.<целое без знака>] и специфицироваться как:

DECIMAL(precision [, scale]), NUMERIC(precision [, scale]), INTEGER, SMALLINT.

86

Приблизительные числовые типы – это числа в показательной (экспоненциальной по основанию 10) записи, представляемые как <литеральное значение точного чис-

ла>Е<целое со знаком>:FLOAT[(precision)],REAL,DOUBLE PRECISION.

DATE Формат типа дата.

Константы

Объявление константы:

credit_limit CONSTANT NUMBER:= 5000.00;

Атрибуты %TYPE

Атрибут %TYPE позволяет объявлять переменную типа, соответствующего:

типу другой переменной;

типу столбца базы данных. Например:

var1 REAL(14,2); var2 var1%TYPE;

Переменная var2 будет иметь тип как var1: var_f1 user1.tbl1.f1%TYPE;

/* Переменная var_f1 будет иметь тот же тип, что и поле f1 таблицы tbl1 пользователя user1*/ [14].

Cоставные типы

Составные (Composite) – это составной тип данных, такой как записи, который позволяет объявить группу полей.

Cсылочные типы

Ссылочные (Reference) – ссылочные типы данных содержат значения, называемые указателями.

LOB-типы

87

LOB (Large Objects) – позволяют хранить неструктурированные данные (картинки, текстовые файлы, видео-, аудиофайлы) объемом до 4 Гбайт. LOB поддерживает произвольный доступ к данным.

BFILE – для внешнего двоичного файла;

BLOB – для внутреннего двоичного объекта;

CLOB – для внутреннего символьного объекта; NCLOB – для внутреннего символьного объекта, учи-

тывающего национальный набор символов.

Любой объект LOB состоит из двух частей: данных и указателя на эти данные, называемого локатором.

Объявление переменных в PL/SQL

Все переменные PL/SQL необходимо объявлять в декларативном разделе – DECLARE. Рассмотрим синтаксис объявления переменной:

Identifier [CONSTANT] datatype [NOT NULL] [:=| DEFAULT expr]

Identifier – имя переменной. После объявления имени переменой на нее можно ссылаться по имени из любой части программы.

CONSTANT – это переменная, значение которой нельзя изменить. Эта переменная должна быть инициализирована. Инициализация в данном контексте означает, что значение переменной при создании должно быть определено, т.е. значение этой переменной необходимо присвоить в разделе DECLARE. Инициализация переменной производится с помощью оператора присвоения (:=) или ключевого слова DEFAULT.

Datatype – определяет тип данных: скалярный, составной, ссылочный и LOB.

NOT NULL – ограничение, которое говорит о том, что значение переменой не может быть пустым. Эта переменная должна быть инициализирована [29].

88

DECLARE

Select varchar(20); Pr_key number;

I number; BEGIN

Select age from about where pr_key=pr_key;

END;

Объявление переменной в PL/SQL может иметь следующие формы:

var_name type; var_name type:= expr;

var_name type DEFAULT expr; var_name type NOT NULL:= expr; var_name type_var%TYPE; var_name type_var%TYPE:= expr;

var_name user.table.type_col%TYPE; var_name user.table.type_col%TYPE:=

expr;

val_real CONSTANT REAL:= 5000.00;

Составной тип имеетназваниеTABLE. Синтаксис[14]: TYPE – тип таблицы – IS TABLE OF тип – INDEX BY

BINARY_INTEGER

SET SERVEROUTPUT ON DECLARE

TYPE m_SmplTable IS TABLE OF VARCHAR2(128)

INDEX BY BINARY_INTEGER; MY_TBL m_SmplTable;

BEGIN

FOR i IN 1..10 LOOP MY_TBL(i):= TO_CHAR(i+5); END LOOP; DBMS_OUTPUT.enable;

DBMS_OUTPUT.put_line(TO_CHAR(MY_TBL(5

)));

89

END;

/

Здесь мы объявили коллекцию из строковых переменных, и с помощью известного цикла FOR записали с 1-го по 10-й элемент значениями исходный плюс пять. Затем вывели на экран пятый элемент; как и следовало ожидать, его значение равно 10 (5+5).

Атрибут %ROWTYPE

Параметры %ROWTYPE:

cursor_name явный – курсор, ранее объявленный в текущей области.

cursor_variable_name – PL/SQL строго типизированная переменнаякурсора, ранееобъявленного втекущейобласти.

table_name – таблица или представление базы данных, который должны быть доступны, когда декларация является уточненной.

Атрибут %ROWTYPE позволяет объявлять переменную типа «запись», соответствующую строке таблицы. Переменная такого типа имеет поля, совпадающие с полями таблицы по имени и типу.

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

Значения переменным, определенным с использованием атрибута %ROWTYPE, могут быть назначены как присваиванием значения одной записи другой записи, так и как INTO-переменным оператора SELECT.

Например:

DECLARE

tbl1_rec1 tbl1%ROWTYPE;

- Для строки из таблицы tbl1 tbl1_rec2 tbl1%ROWTYPE;

90

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