3.3 Способы взаимодействия
с сервером
Взаимодействие с сервером
СУБД с рабочего места пользователя
может строиться различными способами:
«Клиент сервер»; «Толстый и тонкий»; «Терминал
сервер»
3.3.1Клиент-сервер.
В этом случае рабочее место
клиента располагает собственными
вычислительными мощностями и в
состоянии самостоятельно обрабатывать
данные. При всей заманчивости подобных
систем, а возможности современной
рабочей станции уступают возможностям
сервера незначительно, система
получается достаточно громоздкой. Общая
надежность, из-за сложности клиентского
ПО и проблем в обеспечении корректного
взаимодействия клиента с сервером, ниже,
чем в терминально - серверной системе.
Архитектура "клиент-сервер" при
большом объеме манипуляций с данными
требует высокоскоростных каналов, и решения
на этой основе становятся дорогими при
разнесении рабочего места и сервера уже
на 1-2 км. Кроме того, при идентичном количестве
рабочих мест архитектура "клиент-сервер",
по сравнению с "терминал-сервер"
требует большего штата отделов информационно-технического
сопровождения, либо большего времени
на решение пользовательских проблем.
В терминально-серверной системе администратор,
как правило, не бегает по рабочим местам
пользователей, и в большинстве случаев
рекомендует (каюсь, грешен, сам так делал
J) пользователю по телефону включить и
выключить терминал, перерегистрироваться
в системе и произвести проблемные действия
заново (при этом, все таки, стоит убедиться,
что в системе ничего не сломалось). В восьмидесяти
процентах случаев это помогает, в оставшихся
двадцати процентах можно не торопясь
забраться в систему и все аккуратно починить.
3.3.2 Толстый и тонкий.
Существует язык, который позволяет
более или менее однозначно описать, что
надо пользователю показать на экране
(HTML, если кто еще не догадался J), есть средства
для этого, типа Netscape Communicator, MSIE и проч.,
при помощи которых можно отрисовать вожделенные
пользователю окна, меню и многое другое,
используя вышеупомянутый HTML. И что важно
- эти средства есть практически на каждом
компьютере. Грех не воспользоваться!
А уж приделать к Web-серверу транслятор
запросов к серверу СУБД, как поступил
Informix (Informix Universal WebConnect), или включить http-сервер
непосредственно в дистрибутив сервера
СУБД, как поступил, например, Oracle - это
уже дело техники. Как-то само собой получилось,
что компьютерная пресса обозвала тонким
клиента на основе браузера, а тяжеловесного
клиента (Microsoft Excel или Oracle SQL*Forms для Windows,
например) - толстым. Безусловно, тонкий
клиент имеет большие перспективы, особенно
в отношении организации удаленного доступа.
Современные системы СУБД в состоянии
предоставить пользователю выгоды, как
системы "терминал-сервер", так и
выгоды системы "клиент-сервер". Оперативная
часть систем для увеличения надежности
и скорости работы может строиться на
основе алфавитно-цифровых терминалов,
а аналитическая часть может быть построена
на основе или браузеров или толстых клиентов.
Где как удобнее. Правда, иногда производители
СУБД поступают не совсем честно. Начиная
с версии 8 Oracle перестал поддерживать столь
любимые мною алфавитно-цифровые интерфейсы
(точнее говоря, поддерживает, но только
по корпоративному соглашению).
3.4 Правила целостности данных
Главная особенность SQL-технологий
наличие у сервера СУБД специальных
средств контроля целостности данных,
не зависящих от клиентских программ и
привязанных непосредственно к таблицам.
Т.е. принципиально не важно, каким образом
осуществляется доступ к базе данных:
через SQL-консоль, через ODBC-драйвера из
приложения Windows, через WWW-connector из Internet-браузера
или через DBI-интерфейс Perl. В любом из этих
случаев, за контролем целостности данных
следит сервер, и при нарушении правил
целостности данных сервер известит клиента
об ошибке. К структурам контроля целостности
данных относятся ограничители (constraint),
которые привязаны к столбцам и триггеры
(trigger), которые могут быть привязаны как
к столбцам, так и к строкам в таблице.
Ограничители это элементарные проверки
или условия, которые выполняются для
операций вставки и модификации значения
столбца. Если данная проверка не проходит
или условие не выполняется, то вставка
или модификация отменяется, а в программу
клиента передается ошибка.
SQL-технология позволяет
на уровне столбца задавать
домены значений, т.е. строго определенные
наборы или диапазоны значений,
для помещаемых в столбец данных.
В частности можно реализовывать
ограничения ссылочной целостности
(referential integrity constraint) и проверки фиксированного
условия. Ограничение ссылочной
целостности не позволяет значениям
из столбца одной таблицы принимать
значения кроме как из присутствующих
в столбце другой таблицы. Это
делается при помощи ограничителей
FOREIGN KEY (внешний ключ) и REFERENCES (указатель
ссылки). Таблица, содержащая FOREIGN KEY,
считается родительской таблицей.
Таблица, содержащая REFERENCES, считается
дочерней таблицей. Внешний ключ
и указатель ссылки могут находиться
в одной таблице, т.е. родительская
таблица одновременно является дочерней.
FOREIGN KEY - внешний ключ. Назначает столбец
или комбинацию столбцов в текущей (родительской)
таблице в качестве внешнего ключа для
ссылки из других таблиц. REFERENCES - указатель
ссылки (или родительский ключ). Указывает
на столбец (комбинацию столбцов) в родительской
таблице, ограничивающую значения в текущей
(дочерней) таблице. Ограничения ссылочной
целостности используются при каскадном
удалении, т.е. при удалении записи в родительской
таблице удаляются все записи с указанным
ключом из дочерних таблиц и, наоборот,
при запрете удаления/модификации, т.е.
при наличии зависимых записей в дочерних
таблицах, значение ключа записи в родительской
таблице нельзя удалить или модифицировать.
CHECK - проверка фиксированного условия.
В данном ограничителе явно указывается
условие, которое должно выполняться для
вставляемого или модифицируемого значения
в столбце. Например: check (user in 'ALEX','JUSTAS')
- в столбце user могут содержаться только
значения 'ALEX' и 'JUSTAS', попытка вставки значения
'SHTIRLITZ' будет интерпретирована как ошибочная
, check (user_salary between 1000 and 5000) - столбец user_salary
может принимать целочисленные значения
в диапазоне от 1000 до 5000 и т.д. При формировании
условий с некоторыми ограничениями могут
использоваться функции, например check
(user = upper(user)), в данном случае имя пользователя
должно вводиться только в верхнем регистре.
Есть и ограничения, например, CHECK не может
содержать подзапросы (SELECT).
3.5 Политика безопасности
Современный бизнес
очень часто пользуется методиками,
позаимствованными у спецслужб.
Поэтому чем большую ценность представляет
собой информация, которая в распоряжении
организации находится, тем выше стоимость
задач организации, тем острее стоят вопросы
доверия организации по отношению к своим
сотрудникам и пользователям информации,
тем совершеннее должны быть средства
отслеживания доступа к корпоративной
информации, бесконтрольное использование
которой может причинить серьезный вред.
Как и в операционных системах, в СУБД
эта задача решается при помощи идентификации
пользователей внутри СУБД, раздачи этим
пользователям соответствующих прав доступа
на объекты внутри СУБД, а также при помощи
аудита доступа к объектам СУБД. При аутентификации
через ОС, если пользователь уже зашел
в систему, то сервер СУБД не запрашивает
у пользователя пароля при доступе к ресурсам
БД. При аутентификации через сервер СУБД,
Oracle запрашивает пароль вне зависимости
от того, зарегистрировался ли пользователь
в ОС или нет. Корпорация Oracle считает аутентификацию
через сервер СУБД более безопасной и
рекомендует использовать именно ее. Причем
пароль внутри Oracle и пароль системный
являются независимыми друг от друга и
могут отличаться. Чтобы не назначать
каждому пользователю большое количество
прав доступа к каждой из групп таблиц
в системе, формируется некоторый список,
в котором все эти права перечисляются.
Дальнейшее назначение прав делается
при помощи этого списка. Совокупность
таких прав доступа к объектам СУБД называются
ролью доступа. В Oracle помимо ролей доступа,
есть еще и роли приложений (более подробно
про них указано в описании Oracle CDE, раздел
про SQL Menu). Функционально эти роли похожи,
но роли приложения являются исключительным
свойством SQL Menu. Они не связаны непосредственно
с возможностями Oracle и отвечают лишь за
доступ пользователя к приложениям. Пользователей
мало ограничивать, надо еще периодически
проверять их работу. Для этих целей служит
аудит. В Informix DS для лиц занимающихся аудитом
СУБД даже предусмотрены специальные
регистрационные имена. Зато если в системе
помимо приложений используются еще и
другие средства доступа к серверу СУБД,
например, SQL-консоль или ведется работа
при помощи скриптов, то внутренний аудит
СУБД является единственным средством
регистрации работы пользователей, в том
числе и системного администратора.
ЗАКЛЮЧЕНИЕ
В ходе практики был изучен
Microsoft SQL Server 2008. Также способ взаимодействия
(Клиент сервер). Получены теоретические
знания о системе Технического отдела
компании ООО«Мегастрой» (см. прил.). Приобретен
опыт работы на предприятии среди специалистов
отдела материально-технического снабжения.
В течение всей производственной практики
я обдумывала предстоящую дипломную работу
и решила выбрать тему: «Разработка автоматизированной
информационной системы мониторинга
заказов строительных материалов компании
ООО«Мегастрой»». Так как компании ООО«Мегастрой»
нужны дополнительные модули для мониторинга
заказов строительных материалов в
связи открытием отдела снабжения строительными
материалами внутренней отделки.
Список используемой
литературы
- Справочник администратора Microsoft SQL Server 2008 2009г.
- Компьютер и сети. Справочный материал 2008г.
- Развертывание и настройка Microsoft SQL Server 2008 2008г.
- Внутреннее устройство Microsoft Windows Windows Server 2003 2005г.