АЛЬТЕРНАТИВНЫЕ ВАРИАНТЫ ИЛИ НУЖНА ЛИ САЙТУ БД?
ПРАВОВЫЕ АСПЕКТЫ
СОЦИАЛЬНО-ЭКОНОМИЧЕСКИЕ АСПЕКТЫ
ВНЕДРЕНИЕ НОВЫХ ТЕХНОЛОГИЙ
ИСТОРИЯ РАЗВИТИЯ
ОСНОВНЫЕ ПОНЯТИЯ
РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ
СВЯЗЬ МЕЖДУ ТАБЛИЦАМИ
МЕХАНИЗМ ТРАНЗАКЦИЙ
ЯЗЫК ЗАПРОСОВ SQL
ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
БЕЗОПАСНОСТЬ БАЗ ДАННЫХ
РЕЗЮМЕ
ОЦЕНКА ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ
Литература 27
Содержание
Для нее удобно создать две таблицы. В первой следовало бы содержать информацию о читателях, а во второй — данные о выдаче книг, т. е. в каждую запись второй таблицы заносится информация о выдаче книги читателю и возврате книги. В данном примере главной является таблица читателей, а подчиненной — таблица выдачи книг. Если один читатель имеет на руках несколько книг, то это и будет пример связи «один ко многим», где одной записи в главной таблице соответствуют несколько записей в подчиненных.
Отношение «один к одному» возникает, когда производится разбиение начальной таблицы с очень большим количеством полей. Тогда менее используемые поля переносятся в подчиненную таблицу.
Вариант «много к одному» — это противоположность связи «один ко многим». Ситуация «много ко многим» встречается, когда одной записи главной таблицы соответствуют многие записи подчиненной и наоборот.
При работе со связанными таблицами несколько усложняются элементарные операции с ними.
Скажем, при необходимости переименования или удаления записи главной таблицы следует предусмотреть действия со связанными записями подчиненной таблицы. Существуют два подхода к изменению и удалению записей главной таблицы БД:
2. Разрешить удаление записей главной таблицы и изменение значений первичных ключей и автоматически распространять эти изменения на все соответствующие записи подчиненных таблиц; т. е. при удалении записи главной таблицы удаляются все связанные записи в подчиненной таблице; при изменении первичного ключа записи главной таблицы изменяется и внешний ключ записей, ссылающихся на нее в подчиненной.
Мы уже говорили, что любая «хорошая» БД непременно должна быть целостной и непротиворечивой. Без выполнения этих требований она может стать непригодной для использования. Для обеспечения вышеназванных условий и предусмотрены транзакции.
Транзакция — это такая последовательность операций над БД, которую следует рассматривать как единый набор действий, как нечто целое. Следовательно, транзакция может быть завершена либо успешно (т.е. все операции будут записаны), либо неудачно, когда при возникновении недопустимой ошибки отменяются все (даже правильно выполненные) операции в составе транзакции.
Благодаря применению транзакций информация в базе данных находится в непротиворечивом и целостном состоянии до и после производимых изменений.
В каких случаях может быть необходимо применение транзакций? Представим себе такую ситуацию: у нас имеются две таблицы данных и надо переместить некоторое количество записей из одной в другую. При перемещении записи сначала копируются во вторую таблицу (таблицу-назначение), а затем они удаляются из первой (таблицы-источника).
А что если после перемещения записей внезапно случится сбой в работе компьютера и данные не удалятся? Получится, что записи скопированы в таблицу-назначение, но не удалены из таблицы-источника, т. е. мы получили не то, что нам требовалось. Вот здесь-то и поможет транзакция: начнем ее до первой операции копирования, а зафиксируем после окончания последней операции удаления. Важно только обратить внимание на то, что перед записью транзакции надо обязательно контролировать требуемые критические параметры. В нашем примере следует проверить, скопированы ли все интересующие записи во вторую таблицу и удалены ли они после этого из первой. Таким образом, мы либо проделаем в точности все те операции, которые нам необходимы, либо отменим сделанные изменения, не повредив БД.
Для реализации механизма транзакций каждая СУБД предоставляет соответствующие программные средства. Во встроенном языке 1С, например, для этого есть предопределенные системные процедуры:
менений.
Язык запросов SQL.
Любой разговор о реляционных базах данных без упоминания SQL был бы неполным.
Язык SQL (от английского Structured Query Language — язык структурированных запросов) предназначен для осуществления разнообразных действий с таблицами БД и непосредственно с данными этих таблиц. Составленную на языке SQL последовательность операторов и выражений называют SQL-запросом. Его грамматический строй максимально приближен к строю обычного английского предложения.
Существующий сегодня стандарт — это обобщение почти всех известных реализаций языка SQL. Это значит, что само ядро стандарта содержит функции, имеющиеся практически во всех известных коммерческих реализациях языка;
Пользователь может работать в системе управления базами данных, имеющей интерактивный интерфейс, ничего при этом не зная о языке SQL и причем база данных может быть как локальной, так и удаленной. В таких СУБД действия, связанные с программированием запросов на SQL, выполняются неявно.
Что же касается системы 1С: Предприятие, то явным образом язык SQL, в ней нигде не используется. Однако возможности языка запросов SQL реализованы достаточно широко, в частности при оптимизации выполнения расчетов, построения отчетов и т. д. (то есть это операции, связанные с обработкой большого объема информации).
Существуют даже специальные версии для SQL, которые обеспечивают возможность работы с информационной базой в режиме клиент-сервер. Такой подход позволяет добиться большей устойчивости и надежности функционирования системы, а также увеличить производительность ее работы, особенно при наличии большого количества пользователей. В качестве сервера баз данных система использует Microsoft SQL Server.
Проектирование базы данных
Жизненный цикл любого программного обеспечения состоит из трех основных этапов:
Проектированием будем называть организацию интересующей нас структуры данных нужным нам образом (т.е. в соответствии с текущими потребностями, а также с учетом исключения дублирования информации и т. п. — см. ниже) Реализация — это: воплощение спроектированной (скажем, на бумаге) БД на компьютере с использованием СУБД. Эксплуатация — это задача пользователя БД. Она подразумевает наполнение базы данных конкретной информацией, ее обработку, выполнение запросов (извлечение информации) и другие пользовательские действия. В этой главе мы рассмотрим в основном вопросы разработки БД.
Теперь нам предстоит ближе познакомиться с процессом проектирования базы данных, выяснить, какие главные шаги следует предпринимать, какими принципами руководствоваться. Понимание этого имеет большое значение и позволит не попасть впросак, когда потребуется организовать какую-либо структуру данных.
Мы будем рассматривать проектирование БД, скажем так, «вручную». Этот «ручной» метод включает в себя сбор информации о тех объектах, которые мы собираемся хранить, в одну таблицу, а затем разбиение (декомпозицию) ее на несколько взаимосвязанных таблиц на основе нормализации отношений. Иными словами, речь идет о приведении данных к требуемой структуре.
Дело в том, что также существуют совершенно иные подходы к созданию БД или прикладных информационных систем с помощью т.н. средств СА 8Е. Это специализированные средства, которые автоматизируют процесс разработки БД, а также всей информационной системы. Рассматривать данный метод мы не будем, т.к. он не представляет для нас практического интереса.
Отметим сразу, что проектирование БД на практике заключается в определении состава таблиц и связей между ними. В результате нашей работы должны быть выполнены условия:
Лучше всего продолжить знакомство с проектированием БД на практическом примере. Речь пойдет о таблице сотрудников, содержащей дублирование данных.
ФИО телефон Иванов А.Ф. 4730 Петров Т. Т 4730 Сидоров Т.О. 2210 Николаев А.А. 2210
Рис. 3 Пример неизбыточного дублирования
Сразу же замечаем, что в таблице, приведенной на рис.
3. для сотрудников Иванова П.С. и Петрова С.М., а также Николаева И.К. и Сидорова О.В. мы
имеем одинаковые номера телефонов, т. е. значения поля «Телефон» дублируются. Вообще-то это не очень хорошо. Данные в идеале не должны дублироваться, ведь это расходует вычислительные ресурсы компьютера на их обработку, занимает память, время и т. д.
Но давайте задумаемся, всегда ли можно избавиться от дублирования данных? Попробуйте как-нибудь сократить лишнюю информацию в таблице, приведенной на рис.
3. Скажем сразу, что это невозможно. Если мы попытаемся, например, для сотрудника Петрова С.М. удалить телефон, заменив его, скажем, прочерком то, на первый взгляд, мы решаем проблему (рис. 4).
ФИО телефон Иванов А.Ф. 4730 Петров Т. Т - Сидоров Т.О. 2210 Николаев А.А. - Рис.
4. Пример неудачного устранения дублирования
Зато теперь нам придется дополнительно программировать методы поиска информации, к которой относится тот или иной прочерк, предусматривать процесс удаления из таблицы тех записей, где прочерков нет (дело в том, что на такие записи могут ссылаться какие-либо прочерки) и т. д. Кроме того, мы вообще не сократим объем таблицы. Память все равно резервируется для каждого поля любой записи, и неважно, что мы вносим прочерки, а не номера телефонов. Таким образом, мы не решили имеющуюся проблему, а дополнительно создали другую.
Делаем вывод, что от дублирования данных можно избавиться не всегда. Ситуация, показанная на рис.
4. называется неизбыточным дублированием данных. Оно является вполне естественным и допустимым (под избыточностью понимают такое состояние данных в системе, при котором часть их можно исключить, не потеряв нужных сведений).
Существует, однако, еще и избыточное дублирование данных — такое, от которого можно и нужно избавиться. Расширим предыдущий пример.
Очевидно, что сотрудники, которые находятся в одной комнате, имеют один и тот же номер телефона. Мы вновь сталкиваемся с дублированием: повторяются и номера комнат, и телефоны (рис. 5).
Если попытаться и на этот раз заменить повторы телефонов прочерками, то все проблемы, с которыми мы столкнулись при прошлой попытке, останутся.
ФИО комната телефон Иванов А.Ф. 1 4730 Петров Т. Т 1 4730 Сидоров Т.О. 2 2210 Николаев А.А. 2 2210
Рис.
5. Избыточное дублирование данных
Правильный способ устранения избыточности — разбиение таблиц. Для таблицы рис. 5 оно примет вид:
В приведенной на рис. 6 структуре данных для получения номера телефона сотрудника мы обращаемся к главной таблице (вернее, обращается компьютер), находим строку с данными о нужном сотруднике, считываем номер его комнаты, переходим в подчиненную таблицу, находим искомую строку по нужному номеру и, наконец, узнаем номер телефона.
Приведенное выше разбиение таблицы на связанные — пример процесса нормализации отношений. Отметим также, что такое разбиение имеет недостаток, заключающийся в том, что немного увеличивается время доступа к БД вследствие необходимости работать с несколькими таблицами данных вместо одной.
Теперь приведем минимальный объем теоретических сведений. Метод нормализации отношений базируется на достаточно сложной теории реляционных моделей БД. Затронем лишь самые важные моменты.
Нормализация является итерационным процессом. Существует пять «нормальных» форм. Каждая последующая итерация (т.е. этап нормализации, нормальная форма), образно говоря, устраняет все больше недостатков и делает структуру БД еще более оптимизированной. На практике обычно используют три
первые формы (НФ).
Каждая последующая НФ удовлетворяет всем требованиям предыдущих НФ и добавляет свои. Итак, сами формы:
2. Вторая НФ удаляет частичнозависимые атрибуты, т. е. удовлетворяет условиям первой НФ и, кроме того, требует, чтобы любое неключевое поле однозначно идентифицировалось ключевым.
3. Третья НФ удаляет транзитивно зависимые атрибуты, т. е. ни одно из неключевых полей не может однозначно определяться значением другого неключевого поля.
Подводя итог всему сказанному, приведем условный алгоритм проектирования БД:
2. Проанализировать объекты реального мира, отражаемые в БД. Выделить их свойства, которые предстоит систематизировать в таблице (таблицах) базы данных.
3. Оформить свойства, выясненные на втором этапе, в виде полей таблиц.
4. Определить атрибуты, которые уникально определяют каждый объект. Создать все необходимые ключи и индексы.
5. Выработать правила по поддержанию целостности данных.
6. Установить связи между таблицами (столбцами) и провести нормализацию таблиц.
7. Продумать вопросы надежности данных и, при необходимости, секретности информации.
В целом мы завершили знакомство с проектированием БД. Обратите внимание на его важность. Именно на этапе проектирования закладываются основные свойства всей информационной системы, ее функциональные возможности. Проектирование для наглядности можно сравнить с фундаментом. Качеством проектирования определяется качество информационной системы, а также ее расширяемость для новых требований заказчика. Что же касается проектирования информационных структур в рамках 1С, то здесь тоже очень важно прежде, чем приступать непосредственно к разработке, тщательно продумать сущность задач, стоящих перед заказчиком. Затем нужно выработать целостное видение — план будущей информационной системы.
Безопасность баз данных
Прежде чем завершить введение в базы данных, необходимо коснуться вопроса безопасности БД.
Как уже говорилось выше, таблицы БД — это, как правило, отдельные файлы. Мы обязательно с ними столкнемся при работе с 1С. Но файлы таблиц БД обладают особенностями, вызванными требованиями к безопасности.
Вы не могли не заметить при работе с прикладными программами, что сохранение данных во внешней памяти (обычно на винчестере) происходит интерактивно: будь то выбор соответствующей команды меню, ответ на запрос программы при ее закрытии, периодическое автосохранение и т. д. При работе с таблицами баз данных все совершенно иначе. В ходе внесения изменений в содержание данных таблицы БД происходит мгновенное автоматическое сохранение изменений в самой таблице, т. е. на жестком диске. В случае таблиц БД мы как бы работаем напрямую с винчестером, в отличие от прикладных программ (например, текстовых процессоров, графических пакетов и т. д.), которые все изменения, сделанные в тех или иных документах, сначала сохраняют в оперативной памяти компьютера.
Для нас сейчас важно запомнить, что любые изменения данных сохраняются сразу, Причем обратите внимание, что не имеются в виду изменения в структуре данных. Операции, связанные с сохранением реструктурированной БД, осуществляются по-прежнему интерактивно.
Резюме
Реляционная модель данных в настоящее время распространена наиболее широко. База данных, построенная на основе этой модели, представляет собой набор функционально взаимосвязанных таблиц данных.
Связь между главной и подчиненной таблицами организуется при помощи ключей и индексов. Кроме того, использование ключей и индексов позволяет нам: однозначно идентифицировать записи, избегать дублирования значений в ключевых полях, выполнять сортировку таблиц, ускорять операции поиска в таблицах, устанавливать связи между отдельными таблицами БД, использовать ограничения ссылочной целостности.
Для поддержания целостности БД применяется механизм транзакций, который позволяет гарантировать целостность и непротиворечивость информации в базе в случае успешного завершения транзакции (в случае же какого-либо сбоя все проделанные с БД действия отменяются).
Проектирование БД можно рассматривать как последовательность шагов. Проектирование обязательно включает в себя нормализацию таблиц, т. е. приведение их к нормальным формам.
При работе с базами данных следует особое внимание уделять безопасности, все упражнения и опыты производить только с копиями используемых в эксплуатации БД.
Оценка эффективности использования
Представим на минутку, то в нашей жизни нет баз данных. Библиотекари и сотрудники отдела кадров вновь вернутся к картотекам. Не будет автоматизированного бухгалтерского и складского учета. Перестанут работать Интернет — программы по заказу билетов, горящих путевок, и.т.д. Что же произойдет? Да ничего — когда-то мы жили без баз данных. И все же использование баз данных существенно экономит время и облегчает жизнь современному человеку.
Литература
Абдулин А., Козленко Л. «Представление отсутствующей информации».
Виноградов С. А. «Минимальный набор стандартных таблиц».
Виноградов С. А. «Перечисляемый тип в базе данных».
. Тенцер А. «Естественные ключи против искусственных ключей»
Дейт К. «Введение в системы баз данных». Издание шестое, Диалектика, Киев — Москва, 1998.
Марков Б. «Проектирование систем регистрации и анализа данных».
Попов А.А. «FoxPro 2.5/2.6»
Тенцер А. «База данных — хранилище объектов».
Усиков Т.Н. «1С: предприятие. Эффективное программирование»
1.Абдулин А., Козленко Л. «Представление отсутствующей информации».
2.Виноградов С. А. «Минимальный набор стандартных таблиц».
3.Виноградов С. А. «Перечисляемый тип в базе данных».
4. Тенцер А. «Естественные ключи против искусственных ключей»
5.Дейт К. «Введение в системы баз данных». Издание шестое, Диалектика, Киев — Москва, 1998.
6.Марков Б. «Проектирование систем регистрации и анализа данных».
7.Попов А.А. «FoxPro 2.5/2.6»
8.Тенцер А. «База данных — хранилище объектов».
9.Усиков Т.Н. «1С: предприятие. Эффективное программирование»
список литературы
referatbooks.ru
Московский государственный институт электроники и математики
кафедра САПР
Пояснительная записка к курсовому проекту по дисциплине «разработка САПР» на тему:
Разработка структур основных видов обеспечения программно-технического комплекса (ПТК) «Web-интерфейс к базам данных».
Исполнитель: Петушко А.Г.
Группа: АП-101
Преподаватель: Витушкин П.И.
Сдано ________ 199 г
Оценка________
Москва 1996 г.
Задание на курсовой проект. 3
Введение. 4
Обзор ПТК данного вида. 6
Техническое задание на разработку структур ПТК. 9
Наименование и область применения ПТК. 9
Основания для разработки ПТК. 9
Назначение разработки ПТК. 9
Требования к ПТК. 10
Требования к функциональным характеристикам. 10
Требования к программному обеспечению. 10
Требования к информационному обеспечению. 11
Требования к информационной и программной совместимости. 12
Требования к техническому обеспечению. 12
Требования к надежности. 13
Дополнительные требования. 13
Эскизный проект структуры ПО ПТК. 15
Эскизный проект структуры ТО ПТК. 16
Технический проект структуры ПО ПТК. 18
Технический проект структуры ТО ПТК. 19
Заключение. 20
Библиографический список. 21
Выбрать вид ПТК для разработки структур ПО и ТО и обосновать свой выбор.
Составить обзор по различным ПТК данного вида.
Составить техническое задание на разработку структур ПО и ТО ПТК.
Разработать эскизный проект структур ПО и ТО ПТК.
Разработать технический проект структур ПО и ТО ПТК.
Сделать выводы по курсовому проектированию.
Оформить пояснительную записку.
Сегодня множество людей неожиданно для себя открывают для себя существование глобальных сетей, объединяющих компьютеры во всем мире в единое информационное пространство, которое называется Internet. Что это такое, определить непросто. С технической точки зрения Internet — это объединение транснациональных компьютерных сетей, работающих по различным протоколам, связывающих всевозможные типы компьютеров, физически передающих данные по всем доступным типам линий — от витой пары и телефонных проводов до оптоволокна и спутниковых каналов. Большая часть компьютеров в Internet связано по протоколу TCP/IP. Можно сказать, что Internet- это сеть сетей, опутывающая весь земной шар.
Протокол TCP/IP позволяет передавать информацию, а его используют разнообразные сетевые сервисы, по- разному обращающиеся с этой информацией. Internet не решила проблемы хранения и упорядочения информации, но решила проблему её передачи, дав возможность получать её когда и где угодно. Поскольку Сеть (здесь и далее Сеть- с большой буквы- будет означать Internet) децентрализована, то отключение даже значительной части компьютеров не повлияет на её функциональность. По оценкам аналитиков, в 1995 году число полноценно подключённых к Сети компьютеров составило около 7 миллионов и продолжает стремительно расти. По тем же оценкам, в начале следующего века Сеть может стать столь же доступна, как телефон или телевидение сегодня.
Как уже упоминалось, в Сети существует большое число сервисов. Нас в дальнейшем будет интересовать WWW или просто Web (Word-Wide Web- всемирная паутина). Это самый популярный сервис Сети и удобный способ работы с информацией. Сегодня существует по меньшей мере 30 тыс. серверов WWW. Именно за счет WWW Сеть растёт так стремительно. Пользуясь несложным языком описания, можно составлять гипермедийные документы для их последующей публикации в Сети (под гипермедийным я подразумеваю документ, который может содержать все виды информации — от простого текста до мултимедийных роликов). Чтобы увидеть содержание документа так, как его представляет себе его автор нужно иметь на компьютере- клиенте программу просмотра- браузер. Наиболее популярен сегодня Netscape Navigator, поддерживающий многие расширения HTML (Hyper Text Markup Language- язык гипертекстовой разметки документов — именно с его помощью оформляется информация в WWW). Далее под словами браузер или программа просмотра я буду подразумевать именно эту программу, хотя и не исключено, что и какая- либо другая программа сможет отображать всё так, как было задумано.
Теперь немного информации о технологии «клиент- сервер». Она известна уже довольно длительное время, но раньше чаще всего использовалась в крупных сетях масштаба предприятия. Сегодня, с развитием Internet, эта технология все чаще привлекает взоры разработчиков программного обеспечения. В мире накоплено огромное количество информации по различным вопросам. Чаще всего эта информация хранится в базах данных (БД). Чтобы опубликовать её в Сети приходилось экспортировать БД в HTML- документы, что требовало больших затрат и усложняло поиск информации. Сегодня имеется большой опыт подобных работ. Практически любой пользователь Сети не раз сталкивался с подобными БД. Например, главное в работе популярного поискового сервера Yahoo (адрес- http::\\www.yahoo.com)- это запросы к базе данных WWW- сервера по ключевым словам. Ответ сервера- список гипертекстовых ссылок на найденные в Сети страницы, содержащие нужную информацию. Именно сегодня проблема Web- интерфейса к БД как никогда актуальна.
Сначала коротко о технологии «клиент- сервер». Её можно представить так:
клиент формирует и посылает запрос к базе данных сервера, вернее — к программе, обрабатывающей запросы.
эта программа производит манипуляции с БД, хранящейся на сервере, в соответствии с запросом, формирует результат и передаёт его клиенту.
Клиент получает результат, отображает его на дисплее и ждет дальнейших действий пользователя. Цикл повторяется, пока пользователь не закончит работу с сервером.
В настоящее время, в связи с бурным развитием Internet остро стоит проблема связи БД и клиентов Сети. Многие фирмы- производители программных продуктов выпускают или разрабатывают средства публикации БД в Сети. Основные функции ПТК данного вида таковы:
обеспечить отображение интерфейса пользователя в формате HTML для отображения программой просмотра клиента,
обеспечить формирование запросов к БД наиболее простыми для неподготовленного пользователя средствами,
обеспечить аутентификацию пользователя (для разграничения доступа),
обеспечить обработку запроса и возврат результата в HTML формате для отображения программой просмотра пользователя.
При этом необходимо помнить о защите передаваемой по Сети информации и о привлекательности и понятности интерфейса.
Для серийно выпускаемых ПТК данного типа характерны высокая стоимость самого программного обеспечения (ПО), аппаратной платформы, самой СУБД (насколько мне известно, ПО для связи с WWW пока не включается в поставку СУБД). К достоинствам можно отнести хорошую документированность, наличие технической поддержки, низкую стоимость дальнейших обновлений программного обеспечения. Хотя в последнее время начинают появляться программы такого типа для «настольных» СУБД типа Visual FoxPro, Paradox и т.д. Но здесь другая проблема — при низкой стоимости (некоторое ПО можно получить по Сети бесплатно — нужно лишь иметь СУБД) отсутствует мощность и гибкость. Такое ПО годится разве что для публикации небольших по объёму и несложных БД.
Из известного мне ПО такого типа можно упомянуть следующие СУБД:
SQL-server фирмы Microsoft (требует мощного сервера БД под управлением ОС Windows NT server той же фирмы )
Sybase System фирмы Sybase (требует мощного UNIX- сервера)
Informix фирмы Informix Software (также требует мощного UNIX- сервера)
Progress фирмы Progress Software (работает на той же аппаратной платформе, что и два предыдущих)
InterBase фирмы Borland (есть вариант для Windows NT и для UNIX)
Кроме вышеперечисленных достоинств можно также отметить хорошую масштабирумость (наращиваемость), устойчивость в работе, защиту от несанкционированного доступа и мощность этих программных продуктов. Всё это ПО, как мне кажется, очень хорошо подходит для работы с крупными проектами в области БД. Например, в последнее время, всё чаще упоминают Intranet («внутренняя» Сеть). Это крупные корпоративные вычислительные сети, основанные на технологиях Internet, использующие те же протоколы, форматы данных и т.д., но не открытые в глобальную сеть. Достоинства Intranet в том, что не надо переучивать персонал при переходе на новое ПО (можно, в принципе, оставить старые интерфейсы), так как научив один раз человека пользоваться Internet’ ом, можно легко обучить его работе с ПО предприятия — для отображения информации можно воспользоваться теми же браузерами.
К общим чертам вышеперечисленных ПТК можно отнести поддержку стандартного языка запросов к БД- SQL, что облегчает в случае надобности переход от одной СУБД к другой, практическое отсутствие ограничений на размеры файлов БД (кто-нибудь видел файл БД размером, например в 1000 Tбайт?), размеры объектов, количество одновременно подключенных клиентов и т.д. Все зависит от конфигурации сервера.
Конкретное сравнение характеристик привести не представляется возможным. Автор никогда не работал с вышеперечисленными программными продуктами, а в прессе чаще всего приводится очень общая информация, а о реализации конкретных проектов ничего не пишут.
Но можно ожидать, что написание подобного ПТК с использованием современных средств проектирования и реализации интерфейсов и программ в стиле RAD (Rapid Application Development- быстрая разработка приложений) не займет много времени и сил.
Рабочее название разрабатываемого ПТК — «Web- интерфейс к БД». После окончания разработки он будет применяться для ведения базы данных о сотрудниках НИИ Ядерной Физики (НИИЯФ МГУ). Часть информации планируется сделать доступной пользователям одного из Web- серверов для того, например, чтобы можно было найти человека, занимающегося той или иной научной работой. Но, поскольку в БД будет храниться вся информация о персонале НИИЯФ, то этот ПТК также планируется для автоматизации кадровой деятельности. Универсальность обеспечивается за счёт разграничения полномочий пользователей.
Основанием для разработки ПТК является устное распоряжение директора «группы Махаон»- фирмы, занимающейся Internet- технологиями, расположенной на территории НИИЯФ (с Web- сервером группы можно ознакомиться по адресу http:://www.machaon.ru) от 20 апреля 1996 года.
Условная тема разработок — использование баз данных в Internet. Разработка ведется с целью получения опыта работы с БД в Сети, для повышения навыков в программировании в среде под управлением ОС UNIX, для привлечения новых пользователей на Web сервер группы и для разработки собственных технологий в области публикации БД.
Функционально, разрабатываемый ПТК служит для связи с сервером баз данных Postgres95 (не путать с Progress), для занесения, модификации, удаления и поиска информации в БД. Интерфейс представляется в виде HTML- документа для просмотра браузером клиента и его внешний вид зависит от ОС, под управлением которой работает программа просмотра (но он содержит все элементы стандарта GUI- поля ввода, кнопки, радио кнопки, кнопки с независимой фиксацией и т.д.).
Эксплуатационное назначение ПТК — сбор и хранение информации о сотрудниках НИИЯФ и предоставление части этой информации для просмотра внешними клиентами.
Функции, выполняемые ПТК:
отображение интерфейса пользователя в виде HTML- документа
обработку запроса пользователя с исключением неправильно заданных форматов, неверно заполненных полей запроса и т.д.
в соответствии с запросом поиск в БД, модификация или удаление данных в БД (поиск — для любого клиента, а всё остальное — для имеющего соответствующие права)
отображение результатов работы.
Все выходные данные представляются в формате HTML. Входные данные — ключевые слова, список целевых полей, дальнейшее действие получаются после заполнения клиентом формы, полученной от ПТК и отображенной программой просмотра.
По времени процесс манипуляций с БД не должен занимать много времени, иначе на сервере может быть сгенерирован сигнал «time out» и задача может быть снята с обработки.
ПТК разрабатывается на языке PERL (Practical Extraction and Report Language). Это стандартный язык для написания сценариев работы WWW- сервера. Язык этот интерпретируемый, похож на нечто среднее между языками C, Pascal и Basic. Интерпретатор распространяется по Internet бесплатно. Последние версии объектно- ориентированные. В PERL присутствует возможность использования библиотек, написанных на других языках программирования в т.ч. возможность динамической загрузки- выгрузки библиотек. Язык безопасен для использования — случайное нарушение защиты памяти сильно затруднено.
ПТК должен работать под управлением ОС BSD UNIX. Эта ОС написана студентами и их руководителями в университете Беркли, Калифорния, США. Распространяется бесплатно вместе с исходными текстами. Полностью совместима с большинством стандартов ОС UNIX. Имеется масса дополнительных компонентов, написанных другими коллективами. Многие UNIX- программы работают под управлением этой ОС без перекомпиляции. Система устойчива в работе, легко восстанавливается после сбоев, является многозадачной, многопотоковой, многопользовательской сетевой ОС с поддержкой множества сетевых протоколов (в т.ч. TCP/IP). Версия для процессора х86 работает на любом совместимом с i386 процессоре — от i386SX до Pentium. При запуске без графической оболочки X-Window эта ОС не требовательна к аппаратным ресурсам. Поэтому WWW- сервер работает под управлением этой ОС.
Для работы ПТК в системе должна быть установлена СУБД Postgres95. Эта СУБД также была разработана в университете Беркли как исследовательский проект группой студентов. Распространяется бесплатно. В настоящее время доступна версия 1.1- объектно- ориентированная СУБД поддержкой всех современных возможностей — SQL, большие бинарные объекты, расширяемая архитектура. Имеются программные библиотеки для написания программ, использующих эту СУБД.
Для ускорения операций поиска на сервере, где установлен ПТК должно быть установлено ОЗУ ёмкостью не менее 16 Мбайт. Размер жесткого диска зависит от количества данных в БД.
На клиентской ЭВМ должен работать браузер для отображения информации. Типичный клиент- это компьютер класса 486DX с 4-8 Мбайт ОЗУ, жестким диском порядка 210 Мбайт. 84% пользователей Сети пользуются браузером фирмы Netscape.
Web- интерфейс к БД должен:
отображать всю информацию на браузере пользователя в формате HTML
проводить аутентификацию пользователя с целью выяснения его привилегий
для пользователей с низким уровнем привилегий давать возможность видеть часть информации, для пользователей с высоким уровнем — возможность редактирования, добавления и удаления
должна быть обеспечена высокая скорость и надежность работы программы
В процессе работы создаётся база данных, для чего используется реляционная модель БД. Она содержит набор плоских таблиц, связанных по ключевым полям. В процессе работы все таблицы представляются как единое целое (вместо ключей из одной таблицы сразу отображается информация из информационных полей других таблиц).
Программный модуль совместим с интерпретатором PERL версии не ниже 5.001. Для работы необходимо наличие некоторых библиотек (интерфейс для работы с СУБД Postgres95, интерфейс для работы с HTML- форматированным текстом) и нужно, чтобы на сервере был запущен монитор БД (фоновый процесс, реагирующий на обращения к БД и обрабатывающий их — поставляется вместе с Postgres95).
В настоящее время СУБД Postgres95 и Web- интерфейс к ней работают на сервере со следующими характеристиками:
процессор- Intel 486DX2 с тактовой частотой 66 МГц
объем ОЗУ- 32 Мбайт
жёсткий диск объёмом 1,2 Гбайт с интерфейсом SCSI
Системная шина- ISA + EISA
присутствует сетевая карта Ethernet2000- EISA
операционная система- BSD UNIX
Сервер включен в локальную сеть, содержащую множество различных типов компьютеров (от Sun SPARKstation до i386) и других серверов (под управлением различных версий UNIX и NetWare). Аппаратное обеспечение сервера вполне справляется с нагрузкой, обеспечивая хорошее время реакции. Эти требования не являются минимально допустимыми, но тестирование на других конфигурациях сервера не проводилось.
Для обеспечения устойчивого функционирования ПТК проверяются входные данные. При аварийном завершении программы система возвращается в первоначальное состояние, для чего имеется специальная процедура, реагирующая на соответствующий сигнал (аналог программного прерывания в DOS).
При отказе время восстановления зависит от сложности неисправности. В случае программного сбоя время восстановления равно времени, нужному перезагрузки сервера. При аппаратном сбое оно равно времени восстановления информации с резервной копии.
Для работы с ПТК к квалификации персонала не предъявляется особенных требований. Единственный необходимый навык- умение работы с программой просмотра для WWW. Для занесения информации в БД планируется задействовать одного человека.
Необходимо периодическое резервное копирование информации для чего написана программа, экспортирующая содержимое БД в текстовые файлы и программа восстановления. Это выполняется системным администратором по мере необходимости.
Компьютер клиента может быть практически любой и необходимым требованием является лишь подключение к Сети и наличие браузера, поддерживающего HTML версии 2.0 (программа просмотра Netscape Navigator подходит как нельзя лучше, тем более существуют её модификации для множества аппаратных платформ и операционных систем при схожести интерфейса).
На представленном ниже эскизе представлены основные блоки ПТК. В скобках указаны основные функции, выполняемые блоками.
Это эскиз, использованный при начальной стадии разработки.
Используемые для написания программы библиотеки:
CGI.pm- библиотека для манипуляции информационными элементами (поля ввода, кнопки, радио кнопки, скрытые поля и т.д. в формате HTML, отображение информации на браузере клиента и ввод ответа от него)
Pg.pm- библиотека для манипуляции БД (подключение к программе- монитору, посылка запросов, обработка результата и т.д.)
Данный эскиз показывает, как работает система в общем. Конкретно всё зависит от того, где находится клиент, сервер, как клиент подсоединён к серверу.
Пользователь на клиентском компьютере в программе просмотра заполняет предложенную форму или выбирает дальнейшее действие.
Браузер по нажатию одной из кнопок в форме пересылает данные из заполненной формы или отображает вновь полученные в результате какой- либо операции.
Не важно, к какой из сетей подключен клиент (он даже может быть удалённым пользователем и соединиться по модему).
Программа принимает данные, проверяет их и формирует запрос к монитору БД или получает от него результат.
Получив запрос, монитор обрабатывает его. Если не произошло ошибок, ждёт запроса от программы на отправку программе результата.
На диске сервера хранится БД, модифицируемая по запросу клиента.
Программа логически разделена на несколько модулей. Ниже приведено краткое описание модулей и функций, содержащихся в них.
Модуль Npi_people. Основная часть программы. Этот модуль вызывается при начале работы. Доступ к нему разрешён всем пользователям. Содержит рад подпрограмм общего назначения:
setup- функция первоначальной настройки. Определение, какой пользователь подключён и что разрешено ему видеть
set_mode- установка режима работы, т.е. что дальше будет делать программа — искать, модифицировать или удалять информацию из БД
connect_db- подключение к нужной БД через монитор. В случае ошибки — аварийное завершение
prepare_sql- подготовка SQL- запроса к БД
handler- обработчик аварийных сигналов
Модуль html_output. Содержит подпрограммы вывода форм, форматирования и вывода результатов в формате HTML, приёма и обработки информации от пользователя.
print_form- По установленному режиму вызвать функцию вывода той или иной формы
search_form- вывод формы для поиска
modify_form- вывод формы для модификации
del_form- вывод формы для удаления
print_result- выдача результата
good_bye- выдача сообщения об аварийном завершении программы
Модуль Pg_dbi. Содержит подпрограммы работы с монитором БД.
dbi_con- подсоединение к указанной БД
dbi_rowsmatched- функция возвращает количество строк в результате
do_sql- выполнение SQL- запроса
dbi_disconnect- отсоединение от монитора БД
dbi_nextrow- получение следующей строки результата
Модуль constants. Содержит набор необходимых для работы констант. Вынесен в отдельный модуль, чтобы не загромождать текст программы.
Ниже приведена одна из конкретных реализаций ТО ПТК (именно на таком ТО работал автор)
Как видно из приведённой схемы, программа может работать как с внутренними клиентами (Intranet), так и с внешними (Internet). Типичная ЭВМ, за которой автор разрабатывал и тестировал ПТК — это процессор Intel 486DX2 66 МГц, 4 Мбайт ОЗУ, жесткий диск 100 Мбайт. ОС- MS DOS 6.22 и Windows3.1
Сеть на базе NetWare- это витая пара + карты Ethernet2000 на рабочих станциях
Сервер NetWare по конфигурации не сильно отличается от UNIX- сервера, конфигурация которого описана ранее.
Разработанный ПТК в целом соответствует ТЗ, полученному в начале работы. ПТК ещё нуждается в доработке, но уже выполняет основные функции. Вполне возможно, что развитием этой работы будет полный WWW- интерфейс к БД, позволяющий создавать свою собственную БД и без программирования манипулировать ей (по аналогии с FoxPro, например). Есть идеи по воплощению WWW средства для построения запросов в стандарте QBE (Query By Example). Но наиболее близок к воплощению проект WWW- календарь, содержащий все праздники и позволяющий находить праздник по дате или дату известного праздника в диалоговом режиме.
Сравнивать этот ПТК с аналогичными не логично, потому что всё в нём написано маленьким коллективом разработчиков для конкретной цели, а не целой армией программистов и для общих целей, как в случае с продуктами, перечисленными в начале.
В последнее время на рынке Internet успешно продвигается технология Java, разработанная фирмой Sun. Java- это объектно- ориентированный язык, схожий с C++. Сама фирма характеризует его как «простой, объектно- ориентированный, распределяемый, интерпретируемый, надёжный, защищённый, не зависящий от архитектуры, высокопроизводительный, многопоточный и динамичный». На Java разрабатывают небольшие программы, которые можно загружать из Сети и выполнять на клиентском компьютере. Недавно появилась информация о выпуске спецификации JDBC (по аналогии с ODBC фирмы Microsoft)- стандарта для доступа из программы, написанной на Java к БД любого производителя, поставляющего драйвер, соответствующий JDBC для своей СУБД. С выпуском подобных драйверов упроститься доступ и модификация БД, появятся стандартные способы работы, что сильно упростит разработку ПТК, подобного описываемому здесь. Но пока не все производители ПО для клиентов поддержали начинания фирмы Sun, поэтому только браузер Netscape Navigator умеет выполнять Java- приложения.
Если Java станет стандартом, то можно будет переписать ПТК на этом языке, сделав его более надёжным, быстрым и привлекательным в смысле интерфейса пользователя.
Компьютер Пресс N2 1996г.
Компьютер Пресс N4 1996г.
Компьютер Пресс N5 1996г.
Computer Week Москва N38(196) 1995г.
Computer Week Москва N4(210) 1996г.
Computer Week Москва N17(223) 1996г.
Computer Week Москва N18(224) 1996г.
PC Magazine russian edition спецвыпуск N2(41) 1995г.
PC Magazine russian edition N6(34) 1995г.
Компьютерра N15(142) 1996.
www.ronl.ru
Московский государственный институт электроники и математики
кафедра САПР
Пояснительная записка к курсовому проекту по дисциплине «разработка САПР» на тему:
Разработка структур основных видов обеспечения программно-технического комплекса (ПТК) «Web- интерфейс к базам данных».
Исполнитель: Петушко А.Г.
Группа: АП-101
Преподаватель: Витушкин П.И.
Сдано ________ 199 г
Оценка________
Москва 1996 г.
Задание на курсовой проект. 3
Введение. 4
Обзор ПТК данного вида. 6
Техническое задание на разработку структур ПТК. 9
Наименование и область применения ПТК. 9
Основания для разработки ПТК. 9
Назначение разработки ПТК. 9
Требования к ПТК. 10
Требования к функциональным характеристикам. 10
Требования к программному обеспечению. 10
Требования к информационному обеспечению. 11
Требования к информационной и программной совместимости. 12
Требования к техническому обеспечению. 12
Требования к надежности. 13
Дополнительные требования. 13
Эскизный проект структуры ПО ПТК. 15
Эскизный проект структуры ТО ПТК. 16
Технический проект структуры ПО ПТК. 18
Технический проект структуры ТО ПТК. 19
Заключение. 20
Библиографический список. 21
Выбрать вид ПТК для разработки структур ПО и ТО и обосновать свой выбор.
Составить обзор по различным ПТК данного вида.
Составить техническое задание на разработку структур ПО и ТО ПТК.
Разработать эскизный проект структур ПО и ТО ПТК.
Разработать технический проект структур ПО и ТО ПТК.
Сделать выводы по курсовому проектированию.
Оформить пояснительную записку.
Сегодня множество людей неожиданно для себя открывают для себя существование глобальных сетей, объединяющих компьютеры во всем мире в единое информационное пространство, которое называется Internet. Что это такое, определить непросто. С технической точки зрения Internet - это объединение транснациональных компьютерных сетей, работающих по различным протоколам, связывающих всевозможные типы компьютеров, физически передающих данные по всем доступным типам линий - от витой пары и телефонных проводов до оптоволокна и спутниковых каналов. Большая часть компьютеров в Internet связано по протоколу TCP/IP. Можно сказать, что Internet- это сеть сетей, опутывающая весь земной шар.
Протокол TCP/IP позволяет передавать информацию, а его используют разнообразные сетевые сервисы, по- разному обращающиеся с этой информацией. Internet не решила проблемы хранения и упорядочения информации, но решила проблему её передачи, дав возможность получать её когда и где угодно. Поскольку Сеть (здесь и далее Сеть- с большой буквы- будет означать Internet) децентрализована, то отключение даже значительной части компьютеров не повлияет на её функциональность. По оценкам аналитиков, в 1995 году число полноценно подключённых к Сети компьютеров составило около 7 миллионов и продолжает стремительно расти. По тем же оценкам, в начале следующего века Сеть может стать столь же доступна, как телефон или телевидение сегодня.
Как уже упоминалось, в Сети существует большое число сервисов. Нас в дальнейшем будет интересовать WWW или просто Web (Word-Wide Web- всемирная паутина). Это самый популярный сервис Сети и удобный способ работы с информацией. Сегодня существует по меньшей мере 30 тыс. серверов WWW. Именно за счет WWW Сеть растёт так стремительно. Пользуясь несложным языком описания, можно составлять гипермедийные документы для их последующей публикации в Сети (под гипермедийным я подразумеваю документ, который может содержать все виды информации - от простого текста до мултимедийных роликов). Чтобы увидеть содержание документа так, как его представляет себе его автор нужно иметь на компьютере- клиенте программу просмотра- браузер. Наиболее популярен сегодня Netscape Navigator, поддерживающий многие расширения HTML (Hyper Text Markup Language- язык гипертекстовой разметки документов - именно с его помощью оформляется информация в WWW). Далее под словами браузер или программа просмотра я буду подразумевать именно эту программу, хотя и не исключено, что и какая- либо другая программа сможет отображать всё так, как было задумано.
Теперь немного информации о технологии «клиент- сервер». Она известна уже довольно длительное время, но раньше чаще всего использовалась в крупных сетях масштаба предприятия. Сегодня, с развитием Internet, эта технология все чаще привлекает взоры разработчиков программного обеспечения. В мире накоплено огромное количество информации по различным вопросам. Чаще всего эта информация хранится в базах данных (БД). Чтобы опубликовать её в Сети приходилось экспортировать БД в HTML- документы, что требовало больших затрат и усложняло поиск информации. Сегодня имеется большой опыт подобных работ. Практически любой пользователь Сети не раз сталкивался с подобными БД. Например, главное в работе популярного поискового сервера Yahoo (адрес- http::\\www.yahoo.com)- это запросы к базе данных WWW- сервера по ключевым словам. Ответ сервера- список гипертекстовых ссылок на найденные в Сети страницы, содержащие нужную информацию. Именно сегодня проблема Web- интерфейса к БД как никогда актуальна.
Сначала коротко о технологии «клиент- сервер». Её можно представить так:
клиент формирует и посылает запрос к базе данных сервера, вернее - к программе, обрабатывающей запросы.
эта программа производит манипуляции с БД, хранящейся на сервере, в соответствии с запросом, формирует результат и передаёт его клиенту.
Клиент получает результат, отображает его на дисплее и ждет дальнейших действий пользователя. Цикл повторяется, пока пользователь не закончит работу с сервером.
В настоящее время, в связи с бурным развитием Internet остро стоит проблема связи БД и клиентов Сети. Многие фирмы- производители программных продуктов выпускают или разрабатывают средства публикации БД в Сети. Основные функции ПТК данного вида таковы:
обеспечить отображение интерфейса пользователя в формате HTML для отображения программой просмотра клиента,
обеспечить формирование запросов к БД наиболее простыми для неподготовленного пользователя средствами,
обеспечить аутентификацию пользователя (для разграничения доступа),
обеспечить обработку запроса и возврат результата в HTML формате для отображения программой просмотра пользователя.
При этом необходимо помнить о защите передаваемой по Сети информации и о привлекательности и понятности интерфейса.
Для серийно выпускаемых ПТК данного типа характерны высокая стоимость самого программного обеспечения (ПО), аппаратной платформы, самой СУБД (насколько мне известно, ПО для связи с WWW пока не включается в поставку СУБД). К достоинствам можно отнести хорошую документированность, наличие технической поддержки, низкую стоимость дальнейших обновлений программного обеспечения. Хотя в последнее время начинают появляться программы такого типа для «настольных» СУБД типа Visual FoxPro, Paradox и т.д. Но здесь другая проблема - при низкой стоимости (некоторое ПО можно получить по Сети бесплатно - нужно лишь иметь СУБД) отсутствует мощность и гибкость. Такое ПО годится разве что для публикации небольших по объёму и несложных БД.
Из известного мне ПО такого типа можно упомянуть следующие СУБД:
SQL-server фирмы Microsoft (требует мощного сервера БД под управлением ОС Windows NT server той же фирмы )
Sybase System фирмы Sybase (требует мощного UNIX- сервера)
Informix фирмы Informix Software (также требует мощного UNIX- сервера)
Progress фирмы Progress Software (работает на той же аппаратной платформе, что и два предыдущих)
InterBase фирмы Borland (есть вариант для Windows NT и для UNIX)
Кроме вышеперечисленных достоинств можно также отметить хорошую масштабирумость (наращиваемость), устойчивость в работе, защиту от несанкционированного доступа и мощность этих программных продуктов. Всё это ПО, как мне кажется, очень хорошо подходит для работы с крупными проектами в области БД. Например, в последнее время, всё чаще упоминают Intranet («внутренняя» Сеть). Это крупные корпоративные вычислительные сети, основанные на технологиях Internet, использующие те же протоколы, форматы данных и т.д., но не открытые в глобальную сеть. Достоинства Intranet в том, что не надо переучивать персонал при переходе на новое ПО (можно, в принципе, оставить старые интерфейсы), так как научив один раз человека пользоваться Internet’ ом, можно легко обучить его работе с ПО предприятия - для отображения информации можно воспользоваться теми же браузерами.
К общим чертам вышеперечисленных ПТК можно отнести поддержку стандартного языка запросов к БД- SQL, что облегчает в случае надобности переход от одной СУБД к другой, практическое отсутствие ограничений на размеры файлов БД (кто-нибудь видел файл БД размером, например в 1000 Tбайт?), размеры объектов, количество одновременно подключенных клиентов и т.д. Все зависит от конфигурации сервера.
Конкретное сравнение характеристик привести не представляется возможным. Автор никогда не работал с вышеперечисленными программными продуктами, а в прессе чаще всего приводится очень общая информация, а о реализации конкретных проектов ничего не пишут.
Но можно ожидать, что написание подобного ПТК с использованием современных средств проектирования и реализации интерфейсов и программ в стиле RAD (Rapid Application Development- быстрая разработка приложений) не займет много времени и сил.
Рабочее название разрабатываемого ПТК - «Web- интерфейс к БД». После окончания разработки он будет применяться для ведения базы данных о сотрудниках НИИ Ядерной Физики (НИИЯФ МГУ). Часть информации планируется сделать доступной пользователям одного из Web- серверов для того, например, чтобы можно было найти человека, занимающегося той или иной научной работой. Но, поскольку в БД будет храниться вся информация о персонале НИИЯФ, то этот ПТК также планируется для автоматизации кадровой деятельности. Универсальность обеспечивается за счёт разграничения полномочий пользователей.
Основанием для разработки ПТК является устное распоряжение директора «группы Махаон»- фирмы, занимающейся Internet- технологиями, расположенной на территории НИИЯФ (с Web- сервером группы можно ознакомиться по адресу http:://www.machaon.ru) от 20 апреля 1996 года.
Условная тема разработок - использование баз данных в Internet. Разработка ведется с целью получения опыта работы с БД в Сети, для повышения навыков в программировании в среде под управлением ОС UNIX, для привлечения новых пользователей на Web сервер группы и для разработки собственных технологий в области публикации БД.
Функционально, разрабатываемый ПТК служит для связи с сервером баз данных Postgres95 (не путать с Progress), для занесения, модификации, удаления и поиска информации в БД. Интерфейс представляется в виде HTML- документа для просмотра браузером клиента и его внешний вид зависит от ОС, под управлением которой работает программа просмотра (но он содержит все элементы стандарта GUI- поля ввода, кнопки, радио кнопки, кнопки с независимой фиксацией и т.д.).
Эксплуатационное назначение ПТК - сбор и хранение информации о сотрудниках НИИЯФ и предоставление части этой информации для просмотра внешними клиентами.
Функции, выполняемые ПТК:
отображение интерфейса пользователя в виде HTML- документа
обработку запроса пользователя с исключением неправильно заданных форматов, неверно заполненных полей запроса и т.д.
в соответствии с запросом поиск в БД, модификация или удаление данных в БД (поиск - для любого клиента, а всё остальное - для имеющего соответствующие права)
отображение результатов работы.
Все выходные данные представляются в формате HTML. Входные данные - ключевые слова, список целевых полей, дальнейшее действие получаются после заполнения клиентом формы, полученной от ПТК и отображенной программой просмотра.
По времени процесс манипуляций с БД не должен занимать много времени, иначе на сервере может быть сгенерирован сигнал «time out» и задача может быть снята с обработки.
ПТК разрабатывается на языке PERL (Practical Extraction and Report Language). Это стандартный язык для написания сценариев работы WWW- сервера. Язык этот интерпретируемый, похож на нечто среднее между языками C , Pascal и Basic. Интерпретатор распространяется по Internet бесплатно. Последние версии объектно- ориентированные. В PERL присутствует возможность использования библиотек, написанных на других языках программирования в т.ч. возможность динамической загрузки- выгрузки библиотек. Язык безопасен для использования - случайное нарушение защиты памяти сильно затруднено.
ПТК должен работать под управлением ОС BSD UNIX. Эта ОС написана студентами и их руководителями в университете Беркли, Калифорния, США. Распространяется бесплатно вместе с исходными текстами. Полностью совместима с большинством стандартов ОС UNIX. Имеется масса дополнительных компонентов, написанных другими коллективами. Многие UNIX- программы работают под управлением этой ОС без перекомпиляции. Система устойчива в работе, легко восстанавливается после сбоев, является многозадачной, многопотоковой, многопользовательской сетевой ОС с поддержкой множества сетевых протоколов (в т.ч. TCP/IP). Версия для процессора х86 работает на любом совместимом с i386 процессоре - от i386SX до Pentium. При запуске без графической оболочки X-Window эта ОС не требовательна к аппаратным ресурсам. Поэтому WWW- сервер работает под управлением этой ОС.
Для работы ПТК в системе должна быть установлена СУБД Postgres95. Эта СУБД также была разработана в университете Беркли как исследовательский проект группой студентов. Распространяется бесплатно. В настоящее время доступна версия 1.1- объектно- ориентированная СУБД поддержкой всех современных возможностей - SQL, большие бинарные объекты, расширяемая архитектура. Имеются программные библиотеки для написания программ, использующих эту СУБД.
Для ускорения операций поиска на сервере, где установлен ПТК должно быть установлено ОЗУ ёмкостью не менее 16 Мбайт. Размер жесткого диска зависит от количества данных в БД.
На клиентской ЭВМ должен работать браузер для отображения информации. Типичный клиент- это компьютер класса 486DX с 4-8 Мбайт ОЗУ, жестким диском порядка 210 Мбайт. 84% пользователей Сети пользуются браузером фирмы Netscape.
Web- интерфейс к БД должен:
отображать всю информацию на браузере пользователя в формате HTML
проводить аутентификацию пользователя с целью выяснения его привилегий
для пользователей с низким уровнем привилегий давать возможность видеть часть информации, для пользователей с высоким уровнем - возможность редактирования, добавления и удаления
должна быть обеспечена высокая скорость и надежность работы программы
В процессе работы создаётся база данных, для чего используется реляционная модель БД. Она содержит набор плоских таблиц, связанных по ключевым полям. В процессе работы все таблицы представляются как единое целое (вместо ключей из одной таблицы сразу отображается информация из информационных полей других таблиц).
Программный модуль совместим с интерпретатором PERL версии не ниже 5.001. Для работы необходимо наличие некоторых библиотек (интерфейс для работы с СУБД Postgres95, интерфейс для работы с HTML- форматированным текстом) и нужно, чтобы на сервере был запущен монитор БД (фоновый процесс, реагирующий на обращения к БД и обрабатывающий их - поставляется вместе с Postgres95).
В настоящее время СУБД Postgres95 и Web- интерфейс к ней работают на сервере со следующими характеристиками:
процессор- Intel 486DX2 с тактовой частотой 66 МГц
объем ОЗУ- 32 Мбайт
жёсткий диск объёмом 1,2 Гбайт с интерфейсом SCSI
Системная шина- ISA + EISA
присутствует сетевая карта Ethernet2000- EISA
операционная система- BSD UNIX
Сервер включен в локальную сеть, содержащую множество различных типов компьютеров (от Sun SPARKstation до i386) и других серверов (под управлением различных версий UNIX и NetWare). Аппаратное обеспечение сервера вполне справляется с нагрузкой, обеспечивая хорошее время реакции. Эти требования не являются минимально допустимыми, но тестирование на других конфигурациях сервера не проводилось.
Для обеспечения устойчивого функционирования ПТК проверяются входные данные. При аварийном завершении программы система возвращается в первоначальное состояние, для чего имеется специальная процедура, реагирующая на соответствующий сигнал (аналог программного прерывания в DOS).
При отказе время восстановления зависит от сложности неисправности. В случае программного сбоя время восстановления равно времени, нужному перезагрузки сервера. При аппаратном сбое оно равно времени восстановления информации с резервной копии.
Для работы с ПТК к квалификации персонала не предъявляется особенных требований. Единственный необходимый навык- умение работы с программой просмотра для WWW. Для занесения информации в БД планируется задействовать одного человека.
Необходимо периодическое резервное копирование информации для чего написана программа, экспортирующая содержимое БД в текстовые файлы и программа восстановления. Это выполняется системным администратором по мере необходимости.
Компьютер клиента может быть практически любой и необходимым требованием является лишь подключение к Сети и наличие браузера, поддерживающего HTML версии 2.0 (программа просмотра Netscape Navigator подходит как нельзя лучше, тем более существуют её модификации для множества аппаратных платформ и операционных систем при схожести интерфейса).
На представленном ниже эскизе представлены основные блоки ПТК. В скобках указаны основные функции, выполняемые блоками.
Это эскиз, использованный при начальной стадии разработки.
Используемые для написания программы библиотеки:
CGI.pm- библиотека для манипуляции информационными элементами (поля ввода, кнопки, радио кнопки, скрытые поля и т.д. в формате HTML, отображение информации на браузере клиента и ввод ответа от него)
Pg.pm- библиотека для манипуляции БД (подключение к программе- монитору, посылка запросов, обработка результата и т.д.)
Данный эскиз показывает, как работает система в общем. Конкретно всё зависит от того, где находится клиент, сервер, как клиент подсоединён к серверу.
Пользователь на клиентском компьютере в программе просмотра заполняет предложенную форму или выбирает дальнейшее действие.
Браузер по нажатию одной из кнопок в форме пересылает данные из заполненной формы или отображает вновь полученные в результате какой- либо операции.
Не важно, к какой из сетей подключен клиент (он даже может быть удалённым пользователем и соединиться по модему).
Программа принимает данные, проверяет их и формирует запрос к монитору БД или получает от него результат.
Получив запрос, монитор обрабатывает его. Если не произошло ошибок, ждёт запроса от программы на отправку программе результата.
На диске сервера хранится БД, модифицируемая по запросу клиента.
Программа логически разделена на несколько модулей. Ниже приведено краткое описание модулей и функций, содержащихся в них.
Модуль Npi_people. Основная часть программы. Этот модуль вызывается при начале работы. Доступ к нему разрешён всем пользователям. Содержит рад подпрограмм общего назначения:
setup- функция первоначальной настройки. Определение, какой пользователь подключён и что разрешено ему видеть
set_mode- установка режима работы, т.е. что дальше будет делать программа - искать, модифицировать или удалять информацию из БД
connect_db- подключение к нужной БД через монитор. В случае ошибки - аварийное завершение
divpare_sql- подготовка SQL- запроса к БД
handler- обработчик аварийных сигналов
Модуль html_output. Содержит подпрограммы вывода форм, форматирования и вывода результатов в формате HTML, приёма и обработки информации от пользователя.
print_form- По установленному режиму вызвать функцию вывода той или иной формы
search_form- вывод формы для поиска
modify_form- вывод формы для модификации
del_form- вывод формы для удаления
print_result- выдача результата
good_bye- выдача сообщения об аварийном завершении программы
Модуль Pg_dbi. Содержит подпрограммы работы с монитором БД.
dbi_con- подсоединение к указанной БД
dbi_rowsmatched- функция возвращает количество строк в результате
do_sql- выполнение SQL- запроса
dbi_disconnect- отсоединение от монитора БД
dbi_nextrow- получение следующей строки результата
Модуль constants. Содержит набор необходимых для работы констант. Вынесен в отдельный модуль, чтобы не загромождать текст программы.
Ниже приведена одна из конкретных реализаций ТО ПТК (именно на таком ТО работал автор)
Как видно из приведённой схемы, программа может работать как с внутренними клиентами (Intranet), так и с внешними (Internet). Типичная ЭВМ, за которой автор разрабатывал и тестировал ПТК - это процессор Intel 486DX2 66 МГц, 4 Мбайт ОЗУ, жесткий диск 100 Мбайт. ОС- MS DOS 6.22 и Windows3.1
Сеть на базе NetWare- это витая пара + карты Ethernet2000 на рабочих станциях
Сервер NetWare по конфигурации не сильно отличается от UNIX- сервера, конфигурация которого описана ранее.
Разработанный ПТК в целом соответствует ТЗ, полученному в начале работы. ПТК ещё нуждается в доработке, но уже выполняет основные функции. Вполне возможно, что развитием этой работы будет полный WWW- интерфейс к БД, позволяющий создавать свою собственную БД и без программирования манипулировать ей (по аналогии с FoxPro, например). Есть идеи по воплощению WWW средства для построения запросов в стандарте QBE (Query By Example). Но наиболее близок к воплощению проект WWW- календарь, содержащий все праздники и позволяющий находить праздник по дате или дату известного праздника в диалоговом режиме.
Сравнивать этот ПТК с аналогичными не логично, потому что всё в нём написано маленьким коллективом разработчиков для конкретной цели, а не целой армией программистов и для общих целей, как в случае с продуктами, перечисленными в начале.
В последнее время на рынке Internet успешно продвигается технология Java, разработанная фирмой Sun. Java- это объектно- ориентированный язык, схожий с C++. Сама фирма характеризует его как «простой, объектно- ориентированный, распределяемый, интерпретируемый, надёжный, защищённый, не зависящий от архитектуры, высокопроизводительный, многопоточный и динамичный». На Java разрабатывают небольшие программы, которые можно загружать из Сети и выполнять на клиентском компьютере. Недавно появилась информация о выпуске спецификации JDBC (по аналогии с ODBC фирмы Microsoft)- стандарта для доступа из программы, написанной на Java к БД любого производителя, поставляющего драйвер, соответствующий JDBC для своей СУБД. С выпуском подобных драйверов упроститься доступ и модификация БД, появятся стандартные способы работы, что сильно упростит разработку ПТК, подобного описываемому здесь. Но пока не все производители ПО для клиентов поддержали начинания фирмы Sun, поэтому только браузер Netscape Navigator умеет выполнять Java- приложения.
Если Java станет стандартом, то можно будет переписать ПТК на этом языке, сделав его более надёжным, быстрым и привлекательным в смысле интерфейса пользователя.
Компьютер Пресс N2 1996г.
Компьютер Пресс N4 1996г.
Компьютер Пресс N5 1996г.
Computer Week Москва N38(196) 1995г.
Computer Week Москва N4(210) 1996г.
Computer Week Москва N17(223) 1996г.
Computer Week Москва N18(224) 1996г.
PC Magazine russian edition спецвыпуск N2(41) 1995г.
PC Magazine russian edition N6(34) 1995г.
Компьютерра N15(142) 1996.
www.coolreferat.com
Московский государственный институт электроники и математики
кафедра САПР
Пояснительная записка к курсовому проекту по дисциплине разработка САПР на тему:
Разработка структур основных видов обеспечения программно-технического комплекса (ПТК) Web- интерфейс к базам данных.
Исполнитель: Петушко А.Г.
Группа: АП-101
Преподаватель: Витушкин П.И.
Сдано ________ 199 г
Оценка________
Москва 1996 г.
Задание на курсовой проект.
Введение.
Обзор ПТК данного вида.
Техническое задание на разработку структур ПТК.
Наименование и область применения ПТК.
Основания для разработки ПТК.
Назначение разработки ПТК.
Требования к ПТК.
Требования к функциональным характеристикам.
Требования к программному обеспечению.
Требования к информационному обеспечению.
Требования к информационной и программной совместимости.
Требования к техническому обеспечению.
Требования к надежности.
Дополнительные требования.
Эскизный проект структуры ПО ПТК.
Эскизный проект структуры ТО ПТК.
Технический проект структуры ПО ПТК.
Технический проект структуры ТО ПТК.
Заключение.
Библиографический список.
Задание на курсовой проект.
Введение.
Сегодня множество людей неожиданно для себя открывают для себя существование глобальных сетей, объединяющих компьютеры во всем мире в единое информационное пространство, которое называется Internet. Что это такое, определить непросто. С технической точки зрения Internet - это объединение транснациональных компьютерных сетей, работающих по различным протоколам, связывающих всевозможные типы компьютеров, физически передающих данные по всем доступным типам линий - от витой пары и телефонных проводов до оптоволокна и спутниковых каналов. Большая часть компьютеров в Internet связано по протоколу TCP/IP. Можно сказать, что Internet- это сеть сетей, опутывающая весь земной шар.
Протокол TCP/IP позволяет передавать информацию, а его используют разнообразные сетевые сервисы, по- разному обращающиеся с этой информацией. Internet не решила проблемы хранения и упорядочения информации, но решила проблему её передачи, дав возможность получать её когда и где угодно. Поскольку Сеть (здесь и далее Сеть- с большой буквы- будет означать Internet) децентрализована, то отключение даже значительной части компьютеров не повлияет на её функциональность. По оценкам аналитиков, в 1995 году число полноценно подключённых к Сети компьютеров составило около 7 миллионов и продолжает стремительно расти. По тем же оценкам, в начале следующего века Сеть может стать столь же доступна, как телефон или телевидение сегодня.
Как уже упоминалось, в Сети существует большое число сервисов. Нас в дальнейшем будет интересовать WWW или просто Web (Word-Wide Web- всемирная паутина). Это самый популярный сервис Сети и удобный способ работы с информацией. Сегодня существует по меньшей мере 30 тыс. серверов WWW. Именно за счет WWW Сеть растёт так стремительно. Пользуясь несложным языком описания, можно составлять гипермедийные документы для их последующей публикации в Сети (под гипермедийным я подразумеваю документ, который может содержать все виды информации - от простого текста до мултимедийных роликов). Чтобы увидеть содержание документа так, как его представляет себе его автор нужно иметь на компьютере- клиенте программу просмотра- браузер. Наиболее популярен сегодня Netscape Navigator, поддерживающий многие расширения HTML (Hyper Text Markup Language- язык гипертекстовой разметки документов - именно с его помощью оформляется информация в WWW). Далее под словами браузер или программа просмотра я буду подразумевать именно эту программу, хотя и не исключено, что и какая- либо другая программа сможет отображать всё так, как было задумано.
Теперь немного информации о технологии клиент- сервер. Она известна уже довольно длительное время, но раньше чаще всего использовалась в крупных сетях масштаба предприятия. Сегодня, с развитием Internet, эта технология все чаще привлекает взоры разработчиков программного обеспечения. В мире накоплено огромное количество информации по различным вопросам. Чаще всего эта информация хранится в базах данных (БД). Чтобы опубликовать её в Сети приходилось экспортировать БД в HTML- документы, что требовало больших затрат и усложняло поиск информации. Сегодня имеется большой опыт подобных работ. Практически любой пользователь Сети не раз сталкивался с подобными БД. Например, главное в работе популярного поискового сервера Yahoo (адрес-
www.studsell.com