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

ЗКИ 4 ПрПр(2) / Потменский пособие по ПРПР

.pdf
Скачиваний:
48
Добавлен:
05.06.2015
Размер:
2.67 Mб
Скачать

цель и создают некоторый вид выхода.

Активность:

—представлена в модели поименованным процессом, функцией или задачей;

—происходит в течение определенного периода времени;

—имеет распознаваемые результаты.

Все активности в процессе документирования должны быть названы и определены. Имена обычно имеют формат <гла-гол> <существительное>. Определения не должны быть длинными, они должны полностью объяснять, что такое действие в каждой активности, и они должны быть задокументированы во время создания.

Примеры:

1.Обработка кандидатов: эта активность относится к полному циклу обработки кандидатов в избирательной кампании.

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

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

Глагол или глагольная фраза имени в активности должна быть глаголом действия. Необходимо учитывать, что нет мгновенных активностей. Между началом и концом активности должно пройти некоторое количество времени. Когда выполняется активность, энергия расходуется. Энергия может быть физическая, механическая или электрическая.

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

Активности могут быть представлены либо в виде дерева узлов активностей (рис. 8.3.1), либо в виде диаграмм декомпозиции.

Рис. 8.2. Дерево узлов активностей

Активности представлены на рис. 3.

Стрелки на квадратах, которые обозначают активности, обозначают:

101

I = Input (вход) — нечто, используемое в процессе;

С = Control (управление), ограничение на активность процесса; О = Output (выход) — нечто, являющееся результатом процесса;

М = Mechanism (механизм), нечто используемое для выполнения процесса.

Пятый тип стрелки: стрелка запроса.

В то время как активности — это всегда глаголы или гла-гольные фразы, стрелки — всегда существительные.

Рис. 8.3. Представление активностей на схеме

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

Стрелки управления. Управление регулирует, как и когда выполняется активность и какие выходы производятся. Управления бывают в форме правил регулирования стратегий, процедур или стандартов. Каждая активность должна иметь по крайней мере одно управление.

Рис. 8.4. Система учета движения кассет

Стрелки выхода. Выходы — это материал или информация, производимая активностью. Каждая активность должна иметь по крайней мере хотя бы одну стрелку выхода.

102

Стрелки механизма. Механизмы — это ресурсы, которые выполняют активность. Под действием управления активность преобразует входы в выходы, используя механизмы.

Модель начинается с отдельного прямоугольника, обозначающего изучаемую систему.

Рис. 8.5. Контекстная диаграмма для пункта продажи и проката видеокассет

Явные стрелки имеют источником и местом единственную активность.

Разветвление стрелок

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

103

Например, от Income (доход) ответвляется Rental Income (доход от сдачи в аренду) и Sales Income (доход от продажи).

Слияние стрелок

Стрелки могут сливаться.

Например, в нашем примере Damaged Tapes, Defective Tapes, Returns и Retired Tapes сливаются в Lost Tape Inventory.

Рис. 8.6. Дерево узлов «Отправка факсов» Отправка факса — корневая активность.

104

8.4. Структурный язык запросов (SQL)

SQL — обычно произносится «сиквел» — структурный язык запросов (Structured Query Language). Он позволяет создавать реляционные базы данных.

Указанная таблица создается в соответствии с директивой: Примеры базы данных:

Salespeople

SNUM

SNAME

CITY

COMM

1001

Peel

London

*12

1002

Serries

San Jose

*13

 

 

 

 

1004

Motika

London

*11

1007

Ritfkin

Barcelona

*15

1003

Axelrod

New York

*10

CREATE TABLE SALESPEOPLE

