Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
321 / Базы данных.doc
Скачиваний:
258
Добавлен:
11.04.2015
Размер:
315.9 Кб
Скачать

Тема 6. Технологии обработки баз данных

Лекция: Классификация баз данных по технологии обработки.

За всю историю развития баз данных было разработано множество способов хранения, структуризации и обработки информации. По технологии обработки базы данных подразделяются следующим образом:

Распределенная база данных. Этот способ обработки требует использования нескольких серверов, на которых может храниться пересекающаяся или даже дублирующаяся информация. Для работы с такой базой данных используется система управления распределенными базами данных (СУРБД).

Централизованная база данных. При таком способе обработки база данных располагается на одном компьютере. Если для этого компьютера установлена поддержка сети, то множество пользователей с клиентских компьютеров могут одновременно обращаться к информации, хранящейся в центральной базе данных. В локальных сетях чаще всего используется именно такой способ обработки данных. Системы централизованных баз данных с сетевым доступом имеют различные архитектуры:

Файл-сервер. Эта архитектура предполагает использование выделенного компьютера в качестве сервера файлов. На этом сервере хранятся файлы базы данных, которые по запросу пользователей копируются на их локальные компьютеры. Там и проводится вся основная обработка данных. После того как пользователи выполнят необходимые изменения данных, они копируют файлы обратно на файл-сервер, где другие пользователи, в свою очередь, могут снова их использовать. Кроме того, каждый пользователь может создавать на локальном компьютере свои собственные базы данных, используемые им монопольно. При использовании архитектуры «файл-сервер» производительность системы резко падает с ростом числа пользователей.

Клиент-сервер. При использовании этой архитектуры выделенный компьютер используется не только в качестве хранилища файлов, но и для выполнения основного объема действий по обработке информации. Пользователь (клиент) с рабочей станции отправляет список операций обработки данных (запрос), которые необходимо выполнить, центральному компьютеру (серверу). Сервер выполняет необходимые вычисления и выборку данных и отправляет готовый результат клиенту.

Компьютерная архитектура клиент/сервер – это тип распределенной модели для хранения данных, получения к ним доступа и их обработки. В распределенной системе множество компьютеров вместе выполняют определенный набор операций. Система клиент/сервер использует, по крайней мере, два компьютера. Объем работы, выполняемый клиентом и сервером, определяется их возможностями. Их взаимодействия представляет собой форму групповой работы, которая позволяет достигать высокой эффективности и скорости во всех операциях. Клиент/сервер, как следует из названия, подразумевает неравное деление нагрузки при обработке данных, т. к. их возможности отличаются.

Для соединения клиентов и сервера требуется сетевое программное обеспечение, которое встроено в ОС Win NT.

Win NT предоставляет возможность выбора сетевого прототипа для связи между клиентом и сервером.

В системах клиент/сервер приложение, работающее на сервере, отвечает за создание и поддержку объектов баз данных в виде таблиц и индексов. Сервер поддерживает целостность ссылок и безопасность, а также обеспечивает возможность восстановления данных в случае широкого спектра отказов.

Приложения клиента выполняют всю работу по взаимодействию с пользователем, включая отображение информации и предоставление возможности работы с приложением через графический интерфейс пользователя. После того как из сервера выбраны строки данных, приложение может создавать их копии для локального хранения и последующего манипулирования с данными.

Прежде чем разрабатывать БД, необходимо понять, где находятся функциональные компоненты нашей системы. Это важно, чтобы понять, где происходит обработка данных и что стоит хранить в базе данных, а что лучше вычислять или определять по ходу дела.

Система клиент/сервер – это не только база данных, которая находится в одном месте (ПК), но и доступна с нескольких рабочих станций.

Система клиент/сервер не может быть создана из таблиц, например Microsoft Access, так как здесь нет того интеллектуального языка, который мог бы обрабатывать базу данных независимо от приложения. Логика, контролирующая данные, подчиняется указаниям приложения клиенткой стороны.

Типичные задачи клиенткой стороны:

вывод информации для пользователя;

манипулирование информацией в базе данных и на экране пользователя;

отображение отчетов;

обеспечение выполнения операций, прерванных пользователем;

клиентское приложение должно работать только с результирующим набором данных, а не со всеми доступными данными.

Типичные задачи серверной стороны.

любая операция, которая запускается на сервере, никогда не должна требовать для своего завершения участия пользователя;

ядро базы данных несет ответственность за хранение, обновление и извлечение информации;

посредством правил (rules) и примеров (trigger) определяет функции, автоматически выполняемые сервером, на основе хранящейся в базе данных значений.

Виды привилегий

