Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Информационные системы: понятие, назначение, классификация).pdf
Добавлен: 28.06.2023
Просмотров: 49
Скачиваний: 2
Каждая система поддерживает различные модели и структуры баз данных. Эта модель и определяет, как создаваемая СУБД будет оперировать данными. Существует довольно немного моделей БД, которые предоставляют способы четкого структурирования данных, самая популярная из таких моделей - реляционная модель.
Реляционная модель и реляционные БД могут быть очень мощным инструментом, но только если программист знает как с ними обращаться. Недавно, стали набирать популярность NoSQL системы с обещанием избавиться от старых проблем БД и добавить новый функционал. Исключая жесткую структуру данных, при этом сохранив реляционный стиль, эти СУБД предлагают более свободный способ работы с ними и гораздо большие возможности для их настройки. Хотя не обходится и без возникновения новых проблем.
Реляционная модель
Представленная в 1970 году реляционная модель предложила математический способ структурирования, хранения и использования данных. По сути он расширил плоскую и сетевую модели, объединив их в реляционную. Основное преимущество которой было объединение данных в группы, именно реляционная модель позволила хранить данные в структурированном табличном виде (ФИО, адрес).
Благодаря десятилетиям разработки, СУБД достигли довольно высокого уровня в производительности и отказоустойчивости. Опытом разработчиков и сетевых администраторов было доказано, что все эти инструменты отлично справляются со своими функциями в приложениях любой сложности, не теряют данных даже при некорректных завершениях работы.
Несмотря на большие ограничения в формировании и управлении данными, реляционные базы данных сохраняют широкие возможности по настройке и предлагают довольно большой функционал.
Технологии обработки данных
"Клиент-сервер" - это модель взаимодействия компьютеров в сети. Как правило, компьютеры не являются равноправными. Каждый из них имеет свое, отличное от других, назначение, играет свою роль. Некоторые компьютеры в сети владеют и распоряжаются информационно-вычислительными ресурсами, такими как процессоры, файловая система, почтовая служба, служба печати, база данных. Другие же компьютеры имеют возможность обращаться к этим службам, пользуясь услугами первых. Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса, а компьютер, желающий им воспользоваться - клиентом. Конкретный сервер определяется видом ресурса, которым он владеет. Так, если ресурсом являются базы данных, то речь идет о сервере баз данных, назначение которого - обслуживать запросы клиентов, связанные с обработкой данных; если ресурс - это файловая система, то говорят о файловом сервере, или файл-сервере. В сети один и тот же компьютер может выполнять роль как клиента, так и сервера.
Сравним технологию “клиент-сервер” с технологией “файл-сервер”.
В файл-серверной системе данные хранятся на файловом сервере (например, Novell NetWare или Windows NT Server), а их обработка осуществляется на рабочих станциях, на которых, как правило, функционирует одна из так называемых "настольных СУБД" - Access, FoxPro, Paradox и т.п.
Приложение на рабочей станции отвечает за формирование пользовательского интерфейса, логическую обработку данных и за непосредственное манипулирование данными. Файловый сервер предоставляет услуги только самого низкого уровня - открытие, закрытие и модификацию файлов, файлов, а не базы данных. База данных существует только в "мозгу" рабочей станции.
Рис.4. Сравнение технологий
Таким образом, непосредственным манипулированием данными занимается несколько независимых и несогласованных между собой процессов. Кроме того, для осуществления любой обработки (поиск, модификация, суммирование и т.п.) все данные необходимо передать по сети с сервера на рабочую станцию (рис. 4).
В клиент-серверной системе функционируют (как минимум) два приложения - клиент и сервер, делящие между собой те функции, которые в файл-серверной архитектуре целиком выполняет приложение на рабочей станции. Хранением и непосредственным манипулированием данными занимается сервер баз данных, в качестве которого может выступать Microsoft SQL Server, Oracle, Sybase и т.п..
Формированием пользовательского интерфейса занимается клиент, для построения которого можно использовать целый ряд специальных инструментов, а также большинство настольных СУБД. Логика обработки данных может выполняться как на клиенте, так и на сервере. Клиент посылает на сервер запросы, сформулированные, как правило, на языке SQL. Сервер обрабатывает эти запросы и передает клиенту результат (разумеется, клиентов может быть много).
Таким образом, непосредственным манипулированием данными занимается один процесс. При этом, обработка данных происходит там же, где данные хранятся - на сервере, что исключает необходимость передачи больших объемов данных по сети.
Сервер баз данных осуществляет модификацию данных на основе механизма транзакций, который придает любой совокупности операций, объявленных как транзакция, следующие свойства:
атомарность - при любых обстоятельствах будут либо выполнены все операции транзакции, либо не выполнена ни одна; целостность данных при завершении транзакции;
независимость - транзакции, инициированные разными пользователями, не вмешиваются в дела друг друга;
устойчивость к сбоям - после завершения транзакции, ее результаты уже не пропадут.
Масштабируемость
Масштабируемость - способность системы адаптироваться к росту количества пользователей и объема базы данных при адекватном повышении производительности аппаратной платформы, без замены программного обеспечения.
Общеизвестно, что возможности настольных СУБД серьезно ограничены - это пять-семь пользователей и 30-50 Мб, соответственно. Эти барьеры нельзя преодолеть за счет наращивания возможностей аппаратуры.
Системы же на основе серверов баз данных могут поддерживать тысячи пользователей и сотни ГБ информации на соответствующей аппаратной платформе.
Безопасность
Сервер баз данных предоставляет мощные средства защиты данных от несанкционированного доступа, невозможные в настольных СУБД. При этом, права доступа администрируются очень гибко - до уровня полей таблиц. Кроме того, можно вообще запретить прямое обращение к таблицам, осуществляя взаимодействие пользователя с данными через промежуточные объекты - представления и хранимые процедуры. Так что администратор может быть уверен - никакой слишком умный пользователь не прочитает то, что ему читать неположено.
В файл-серверной системе мы «просто» вносим изменения в приложение и обновляем его версии на рабочих станциях. Но это "просто" влечет за собой максимальные трудозатраты.
В двухуровневой клиент-серверной системе, если алгоритм расчета зарплаты реализован на сервере в виде правила расчета зарплаты, его выполняет сервер бизнес-правил, выполненный, например, в виде OLE-сервера, и мы обновим один из его объектов, ничего не меняя ни в клиентском приложении, ни на сервере баз данных.
Системы управления базами данных
Термин СУБД включает в себя довольно большое количество сильно отличающихся друг от друга инструментов для работы с базами данных (отдельные программы и подключаемые библиотеки). Так как данные бывают различных видов и типов, начиная со второй половины 20 века было разработано огромное количество разных СУБД и других приложений для работы с БД.
СУБД основываются на модели базы данных - это специальные структуры предназначенные для работы с данными. Все СУБД сильно отличаются в том, каким образом они хранят и обрабатывают свои данные.
Хотя существуют много решений для работы с БД, популярными и востребованными становятся лишь некоторые из них. Наиболее часто применяемая на сегодняшний день - реляционная система управления базами данных.
Реляционные СУБД берут своё название от модели БД с которой работают. На данный момент и, наверное, в ближайшем будущем эти СУБД будут наиболее популярным выбором для хранения данных.
Реляционные СУБД используют строго описанные структуры данных - схемы. Схема базы данных включает в себя описание содержания, структуры и ограничений целостности, т.е. она определяет таблицы, поля в каждой таблице, а также отношения между полями и таблицами.
Вот некоторые из наиболее популярных систем:
SQLite - довольно мощная встраиваемая СУБД
MySQL - наиболее популярная СУБД
PostgreSQL - самая профессиональная свободно распространяемая СУБД, полностью соответствующая стандартам SQL
Обзор наиболее распространенных СУБД
Выбор СУБД определяется многими факторами, но главный из них – возможность работы с построенной моделью данных. Поэтому одной из важнейших характеристик является тип модели (иерархический, сетевой, реляционный), который поддерживается СУБД. База данных для АРМ веб-дизайнера является реляционной. Помимо модели данных важным показателем является стоимость лицензии для разработки базы данных и стоимость поддержки данной СУБД. Также необходимо обращать внимание на минимальные технические требования для оперативной и эффективной работы СУБД [16].
В настоящее время на рынке представлен огромный выбор СУБД и каждая СУБД «заточена» под определенный круг задач, которые она может выполнять. Проведем сравнительный анализ СУБД для разработки подсистемы.
Для сравнения выберем такие СУБД, как: MS Access[24], MySQL[20], Oracle [8] и MS SQL Server [17]. Сравнительный анализ СУБД представлен в таблице 1.
Таблица 1
Сравнение СУБД
Критерии оценки |
MS Access |
MySQL |
MS SQL Server |
Orcale |
1 |
2 |
3 |
4 |
|
Размер базы данных |
||||
несколько Мб |
+ |
+ |
||
до 100Мб |
+ |
+ |
||
несколько ГБ |
+ |
+ |
+ |
|
100Гб и более |
+ |
+ |
||
Количество одновременных пользователей, работающих с базой данных напрямую |
||||
1 пользователь |
+ |
+ |
||
до 10 |
+ |
+ |
||
более 10 |
+ |
+ |
+ |
|
более 100 |
+ |
+ |
+ |
|
более 1000 |
+ |
+ |
||
Стоимость лицензии |
||||
бесплатно (только лицензия на пакет) |
+ |
+ |
||
дешево |
||||
дорого |
+ |
+ |
||
очень дорого |
||||
Платформа на которой способна работать СУБД |
||||
Windows |
+ |
+ |
+ |
|
Unix/Linux |
+ |
|||
Windows+Linux |
+ |
+ |
||
Кластеры |
+ |
|||
Встроенный язык программирования |
||||
Microsoft |
+ |
+ |
||
Языки для Linux |
+ |
|||
Тип программы |
||||
Локальное приложение |
+ |
+ |
||
WEB |
+ |
|||
Сложная система |
+ |
+ |
||
Защита данных |
||||
низкая |
||||
слабая |
+ |
|||
сильная |
+ |
+ |
+ |
|
Мощность языка SQL и возможности СУБД |
||||
очень слабые |
||||
слабые |
+ |
|||
развитые |
+ |
|||
мощные |
+ |
+ |
||
Требования к техническим характеристикам ПК |
||||
неприхотливые |
+ |
+ |
||
чувствительные |
||||
необходимы мощные сервера |
+ |
+ |
||
Возможные способы доступа к данным |
||||
ODBC |
+ |
|||
OLEDB/ADO |
+ |
+ |
+ |
|
DAO |
+ |
|||
BDE |
||||
Другое |
+ |
+ |
+ |
|
Сложность настройки и администрирования |
||||
никаких сложностей |
+ |
|||
небольшие сложности |
||||
необходимы специальные знания и помощь специалиста |
+ |
+ |
+ |
Для получения информации о характеристиках СУБД воспользуемся информационными порталами:
- www.tpc.org - зарубежная некоммерческая корпорация, сосредоточенная на разработке и проведении тестирования производительности программных и аппаратных комплексов;
- www.msdn.ru - крупнейший портал русскоязычный сайт, посвященный программному обеспечению.
На рисунке 5 представлено сравнение масштабируемости и уязвимости СУБД за период 2012-2015 по данным msdn.ru.
Рис. 5. Сравнение масштабируемости и уязвимости СУБД за период 2012-2015 по данным msdn.ru
На рисунке 6 представлен скриншот главного рабочего окна СУБД MS Access.
Рис. 6. Рабочее окно СУБД MS Access
На рисунке 7 представлено окно администрирования баз данных MS SQL Server.
Рис. 7. Окно администрирования баз данных MS SQL Server
На рисунке 8 представлен пример работы в СУБД MySQL с помощью программы MySQL-Front.
Рис. 8. Пример работы в СУБД MySQL с помощью программы MySQL-Front
На рисунке 9 представлен скриншот Oracle SQL Developer для работы с БД Oracle.
Рис. 9. Oracle SQL Developer
На рисунке 10 представлен пример среды администрирования PL/SQL Developer.
Рис. 10. Среда администрирования PL/SQL Developer
В таблице 2 представлены сравнительные характеристики СУБД. Приведены основные достоинства и недостатки рассматриваемых СУБД, результаты оценки производительности, средняя стоимость лицензии, действующая на момент написания проекта.
Таблица 2
Сравнительные характеристики СУБД
СУБД |
Характеристики |
||||
Производи-тельность |
Преимущества |
Ограничения |
Недостатки |
Цена, руб. |
|
MySql |
tpmC=220807 |
|
Размер таблицы до 4Гб |
|
0 |
Microsoft SQL Server |
tpmC=440879 |
|
Размер таблицы до 4Гб |
|
95000 |
Oracle Database |
tpmC=505302 |
прозрачное сжатие данных |
|
|
36 000 |