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

книги / Проектирование систем управления технологическими процессами и производствами

..pdf
Скачиваний:
9
Добавлен:
12.11.2023
Размер:
12.21 Mб
Скачать

ставить разработчикам программного обеспечения свободу реали-

зовать их как можно лучше с техничес*^» ™

г»

J

ясской точки зрения. В эту кате­

горию попадают:

-сложные расчетные системы;

-системы реального времени;

-другие подобные задачи.

Согласование результатов с пользователями производится только в точках, планируемых после завершения каждого этапа работ. Тре­ бования к СУ “заморожены” в виде технического задания на все время ее создания. Таким образом, пользователи могут внести свои заме­ чания только после того, как работа над системой будет полностью завершена. В случае неточного изложения требований или их изменения в течение длительного периода создания программного обеспечения СУ пользователи получают систему, не удовлет­ воряющую их потребностям. Модели (как функциональные, так и информационные) автоматизируемого объекта могут устареть одно­ временно с их утверждением, и тогда в процессе разработки ПО по­ стоянно возникает потребность в возврате к предыдущим этапам и уточнении или пересмотре ранее принятых решений.

6.4. Мифологическая модель разработки структуры баз данных

Разработку программного обеспечения системы управления и структуры базы данных необходимо начинать с разработки инфологической модели данных, которая базируется на определении “сущности - связи” автоматизируемого объекта, то есть в основе разработки инфологической модели лежит документация, созданная на этапе структурного (системного) анализа предметной области. Рас­ смотрим основные понятия инфологической модели.

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

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

Сущность - это любой различимый объект (объект, который мы можем отличить от другого объекта), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие

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

Атрибут - это поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей (например, атрибут “цвет” может быть определен для многих сущ­ ностей: “дом”, “стол”, “автомобиль”, “дым” и т.д.). Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Примерами атрибутов для сущности “автомо­ биль” являются: “тип”, “марка”, “номерной знак”, “цвет” и т.д. Здесь также существует различие между типом и экземпляром. Тип атрибута “цвет” имеет много экземпляров или значений: “красный”, “синий”, “белая ночь” и т.д., однако каждому экземпляру сущности присва­ ивается только одно значение атрибута.

Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущ­ ности. В другом контексте атрибут может выступать как самостоя­ тельная сущность. Например, для автомобильного завода цвет - это только атрибут продукта производства, а для лакокрасочной фабрики цвет - тип сущности.

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

Связь - это ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных - это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни и даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.

При построении инфологических моделей можно использовать язык ER-диаграмм {Entity-Relationship, т.е. сущность - связь). В них сущности изображаются помеченными прямоугольниками, ассо­ циации - помеченными ромбами или шестиугольниками, атрибуты - помеченными овалами, а связи между ними - ненаправленными ребрами, над которыми может проставляться степень связи (7 или буква, заменяющая слово “много”) и необходимое пояснение.

Между двумя сущностям, например, А и В возможны четыре типа связей.

Первый тип связи: один - к - одному (7:7). В каждый момент времени каждому представителю (экземпляру) сущности А соот­ ветствует 1 или 0 представителей сущности В:

Например, студент может не “заработать” стипендию, получить обычную или одну из повышенных стипендий:

Студент

Назначение

Вид стипендии

 

 

Второй тип связи: один - ко - многим (1 М). Одному представителю сущности А соответствуют 0, 7 или несколько представителей сущности В:

Например, квартира может пустовать, в ней может жить один или несколько жильцов:

Квартира

Назначение

М

Жилец

 

Так как между двумя сущностями возможны связи в обоих на­ правлениях, то существуют еще два типа связи: многие - к - одному (М 1) и многие - ко - многим (М N).

Существуют и более сложные связи:

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

- тренарные связи (врач может назначить нескольких пациентов на несколько анализов, анализ может быть назначен несколькими врачами нескольким пациентам и пациент может быть назначен на несколько анализов несколькими врачами):

6.5. Классификация архитектур проектирования программного обеспечения

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

Классификация архитектур проектирования программного обеспечения систем управления не является абсолютно жесткой. В

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

-для файл-серверных приложений;

-для клиент-серверных приложений;

-для Intranet-приложений.

Файл-серверные приложения