Привилегии в СУБД можно подразделить на две категории: привилегии безопасности и привилегии доступа. Привилегии безопасности позволяют выполнять административные действия. Привилегии доступа, в соответствии с названием, определяют права доступа субъектов к определенным объектам.

Привилегии безопасности

Привилегии безопасности всегда выделяются конкретному пользователю (а не группе, роли или всем) во время его создания (оператором CREATEUSER) или изменения характеристик (оператором ALTERUSER). Таких привилегий пять:

  • security - право управлять безопасностью СУБД и отслеживать действия пользователей. Пользователь с этой привилегией может подключаться к любой базе данных, создавать, удалять и изменять характеристики пользователей, групп и ролей, передавать права на доступ к базам данные другим пользователям, управлять записью регистрационной информации, отслеживать запросы других пользователей и, наконец, запускать INGRES-команды от имени других пользователей. Привилегия security необходима администратору сервера баз данных, а также лицу, персонально отвечающему за информационную безопасность. Передача этой привилегии другим пользователям (например, данных) увеличивает число потенциально слабых мест в защите данных.

  • createdb - право на создание и удаление баз данных. Этой привилегией, помимо администратора сервера, должны обладать пользователи, которым отводится роль администраторов отдельных баз данных.

  • operator - право на выполнение действий, которые традиционно относят к компетенции оператора. Имеются в виду запуск и остановка сервера, сохранение и восстановление информации. Помимо администраторов сервера и баз данных этой привилегией целесообразно наделить также администратора операционной системы.

  • maintain_locations - право на управление расположением баз, администраторы сервера баз данных и операционной системы.

  • trace - право на изменение состояния флагов отладочной трассировки. Данная привилегия полезна администратору сервера баз данных и другим знающим пользователям при анализе сложных, непонятных ситуаций.

Привилегии доступа

Привилегии доступа выделяются пользователям, группам, ролям или всем посредством оператора GRANT и изымаются с помощью оператора REVOKE. Эти привилегии, как правило, присваивает владелец соответствующих объектов (он же - администратор базы данных) или обладатель привилегии security (обычно администратор сервера баз данных).

Прежде чем присваивать привилегии группам и ролям, их (группы и роли) необходимо создать с помощью операторов CREATEGROUP и CREATEROLE.

Для изменения состава группы служит оператор ALTERGROUP. Оператор DROPGROUP позволяет удалять группы, правда, только после того, как опустошен список членов группы. Оператор ALTERROLE служит для изменения паролей ролей, aDROPROLE - для удаления ролей.

Создавать и удалять именованные носители привилегий, а также изменять их характеристики может лишь пользователь с привилегией security. При совершении подобных действий необходимо иметь подключение к базе данных, в которой хранятся сведения о субъектах и их привилегиях.

Привилегии доступа можно подразделить в соответствии с видами объектов, к которым они относятся. В СУБД INGRES таких видов пять:

  • таблицы и представления

  • процедуры

  • базы данных

  • сервер баз данных

  • события.

Стандартные привилегии

SQL привилегии определенные ANSI - это привилегии объекта. Это означает, что пользователь имеет привилегию, чтобы выполнить данную команду только на определенном объекте в базе данных. Очевидно, что привилегии должны различать эти объекты. Привилегии объекта связаны одновременно и с пользователями и с таблицами. То есть, привилегия дается определенному пользователю в указанной таблице, или базовой таблице или представлении. Вы должны помнить, что пользователь создавший таблицу (любого вида), является владельцем этой таблицы.

Это означает, что пользователь имеет все привилегии в этой таблице и может передавать привилегии другим пользователям в этой таблице. Привилегии, которые можно назначить пользователю:

SELECT Пользователь с этой привилегией может выполнять запросы в таблице.

INSERT Пользователь с этой привилегией может выполнять команду INSERT в таблице.

UPDATE Пользователь с этой привилегией может выполнять команду UPDATE на таблице. Вы можете ограничить эту привилегию для определенных столбцов таблицы.

DELETE Пользователь с этой привилегией может выполнять команду DELETE в таблице.

REFERENCES Пользователь с этой привилегией может определить внешний ключ, который использует один или более столбцов этой таблицы, как родительский ключ. Вы можете ограничить эту привилегию для определенных столбцов. Кроме того, вы столкнетесь с нестандартными привилегиями объекта, такими, например как INDEX (ИНДЕКС) дающим право создавать индекс в таблице, SYNONYM (СИНОНИМ) дающим право создавать синоним для объекта и ALTER (ИЗМЕНИТЬ) дающим право выполнять команду ALTER TABLE в таблице. Механизм SQL назначает пользователям эти привилегии с помощью команды GRANT