Резюме. В статье описываются обучение информатики, рассматривается развитие предмета информатики
также использование и обучение электронной учебной пособии.
Ключевые слова: информатика,информационная технология, электронный учебник.
Aitkylov J.S., Smagul B.R
Summary. In article are described informatics training, development of a subject of informatics also use and
training electronic educational a grant is considered.
Key words: informatics, information technology, electronic textbook
УДК 381.06
Айтхожаева Е.Ж., Муханмеджанова А.М. студент
Казахский национальный технический университет имени К.И.Сатпаева,
г. Алматы, Республика Казахстан, ait_evg@mail.ru
ЗАЩИТА В СУБД VISUAL FOXPRO
Аннотация. Данная работа посвящена проблемам организации защиты базы данных в СУБД Visual
FoxPro, являющейся одной из самых распространенных и востребованных файл-серверных систем.
Рассматривается вопрос об основных средствах защиты баз данных в клиент-серверных СУБД и файл-
серверной СУБД Visual FoxPro. Показаны преимущества использования СУБД Visual FoxPro в локальных
проектах. Предлагается использовать событийную модель Visual FoxPro для реализации отсутствующих
механизмов защиты: идентификация, аутентификация и авторизация пользователей, аудит и шифрование.
Ключевые слова: базы данных, событийная модель управления, механизмы защиты данных
СУБД Visual FoxPro (VFP) представляет собой файл-сервер приложений. Данные
располагаются на файл-сервере, который является источником данных для рабочих станций. Файл-
сервером называется компьютер, используемый как централизованное хранилище коллективно
используемых файлов. Рабочие станции - это компьютеры любого класса, совместно использующие
ресурсы серверов при решении своих прикладных задач. Ответственность за получение и обработку
данных, а также за поддержание целостности базы данных лежит на приложении, запущенном с
рабочей станции. При этом, поскольку обработка данных осуществляется на рабочей станции, по
сети передается вся необходимая для этой обработки информация, хотя интересующий пользователя
объем данных может быть намного меньше пересылаемого.
Большой объем передаваемых по сети данных существенно ограничивает число пользователей
в сети из-за ограниченности полосы пропускания канала связи. Даже для современных сверхбыстрых
сетей это критично. Сеть - узкое место таких систем, и в них изначально заложен потолок
производительности.
165
Поэтому на Visual FoxPro пишутся приложения, работающие как локально, так и в небольших
сетях с количеством пользователей не больше 50. И таких приложений много. Основные достоинства
Visual FoxPro - удобный интерфейс разработчика, простота базового языка, мощный диалект SQL для
эффективной работы с локальными и удалёнными данными, поддержка технологии COM и
возможностей, предоставляемых Windows API. Visual FoxPro приложения, не только ни в чём не
уступают приложениям, созданным с помощью Visual Basic или Delphi, но и превосходят их по
удобству и скорости работы с данными.
Во многих странах имеются FoxPro-сообщества, объединяющие приверженцев этой СУБД,
которые предлагают Microsoft продолжить работу по обновлению Visual FoxPro или выпустить его в
сообщество с открытым исходным кодом.
Популярность СУБД объясняется комфортностью среды разработки, приемлемой стоимостью
и практически нулевыми затратами на сопровождение приложений (в отличие от стоимости клиент-
серверной СУБД и сопровождения клиент-серверных приложений). Структура данных проста в
использовании и обслуживании. Имеется объектно-ориентированный и процедурный (на основе
xBase) язык программирования систем управления реляционными базами данных (разработанный
корпорацией Microsoft), приближенная к стандарту реализация SQL, удобная визуальная среда
разработки приложений баз данных [1]. Немаловажно, что Visual FoxPro может работать и как клиент
MS SQL Server или другой клиент-серверной СУБД.
Первоначальные версии FoxPro работали под Mac OS, DOS, Windows и Unix, но затем список
поддерживаемых платформ сократился до Mac OS и Windows, а в более поздних версиях - уже только
до Windows (Visual FoxPro может работать на Linux под Wine).
VFP 9 (выпущен в производство 17 декабря 2004 г.) — последний коммерческий релиз VFP от
Microsoft [1]. Поддержка версии 9 продолжается с пакетами обновления, которые были выпущены 8
декабря 2005 и 11 октября 2007 года. Текущая версия MS Visual FoxPro основана на технологии
COM.
Существует проект под кодовым названием Sedna (Седна), который представляет собой набор
дополнений к VFP 9.0 из xBase-компонентов для поддержки ряда сценариев и алгоритмов
взаимодействия с различными технологиями Microsoft, включая SQL Server, .NET Framework,
Windows Vista, Office 2007, Windows Search и Team Foundation Server (TFS). Microsoft выпустила
Седну под лицензией Shared Source на сайте CodePlex.
Для небольших, локальных проектов VFP является адекватным решением. При этом
необходимо решать вопросы сохранения логической целостности базы данных, обеспечения защиты
и безопасности данных.
Существует известный набор встроенных механизмов в клиент-серверных СУБД,
защищающих систему от неверных действий пользователей (как случайных, так и преднамеренных).
Среди этих механизмов можно назвать: ограничение целостности, декларативная ссылочная
целостность, триггеры, виртуальные таблицы (представления), управление транзакциями,
идентификация пользователей, аудит и шифрование [2].
В VFP (файл-серверная СУБД) также решается проблема поддержания целостности данных для
таблиц, входящих в состав базы данных.
Проблема целостности – это проблема обеспечения точности и корректности данных,
хранящихся в базе данных. При обеспечении целостности система должна содержать сведения о
тех правилах – ограничениях целостности, которые пользователю не следует нарушать [3]. Кроме
того, СУБД каким-то образом должна следить за соблюдением заданных правил при выполнении
пользователем некоторых операций.
Ограничения целостности бывают:
- внутренние (накладываются и отслеживаются самой СУБД);
- явные или внешние (ограничения задаются в явном виде администратором БД или
программистом).
Ограничения могут относиться к таблицам или отдельным столбцам. Ограничения на столбцы
задаются при создании таблицы. Ссылочные ограничения отвечают за целостность связей между
таблицами. Подобное ограничение требует, чтобы каждому значению в столбце или группе столбцов
одной таблицы соответствовало ровно одно значение в другой таблице. Ограничения всех видов в
СУБД VFP накладываются и отменяются владельцем таблицы при создании или модификации
структуры таблицы (правила, значения по умолчанию, первичные ключи, индексы, маски ввода и
т.д.) и влияют на исход последующих операций с данными.
166
Ограничения целостности могут поддерживаться и механизмом триггеров, который реализован
и в VFP. Триггеры являются особым видом хранимых процедур, каждый триггер связан с
определенной таблицей БД. Триггер инициализируется на определенное действие, связанное либо с
обновлением, любо с удалением, либо с добавлением данных в таблице. На каждое такое действие
должен быть определен отдельный триггер. Выполнение триггера происходит непосредственно в
месте хранения БД (в архитектуре клиент-сервер – на сервере). Триггеры обычно применяются для
сложных критериев, при необходимости выполнения дополнительных операций на указанное
действие, когда недостаточно стандартных ограничений и табличных средств по обеспечению
целостности данных.
Существуют триггеры UPDATE, DELETE, INSERT, используемые для обеспечения
целостности данных. В VFP существует только триггер After, в то время, как в клиент-серверных
СУБД поддерживаются два типа триггеров:
- триггеры, которые срабатывают после выполнения этих действий (After),
- триггеры, которые срабатывают вместо выполняемых действий (Instead).
Триггер и вызвавший его оператор рассматриваются как единое целое - единая транзакция,
отменяемая (откатываемая) из триггера. Если триггер (любая из его команд) не может быть выполнен
или не выполняется условие триггера, то происходит откат транзакции (триггера и вызвавшего его
оператора).
Механизм транзакций, который используется в триггерах, также поддерживается в VFP. Но
транзакции могут быть использованы и для других целей организации защиты данных. Основное
назначение транзакций - это защита групп обрабатывающих инструкций.
При работе в локальной сети возможность одновременного доступа к общим данным является
мощным средством совместной работы группы пользователей (совместно используемая база данных
хранится на сервере). Однако при этом в процессе разработки приложения, требуются
дополнительные действия по упорядочению доступа к базе данных. Основной проблемой является
устранение противоречий между параллельным доступом к данным и защитой и сохранением
целостности базы данных.
Оптимизировать совместную работу группы пользователей позволяет использование
транзакций и блокировок.
Транзакция в том смысле, в котором она используется в СУБД, представляет собой логическую
единицу работы. В общем случае транзакция представляет собой последовательность нескольких
операций манипулирования данными (чтения, удаления, вставки, модификации), которая преобразует
некоторое целостное состояние базы данных в другое целостное состояние, однако не гарантирует
сохранения целостности во все промежуточные моменты времени. Преобразование выражается в
обновлении данных в таблицах базы. Результаты всех операторов, входящих в транзакцию,
отображаются в БД, либо воздействие всех этих операторов полностью отсутствует. Система, которая
поддерживает обработку транзакций, является лучшей с точки зрения обеспечения гарантий
надежности. В частности, она гарантирует, что если в транзакции осуществлялись некоторые
обновления, а затем по какой-либо причине произошла ошибка до того, как транзакция достигла ее
нормального завершения, то эти обновления будут аннулироваться. Следовательно, все обновления,
внесенные в базу данных в рамках транзакции, либо одновременно подтверждаются, либо не
подтверждается ни одно из них. Принцип восстановления и процесс транзакции в целом не зависят
от того, является ли базовая система реляционной или какой-либо еще.
Представления данных (VIEW) представляют собой временные, виртуальные таблицы и
являются объектами базы данных, информация в которых не хранится постоянно, как в таблицах, а
формируется динамически при обращении к ним.
Использование представлений позволяет решить одновременно несколько задач, в том числе и
задачу защиты данных от пользователей. Использование представлений бывает полезным в случае
необходимости сложного разграничения доступа, так как в выборку представления можно включить
только те столбцы, которые разрешено выбирать пользователю, доступ к базовой таблице запрещен.
Пользователям в этом случае предоставляется право доступа на представления, а не на таблицы.
Все указанные выше механизмы обеспечения защиты и безопасности поддерживаются в VFP.
Для их использования необходимо данные хранить не в автономных таблицах, а в таблицах базы
данных. База данных в VFP - это совокупность таблиц, отношений между таблицами, индексов,
триггеров и хранимых процедур. Объектами базы данных являются таблицы, локальные
представления, удаленные представления, соединения с внешними источниками, хранимые
процедуры [4]. В этом случае появляется возможность превратить базу данных VFP из пассивного
167
источника данных в интеллектуальное ядро системы, используя индексы, триггеры, хранимые
процедуры, различные ограничения целостности, представления.
Но в VFP отсутствуют механизмы идентификации, аутентификации, авторизации
пользователей, шифрования, аудита и мониторинга. Решением данной проблемы является
применение событийной модели управления, используемой в VFP.
Идентификация пользователей является самым первым рубежом в реализации логической
системы безопасности. Идентификатор пользователя идентифицирует пользователя, связанного с
системой и, в конечном счете, с теми ресурсами, к каким этот пользователь имеет доступ.
После идентификации необходимо провести аутентификацию пользователя, то есть проверить,
является ли пользователь именно тем, кем себя объявляет. Распространенным методом
аутентификации пользователей все еще является проверка пароля пользователя.
Авторизация – это проверка прав доступа пользователей. Права доступа - это права, дающие
возможность доступа к объекту базы данных. Право доступа предоставляется пользователю или
группе пользователей для выполнения таких функций, как выборка данных, добавления новых строк
или обновление данных.
Возможны случаи, когда пытаются проникнуть в базу данных, минуя систему, т.е. физически
перемещая часть базы данных или подключаясь к коммуникационному каналу. Наиболее
эффективным методом борьбы с такими угрозами является шифрование данных, т.е. хранение и
передача особо важных данных в зашифрованном виде с использованием криптографических
методов.
Мониторинг вводится для наблюдения за работой ОС, ее служб, служб сервера баз данных,
хранимых процедур, времени нахождения пользователя в системе и т.д. Результаты мониторинга
используются для оптимизации работы сервера баз данных.
Аудит – это контрольное слежение выполняемых операций в сервере БД. При работе с очень
важными данными или при выполнении критических операций возникает необходимость
регистрации контрольного следа выполняемых операций. Для сохранения контрольного следа
обычно используется особый файл, в котором система автоматически записывает все выполненные
пользователем операции при работе с обычной базой данных.
В событийной модели управления, используемой в VFP, имеются события объекта Database
Container (DBC), иначе называемого контейнер базы данных. Они позволяют организовать связь
между обработчиками событий (кодом), написанными разработчиком, и активностью базы данных во
время работы пользователя, такой как открытие таблицы, добавление или удаление представления,
изменение свойств и т.д. Существует возможность использовать события контейнера Database (DBC)
и добавлять код к специфическим событиям в базе данных.
Для таких объектов базы данных, как таблицы, представления, отношения, хранимые
процедуры, соединения существуют свои наборы событий.
Для реализации защиты баз данных, аудита и контроля целостности применяются процедуры
на основе использования событий базы данных.
Для авторизации пользователей, шифрования, аудита и мониторинга необходимо, как
минимум, создать три служебные таблицы. Данные о пользователях (учетные записи), используемые
для идентификации, аутентификации и авторизации пользователей будут храниться в служебной
таблице Logins. Информация в этой таблице хранится в зашифрованном виде. Права пользователей
можно хранить в этой же таблице, а можно их выделить в отдельную таблицу. Дополнительно нужна
служебная таблица Keys для хранения текущих ключей пользователей шифрования и дешифрования
с указанием имени базы данных и имени таблицы. Роль журнала аудита будет выполнять служебная
таблица Audits. Информация в этой таблице хранится в зашифрованном виде. Служебные таблицы
хранятся в служебной базе данных на сервере, открываются только для монопользовательской
работы, т.е. в эксклюзивном режиме. В этом случае они будут недоступны пользователям с других
компьютеров – рабочих станций.
Для того чтобы использовать события Database в целях организации защиты информации,
необходимо к событиям базы данных написать процедуры – обработчики событий (методы),
обеспечивающие защиту и безопасность базы данных, ведение журнала аудита. Например:
шифрование и дешифрование данных во время открытия или закрытия таблицы, проверка прав
доступа пользователя при открытии базы данных, таблицы, запрет на внесение изменений в базу
данных, таблицу, представление и т. д.
В основном процедуры предназначены для проверки прав пользователей на выполнение
предпринимаемых действий и, при необходимости, запрета выполняемых действий, для занесения
168
информации в журнал аудита о выполняемых действиях с объектами базы данных. В кодах
обработки событий можно использовать как команды базового языка программирования FoxPro, так
и команды стандартного языка запросов SQL. Использование команд SQL управления транзакциями
позволяет выполнить откат нежелательных команд даже после их выполнения. Такую возможность
дает журнал транзакций. Каждая база данных имеет соответствующий ей журнал транзакций,
который ведется СУБД и недоступен пользователям.
Код обработчика события может создаваться вручную во внешнем файле, или с
использованием команды Properties меню Database, выбор которой предоставляет перечень всех
событий в базе данных и шаблоны для создания процедур – обработчиков событий (начало и конец
процедуры).
Таким образом, в файл-серверной СУБД VFP можно организовать полноценную защиту
данных, используя встроенные механизмы ограничения целостности и защиты и событийную модель
управления СУБД.
ЛИТЕРАТУРА
1. Айтхожаева Е.Ж. Системы баз данных. – Алматы: КазНТУ, 2002. – 224 с.
2. Петкович Д. Microsoft SQL Server 2012. Руководство для начинающих – СПб.: БХВ-Петербург, 2013.
– 816 с.
3. Дейт К.Дж. Введение в системы баз данных, 7-е издание.: Пер. с англ. – М.: Вильямс, 2003. – 1328 с.
4. Лебедев А.Н. Visual FoxPro 9.0. – М.: НТ Пресс, 2005. – 328 c.
Айтхожаева Е.Ж., Муханмеджанова А.М.
Visual FoxPro ДҚБЖ-да қорғау
Түйіндеме. Бұл мақалада ДҚБЖ VFP файл-серверлік дереққорларды қорғауды ұйымдастыру,
деректерді толық қорғаумен қоса, орнатылған тұтастық шектеу механизмін және оқиғалы ДҚБЖ басқару
моделін пайдаланады.
Түйін сөздер: дерекқор, басқарманың оқиғалы қалыбы, деректердің ығының тетіктері.
Aithozhaeva E.Zh., Mukhanmejanova A.M.
Protection in Visual FoxPro database
Summary. The article describes the organization of database protection in the file-server DBMS VFP, in which
you can implement full data protection using the built-in mechanisms of protection and integrity constraints and event-
management model DBMS.
Key words: database, the event management model, data protection mechanisms.
УДК 681.3
Айтхожаева Е.Ж., Сагымбекова А.О., Орынбаева Ж.Н. бакалавр
Казахский национальный технический университет имени К.И. Сатпаева,
г. Алматы, Республика Казахстан, sagymbekova@mail.ru
СРАВНИТЕЛЬНЫЙ АНАЛИЗ СЕРВЕРНЫХ СУБД
Аннотация. В статье рассматриваются функциональные возможности, преимущества и недостатки
распространенных серверов баз данных: Оracle и Microsoft SQL Server. Проводится сравнительный анализ
основных характеристик данных серверов: производительности, масштабируемости, безопасности, совокупной
стоимости владения и т.д. Предлагаются рекомендации по сферам применения Оracle и Microsoft SQL Server.
Ключевые слова: База данных, система управления базами данных, данные, резервирование, защита
данных.
Современная жизнь нашего общества очень тесно связана ресурсом, называемым
информацией. Информация стала сегодня одним из главных составляющих развития мирового
сообщества и цивилизации.
Деятельность всех предприятий, организаций, компаний связана с получением, накоплением,
хранением, обработкой и использованием информации. Их работа немыслима без эффективного
управления. Важной категорией являются системы обработки информации, от которых во многом
зависит эффективность работы любого предприятия. Одним из главных составляющих
информационных систем является база данных [1].
169
На сегодняшний день используется клиент-серверная архитектура баз данных. Известны более
двух десятков серверных систем управления базами данных (СУБД), однако наиболее популярными,
исходя из числа продаж и инсталляций, следует признать Oracle и Microsoft SQL Server. Сведения о
производителях СУБД представлены в таблице 1.
Таблица 1
Сведения о производителях СУБД
СУБД
Производитель
Url
Oracle
Oracle Corp.
http://www.oracle.com
Microsoft SQL Server
Microsoft
http://www.microsoft.com
Informix
Informix
http://www.informix.com
Sybase
Sybase
http://www.sybase.com
DB2
IBM
http://www-4.ibm.com
СУБД Microsoft SQL Server содержит ряд функций, позволяющий организациям уверенно
масштабировать операции с базами данных, повысить производительность труда ИТ-специалистов и
разработчиков, а также внедрить хорошо масштабируемое и управляемое решение для бизнес-
анализа без использования программирования. Ниже перечислены преимущества СУБД Microsoft
SQL Server[2].
Надежная, масштабируемая платформа. Служба SQL Server Master Data Services
обеспечивает согласованность данных в неоднородных системах, технология SQL Server
StreamInsight эффективно обрабатывает сложные потоки событий. Платформа поддерживает
возможность вертикального масштабирования на мощных современных серверах архитектуры x64 и
Itanium до 256 логических процессоров.
жүктеу/скачать Достарыңызбен бөлісу: |