Организация систем управления на основе использования выде­ ленных файл-серверов все еще является наиболее распространенной в связи с наличием большого количества персональных ЭВМ разного уровня развитости и сравнительной дешевизны связывания ПЭВМ в локальные сети. Такая организация привлекает не очень опытных в области системного программирования разработчиков СУ тем, что при опоре на файл-серверные архитектуры сохраняется автономность прикладного (и большей части системного) программного обес­ печения, работающего на каждой ПЭВМ сети. Фактически компо­ ненты СУ, выполняемые на разных ПЭВМ, взаимодействуют только за счет наличия общего хранилища файлов, которое хранится на файлсервере. В классическом случае в каждой ПЭВМ дублируются не только прикладные программы, но и средства управления базами данных.

Файл-сервер представляет собой разделяемое всеми ПЭВМ комплекса расширение дисковой памяти (рис. 6.5).

Рис.6.5. Классическое представление системы в архитектуре "файл-сервер"

Основным достоинством файл-серверных приложений является простота организации. Проектировщики и разработчики СУ нахо­ дятся в привычных и комфортных условиях IBM PC в среде MS-DOS\ Windows или какого-либо облегченного варианта Windows NT. Име­ ются удобные и развитые средства разработки графического пользова­ тельского интерфейса, простые в использовании средства разработки систем баз данных и/или СУБД. При проектирование файл-серверных приложений необходимо учесть ряд особенностей.

Во-первых, СУ предстоит работать с базой данных. Следова­ тельно, эта база данных должна быть спроектирована. Разработчики файл-серверных приложений считают, что по причине простоты средств управления базами данных проблемой проектирования базы данных можно пренебречь, что абсолютно неверно. Чем качественнее она спроектирована, тем больше шансов впоследствии эффективно использовать автоматизированную систему. Естественно, сложность проектирования базы данных определяется объективной сложностью моделируемой предметной области. Очевидно, что файл-серверные приложения пригодны только в простых предметных областях.

Во-вторых, база данных СУ в обязательном порядке должна под­ держивать целостность ее состояния и гарантировать надежность хра­ нения информации. Минимальными условиями, при соблюдении которых можно удовлетворить эти требования, являются:

-наличие транзакционного управления,

-хранение избыточных данных (например, с применением методов журнализации),

-возможность формулировать ограничения целостности и проверять их соблюдение.

В принципе, файл-серверная организация, как она показана на рис. 6.5, не противоречит соблюдению отмеченных условий. В качестве примера системы, соблюдающей выполнение этих условий, но основанной на файл-серверной архитектуре, можно привести популярный “сервер баз данных” Informix SE.

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

ются операторы языка SQL, от сервера к клиенту - результаты

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

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

Простое, работающее с небольшими объемами информации и рассчитанное на применение в однопользовательском режиме, файлсерверное приложение можно спроектировать, разработать и отладить очень быстро.

Клиент-серверные приложения

Под клиент-серверным приложением понимается автомати­ зированная система, основанная на использовании серверов баз данных. Структура архитектуры клиент-сервер представлена на рис. 6.6.

Рис. 6.6. Структурная схема архитектуры "клиент - сервер"

Общий алгоритм функционирования СУ в архитектуре “клиентсервер” можно представить следующим образом:

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

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

Интерфейс между клиентской частью приложения и клиентской частью сервера баз данных, как правило, основан на использовании языка SQL. Поэтому такие функции, как, например, предварительная обработка форм, предназначенных для запросов к базе данных, или формирование результирующих отчетов выполняются в коде при­ ложения.

Клиентская часть сервера баз данных, используя средства сете­ вого доступа, обращается к серверу баз данных, передавая ему текст оператора языка SQL.

Компании, производящие развитые серверы баз данных, стремят­ ся к тому, чтобы обеспечить возможность использования своих про­ дуктов не только в стандартных на сегодняшний день TCP/IP-ори­ ентированных сетях, но и в сетях, основанных на протоколах SNA

или IPX/SPX.

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

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

- при выполнении операторов определения (или создания) объектов базы данных, в частности, могут определяться домены,

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

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

-при выполнении операторов модификации содержимого базы данных (INSERT, UPDATE, DELETE) проверяется, не будут ли нарушены определенные к этому моменту ограничения целостности, после чего выполняется соответствующее действие (сопровождаемое модификацией всех соответствующих индексов и журнализацией изменений). Далее сервер проверяет, не затрагивает ли данное

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

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

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