Первые иерархические и сетевые СУБД были созданы в начале 60-х годов. Причиной послужила необходимость управления миллионами записей (связанных друг с другом иерархическим образом), например при информационной поддержке лунного проекта Аполлон. Среди реализуемых на практике СУБД этого типа преобладает система IMS (Information Management System компании IBM) (На данный момент это самая распространенная СУБД из всех данного типа). Применяются и другие иерархические системы: TDMS (Time-Shared Date Management System) компании Development Corporation; Mark IV Multi - Access Retrieval System компании Control Data Corporation; System - 2000 разработки SAS-Institute.
Отношения в иерархической модели данных организованы в виде совокупностей деревьев, где дерево - структура данных, в которой тип сегмента потомка связан только с одним типом сегмента предка. Графически: Предок - точка на конце стрелки, а Потомок - точка на острие стрелки. В базах данных определено, что точки - это типы записей, а стрелки представляют отношения один - к - одному или один - ко - многим.
К ограничения иерархической модели данных можно отнести:
Отсутствует явное разделение логических и физических характеристик модели; Для представления неиерархических отношений данных требуются дополнительные манипуляции; Непредвиденные запросы могут требовать реорганизации базы данных.
Две важные части архитектуры RDBMS - ядро, которое является программным обеспечением, и словарь данных, который состоит из структур данных системного уровня, используемых ядром, управляющим базой данных.
RDBMS можно рассматривать как операционную систему (или подсистему), разработанную специально для управления доступом к данным; ее основные функции - хранение, выборка и обеспечение безопасности данных. Подобно операционной системе, СУБД Oracle управляет доступом одновременно работающих пользователей базы данных к некоторому набору ресурсов. Подсистемы RDBMS очень схожи с соответствующими подсистемами ОС и сильно интегрированы с предоставляемыми базовой ОС сервисными функциями доступа на машинном уровне к таким ресурсам, как память, центральный процессор, устройства и файловые структуры.
RDBMS поддерживают собственный список авторизованных пользователей и их привилегий; управляют кэшем памяти и страничным обменом; управляют блокировкой разделяемых ресурсов; принимают и планируют выполнение запросов пользователя; управляют использованием табличного пространства.
На рис.31. показаны основные подсистемы ядра Oracle, управляющего базой данных.
Рис.31. Структура ядра СУБД Oracle.
Итак, база данных - собрание данных, между которыми существуют (смысловые) связи. Физическое расположение и реализация базы данных прозрачны для прикладных программ; физическую базу данных можно перемещать и реорганизовывать и это не окажет влияния на работоспособность программ.
Физически база данных Oracle - не более чем набор файлов где-то на диске. Расположение этих файлов несущественно для функционирования (хотя важно для производительности) базы данных.
Логически база данных - это множество пользовательских разделов Oracle, каждый из которых идентифицируется именем пользователя (с паролем), уникальным в данной БД. На рис.29. показана архитектура Oracle.
Существуют три основные группы файлов на диске, составляющие базу данных.
Файлы базы данных Управляющие файлы Журнальные файлы
Наиболее важные из них - файлы базы данных, где располагаются собственно данные. Управляющие и журнальные файлы поддерживают функционирование архитектуры. Для доступа к данным БД все три набора файлов должны присутствовать, быть открытыми и доступными Oracle. Если эти файлы отсутствуют, обратиться к базе данных нельзя, и администратор базы данных должен будет восстанавливать часть или всю БД, используя файлы резервных копий (если их сделали!). Все эти файлы двоичные.
После инсталляции СУБД (об этапах установки подробно написано в [ ]) администратор имеет возможность войти в СУБД используя учетные записи SYS или SYSTEM, с парролем: master или manager, для создание учетных записей других пользовтаелей, при этом пароли учетных записей SYS и SYSTEM необходимо сразу же изменить.
Для работы с файлами базы данных на машине должны существовать системные процессы Oracle и один (или больше) пользовательский процесс.
Системные процессы Oracle (их называют фоновыми) обеспечивают функционирование пользовательских процессов - выполняют функции, которые иначе пришлось бы выполнять пользовательским процессам непосредственно.
Дополнительно к фоновым процессам Oracle в простейшем случае на одно подключение к базе данных должен существовать один пользовательский процесс. Пользователь должен подключиться к базе данных прежде чем он сможет обратиться к какому-либо объекту. Если один пользователь регистрируется в Oracle, используя SQL*Plus, другой пользователь выбирает Oracle Forms, а еще один пользователь открывает электронную таблицу Excel, значит имеется три пользовательских процесса для работы с этой базой данных - по одному для каждого подключения.
Oracle использует память системы (как реальную, так и виртуальную) для выполнения пользовательских процессов и самого программного обеспечения СУБД, и для кэширования объектов данных. Существуют две главные области памяти Oracle:
разделяемая память, которая используется всеми процессами, работающими с базой данных, локальная память для каждого пользовательского процесса.
Системная память.
Системная память. Oracle для всей базы данных называется SGA (system global агеа - системная глобальная область или shared global агеа - разделяемая глобальная область). Данные и управляющие структуры в SGA являются разделяемыми, и все фоновые процессы Oracle и пользовательские процессы могут к ним обращаться.
Память пользовательского процесса. Для каждого подключения к базе данных Oracle выделяет PGA (process global агеа - глобальную область процесса или program global агеа - глобальную область программы) в памяти машины и, кроме того, - PGA для фоновых процессов. Эта область памяти содержит данные и управляющую информацию одного процесса и между процессами не разделяется.
Solaris - это современная операционная система UNIX клона. Примечательно, что она, опережая свое время, позволяет работать с 64-разрядными прикладными программами и имеет собственные расширения, которые помогают ей выдерживать высокие пользовательские нагрузки Web-узлов с интенсивным обменом информацией. В Solaris также предусмотрены замечательные возможности применения серверных прикладных программ и средств разработки сторонних производителей.
Рис.23. Функциональная схема информационной системы на базе Solaris
Ключевой момент для понимания различий между платформами Linux, Microsoft и Sun - способ, которым серверные программы каждой из них обрабатывают большое число подключений. Обычно это делается в многопотоковом режиме. Многопотоковый режим возникает, когда прикладная программа (также называемая процессом) содержит множество небольших блоков исполняемого кода, работающих независимо друг от друга и, возможно, одновременно на разных процессорах. Эти потоки могут совместно пользоваться ресурсами и представляют собой способ организации программы, позволяющий одновременно выполнять несколько задач.
Модель потоков Solaris весьма сложна. Она состоит из потоков на уровне ядра (kthreads) - реальных объектов, передаваемых отдельному процессору; потоков на пользовательском уровне и промежуточной структуры, называемой облегченным (lightweight) процессом. Это позволяет тонко управлять структурой прикладной программы и реализации в ней прикладной многозадачности.
К основным преимуществам электронного документооборота можно отнести следующие:
Полный контроль за перемещением и эволюцией документа, регламентация доступа и способ работы пользователей с различными документами и их отдельными частями. Уменьшение расходов на управление за счет высвобождения (на 90% и более) людских ресурсов, занятых различными видами обработки бумажных документов, снижение бюрократической волокиты за счет маршрутизированного перемещения документов и жесткого контроля за порядком и сроками прохождения документов. Быстрое создание новых документов из уже существующих. Поддержка одновременной работы многих пользователей с одним и тем же документом, предотвращение его потери или порчи. Сокращение времени поиска нужных документов.
Использование АИС может рассматриваться в качестве базы для общего совершенствования управления предприятием. При этом управление предприятием реализует следующие основные функции:
обслуживание клиентов; разработка продукции; учет и контроль за деятельностью предприятия; финансовое обеспечение деятельности предприятия и т.д.
Сети - естественный способ представления отношений между объектами. Они широко применяются в математике, исследованиях операций, химии, физике, социологии и других областях знаний. Сети обычно могут быть представлены математической структурой, которая называется направленным графом. Направленный граф имеет простую структуру. Он состоит из точек или узлов,соединенных стрелками или ребрами. В контексте моделей данных узлы можно представлять как типы записей данных, а ребра представляют отношения один-к -одному или один-ко-многим. Структура графа делает возможными простые представления иерархических отношений (таких, как генеалогические данные) .
Сетевая модель данных - это представление данных сетевыми структурами типов записей и связанных отношениями мощности один-к-одному или один-ко-многим. В конце 60-х конференция по языкам систем данных (Conference on Data Systems Languages, CODASYL) поручила подгруппе, названной Database Task Group (DTBG), разработать стандарты систем управления базами данных. На DTBG оказывала сильное влияние архитектура, использованная в одной из самых первых СУБД, Iategrated Data Store (IDS), созданной ранее компанией General Electric.Это привело к тому, что была рекомендована сетевая модель.
Документы Database Task Group (DTBG) (группа для разработки стандартов систем управления базами данных) от 1971 года остается основной формулировкой сетевой модели, на него ссылаются как на модель CODASYL DTBG. Она послужила основой для разработки сетевых систем управления базами данных нескольких производителей. IDS (Honeywell) и IDMS (Computer Associates) - две наиболее известных коммерческих реализации. В сетевой модели существует две основные структуры данных: типы записей и наборы:
Тип записей. Совокупность логически связанных элементов данных. Набор. В модели DTBG отношение один-ко-многим между двумя типами записей. Простая сеть. Структура данных, в которой все бинарные отношения имеют мощность один-ко-многим. Сложная сеть. Структура данных, в которой одно или несколько бинарных отношений имеют мощность многие-ко-многим. Тип записи связи. Формальная запись, созданная для того, чтобы преобразовать сложную сеть в эквивалентную ей простую сеть.
В модели DBTG возможны только простые сети, в которых все отношения имеют мощность один-к-одному или один-ко-многим. Сложные сети, включающие одно или несколько отношений многие-ко-многим, не могут быть напрямую реализованы в модели DBTG. Следствием возможности создания искусственных формальных записей является необходимость дополнительного объема памяти и обработки, однако при этом модель данных имеет простую сетевую форму и удовлетворяет требованиям DBTG.
Типы данных обрабатываемых СУБД Oracle представлены в таблице.
Таблица 2. Типы обрабатываемых данных.
Тип данных | Описание |
СНАR(size) | Символьная строка фиксированной длины, имеющая максимальную длину size символов. Длина по умолчанию 1, максимальная -255. |
СНАRАСТЕR(size) | То же, что и CHAR. |
DATE | Правильные даты в интервале от 1 января 4712 года до н.э. до 31 декабря 4712 года. |
LONG | Символьные данные переменной длины до 2 Гигабайт. |
LONG RAW | Двоичные данные переменной длины вплоть до 2 Гигабайт или 231-1. |
MLSLABEL | Используется в Trusted ORACLE. |
NUMBER(p,s) | Число, имеющее p значащих цифр и масштаб s. р может быть от 1 до 38. s может принимать значения от -84 до 127. |
RAW(size) | Двоичные данные длиной size байт. Максимальное значение для size - 2000 байт. Параметр те для RAW обязателен. |
RAW MLSLABEL | Используется в Trusted ORACLE. |
ROWID | Значения псевдостолбца ROWID. |
VARCHAR2(size) | Символьная строка переменной длины, имеющая максимальную длину size символов. Длина по умолчанию 1, максимальная - 2000. |
VARCHAR(size) | То же что и VARCHAR2. |
Извлекать данные можно также и из псевдостолбцов (табл.3), которые похожи на столбцы таблиц, но их значения нельзя изменять при помощи операторов DML.
Таблица 3. Псевдостолбцы.
Название столбца | Возвращаемое значение |
sequence.CURRVAL | Текущее значение sequence в данном сеансе (sequence.NEXTVAL должен быть выбран). |
sequence.NEXTVAL | Следующее значение sequence в текущем сеансе. |
[table.]LEVEL | 1 - для корня дерева, 2 - для узлов второго уровня и так далее. Используется в операторе SELECT в иерархических запросах. |
[table.]ROWID | Значение, которое идентифицируют строку в таблице table уникальным образом. Значения псевдостолбца ROWID имеют тип данных ROWID, а не NUMBER и не CHAR. |
ROWNUM | Порядковый номер строки среди других строк, выбираемых запросом. ORACLE выбирает строки в произвольном порядке и приписывает значения ROWNUM, прежде чем строки будут отсортированы предложением ORDER BY. |
Как следует из определения ссылочной целостности при наличии в ссылочных полях двух таблиц различного представления данных происходит нарушение ссылочной целостности, такое нарушение делает информацию в базе данных недостоверной. Чтобы предотвратить потерю ссылочной целостности, используется механизм каскадных изменений (который чаще врего реализуется специальными объектами СУБД - триггерами). Данный механизм состоит в следующей последовательсности действий:
при изменении поля связи в записи родительской таблицы следует синхронно изменить значения полей связи в соответствующих записях дочерней таблицы; при удалении записи в родительской таблицы следует удалить соответствующие записи и в доцерней таблице.
Нормализация -
процесс приведения реляционных таблиц к стандартному виду. В базе данных могут присутствовать такие проблемы как:
Избыточность данных.Повторение данных в базе данных. Аномалия обновления. Противоречивость данных, вызванная их избыточностью и частичным обновлением. Аномалия удаления. Непреднамеренная потеря данных, вызванная удалением других данных. Аномалия ввода. Невозможность ввести данные в таблицу, вызванная отсутствием других данных.
Для решения этих проблем применяют разбиение таблиц - разделение таблицы на несколько таблиц. Для того чтобы это сделать пользуются нормальными формами или правилами структурирования таблиц.
Первая нормальная форма
Реляционная таблица находится в первой нормальной форме (1НФ), если значения в таблице являются атомарными для каждого атрибута таблицы, т.е. такими значениями, которые не являются множеством значений или повторяющейся группой. В определении Кодда реляционной модели уже заложено, что реляционные таблицы находились в 1НФ,
Вторая нормальная форма.
Реляционная таблица находится во второй нормальной форме (2НФ), если никакие неключевые атрибуты не являются функционально зависимыми лишь от части ключа. Таким образом, 2НФ может оказаться нарушена только в том случае, когда ключ составной.
Функциональная зависимость.Значение атрибута в кортеже однозначно определяет значение другого атрибута в кортеже.
Более формально можно определить функциональную зависимость следующим образом: если А и В - атрибуты в таблице В, то запись ФЗ (функциональную зависимость): А - " В обозначает, что если два кортежа в таблице В имеют одно и то же значение атрибута А, то они имеют одно и то же значение атрибута В. Это определение такжеприменимо,если А и В - множества столбцов, а не просто отдельные столбцы.
Атрибут в левой части ФЗ называется детерминантом, так как его значение определяет значение атрибута в правой части. Ключ таблицы является детерминантом, так как его значение однозначно определяет значение каждого атрибута таблицы.
Процесс разбиения на две 2НФ-таблицы состоит из следующих шагов:
№ | Наименование столбца | Описание |
Таблица CLINICS | ||
1 | CS_NNN | Индекс |
2 | CS_REG_NUMBER | Регистрационный номер |
3 | CS_CITY_NNN | Ссылка на справочник городов и регионов |
4 | CS_NAME | Наименование клиники |
5 | CS_ADDRESS | Адрес клиники |
6 | CS_PHONE_NUMBER | Номер телефона |
7 | CS_TYPE | Профиль клиники |
Таблица DOCTORS | ||
1 | DC_NNN | Индекс |
2 | DC_NAME | Ф.И.О. доктора |
3 | DC_CS_NNN | Ссылка на таблицу CLINICS |
4 | DC_DIPLOM_NUMBER | Номер диплома |
5 | DC_SPECIALTY_NNN | Ссылка на справочник специальностей |
6 | DC_SHTAT_NNN | Ссылка на штатное расписание |
7 | DC_CALENDAR_NNN | Ссылка на расписание приема |
Таблица PATIENTS | ||
1 | PT_NNN | Индекс |
2 | PT_REG_NUMBER | Регистрационный номер |
3 | PT_NAME | Ф.И.О. пациента |
4 | PT_ADDRESS | Адрес пациента |
5 | PT_POLIS_NUMBER | Номер полиса |
6 | PT_PHONE_NUMBER | Номер телефона |
7 | PT_BIRTHDATE | Дата рождения |
8 | PT_FIRST_VISIT | Дата первого визита |
9 | PT_LAST_VISIT | Дата последнего визита |
10 | PL_PT_NNN | Ссылка на таблицу платежей |
Таблица PAYMENTS | ||
PL_NNN | Индекс | |
PL_ACCOUNT_NUMBER | Номер расчетного счета | |
PL_PAY_NNN | Ссылка на таблицу расчетов |
В разделе 1.3. нами были рассмотрены основные этапы разработки автоматизированной информационной системы, в разделе 1.3.1 мы разработали функциональную модель АИС, теперь, после того как мы рассмотрели основные оложения терии баз данных, пришло время заняться непосредственно формализацией выделенных бизнес-процессов, операций и т.п. Результатом первого этапа проектирования АИС является функциональная модель системы содержащая множество объектов (процессов, операций), их атрибутов.
Объектное множество с атрибутами может быть преобразовано в реляционную таблицу с именем объектного множества в качестве имени таблицы и атрибутами объектного множества в качестве атрибутов таблицы. Если некоторый набор этих атрибутов может быть использован в качестве ключа таблицы, то он выбирается ключом таблицы. В противном случае мы добавляем к таблице атрибут, значения которого будут однозначно определять объекты-элементы исходного объектного множества, и который, таким образом, может служить ключом таблицы.
Комплексная автоматизация этих функции требует создания единого информационного пространства предприятия, в котором сотрудники и руководство могут осуществлять свою деятельность, руководствуясь едиными правилами представления и обработки информации в документном и бездокументном виде.
Для этого в рамках предприятия требуется создать единую информационную систему по управлению информацией или единую систему управления документами, включающую возможности:
удаленной работы, когда члены одного коллектива могут работать в разных комнатах здания или в разных зданиях; доступа к информации, когда разные пользователи должны иметь доступ к одним и тем же данным без потерь в производительности и независимо от своего местоположения в сети; средств коммуникации, например: электронная почта, факс, печать документов; сохранения целостности данных в общей базе данных; полнотекстового и реквизитного поиска информации; открытость системы, когда пользователи должны иметь доступ к привычным средствам создания документов и к уже существующим документам, созданным в других системах; защищенность информации; удобства настройки на конкретные задачи пользователей; масштабируемости системы для поддержки роста организаций и защиты вложенных инвестиций и т.д.
Начальным этапом создания такой системы является построение модели предметной области или другими словами модели документооборота для конкретного бизнеса и позиционировать в ней свое предприятие.
Определенные ранее направления автоматизации документооборота: поддержка фактографической информации, возможность работы с полнотекстовыми документами, поддержка регламента прохождения документов, определяют трехмерное пространство свойств, где по некоторой траектории движется любой программный продукт данного класса, проходя различные стадии в своем развитии (рис.2.).
Первая ось (F) характеризует уровень организации хранения фактографической информации, которая привязана к специфике конкретного рода деятельности компании или организации. Например: при закупке материальных ценностей происходит оформление товарно-сопроводительных документов (накладных, приемо-передаточных актов, приходных складских ордеров и т.д.), регистрируемых в качестве операционных документов, атрибутика которых очень важна для принятия управленческих решений. Информация из операционных документов используется при сложной аналитической и синтетической обработке, и, в частном случае, может быть получена пользователем через систему отчетов.
Характерной чертой RDBMS является способность обработки данных как множества; файловые системы и СУБД с другими моделями обрабатывают данные способом "запись-за-записью". С RDBMS можно общаться, используя структурированный язык запросов (Structured Query Language - SQL). SQL - непроцедурный язык, который разработан специально для операций доступа к нормализованным структурам реляционных баз данных. Основное различие между SQL и традиционными языками программирования состоит в том, что операторы SQL указывают, какие операции с данными должны выполниться, а не способ их выполнения.
Рис.24. Функциональная схема информационной системы на платформе Windows NT.
Microsoft Windows NT Server
Windows NT 4 Server и Internet Information Server (IIS) являются исключительно коммерческой web-платформой, разработанной компанией Microsoft. Данная ОС имеет удобный интуитивно понятный интерфейс взаимодействия с пользователем, что делает её довольно привлекательной для использования. Windows NT 4 Server оснащена службой балансировки нагрузки (Windows NT Load Balancing Services), которая позволяет создавать группу серверов и распределять нагрузку между ними. Пользователи при этом видят только один IP-адрес и полагают, что существует только один сервер. Однако служба Load Balancing Services - это неполноценная кластерная система, поэтому она не способна обеспечить такое высокое быстродействие, как настоящий кластер. Windows NT не может работать с мощными аппаратными и программными средствами кластеров, в том числе с собственной службой Microsoft Cluster Service, продуктами серии Infinity компании IBM и продуктами NonStop производства Compaq. У Microsoft есть продукты всех этапов разработки для Web, однако обычно их заменяют изделиями других фирм. Пакет Allaire ColdFusion 4.0, как среда разработки для Web, - отличный пример этого.
Netscape Enterprise на платформе Windows NT
Netscape Enterprise в среде Windows NT представляет собой Web-сервер, ориентированный на большие нагрузки. Для него имеется множество моделей программирования. Например, помимо общепринятых моделей разработки HTML и CGI в продукте Netscape предусмотрены возможности работы с JavaScript на стороне сервера. Почти все функции сервера Netscape для Solaris работают и на платформе Windows NT.
При тестировании на производительность IIS показал неплохие результаты. Скорость при работе IIS достигнута за счет хорошо организованной обработкой файлового ввода-вывода. Дополняет обработку сообщений в Windows NT возможность асинхронного ввода-вывода, позволяющая обрабатывать запрос одновременно с выполнением операций ввода-вывода в файл или ЛВС. Подобная функция имеется в Solaris, но до сих пор не полностью реализована в Linux. По результатам теста IIS проигрывает SWW при обработке статических страниц, а Netscape Enterprise на платформе NT оказался менее производительным во всех режимах, чем на платформе Solaris.
В 1970-1971 годах Е.Ф.Кодд опубликовал две статьи, в которых ввел реляционную модель данных и реляционные языки обработки данных - реляционную алгебру и реляционное исчисление.
Реляционная алгебра Процедурный язык обработки реляционных таблиц. Реляционное исчисление Непроцедурный язык создания запросов.
Все существующие к тому времени подходы к связыванию записей из разных файлов использовали физические указатели или адреса на диске. В своей работе Кодд продемонстрировал, что такие базы данных существенно ограничивают число типов манипуляций данными. Более того, они очень чувствительны к изменениям в физическом окружении. Когда в компьютерной системе устанавливался новый накопитель или изменялись адреса хранения данных, требовалось дополнительное преобразование файлов. Если к формату записи в файле добавлялись новые поля, то физические адреса всех записей файла изменялись. То есть такие базы данных не позволяли манипулировать данными так, как это позволяла бы логическая структура. Все эти проблемы преодолела
Рис.25. Функциональная схема информационной системы на платформе Linux.
Все больше растет популярность Linux и её респектабельность как платформы разработки для Web и корпоративных сред. Linux характеризуется рядом преимуществ, таких как широкое сообщество разработчиков открытого кода, поддержка многих моделей комплектующих, и, главная особенность состоит в том, что Linux полностью бесплатная ОС. Linux является разновидностью Unix и изначально создавалась для работы в сетях. В каждой новой версии Linux появляются некоторые усовершенствования, направленные на повышение масштабируемости и производительности серверных прикладных программ.
Apache и Stronghold
Для тестов в среде Linux был использован Stronghold Web Server 2.4.1 компании C2Net. Stronghold - это сервер с возможностями применения технологии SSL, в основе которого лежит Web-сервер Apache. Сервер Stronghold обладает всеми преимуществами Apache, в том числе мощными средствами обеспечения работы с виртуальными базовыми машинами (способность одного web-сервера обслуживать несколько машин одновременно).
Платформа Stronghold, подобно Linux, имеет заслуженную репутацию надежной и стабильной системы. Но Stronghold - и, следовательно, Apache - не оптимизированы для многопроцессорных сред. Поэтому Web-узлы, основанные на серверах Apache, лучше масштабировать путем добавления серверов, а не процессоров.
Напротив, IIS и Netscape Enterprise имеют многопотоковую архитектуру, которая масштабируется на несколько процессоров одного сервера. При испытаниях на многопроцессорных станциях они, как правило, обгоняли Stronghold.
Apache позволяет тонко настраивать ряд параметров (такие как число процессов, доступных клиентам). Для Apache, как и для других серверов, есть механизм работы сервлетам (Apache Jserv). Механизм работы с сервлетами встраивается в Apache в виде модуля и работает с любой совместимой с JDK 1.1 виртуальной Java-машиной. По производительности дуэт Apache-Linux оказался оптимальным для однопроцессорных систем. По обработке статических страниц он немного уступал SWW и IIS, а по стабильности работы превосходил серверы на платформеWindows NT.
Linux - это функциональность UNIX + пользовательско-ориентированный интерфейс Windows-систем. Большая часть поддерживаемого Linux оборудования - это то, что пользователи реально у себя имеют. Как в результате оказалось - большая часть популярной периферии для 80386/80486 поддерживается (действительно, Linux поддерживает оборудование, которое в ряде случаев не поддерживают некоторые коммерческие UNIX). Хотя некоторые достаточно экзотические устройства пока не поддерживаются.
Важным вопросом при создании АИС является обеспечение жизнестойкости и надежности работы информационных серверов. В качестве иллюстрации эффективности платформы приведем расчет параметров для сервера с 25000 посетителей в день []. Подсчет загрузки: 24ч*60мин*60 сек=86400 секунд в сутках, если каждый посетитель берет с сервера по 10 документов (*.html + графика) то при равномерном распределении загрузки получается 3 обращения к серверу в секунду. Реальное распределение трафика носит характер кривой Гаусса либо синусоиды (в зависимости от содержания сервера), в максимумах которых загрузка достигает 10-20 обр/с. Для нормальной работы такому серверу необходимо около 400 Mb RAM, при хорошей настройке - не менее 200.
При правильной конфигурации сервера не рекомендуется использовать swap. все должно помещаться в оперативной памяти (имеется ввиду, что у сервера swap-область быть должна, но она обязана быть пустой). Для предотвращения перегрузок рекомендуется пользоваться несколькими правилами, снижающими загрузку сервера. Придерживаясь этих правил можно съэкономить около 30% ресурсов сервера.
Oracle Server - полнофункциональная реляционная СУБД, которая идеально подходит для архитектур клиент/сервер и интернет/интранет. Особенности внутренней архитектуры Oracle ориентированы на обеспечение готовности, максимальной пропускной способности, безопасности и эффективного использования ресурсов.
Oracle также присущи черты, связанные с используемым языком программирования, которые способствуют ускорению разработки и улучшению эффективности серверной части приложений:
Один из основных компонентов Oracle Server - его процессор PL/SQL. (PL - Procedural Language - процедурный язык.)
PL/SQL - язык Oracle четвертого поколения, объединяющий структурированные элементы процедурного языка программирования с языком SQL, разработанный специально для организации вычислений в среде клиент/сервер. Он позволяет передать на сервер программный блок PL/SQL, содержаший логику приложения, как оператор SQL, одним запросом. Используя PL/SQL, можно значительно уменьшить объем обработки в клиентской части приложения и нагрузку на сеть. Например, может понадобиться выполнить различные наборы операторов SQL в зависимости от результата некоторого запроса. Запрос, последующие операторы SQL и операторы условного управления могут быть включены в один блок PL/SQL и пересланы серверу за одно обращение к сети.
При этом вся логика приложений делится на клиентскую и серверную части. Серверная часть может быть релаизована в виде функций, хранимых процедур и пакетов.
Функции. Часть логики приложения ориентированной на выполнение конкретного комплекса операций на сервере, результат которых возвращается в виде значения функции. Откомпилированные функции и их исходные тексты содержатся в базе данных.
Хранимые процедуры. Часть логики приложения, особенно нуждающаяся в доступе к базе данных, может храниться там, где она обрабатывается (на сервере). Хранимые процедуры не возвращают значения результата, обеспечивают удобный и эффективный механизм безопасности. Откомпилированные хранимые процедуры и их исходные тексты содержатся в базе данных.
Пакеты. Часть логики приложений: фукций и пакетов, предназначеных для решениях задач в рамках одного модуля (подсистемы) АИС.
Триггеры базы данных. Можно использовать триггеры, чтобы организовать сложный контроль целостности, выполнять протоколирование (аудит) и другие функции безопасности, реализовать в приложениях выдачу предупреждений и мониторинг.
Декларативная целостность. Ограничения активизируются сервером всякий раз, когда записи вставляются, обновляются или удаляются. В дополнение к ограничениям ссылочной целостности, которые проверяют соответствие первичного и внешнего ключей, можно также накладывать ограничения на значения, содержащиеся в столбцах таблицы. Поддержка целостности на сервере уменьшает размер кода клиентской части, необходимого для проверки допустимости данных, и увеличивает устойчивость бизнес- модели, определенной в базе данных.
Список, зарезервированных слов PL/SQL
Координаты точки, характеризующей сбалансированную систему документооборота (бизнес - модель функционирования предприятия), должны иметь ненулевые значения, а в идеале быть примерно одинаковы - соответствовать друг другу. Главное не автоматизация как таковая, а оптимизация потоков документов и интегральность - даже самая прекрасная программа автоматизации документооборота окажется напрасным вложением средств, если модель одномерная или плоская.
Нет большого смысла говорить о жизненном цикле документов без связи с основными бизнес-процессами предприятия. Система автоматизации документооборота, функционирующая в отрыве от всех слоев, будет мертва, мало того, она может нанести вред: запутать и без того неуправляемые бизнес - процессы, отвлечь персонал от выполнения основной работы ради поддержания системы автоматизации документооборота, по сути дела, ничего не автоматизирующего. И, как следствие, раздувание штатного расписания и дискредитация самой идеи автоматизации делопроизводства. Знакомая ситуация - все работники заняты, работа кипит, однако если рассмотреть две разные фирмы имеющие равный доход, занимающиеся одним бизнесом, то штат сотрудников у одной из них будет вдвое больше, чем у другой. При создании или внедрении АИС необходимо всегда помнить, что компьютер или комплект программных средств типа workflow - это только голый инструмент, неумелое использование которого чаще всего влечет за собой только вред, а не долгожданное облегчение и освобождение от внутрикорпоративных проблем по управлению.
Словарь данных. Первыми таблицами, создаваемыми в любой базе данных, являются системные таблицы, или словарь данных Oracle. Системные таблицы хранят информацию о структуре базы данных и объектов внутри нее, и Oracle обращается к ним, когда нуждается в информации о базе данных или когда выполняет оператор DDL (Data Definition Language - язык определения данных) либо оператор DML (Data Manipulation Language - язык манипулирования данными). Эти таблицы никогда непосредственно не обновляются, однако обновление в них происходит в фоновом режиме всякий раз, когда выполняется оператор DDL. Главные таблицы словаря данных содержат нормализованную информацию, которая является довольно трудной для восприятия человеком, так что в Oracle предусмотрен набор представлений, выдающих информацию главных системных таблиц в более понятном виде. Oracle запрашивает информацию из таблиц словаря данных для синтаксического разбора любого оператора SQL. Информация кэшируется в области словаря данных разделяемого пула в SGA.
Сегменты отката. Когда данные в Oracle изменяются, изменение должно быть или подтверждено, или отменено. Если изменение отменяется ("откатывается назад"), содержимое блоков данных восстанавливается в исходное состояние, существовавшее до изменения. Сегменты отката - это системные объекты, которые поддерживают этот процесс. Всякий раз, когда осуществляются какие-либо изменения в таблицах приложения или в системных таблицах, в сегмент отката автоматически помещается предыдущая версия изменяемых данных, так что старая версия данных всегда доступна, если требуется отказ. Другие пользователи при необходимости чтения данных, в то время как изменение не завершено, всегда имеют доступ к прежней версии из сегмента отката. Им предоставляется непротиворечивая по чтению версия данных. После того как изменение фиксируется, доступной становится измененная версия данных. Сегменты отката получают внешнюю память таким же образом, как другие сегменты - экстентами. Сегменту отката, однако, нужно первоначально распределить минимум два экстента.
Временные сегменты используют пространство в файлах базы данных, чтобы создать временную рабочую область для промежуточных стадий обработки SQL и для больших операций сортировки. Oracle создает временные сегменты в процессе работы и они автоматически удаляются, когда фоновый процесс SMON больше в них не нуждается. Если требуется только небольшая рабочая область, Oracle не создает временного сегмента, но вместо этого как временная рабочая область используется часть памяти PGA (глобальная область программы). Администратор базы данных может определять, в каких табличных пространствах будут располагаться временные сегменты для различных пользователей.
Сегмент начальной загрузки (или кэш-сегмент) - специальный тип объекта в базе данных, выполняющий начальную загрузку кэша словаря данных в область разделяемого пула SGA. Oracle использует кэш-сегмент только при запуске экземпляра и не обращается к нему вплоть до рестарта экземпляра. Сегмент необходим, чтобы выполнить начальную загрузку кэша словаря данных, после чего занимаемая им память освобождается.
Словарь данных.
ALL_SNAPSHOTS | Все моментальные копии, доступные пользователю. |
ALL_SOURCE | Исходный текст объектов, доступных пользователю. |
ALL_SYNONYMS | Все синонимы, доступные пользователю. |
ALL_TABLES | Описание таблиц, доступных пользователю. |
ALL_TAB_COLUMNS | Столбцы всех таблиц, представлений и кластеров, доступных пол. |
ALL_TAB_COMMENTS | Комментарии к таблицам и представлениям, доступным пользователю. |
ALL_TAB_PRIVS | Привилегии на объекты, которые получил пользователь непосредственно, через роль или как PUBLIC. |
ALL_TAB_PRIVS_MADE | Привилегии пользователя и привилегии на его объекты. |
ALL_TAB_PRIVS_RECD | Привилегии на объекты, которые получил пользователь непосредственно, через роль или как PUBLIC. |
ALL_TRIGGERS | Триггеры, доступные пользователю. |
ALL_TRIGGER_COLS | Использование столбцов в пользовательских триггерах, в триггерах для его таблиц или во всех триггкрах, если он имеет привелегию CREATE ANY TRIGGER. |
ALL_USERS | Информация о всех пользователях базы данных. |
ALL_VIEWS | Текст представлений, доступных пользователю. |
AUDIT_ACTIONS | Коды типов аудиторских действий. |
CAT | Синоним для USER_CATALOG. |
CLU | Синоним для USER_CLUSTERS. |
CODE_PIECES | Используется для создания представлений _OBJECT_SIZE. |
CODE_SIZE | Используется для создания представлений _OBJECT_SIZE. |
COLS | Синоним для USER_TAB_COLUMNS. |
COLUMN_PRIVILEGES | Привилегии на столбцы, которые принадлежат пользователю, которые он выдал или получил непосредственно, через роль или как пользователь PUBLIC. |
DBA_2PC_NEIGHBORS | Информация от вновь поступивших и отработанных запросов задержанных транзакций. |
DBA_2PC_PENDING | Информация о транзакциях, в которых произошел сбой во время фазы подготовки. |
DBA_AUDIT_EXISTS | Журнал записей протокола, созданных командой AUDIT EXISTS. |
DBA_AUDIT_OBJECT | Журнал протокола команд над объектами. Создается в файле CATAUDIT.SQL. |
DBA_AUDIT_SESSION | Журнал протокола команд входа и выхода из ORACLE. |
DBA_AUDIT_STATEMENT | Синоним для USER_AUDIT_STATEMENT. |
DBA_AUDIT_TRAIL | Журнал протокола всей системы. |
DBA_BLOCKERS | Все сеансы, которые держат блокировки, которых ожидает кто-то другой. |
DBA_CATALOG | Все таблицы, представления, синонимы и последовательности, принадлежащие пользователю. |
DBA_CLUSTERS | Описание всех кластеров. |
DBA_CLU_COLUMNS | Соответствие столбцов таблиц столбцам кластера. |
DBA_COL_COMMENTS | Комментарии к столбцам всех таблиц и представлений. |
DBA_COL_PRIVS | Привилегии на все столбцы базы данных. |
DBA_CONSTRAINTS | Определения правил целостности для всех таблиц базы данных. |
DBA_CONS_COLUMNS | Информация о столбцах в определениях правила целостности, созданных пользователем. |
DBA_DATA_FILES | Файлы базы данных. |
DBA_DB_LINKS | Все связи базы данных. |
DBA_DDL_LOCKS | Все блокировки DDL в базе данных и все связанные с ними запросы к блокировкам DML. |
DBA_DEPENDENCIES | Зависимости (от) всех объектов базы данных. |
DBA_DML_LOCKS | Все блокировки DML в базе данных и все связанные с ними запросы к блокировкам DML. |
DBA_ERRORS | Текущие ошибки для всех хранимых объектов. |
DBA_EXP_FILES | Описание экспортных файлов. |
DBA_EXP_OBJECTS | Объекты, которые экспортировались. |
DBA_EXP_VERSION | Номер версии последнего экспорта. |
DBA_EXTENTS | Экстенты всех сегментов базы данных. |
DBA_FREE_SPACE | Свободные экстенты в табличных пространствах, доступных пользователю. |
DBA_INDEXES | Описание индексов, доступных пользователю. |
DBA_IND_COLUMNS | Столбцы индексов пользователь или его индексированных таблиц. |
DBA_LOCKS | Все блокировки и задержки в базе данных, а также все поступающие на них запросы. |
DBA_OBJECTS | Все объекты базы данных. |
DBA_OBJECT_SIZE | Размер объектов PL/SQL базы данных. |
DBA_OBJ_AUDIT_OPTS | Параметры аудиторства для всех таблиц и представлений. |
DBA_PRIV_AUDIT_OPTS | Параметры аудиторства для привилегий. |
DBA_ROLES | Все роли в базе данных. |
DBA_ROLE_PRIVS | Роли, выданные пользователям или другим ролям. |
DBA_ROLLBACK_SEGS | Описание сегментов отката базы данных. |
DBA_SEGMENTS | Распределение пространства для всех сегментов базы данных. |
DBA_SEQUENCES | Описание всех последовательностей в базе данных. |
DBA_SNAPSHOTS | Все моментальные копии в базе данных. |
DBA_SNAPSHOT_LOGS | Все журналы моментальных копий в базе данных. |
DBA_SOURCE | Исходный текст всех хранимых объектов. |
DBA_STMT_AUDIT_OPTS | Параметры системного аудиторства. |
DBA_SYNONYMS | Все синонимы в базе данных. |
DBA_SYS_PRIVS | Системные привилегии, выданные пользователям или ролям. |
DBA_TABLES | Описание всех таблиц базы данных. |
DBA_TABLESPACES | Описание всех табличных пространств в базе данных. |
DBA_TAB_COLUMNS | Столбцы всех таблиц, представлений и кластеров. |
DBA_TAB_COMMENTS | Комментарии к таблицам и представлениям базы данных. |
DBA_TAB_PRIVS | Привилегии на объекты всей базы данных. |
DBA_TRIGGERS | Описание всех триггеров базы данных. |
DBA_TRIGGERS_COLS | Использование столбцов в пользовательских триггерах или в триггерах для его таблиц. |
DBA_TS_QUOTAS | Квоты всех пользователей в табличном пространстве. |
DBA_USERS | Информация о всех пользователях базы данных. |
DBA_VIEWS | Текст всех представлений базы данных. |
DBA_WAITERS | Все сеансы, ожидающие или владеющие блокировками. |
DBMS_ALERT_INFO | Таблица регистрируемых сигналов тревоги. |
DBMS_LOCK_ALLOCATED | Таблица пользовательских блокировок. |
DEPTREE | Дерево зависимости объектов. |
DICT | Синоним для DICTIONARY. |
DICTIONARY | Описание таблиц и представлений словаря данных. |
DICT_COLUMNS | Описание столбцов таблиц и представлений словаря данных. |
ERROR_SIZE | Используется для создания представлений _OBJECT_SIZE. |
GLOBAL_NAME | Содержит одну строку с глобальным именем текущей базы данных. |
IDEPTREE | Отсортированный, сформатированный вариант DEPTREE. |
IND | Синоним для USER_INDEXES. |
INDEX_HISTOGRAM | Содержит статистику команды ANALYZE INDEX VALIDATE STRUCTURE. |
INDEX_STATS | Содержит статистику команды ANALYZE INDEX VALIDATE STRUCTURE. |
LOADER_COL_INFO | Представление SQL*LOADER, используемое для прямой загрузки. |
LOADER_CONSTRAINT_INFO | Представление SQL*LOADER, используемое для прямой загрузки. |
LOADER_INDCOL_INFO | Представление SQL*LOADER, используемое для прямой загрузки. |
LOADER_IND_INFO | Представление SQL*LOADER, используемое для прямой загрузки. |
LOADER_PARAM_INFO | Представление SQL*LOADER, используемое для прямой загрузки. |
LOADER_TAB_INFO | Представление SQL*LOADER, используемое для прямой загрузки. |
LOADER_TRIGGER_INFO | Представление SQL*LOADER, используемое для прямой загрузки. |
OBJ | Синоним для USER_OBJECTS. |
PARSED_PIECES | Используется для создания представлений _OBJECT_SIZE. |
PARSED_SIZE | Используется для создания представлений _OBJECT_SIZE. |
PUBLIC_DEPENDENCY | Зависимости между объектами. |
RESOURCE_COST | Стоимость каждого ресурса. |
ROLE_ROLE_PRIVS | Информация о ролях, назначенных другим ролям. |
ROLE_SYS_PRIVS | Информация о системных привилегиях, назначенных ролям. |
ROLE-TAB-PRIVS | Информация об объектных привилегиях, назначенных ролям. |
SEQ | Синоним для USER_SEQUENCES. |
SESSION-PRIVS | Привилегии, которые пользователь имеет в настоящий момент. |
SESSION-ROLES | Роли, включенные для пользователя в настоящий момент. |
SOURCE-SIZE | Используется для создания представлений -OBJECT_SIZE. |
STMT_AUDIT_OPTION_MAP | Таблица описания кодов типов параметров протоколирования. |
SYN | Синоним для USE_SYNONYMS. |
SYSTEM_PRIVILEGE_MAP | Таблица описания кодов системных привилегий. |
TABLE_PRIVILEGES | Привилегии на объекты, к которым пользователь получил привилегии, выдал, для которых он является владельцем или привилегия выдана пользователю PUBLIC. |
TABS | Синоним для USER_TABLES. |
USER_AUDIT_OBJECT | Записи протокольного журнала для команд обращающихся к объекту. |
USER_AUDIT_.SESSION | Записи протокольного журнала о входах и выходах в систему. |
USER_AUDIT_STATEMENT | Записи протокольного журнала о следующих командах: GRANT, REVOKE, AUDIT, NOAUDIT и ALTER SYSTEM. |
USER_AUDIT_TRAIL | Записи протокольного журнала относящиеся к пользователю. |
USER_CATALOG | Все таблицы, представления, синонимы и последовательности, принадлежащее пользователю. |
USER_CLUSTERS | Описание кластеров пользователя. |
USER_CLU_COLUMNS | Соответствие столбцов таблиц столбцам кластера. |
USER_COL_COMMENTS | Комментарии к столбцам пользовательских таблиц и представлений. |
USER_COL_PR1VS | Привилегии на столбцы, для которых пользователь является владельцем, выдал или получил привилегии. |
USER_COL_PRIVS_MADE | Привилегии на столбцы, для которых пользователь является владельцем. |
USER_COL_PRIVS_RECD | Привилегии на столбцы, для которых пользователь является владельцем, выдал или получил привилегии. |
USER_CONSTRAINTS | Определения правил целостности для таблиц пользователя. |
USER_CONS_COLUMNS | Информация о столбцах в определениях правила целостности, созданных пользователем. |
USER.DB_LINKS | Связи базы данных, принадлежащие пользователю. |
USER_DEPENDENCIES | Зависимости объектов пользователя. |
USER_ERRORS | Текущие ошибки для всех объектов, принадлежащих пользователю. |
USER_EXTENTS | Экстенты сегментов, выделенные объектам, принадлежащим пользователю. |
USER_FREE_SPACE | Свободные экстенты в табличных пространствах, доступных пользователю |
USER_INDEXES | Описание индексов, доступных пользователю |
USER_IND_COLUMNS | Столбцы индексов пользователь или его индексированных таблиц. |
USER_OBJECTS | Объекты, принадлежащие пользователю. |
USER_OBJECT_SIZE | Размер объектов PL/SQL, принадлежащих пользователю. |
USER_OBJ_AUDIT_OPTS | Параметры аудиторства для пользовательских таблиц и представлении. |
USER_RESOURCE_LIMITS | Ограничения на ресурсы, доступные текущему пользователю. |
USER_ROLE_PRIVS | Роли, выданные текущему пользователю. |
USER_SEGMENTS | Распределение пространства для сегментов объектов пользователя. |
USER_SEQUENCES | Описание последовательностей, созданных пользователем. |
USER_SNAPSHOTS | Все моментальные копии, доступные пользователю. |
USER_SNAPSHOT_LOGS | Все журналы моментальных копий, принадлежащие пользователю. |
V$ACCESS | Заблокированные на текущий момент объекты и сеансы, в которых они используются. |
V$ARCHIVE | Информация о журналах архива для каждого потока системы базы данных. . |
V$BACKUP | Статус сброса всех ON-LINE баз данных. |
V$BGPROCESS | Описание фоновых процессов. |
V$CIRCUIT | Информация о виртуальных цепях. |
V$DATABASE | Информация из контрольного файла о базе данных. |
V$DATAFILE | Информация из контрольного файла о файлах базы данных. |
V$DBFILE | Информация о всех файлах базы данных. |
V$DB-OBJECT-CACHE | Объекты базы данных, находящиеся в библиотечном кеше. |
V$DISPATCHER | Информация о процессах диспетчера. |
V$ENABLEDPRIVS | Включенные привилегии. |
V$F1LESTAT | Информация о статистике ввода/вывода в файл. |
V$FIXED-TABLE | Все таблицы, представления и производные та |
V$INSTANCE | блицы в базе данных. |
V$INSTANCE | Статус текущего экземпляра |
V$ LATCH | Число задержек каждого типа. (Строки этой таблицы однозначно соответствуют строкам таблицы V$ATCHHOLDER) |
V$LATCHHOLDER | Информация о владельцах задержек. |
V$LATCHNAME | Закодированные имена задержек из таблицы V$ATCH. |
V$LIBRARYCACHE | Статистика по управлению буферами библиотечной памяти. |
V$LICENSE | Параметры лицензии. |
V$ADCSTAT | Статистика SQL*Loader при выполнении прямой загрузки. |
V$LOADTSTAT | Статистика SQL* Loader при выполнении прямой загрузки. |
V$LOCK | Блокировки и ресурсы. |
V$LOG | Информация о журнальном файле. |
V$LOGFILE | Информация о журнальных файлах. |
V$LOGHIST | Информация об истории журнального файла. |
V$LOG-HISTORY | Информация об истории журнального файла. |
U$NLS-PARAMETERS | Текущие значения параметров NLS. |
V$OPEN-CURSOR | Открытые пользователями курсоры. |
V$PARAMETER | Информация о текущих значениях параметров. |
V$PROCESS | Информация о всех активных процессах. |
V$QUEUE | Информация об очереди мульти-серверных сообщений. |
V$RECOVERY-LOG | Журнальные файлы, необходимые для полного восстановления базы данных. |
V$RECOVER-FILE | Статус файлов, которые нужно восстанавливать. |
V$REQD1ST | Гистограмма времен обращения, разделенная на 12 столбцов или периодов времени. |
V$RESOURCE | Информация о ресурсах. |
V$ROLLNAME | Имена всех активных сегментов отката. |
V$ROLLSTAT | Статистика для всех активных сегментов отката. |
V$ROWCACHE | Статистика активности словаря данных. (Одна строка для каждого буфера памяти) |
V$SECONDARY | Представление Trusted ORACLE, u котором перечислены вторичнее смонтированные базы данных. |
V$SESS10N | Информация о текущих сеансах. |
V$SESS10N-WA1T | Список ресурсов или событий, которых ожидает текущий сеанс. |
V$SESSTAT | Статистика для текущих сеансов. |
V$SGA | Суммарная информация об SGA. |
V$SHARED-SERVER | Информация о вcex разделяемых процессах сервера. |
V$SQLAREA | Статистика о разделяемых буферах памяти курсора. Одна строка для каждого курсора. |
V$SQLTEXT | Текст команд SQL, находящихся в разделенных курсорах SGA. |
V$STATNAME | Раскодированные имена для статистик .из таблицы V$SESSTAT. |
V$SYSLABEL | Представление Trusted ORACLE, в котором перечислены системные метки. |
V$SYSSTAT | Текущие значения статистик из таблицы V$SESSTAT. |
V$THREAD | Информация о потоках, содержащихся п контрольном файле. |
V$TIMER | Текущее время в сотых долях секунды. |
V$TRANSACTION | Информация о транзакциях. |
V$TYPE-SIZE | Размеры различных компонентов базы данных. |
V$VERSION | Имена версии компонентов библиотеки ядра ORACLE. |
V$WAITSTAT | Статистика содержимого блока. Обновляется только при включенной временной статистики. |
Столбец | Тип данных |
OWNER-NAME | VARCHAR2 |
TABLE-NAME | VARCHAR2 |
CLUSTER-NAME | VARCHAR2 |
HEAD_ROWID | ROWID |
TIMESTAMP | DATE |
Столбец | Тип данных |
HEAD.ROWID | ROWID |
OWNER | VARCHAR2 |
TABLE-NAME | VARCHAR2 |
CONSTRAINT | VARCHAR2 |
Столбец | Тип данных |
STATEMENT.ID | VARCHAR2 |
TIMESTAMP | DATE |
REMARKS | VARCHAR2 |
OPERATION | VARCHAR2 |
OPTIONS | VARCHAR |
OBJECT_NODE | VARCHAR2 |
OBJECT_OWNER | VARCHAR2 |
OBJECT.NAME | VARCHAR |
OBJECT_INSTANCE | NUMBER |
OBJECT_TYPE | VARCHAR2 |
SEARCH_COLUMNS | NUMBER |
ID | NUMBER |
PARENT.ID | NUMBER |
POSITION | NUMBER |
OTHER | LONG |
При построении корпоративных информационных сетей, как правило, используются две базовые архитектуры: Клиент-сервер и Интернет/Интранет. В чем же преимущества и недостатки использования каждой из данных архитектур и когда их применение оправдано? Найти ответы на эти вопросы мы постараемся в данном разделе.
Одной из самых распространенных на сегодня архитектур построения корпоративных информационных систем является архитектура КЛИЕНТ-СЕРВЕР.
Рис.12. Компоненты архитектуры Клиент-сервер и их свойства.
В реализованной по данной архитектуре информационной сети клиенту предоставлен широкий спектр приложений и инструментов разработки, которые ориентированы на максимальное использование вычислительных возможностей клиентских рабочих мест, используя ресурсы сервера в основном для хранения и обмена документами, а также для выхода во внешнюю среду. Для тех программных систем, которые имеют разделение на клиентскую и серверную части, применение данной архитектуры позволяет лучше защитить серверную часть приложений, при этом, предоставляя возможность приложениям либо непосредственно адресоваться к другим серверным приложениям, либо маршрутизировать запросы к ним. Средством (инструментарием) для реализации клиентских модулей для ОС Windows в данном случае является, как правило, Delpfi.
Однако при этом частые обращения клиента к серверу снижают производительность работы сети, кроме этого приходится решать вопросы безопасной работы в сети, так как приложения и данные распределены между различными клиентами. Распределенный характер построения системы обуславливает сложность ее настройки и сопровождения. Чем сложнее структура сети, построенной по архитектуре КЛИЕНТ-СЕРВЕР, тем выше вероятность отказа любого из ее компонентов.
Рис.13. Сравнительные характеристики двух- и трехзвенной архитектуры клиент-сервер.
В последнее время все большее развитие получает архитектура Интернет/Интранет. В основе реализации корпоративных информационных систем на базе данной архитектуры лежит принцип "открытой архитектуры", что во многом определяет независимость реализации корпоративной системы от конкретного производителя. Все программное обеспечение таких систем реализуется в виде аплетов или сервлетов (программ написанных на языке JAVA) или в виде cgi модулей (программ написанных как правило на Perl или С).
Основными экономическими преимуществами данной архитектуры являются:
- это механизм для выбора, обработки и форматирования информации. Возможность взаимодействия, обеспечиваемая CGI, предоставляется во многих формах, но в основном это динамический доступ к информации, содержащейся в базах данных. Например, многие узлы применяют CGI для того, чтобы пользователи могли запрашивать базы данных и получать ответы в виде динамически сформированных Web-страниц (рис.17).
Имеются в виду узлы, предоставляющие доступ к базам данных, средствам поиска, и даже информационные системы, предающие сообщения в ответ на ввод пользователя. Все эти узлы используют CGI, чтобы принять ввод пользователя и передать его с сервера Web базе данных. База данных обрабатывает запрос и возвращает ответ серверу, который в свою очередь пересылает его опять броузеру для отображения. Без СGI база данных этого не смогла бы. Данный интерфейс можно считать посредником между броузером, сервером и любой информацией которая должна передаваться между ними.
В отличии от HTML, CGI не является языком описания документов. Собственно, это и не язык вообще; это стандарт. Он просто определяет, как серверы Web передают информацию, используя приложения, исполняемые на сервере. Это способ расширения возможностей сервера Web без преобразования при этом его самого. Подобно тому как броузер Web обращается к вспомогательным приложениям для обработки информации, которую он не понимает, CGI предоставляет серверу Web возможность преложить работу на другие приложения, такие как базы данных и средства поиска.
Рис.17. Схема взаимодействия между броузером, сервером и сценарием CGI
При написании программы шлюза (которая может конвертировать ввод из одной системы в другую) CGI позволяет использовать почти любой язык программирования. Способность использовать при написании программы шлюза любой язык, даже язык сценариев, чрезвычайно важна. Самыми популярными языками являются shell, Perl, C и С++. Сценарием традиционно называют программу, которая выполняется с помощью интерпретатора, выполняющего каждую строку программы по мере ее считывания.
Последовательность действий при взаимодействии клиента с программой запущенной на Web-сервере можно сформулировать как следующая последовательность шагов.
При этом совсем неважно, как планируется или уже реализован документооборот: вручную или путем автоматизации с помощью мощных западных либо отечественных пакетов - всегда на первом месте должна быть четкая стратегия, направленная на упорядочение бизнес - процессов. Иначе говоря, прежде чем что-то делать, неплохо было бы ответить на вопрос, кому и почему выгодно выполнять те или иные процессы, имеющие место на предприятии.
Создает автономную хранимую функцию.
CREATE PACKAGE
Создает спецификацию для хранимого пакета.
CREATE PACKAGE BODY
Создает тело хранимого пакета.
img src="oracle_pr77.gif" border=0 WIDTH=461 height=26>
CREATE PROCEDURE
Создает автономную хранимую процедуру
Приведем примеры реализации пакетов, функций и процедур.
/* ******Пакет обработки ошибок ********************* */ create or replace package app_err as /* Получение текста аварийного завершения */ function get_err return varchar2; /* Установка текста аварийного завершения */ procedure set_err ( error_text in varchar2); /* Установка текста аварийного завершения и само завершение */ procedure raise_err ( error_text in varchar2); end app_err; create or replace package body app_err as app_err_text varchar2(32767); /* *********************************************************** */ function get_err return varchar2 is A varchar (32767); Begin A := app_err_text; app_err_text := null; Return ( A ); End; /* *********************************************************** */ procedure set_err(error_text in varchar2) is Begin app_err_text := error_text; End; /* ************************************************************** */ procedure raise_err ( error_text in varchar2) is Begin app_err_text := error_text; raise_application_error (-20000, error_text); End; end app_err; /* ** Функция осуществляющая расшифровку пароля пользователя в БД ** */ create or replace function password return varchar2 is name varchar2(23); pass varchar2(23); begin select ORANAME, CRYPT_PASSWORD into name, pass from USERS where USER_ORANAME = user; pass := encrypt( pass, name ); return( pass ); end; /*Удаляется публичный синоним*/ drop public synonym password; /*Создается публичный синоним*/ create public synonym password for password; /* устанавливаем привелегии*/ grant all on password to admin;
Описывает каждый шаг плана выполнения оператора SQL и помещает (если задано) это описание в указанную таблицу
ROLLBACK (управление транзакцией)
Отменяет все изменения, сделанные до контрольной точки. Отменяет все изменения, произведенные в текущей транзакции, если контрольная точка не задана.
- объект базы данных обеспечивающий выполнение конкретных действий над параметрами функции и возвращающая результат такой обработки.
Для создания функций, процедур, пакетов базы данных используются следующие команды:
.
Когда на Западе, а теперь и в России схлынула первая волна увлечения системами автоматизации документооборота, оказалось,
В настоящее время существует множество архитектур, служащих для разработки информационных систем, ядром которых является СУБД. Клиент в типичной конфигурации клиент/сервер - это автоматизированное рабочее место, использующее графический интерфейс (Graphical User Interface - GUI), обычно Microsoft Windows, Macintosh.
Сервер же, в основном, предназначен для хранения, передачи и распределения информации между клиентами. В клиент/серверной конфигурации программные средства имеют разделение на клиентскую и серверную часть, однако, частые обращения клиента к серверу снижают производительность работы сети и обуславливают сложность настройки системы.
Рассмотрим варианты распределения функций СУБД в клиент/серверной системы. СУБД выполняет три основные функции:
доступ к данным; предоставление данных; бизнес - функции.
Сервер СУБД может быть реализован на различных платформах, под управлением операционных систем UNIX, NetWare, Windows NT, OS/2 и др.
До появления технологии клиент/сервер большинство приложений функционировало на одной ЭВМ. Одна система отвечала не только за всю обработку данных, но также и за выполнение логики приложения. Кроме того, та же система обрабатывала весь обмен с каждым терминалом; все нажатия клавиш и элементы отображения обслуживались тем же процессором, который обрабатывал запросы к базе данных и логику приложения.
Oracle предоставляет такие возможности, как хранимые процедуры, поддержка ограничений целостности, функции, определяемые пользователем, триггеры базы данных и ряд других. Все это позволяет приложению хранить большое количество бизнес-правил (или семантику модели данных) на уровне базы данных. В результате приложение освобождается для выполнения более тонких задач обработки. Как показано на рис.28, такая СУБД намного более устойчива.
Программные продукты Oracle охватывают все основные компоненты архитектуры клиент/сервер, показанной на рис. 29:
1)полнофункциональный высокопроизводительный сервер RDBMS (система управления реляционной базой данных), масштабируемый от портативных ЭВМ до мэйнфреймов;
Исследование различным методов ис средств представления и управления данными в информационных системах проведем на примере интерактивной базы данных патентного обеспечения (ПО) конструкторско-технологического проектирования (КТП). Патент - это документ, свидетельствующий о праве изобретателя на его изобретение. Для стандартизации и облегчения поиска информации были введены различные классификации патентов: (Национальная Классификация Патентов (НКИ), Универсальная Десятичная Классификация (УДК), Международная Классификация Изобретений (МКИ)). Все эти классификации призваны служить инструментом для упорядоченного хранения патентных документов, что облегчает доступ к содержащейся в них информации, быть основой для избирательного распределения информации среди потребителей патентной информации и для получения систематических данных в области промышленного соответствия, что в свою очередь, определяет уровень развития различных областей техники.
Классификации патентов имеют сложную структуру, и для поиска необходимой информации может потребоваться много времени. Возможна организация поиска по всем имеющимся классификациям изобретений, но пока, в качестве примера, мы рассмотрим только Международную Классификацию Изобретений, которая являясь средством для единообразного в международном масштабе классифицирования патентных документов, представляет собой эффективный инструмент для патентных ведомств и других потребителей, осуществляющих поиск патентных документов с целью установления новизны и оценки вклада изобретения в заявленное техническое решение (включая оценку технической прогрессивности и полезности или результата).
Международная Классификация Изобретений (МКИ) имеет иерархическую структуру (представленную на рис.1) и состоит из следующих отделов: 1 - Раздел, 2 - Класс, 3 - Подкласс, 4 - Группа, 5 - Подгруппа. Иерархическая структура классификации МКИ представлена на рис.31.
Рис. 31. Иерархическая структура классификации МКИ - как основа АИс патентного обеспечения КТП.
Язык манипуляции данными (ЯМД) обеспечивает эффективные команды манипуляции сетевой системой базы данных. ЯМД позволяет пользователям выполнять над базой данных операции в целях получения информации, создания отчетов, а также обновления и изменения содержимого записей.
Основные команды ЯМД можно классифицировать следующим образом: команды передвижения, команды извлечения, команды обновления записей, команды обновления наборов.
Табл.2. Основные типы команд ЯМД.
№
Заключение
Процесс преобразования функциональной модели в реляционную включает создание реляционной таблицы для каждого объектного множества модели. Атрибуты объектного множества становятся атрибутами реляционной таблицы. Если в функциональной модели существует ключевой атрибут, то он может использоваться в качестве ключа реляционной таблицы. В противном случае ключевой атрибут таблицы может быть создан аналитиком. Однако, лучше всего, если такой атрибут естественным образом возникает из моделируемого приложения. Отношения один-к-одному и один-ко-многим преобразуются в реляционную модель путем превращения их в атрибуты соответствующей таблицы. Отношения многие-ко-многим соответствуют многозначным атрибутам и преобразуются в четвертую нормальную форму путем создания ключа из двух столбцов, соответствующих ключам двух объектных множеств, участвующих в отношении. Конкретизирующие множества преобразуются путем создания отдельных реляционных таблиц, ключи которых совпадают с ключами обобщающих объектных множеств. Рекурсивные отношения также можно смоделировать, создав новое смысловое имя атрибута, обозначающее отношение.
Итак, мы выбрали метод, которым будем руководствоваться при проектировании автоматизированной информационной системы. Теперь нам необходимо спланировать комплекс работ по созданию нашей системы в соответствии с типовыми этапами разработки АИС, краткая характеристика которых приведена в табл.1., а последовательность трансформации бизнес модели в объекты базы данных на рис.1.
Таблица 1.Этапы проектирования АИС и их характеристики.
№
Метод решения: Функциональное моделирование.
Результат:
1.Концептуальная модель АИС, состоящая из описания предметной области, ресурсов и потоков данных, перечень требований и ограничений к технической реализации АИС.
2.Аппаратно-технический состав создаваемой АИС.
Метод решения: Разработка диаграммы "сущность-связь" (ER (Entity-Reationship) - CASE- диаграммы).
Результат: Разработанное информационное обеспечение АИС: схемы и структуры данных для всех уровней модульности АИС, документация по логической структуре АИС, сгенерированные скрипты для создания объектов БД.
Метод решения: Разработка программного кода с использованием выбранного инструментария.
Результат: Работоспособная АИС.
Таблица пользователей ASUKTP_USER
USER_NNN | Ф.И.О. пользователя | Ораклическое имя | Ссылка на подразделение | Ссылка на должность | Паспортные данные |
Справочник подразделений ASUKTP_PODR
PODR_NNN | Наименование подразделения | Ссылка на подразделение высшего уровня | Контактная информация |
Штатное расписание
SHTAT_NNN | Наименование должности | Ссылка на подразделение | Оклад по должности |
Таблица управления проектами
PROEKT_NNN | Наименование проекта | Описание проекта | Ссылка на руководителя |
Таблица схемотехнических документов
SHEMA_NNN | Наименование документа | Описание документа | Ссылка на NNN проекта | Ссылка на разработчика | имя файла чертежа |
5. Таблица конструкторских документов по сборочным единицам
K_SBED_NNN | Наименование сборочной единицы | Описание | Ссылка на NNN проекта | Ссылка на разработчика (подразделение) | имя файла чертежа |
6. Таблица конструкторских документов по деталям
K_DETAL_NNN | Наименование детали | Описание | Ссылка на NNN сборочной единицы | Ссылка на разработчика (подразделение) | имя файла чертежа |
7. Таблица графических документов
GRAFDOC_NNN | Наименование файла | Дата создания | Тип файла (расширение) | Ссылка на разработчика (подразделение) | Описание |
8. Таблица технологических документов по сборочным единицам
T_SBED_NNN | Ссылка на наименование СБ единицы | Описание | Ссылка на NNN проекта | Ссылка на разработчика (подразделение) | имя файла чертежа |
9. Таблица технологических документов по деталям
T_DETAL_NNN | Ссылка на наименование детали | Описание | Ссылка на NNN тех док. По сборочной единицы | Ссылка на разработчика (подразделение) | имя файла чертежа |
Таблица управления производственным процессом
TP_CONTROL_NNN | Ссылка на техпроцесс | Ссылка на операцию | Ссылка на NNN проекта | Ссылка на разработчика | Отметка о выполнении |
11. Справочник техпроцессов
TP_SPR_NNN | Наименование ТП | Описание |
12. Таблица операций техпроцессов
TP_OPER_NNN | Ссылка на NNN техпроцесса | Описание операции | Ссылка на справочник оборудования | Ссылка на подразделение | Комментарии |
В зависимости от архитектуры СУБД делятся на локальные и распределенные СУБД. Все части локальной СУБД размещаются на одном компьютере, а распределенной на нескольких. За несколько десятилетий последовательно появлялись системы (СУБД), основанные на трех базовых моделях данных: иерархической, сетевой и реляционной. Основные определения теории баз знаний и баз данных представлены в таблице 1.
Табл.1. Основные определения
№
Дополнения к таблице 1.
Процедурные
Декларативные
Каузальные
Неточные
Знания, отвечающие на вопрос "Как решать поставленную задачу?"
Знания, не содержащие в явном виде процедуры решения задач.
Знания о причинно-следственных связях между объектами предметной области
Знания отличающиеся неполнотой или противоречивостью.
В СУБД
В СУБЗ
Данные + Алгоритм = Программа решения задачи
Знания + Стратегия вывода = Решение проблемы.
Продукционная
Фреймовая
Семантическая сеть
Знания представленные в формате "ЕСЛИ-ТО"
Знания представленные в виде набора взаимосвязанный фреймов.
Граф, вершины которого соответствуют объектам или понятиям, а дуги определяют отношения между вершинами.
Фрейм
Фрейм прототип
Конкретный фрейм
Это фрейм у которого значения слотов не определены.
Это фрейм прототип с конкретными значениями.
Отменяет системные привилегии и роли, ранее предоставленные пользователям и ролям. Действие, обратное команде GRANT (системные привилегии и роли ) .
h2>
>>
DiasoftInfo / Корпоративный журнал компании DIASOFT. - М. 1999 г. Материалы аналитической компании СПЛАН. Е.Голенцова Три основных вопроса СУД. ОАО "Весть". 1998. А. Громов Управление бизнес-процессами на основе технологии Workflow// Открытые системы , №1. 1997. Р. Майкл Oracle 7.3. Энциклопедия пользователя: Пер с англ. - К.: Издательство "Диасофт". 1997. - 832 с. Фаронов В.В., Шумаков П.В. Delphi 4. Руководство разработчика баз данных - М.: "Нолидж", 1999. - 560 с., ил. С.Урман Oracle 8. Программирование на языке PL/SQL - М.: Изд-во ЛОРИ, 1999. - 607 с. К. Луни Oracle 8. Настольная книга администратора. - М.: Изд-во ЛОРИ, 1999. - 500 с. С.Бобровски Oracle 8. Архитектура. - М.: Изд-во ЛОРИ, 1999. - 207 с. Г.Хансен, Д.Хансен Базы данных: разработка и управление: Пер. с англ. - М.: ЗАО "Издательство БИНОМ", 1999. - 704 с.: ил. С.Дунаев Доступ к базам данных и техника работы в сети. Практические приемы современного программирования. - М.: ДИАЛОГ-МИФИ, 1999 - 416 с. Р.Петерсен Linux: руководство по операционной системе: в 2 т: Пер с англ. - 2-е изд., перераб. и доп. - К. Издательская группа BHV, 1998. Власов А.И. Технология создания WEB узлов / Конспект лекций - М.: УЦ ОАО Газпром, 1999. - 102 с. Власов А.И., Овчинников Е.М. Банковские и корпоративные автоматизированные информационные системы, принципы, средства и системы документооборота коммерческого банка / Конспект лекций. - М.: Учебный Центр ОАО Газпром, 1999. - 107 с. Овчинников Е.М. Корпоративные информационные системы и технологии / Конспект лекций - М.: Учебный Центр ОАО Газпром, 1999. - 78 с. Материалы периодической печати: Компьютерпресс, "Мир ПК", "Интернет", "Мир интернет", Byte Россия, PC magazine (RE). http://www.oracle.ru http://www.diasoft.ru http://www.vest.msk.ru http://info.iu4.bmstu.ru http://cdl.iu4.bsmtu.ru http://www.microsoft.com http://www.ibm.com http://www.citforum.ru Материалы выставок Comtec, NetCom, UnixExpo, Информатика и др. Материалы 3-го, 4-го и пятого форумов разработчиков АБС.
|
Менталитет российских программистов сформировался именно в крупных вычислительных центрах (ВЦ), основной целью которых было не создание тиражируемых продуктов, а обслуживание сотрудников конкретного учреждения. Этот подход во многом сохранялся и при автоматизации и сегодня. В условиях постоянно изменяющихся законодательства, правил ведения производственной, финансово-хозяйственной деятельности и бухгалтерского учета руководителю удобно иметь рядом посредника между спущенной сверху новой инструкцией и компьютером. С другой стороны, программистов, зараженных "вирусом самодеятельности", оказалось предостаточно, тем более что за такую работу предлагалось вполне приличное вознаграждение.
Создавая свои отделы и управления автоматизации, предприятия и банки пытались обустроиться своими силами. Однако периодическое "перетряхивание" инструкций, сложности, связанные с разными представлениями пользователей об одних и тех же данных, непрерывная работа программистов по удовлетворению все новых и новых пожеланий отдельных работников и как следствие - недовольство руководителей своими программистами несколько остудило пыл как тех, так и других. Итак, первый подход сводился к проектированию
Быстрый рост числа акционерных и частных предприятий и банков позволил некоторым компаниям увидеть здесь будущий рынок и инвестировать средства в создание программного аппарата для этого растущего рынка. Из всего спектра проблем разработчики выделили наиболее заметные: автоматизацию ведения бухгалтерского аналитического учета и технологических процессов (для банков это в основном - расчетно-кассовое обслуживание, для промышленных предприятий - автоматизация процессов проектирования и производства, имеется в виду не конкретных станков и т.п., а информационных потоков). Учитывая тот факт, что ядром АИС безусловно является аппарат, обеспечивающий автоматизированное ведение аналитического учета, большинство фирм начали с детальной проработки данной проблемы. Системы были спроектированы "сверху", т.е. в предположении что одна программа должна удовлетворять потребности всех пользователей.
Сама идея использования "одной программы для всех" резко ограничила возможности разработчиков в структуре информационных множеств базы данных, использовании вариантов экранных форм, алгоритмов расчета и, следовательно, лишила возможности принципиально расширить круг решаемых задач - автоматизировать повседневную деятельность каждого работника. Заложенные "сверху" жесткие рамки ("общие для всех") ограничивали возможности таких систем по ведению глубокого, часто специфического аналитического и производственно - технологического учета. Работники проводили эту работу вручную, а результаты вводили в компьютер. При этом интерфейс каждого рабочего места не мог быть определен функциями, возложенными на пользователя, и принятой технологией работы. Стало очевидно, что для успешной реализации задачи полной автоматизации банка следует изменить идеологию построения АИС.
Индустрия разработки автоматизированных информационных систем управления родилась в 50-х - 60-х годах и к концу века приобрела вполне законченные формы. Материалы данного руководства являются обобщением цикла лекций по Автоматизированным Банковским Системам (АБС) и Автоматизированным системам управления конструкторско-технологическим проектированием (АСУ КТП), читаемым в МГТУ им.Н.Э.Баумана. Не смотря на имеющиеся различия в реализации функциональных модулей данных систем, общие подходы к их разработки во многом схожи, что позволило нам объединить вопросы их проектирования в рамках одного издания.
На рынке автоматизированных систем для крупных корпораций и финансово-промышленных групп на сегодня можно выделить два основных субъекта: это ранок автоматизированных банковских систем (АБС) и рынок корпоративных информационных систем промышленных предприятий. Не смотря на сильную взаимосвязь этих двух рынков систем автоматизации, предлагаемые на них решения пока еще не достаточно интегрированы между собой, чего следует ожидать в недалеком будущем.
В дальнейшем под Автоматизированной Банковской Системой (АБС) будем понимать комплекс аппаратно-программных средств реализующих мультивалютную информационную систему, обеспечивающую современные финансовые и управленческие технологии в режиме реального времени при транзакционной обработке данных.
Под Автоматизированной Информационной Системой промышленного предприятия (АСУ КТП) будем понимать комплекс аппаратно-программных средств реализующих мультикомпонентную информационную систему, обеспечивающую современное управление процессами принятия решений, проектирования, производства и сбыта в режиме реального времени при транзакционной обработке данных.
Как вы видите, оба определения достаточно схожи. На сегодня существования нескольких методов построения автоматизированных информационных систем (АИС), среди которых можно выделить следующие:
Netscape Enterprise Server 3.61 - Web-сервер, избранный для реализации большинства крупных узлов на основе Solaris, в том числе и корпорации Sun. Инструментальные средства фирмы Netscape, а также предлагаемые независимыми производителями, способствуют разработке сложных прикладных программ для Web с помощью сценариев на языках JavaScript, CORBA, Java.
Еще одна важнейшая система, стоящая за добротными программами для Web на серверах Netscape, - сервер прикладных программ Netscape Application Server (NAS). Сервер NAS - среда программирования для объектов на языках C++ и Java - обеспечивает масштабируемость и устойчивость к сбоям прикладных программ. В NAS имеются инструменты для создания многоуровневых программ, объединяющих HTML и запросы к базам данных на серверах NAS.
Операция
Операция
столбцов из таблицы или представления.
Пример 5. Показать всех врачей с кодом специальности равным 111 и работающих в подразделении №2.
SELECT dc_name FROM doctors WHERE dc_speciality_nnn = 111 AND dc_shtat_nnn = 2 ORDER BY dc_name; Пример 6. Показать всех пациентов врача Иванова А. А. SELECT pt.pt_name FROM patients pt ,doctors dc WHERE dc.dc_nnn = pt.pt_dc_nnn AND dc.dc_name = 'ИВАНОВ А. А.' ORDER BY pt.pt_name;
На этом примере остановимся подробнее: Первое - здесь впервые появились в запросе псевдонимы таблиц (pt, dc), это очень важный элемент , так как может оказаться, что по нерадивости у Вас в обоих таблицах имеются одинаковые наименования столбцов и тогда для обращения к ним потребуется использование псевдонимов таблиц. Второе - Делая запрос к нескольким таблицам необходимо использовать джойны (dc.dc_nnn = pt.pt_nnn), т.е. явно задавать те поля, которые определяют отношения между таблицами, причем чесло джойнов равняется N-1, где N - число таблиц в запросе. Третье - выборка данных по условию dc.dc_name = 'ИВАНОВ А. А.' накладывает очень жесткие требования на правильность ввода данных (они могут быть набиты маленькими буквами, через несколько пробелов и т.п.), не учет этих особенностей приведет к тому, что некоторая нужная информация не будет выбрана. Чтобы избежать этого лучше в условиях использовать числовые поля, например личный номер врача (если он имеется БД).О принципах написание SELECT можно написать несколько томов, мы здесь изложили только несколько, с нашей точки зрения, важных особенностей, более подробную информацию по синтаксису можно всегда найти в справочной литературе.
DELETE
Удаляет строки из таблицы или из базовой таблицы представления, удовлетворяющие условию WHERE. Удаляет все строки, если условие WHERE не задано.
Пример:
Удаляем все записи из таблицы Праздничных дней.delete from prazdniki;
Перед тем как работать с данными с БД ее надо создать, для этих целей используется специальная группа операторов, предназначенных для создания объектов базы данных, все операторы данной группы начинаются с ключевого слова CREATE.
CREATE DATABASE
Создает базу данных. Задает и определяет максимальное число экземпляров файлов данных и журнальных файлов, устанавливает режим архивирования.
Filespec (файлы данных)::=
Filespec (журнальные файлы)::=
-- Скрипт создания БД CLINICS spool clinic.log connect internal startup nomount pfile=/oracle/dbs/initclinic.ora -- создаем базу данных с именем clinics create database "clinics" maxinstances 1 maxlogfiles 10 character set "RU8PC866" national character set "RU8PC866" datafile '/oracle/db/system01.dbf' size 100M logfile '/oracle/db/lo g01.dbf' size 1M, '/oracle/db/log02.dbf' size 1M; disconnect spool off
CREATE TABLESPASE
Создает в базе данных область для хранения таблиц, сегментов и индексов, определяет файлы базы данных, параметры хранения по умолчанию и режим табличного пространства (автономный или оперативный).
CREATE USER
Создает пользователя базы данных. (синтаксис команды приведен упрощенно, за дополнительной информацией обратитесь к документации).
CREATE ROLE
CREATE SCHEMA
Создает несколько таблиц и представлений и предоставляет некоторые привилегии в одной транзакции.
CREATE TABLE
Создает новую таблицу БД, определяя ее столбцы, правила целостности и параметры хранения.
Пример:
create table | DOCTORS( |
DC_NNN | NUMBER(12,0) |
, DC_DC_NNN | NUMBER(12,0) |
, DC_NAME | VARCHAR2(255) |
, DC_CS_NNN | NUMBER(12,0) |
, DC_DIPLOMA_NUMBER | NUMBER(12,0) |
, DC_SPECIALTY_NNN | NUMBER(12,0) |
, DC_SHAT_NNN | NUMBER(12,0) |
, DC_CALENDAR | NUMBER(12,0) |
) tablespace users;
CREATE SYNONYM
Создает синоним для таблицы, представления, последовательности, хранимой процедуры или функции, пакетной процедуры, моментальной копии или другого синонима.
Пример: Сначала удаляем публичный синоним для таблицы DOCTORS, а потом его заново создаем.
Функции
Числовые функции
Функция
Символьные функции
Символьные функции, возвращающие символьные значения:
Функция 1
Таблица схемотехнических документов ASU_SHEMA_DOCS
Уникальный ключ
SHEMA_NNN
SHAMA_NAME
SHEMA_COMMENT
SHEMA_PR_NNN
SHEMA_USER_NNN
SHEMA_GRAPH
Таблица конструкторских документов по сборочным единицам ASU_KONSTR_DOCS
Уникальный ключ
KDOCS_NNN
KDOCS_NAME
KDOCS_COMMENT
KDOCS_PR_NNN
KDOCS_USER_NNN
KDOCS_GRAPH
Таблица пользователей ASU_USER
Уникальный ключ
USER_NNN
USER_FIO
USER_ORANAME
USER_PODR_NNN
USER_SHTAT_NNN
USER_PASPORT
По материалам периодической печати [1,2] можно судить, что 1998 год стал годом перехода к внедрению АБС четвертого поколения, основой которых, в свою очередь, является ориентация на профессиональные СУБД. Что же это дает и зачем все это нужно:
Оптимизированный многопользовательский режим работы с развитой системой транзакционной обработки, что обеспечивает многочисленным пользователям возможность работы с базой данных, не мешая друг другу. Надежные средства защиты информации (учитывая стандартную трехзвенную архитектуру защиты на уровне сети - на уровне сервера БД - на уровне клиентской ОС). Эффективные инструменты для разграничения доступа к БД. Поддержка широкого диапазона аппаратно - программных платформ. Реализация распределенной обработки данных. Возможность построения гетерогенных и распределенных сетей. Развитые средства управления, контроля, мониторинга и администрирования сервера БД. Поддержка таких эффективных инструментариев, как: словари данных, триггеры, функции, процедуры, пакеты и т.п.
Все выше перечисленное обусловило широкое распространение решений на базе профессиональных СУБД в крупных коммерческих банках и промышленных корпорациях. По экспертным оценкам по числу установок лидируют СУБД Oracle, Informix, Sybase. Несмотря на это в большинстве средних и малых банках и предприятиях по-прежнему, ориентируются на решения на базе АИС третьего и даже второго поколения. Какие же основные "мнимые" стереотипы пока не позволяют этим структурам ориентироваться на использования профессиональных СУБД при построении своих АИС [1,2]: