Разработка и эксплуатация удаленных баз данных
Тема: Архитектуры УБД
Делятся на локальные и удаленные:
Локальные делятся на : Персональные(бд, СУБД и приложение находится на 1 ПК) и Архитектура файл-сервер — предназначена для работы в локальной сети при этом приложение и СУБД расположены на компьютере пользователя а база данных на локальном сервере.
Удаленные — называются клиент-сервер при этом приложение находится на компьютере пользователя а база данных и СУБД на удаленном компьютере в глобальной сети. Такая архитектура может быть использована для локальной сети.
Архитектуру клиент-сервер делят на 2 вида:
«С толстым клиентом» и «С тонким клиентом»(из приложения выделяют ряд общих правил по обработке базы данных и выносят их(«сервер приложений») на удалённый сервер).
Достоинства и недостатки различных архитектур:
Файл-сервер:
Достоинства:
- возможность многопользовательской обработки БД;
Недостатки:
- не эффективна для решения задач по обработке больших БД т.к. выполнения запроса к базе данных хранящейся на сервере происходит в локальной копии данных на ПК пользователя и перед выполнением любого запроса данные копии обновляются в полном объёме;
- Обеспечение целостности базы данных производится из приложений, в результате возможно нарушение физической и логической целостности т.к. разные приложения могут по разному, иногда взаимоисключающими способами контролировать целостность данных.
Клиент-сервер:
Достоинства:
- Снижается нагрузка на сеть за счет уменьшения объёма данных пересылаемых по сети;
- Повышается степень безопасности данных за счет контроля целостности на сервере;
- Снижаются требования к аппаратному обеспечению пользователя;
Сервер баз данных обычно используют для обозначения всей СУБД основанной на архитектуре клиент-сервер. В качестве основанного интерфейса между клиентской и серверными частями выступает язык SQL. Название SQL сервер относится ко всем серверам баз данных основанных на SQL. Их преимущество — стандартность интерфейса. Недостаток — на стороне клиента работает слишком мала программ.
Типичное разделение функций между клиентом и сервером на стороне клиента работает только такое ПО которое не имеет непосредственного доступа к БД а обращается для этого к серверу с использованием языка SQL. В состав клиентской части включают некоторые функции для работы с локальным кэшем БД, то есть той части которая наиболее интенсивно используется прикладной программой. При современной технологии это можно сделать только путем формального создания на стороне клиента локальной копии сервера базы данных. И рассмотрения всей системы как набора взаимодействующих серверов.
Технологии удаленного доступа к данным
В больших организациях главным препятствием для свободного использования баз данных является несовместимость системного программного обеспечения. Для решения этой проблемы можно или привести все программные продукты к единому типу или использовать интерфейса ODBC — это стандартный интерфейс между базой данных и приложением взаимодействующим с ней. Доступ к данным осуществляется с использованием SQL, обязательные требования чтобы клиентская и серверная части поддерживали стандарт ODBC. Для приложения неважно какая СУБД установлена на сервере.
Интерфейс ODBC состоит из 4х функциональных компонентов:
-
Приложения — это та часть с которой работает пользователь.
-
Диспетчер драйвера — это библиотека динамической компоновки, она загружает необходимые драйверы для источников данных.
-
Драйвер — каждый драйвер получает вызовы функций через интерфейс ODBC и переводит их в код понятный источнику данных. Когда источник данных возвращает результат драйвер в обратном порядке преобразует его в стандартный для ODBC вид.
-
Источник данных — реляционная база данных находящаяся на одном компьютере с приложением или на удаленном компьютере. Для каждого источника данных требуется свой драйвер.
Технология доступа данных COM — эта технология описывает модель объекта и способы взаимодействия объекта и программ. Это законченный объект со своими свойствами и методами, который может встраиваться в приложения и распространятся как отдельный программный продукт. Примером использования COM технологии являются ActiveX технологии. Составные части:
-
Сервер COM — это модуль кода(.exe или .dll) где хранится код одного или нескольких компонентов COM.
-
Клиент COM — это программный код в котором происходит обращение к интерфейсу COM с запросом на выполнение услуг сервером COM. При этом клиент знает что надо получить от сервера но не знает как это будет реализовано и где сервер находится физически.
-
Интерфейс COM — описывает методы и свойства доступные программам обращающемся к COM объектам.
CORBA технология — это специальная технология позволяющая создавать распределенные приложения работающих на нескольких компьютерах, которые могут выполнятся одновременно под управлением разных операционных систем.
MIDAS технология — отдельные компоненты приложения выполняются на разных компьютерах:
-
Клиентская программа — реализует пользовательский интерфейс и посылает запросы на выполнение нужных действий.
-
Сервер приложений — организует работу всех компонентов системы и связи между ними.
-
Удаленный сервер баз данных — это СУБД на выделенном компьютере обрабатывающая запросы от сервера приложений и по этим запросам возвращающая данные или вносящая изменения в таблицу.
Технология ADO — эта технология является надстройкой в виде ActiveX компонентов над технологией OLE DB которая является расширением технологии OLE позволяющий получать доступ к информации организованной не только реляционным но и произвольным способом(мультимедийная информация, обычные файлы, Email)
SQL
Язык SQL не является языком программирования т.к. в нем имеются средства обработки реляционных баз данных но отсутствуют инструменты для управления ходом выполнения программы. Для каждой базы данных существует как минимум 2 файла: 1) для хранения данных и индексов(.mdf) 2) для хранения транзакций(.ldf).
Создание БД с помощью команд
Если пишется несколько операторов подряд то в конце каждого ставится ;. Комментарии заключаются в фигурные скобки.
Создание таблиц: create table имя таблицы( [not null] [Primary key])
Not null — не может быть пустым.
Primary Key — по этому полю будет создан первичный ключ.
Пример: create table A(num int not null primary key, fam char(20), name char(20)).
Создаваемую таблицу можно связать с другой с помощью ключевых полей:
create table имя([not null][Primary key], for eign key [references<род таблица>][on delete][on update])
Если запись из родительской таблицы удаляется или редактируется то можно задать действия:1) no action — запретить удаление и редактирование при наличии связанных записей в дочерней табилце.2)cascade — производится при аналогичных действиях дочерней таблицы.
Пример: Create A(dep char(15) not null primary key...
Create table A2(num not null primary key, dep char(15) for eign key(dep) ….
Изменение структуры таблицы alter table <имя><действие><поле>[<имя>]
after table F2 drop fio, add year_b date.
Удаление таблицы drop table <имя>.
Создание индекса create index <имя> on <таблица>(<поле>)
create index abc on a1(dep)
drop index <таблица>.<индекс>
drop index A1.abc
Команды перестройки индекса:
alter index <имя> diactiveate
alter inde <имя> activate