(snum integer not null unique, sname char(10) not null unique, city char(10) check (city in ('London', 'New York', 'San Jose', 'Barcelona')), comm decimal check (comm<1);.

Customers

CNUM

CNAME

CITY

RATIN

SNUM

2001

Hoffman

London

100

1001

2002

Giovanni

Rome

200

1003

2003

Liu

San Jose

200

1002

2004

Grass

Berlin

300

1002

2006

Clemens

London

100

1001

 

 

 

 

 

2008

Cisneros

San Jose

300

1007

2007

Pereira

Rome

100

1004

CREATE TABLE CUSTOMERS

(cnum integer not null, cname char (10) not null, city char (10), rating integer, snum integer not null, UNIQUE (cnum, snum));.

105

Orders

ONU

АМТ

ODAT

CNUM

SNUM

 

 

 

 

 

3001

18.69

10.03.90

2008

1007

3003

717.19

10.03.90

2001

1001

 

 

 

 

 

3002

1900.10

10.03.90

2007

1004

 

 

 

 

 

3005

5160.45

10.03.90

2003

1002

3006

1098.16

10.03.90

2008

1007

 

 

 

 

 

3009

1713.23

10.04.90

2002

1003

3007

75.75

10.04.90

2004

1002

3008

4723.00

10.05.90

2006

100

 

 

 

 

 

3010

1309.95

10.06.90

2004

1002

 

 

 

 

 

3011

9891.88

10.06.90

2006

1001

CREATE TABLE ORDERS

(onum integer not null unique, amt decimal, odate char (10) not null check (odate LIKE ' '), cnum integer not null, snum integer not null).

В SQL каждому полю присваиваются типы данных:

—INTEGER, запрещается использовать цифры справа от запятой и представлять числа с запятой;

—CHAR — отводится участок поля, достаточный для хранения строки максимальной длины;

—VARCHAR, DATE, MONEY, BINARY — для переменных этих типов память выделяется по мере необходимости.

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

 

Наименования полей

Поле

Наименование

 

 

snum

Уникальный табельный номер продавца

sname

Фамилия продавца

city

Город местонахождения продавца

comm

Комиссионные продавца в форме с плавающей запятой

 

 

cnum

Уникальный номер клиента

 

 

cname

Фамилия покупателя

 

 

rating

Цифровой код рейтинга доверия к клиенту

onum

Уникальный номер заказа

amt

Количество

 

 

odate

Дата покупки

Примерами предложений являются:

106

SELECT *

From Salespeople Where city = 'London';.

Аргументы заканчивают предложения или модифицируют его смысл. В приведенных примерах «London» является аргументом предложения WHERE. Объекты — это структуры в базе данных, которые имеют имена и хранятся в памяти. Они включают базовые таблицы, представления и индексы.

Команды языка SQL

Команда SELECT, пример:

SELECT snum, sname, city, comm from Salespeople;

SELECT — оператор выборки, за которым следуют имена выдаваемых столбцов таблицы, после ключевого слова FROM следует имя таблицы

Salespeople;.

Чтобы увидеть все колонки таблицы, можно набрать:

SELECT * FROM Salespeople.

Устранение избыточности в выдаваемых данных достигается использованием ключевого слова DISTINCT. Например, приведенное ниже предложение приводит к выдаче только различающихся значений поля Snum:

SELECT DISTINCT snum From Orders;.

Условие отбора записей создается при помощи ключевого слова WHERE, например:

SELECT sname, city FROM Salespeople WHERE city = 'London';.

Предложение GROUP BY позволяет группировать данные по значению атрибута.

Пример:

SELECT snum, odate, max (amt) FROM Order

GROUP BY snum, odate;

В результате получим:

 

SNUM

ODATE

 

 

 

 

 

 

 

 

 

 

1001

100 390

 

767.19

 

 

 

 

 

 

 

 

1001

100 590

 

4723.00

 

 

 

 

 

 

 

 

1001

100 690

 

9891.88

 

 

1002

100 390

 

5160.45

 

 

1002

100 490

 

75.75

 

 

1002

100 690

 

1309.95

 

 

 

 

 

 

 

 

1003

100 490

 

1713.23

 

 

1004

100 390

 

1900.10

 

 

1007

100 390

 

1098.16

 

Предложение HAVING

определяет

критерий, согласно которому

 

 

 

107

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

SELECT snum, odate, max (amt) FROM Order

GROUP BY snum, odate HAVING max (amt) > 3000.00;.

Результат представляет собой таблицу следующего вида:

SNUM

ODATE

 

1001

100 590

4723.00

1001

100 690

9 891.88

1002

100 390

5160.45

 

 

 

Запрос:

SELECT snum, max (amt) FROM Order

GROUP BY snum

HAVING snum IN (1002, 1007);.

приводит к получению следующих данных:

SNUM

 

1002

5160.45

 

 

1007

1098.16

 

 

Упорядочение выходных полей достигается путем использования ключевого слова ORDER BY в порядке возрастания (DESC) или убывания

(ASC).

SELECT * FROM ORDERS ORDER BY cnum DESC;.

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

Одна из наиболее важных черт запросов SQL состоит в их способности определять связи между множеством таблиц и отображать содержащуюся в них информацию в терминах этих связей в рамках единственной команды. Операция такого рода называется соединением (join)- При операции соединения таблицы перечисляются в предложении запроса FROM, имена таблиц разделяются запятыми.

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

Salespeople, snum, Customers.city, Orders.odate.

Предположим, нужно установить связь между продавцами (Salespeople) и покупателями (Customers):

SELECT Customer.cname, Salespeople.sname, Salespeople.city

FROM Salespeople, Customers

WHERE Salespeople.city = Customers.city;.

108

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

city = 'London'. Salespeople.snum = Orders.snum.

Запрос:

SELECT * FROM Customers WHERE rating >=200;

иллюстрирует использование операторов сравнения в запросах. Запрос:

SELECT * FROM Customers WHERE city = 'San Jose'

OR NOT rating >200;

иллюстрирует использование оператора NOT. В запросе:

SELECT * FROM Customers WHERE NOT city = 'San Jose' OR rating >200;

NOT относится только к city = 'San Jose'.

В запросе:

SELECT * FROM Customers WHERE NOT (city = 'San Jose' OR rating >200);

NOT относится целиком к условию, заключенному в скобки.

Использование значений из заданного списка в условиях поиска показывает следующий запрос:

SELECT *

FROM Salespeople

WHERE snum IN (1001,1007,1004).

Оператор BETWEEN, задающий интервал значений, иллюстрируется следующим запросом:

SELECT *

FROM Salespeople

WHERE (coram BETWEEN. 10, AND. 12) AND NOT Comm IN (.10,. 12);.

Оператор LIKE

LIKE применим только к типу CHAR и VARCHAR, поскольку он используется для поиска подстрок. Другими словами, он осуществляет просмотр строки для выяснения: входит ли данная подстрока в указанное поле.

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

—символ «подчеркивание» (_) заменяет один любой символ.

109

Например, образцу b_t соответствует bat, bit, but, но не brat;

—символ % заменяет последовательность символов произвольной длины, а также и нулевой.

Например, образцу %p%t соответствует put, posit, opt, но не spite. Можно найти покупателей, фамилии которых начинаются на «G»:

SELECT * FROM Customers WHERE cname LIKE 'G%'.

Суммирование данных с помощью функции агрегирования

Функция агрегирования:

—count — количество строк, выбранных на запрос,

—sum — арифметическая сумма всех выбранных значений,

—avg — среднее значение для выбранных значений,

—max — максимальное из выбранных,

—min — минимальное из выбранных.

Примеры:

 

SELECT SUM (amt) From Orders;

SELECT COUNT (DISTINCT snum)

подсчитывает сумму по столбцу amt

From Orders; подсчитывает число

 

строк с отличающимися

 

значениями столбца snum.

SELECT AVG (amt) From Orders;

SELECT MAX (SUM (amt)) From

подсчитывает среднее значение по

Orders; подсчитывает

столбцу amt

максимальное значение по столбцу

 

amt

Использование оператора < для лексиграфического упорядочивания иллюстрируется следующим запросом:

SELECT sname, cname FROM Salespeople, Customers WHERE sname < cname

AND rating < 200;.

В результате получим ответ на запрос в виде следующей таблицы:

sname

cname

Peel

Pereira

Motika

Pereira

Axelrod

Hoffman

Axelrod

Clemens

 

 

Axelrod

Pereira

 

 

Алиасы

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

110