Реферат: Перенос Базы Данных на WEB-сервер
--PAGE_BREAK--5.
Разработка проекта:
4.1 Перенос базы данных на MicrosoftSQLServer.
Перенос базы данных компании «ТКС 008» осуществлялся с локального сервера в телефонной службе на WEB-сервер компании.
Механизм передачи информации выглядит следующим образом:
- с сервера телефонной службы, с помощью специально написанной программы, информации из базы данных собиралась в текстовый файл, причём для каждой таблицы существует отдельный файл.
- далее эти файлы доставляются физически на компьютер, установленный, как WEB-сервер компании.
- Следующим этапом текстовые файлы считываются, программой написанной опять же специально, считывается каждое поле, и на основании этого заноситься информация в базу данных SQL.
Теперь остановимся подробнее на всём механизме передачи информации.
Первоначально база данных клиентов компании «Телефонная Коммерческая Служба 008» была реализована на СУБД Btrieve 6.0, она работает под управлением операционной системы NetWareкомпании Novell. Для выгрузки из неё необходимой информации о клиентах, необходимо было написать программу для механического копирования содержимого полей некоторых таблиц, информация из которых требовалась для переноса на WEB-сервер. Такая программа была написана на языке Borland Pascal 7.0. Она выгружает только данные из таблиц, причем не все а только свежие ориентируясь на даты обновления записей присутствующие в базе данных. Данная программа механически записывает в текстовый файл поля некоторой таблицы из базы данных клиентов, разделённые маркером, так как не все поля базы данных являются фиксированной длинны. На каждую таблицу приходиться свой текстовый файл с содержимым её полей. Далее происходит доставка этих файлов на компьютер, являющийся WEB-сервером компании. Они помещаются в специально отведённую для них директорию, и программа обновления SQLбазы данных, так же специально написанная для этой. Приходящие несколько файлов, каждый из которых содержит обновления для одной из таблиц базы данных. Программа открывает эти файлы в нужной последовательности. Читает оттуда запись за записью. Ищет соответствующую запись в БД на SQL, каждая запись однозначно идентифицируется последовательностью ключевых полей — это программа узнает из первичного индекса к загружаемой таблице. Если запись уже присутствует в базе данных SQL, то она обновляется. В противном случае добавляется. Сама программа напрямую с базой «общаться» не может, поэтому «общение» происходит через альтернативу ODBC– BDE(BorlandDatabaseEngine).
Информационные системы, созданные на основе классической архитектуры клиент/сервер, называемые двухзвенными системами или системами с «толстым» клиентом, состоят из сервера баз данных, содержащего сгенерированные тем или иным способом таблицы, индексы, триггеры и другие объекты, реализующие бизнес-правила данной информационной системы, и одного или нескольких клиентских приложений, предоставляющих интерфейс пользователя и производящих проверку допустимости и обработку данных согласно содержащимся в них алгоритмам. Если говорить о клиентских приложениях, созданных с помощью Delphi, для доступа к источникам данных они используют вызовы функций прикладных программных интерфейсов клиентских частей соответствующих серверных СУБД. Эти вызовы осуществляются посредством использования библиотеки Borland Database Engine (BDE). Соответственно подобное клиентское приложение требует наличия на компьютере конечного пользователя клиентской части используемой серверной СУБД и присутствия в оперативной памяти набора динамически загружаемых библиотек как из клиентской части, так и из BDE, таких, как драйверы баз данных, библиотеки, содержащие функции API клиентских частей.
Используя BDE, можно создать приложения, работающие как с однопользовательскими базами данных (БД), так и с серверными СУБД, такими как Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, а также с ODBC-источниками.
BDE обеспечивает для созданных приложений:
непосредственный доступ к локальным базам данных (dBase, Paradox, текстовые файлы); доступ к SQL-серверам (Oracle, Sybase, MS SQL Server, InterBase, Informix, DB2) с помощью драйверов Borland SQL Links ; доступ к любым источникам данных, имеющим драйвер ODBC (Open DataBase Connectivity), например, к файлам электронных таблиц (Excel, Lotus 1-2-3), серверам баз данных, не имеющим драйверов SQL Links (например, Gupta/Centura); создание приложений клиент-сервер, использующих разнородные данные; высокую производительность при работе с плоскими таблицами; использование SQL (Structured Query Language — язык запросов к серверным СУБД), в том числе при работе с локальными данными; изоляцию приложения от средств языковой поддержки; изоляцию приложения от конфигурации системы и сети.
<img width=«600» height=«405» src=«ref-1_1951110494-6238.coolpic» v:shapes="_x0000_i1028">
Рис. 4 Связь приложений с источниками данных с помощью BDE.
BDE«общается» с SQLсервером через драйверы ODBC.
Следует обратить внимание на то, что перед описанием ODBC-источника в файле конфигурации BDE обязательно нужно установить соответствующий ODBC-драйвер и описать соответствующий источник данных в панели управления Windows NT, используя соответствующий ODBC-администратор. При этом следует обратить внимание на некоторую терминологическую неувязку. Дело в том, что ODBC-драйвер с точки зрения BDE, создаваемый при нажатии кнопки New ODBC Driver на странице Drivers утилиты конфигурации BDE, на самом деле представляет собой указание не на реальный ODBC-драйвер, установленный в панели управления Windows, а на конкретный источник данных, доступ к которому осуществляется с помощью реального ODBC-драйвера (с точки зрения панели управления). А потому рекомендуется такой порядок установки при осуществлении доступа к ODBC-источникам :
Установить нужный ODBC-драйвер (и, возможно, соответствующий ODBC-администратор для панели управления Windows). Описать с помощью ODBC-администратора необходимый источник данных в панели управления. Запустить утилиту конфигурации BDE и нажать кнопку New ODBC Driver на странице Drivers. Придумать и ввести имя так называемого ODBC-драйвера с точки зрения BDE. Выбрать «настоящий» ODBC-драйвер из установленных в операционной системе. Выбрать имя источника данных. Нажать OK. В списке драйверов появится новый так называемый ODBC-драйвер (с точки зрения BDE). Перейти на страницу Aliases и создать псевдоним, связанный со вновь созданным драйвером с точки зрения BDE.
При работе с ODBC-источниками требуется настройка следующих параметров:
Параметр
Описание
Значение по умолчанию
VERSION
Внутренний параметр BDE
1.0
TYPE
Идентификатор ODBC-источника
FILE
DLL
Имя 16-разрядной динамической библиотеки, содержащей драйвер
IDODBC16.DLL
DLL32
Имя 32-разрядной динамической библиотеки, содержащей драйвер
IDODBC32.DLL
ODBC DRIVER
ODBC-драйвер для соединения с сервером
DRIVER FLAGS
Внутренний параметр BDE
USER NAME
Имя пользователя в диалоге ввода пароля
ODBS DSN
Имя источника данных, описанного в администраторе ODBC
OPEN MODE
Параметр, определяющий, в каком режиме открываются таблицы — READ/WRITE orREAD ONLY
READ/WRITE
LANGDRIVER
Языковый драйвер, определяющий набор символов и порядок алфавитной сортировки
'ascii'ANSI
SCHEMA CASHE SIZE
Число таблиц, чья структура кэшируется. Возможные значения — от 0 до 32
8
SQLQRYMODE
Метод выполнения запросов. Возможные значения: LOCAL — запрос обрабатывается только клиентским приложением, SERVER — запрос выполняется только сервером, NULL (пустая строка) — запрос передается клиенту, если сервер не может его обработать.
NULL
SQLPASSTHRU MODE
Определяет режим совместного использования одного и того же псевдонима направляемыми на сервер и локальными запросами: NOT SHARED — совместное использование запрещено, SHARED AUTOCOMMIT — совместное использованием разрешено с автоматическим завершением транзакций, SHARED NOAUTOCOMMIT — совместное использованием разрешено с завершением транзакций по правилам сервера.
SHARED AUTOCOMMIT
TRACE MODE
Численное значение, определяющее уровень вывода отладочной информации.
SCHEMA CACHE TIME
Время нахождения информации о структуре таблиц в кэше в секундах от 1 до 2147483647. Другие значения: -1 — до закрытия БД, 0 — информация не кэшируется
-1
BATCH COUNT
Число записей, помещаемых в пакет до завершения транзакции
Число записей, умещающихся в 32 К.
MAX ROWS
Максимальное число записей, которые драйвер может доставить на рабочую станцию при выполнении одиночного SQL-запроса
-1 (нет ограничений)
ROWSET SIZE
Число записей, доставляемых в одном блоке данных (поддерживается не всеми ODBC- драйверами).
20
4.2 Реализация запросов к базе данных.
В данном разделе описывается построение запросов к базе данных, то есть написание самих файлов ASPс помощью которых пользователем осуществляется ввод информации для поиска необходимой ему информации, а так же программ-скриптов, находящиеся непосредственно на сервере и обрабатывающие запросы.
Специальных оболочек для написания данных программ-скриптов не использовалось, хотя компания Microsoftрекомендует для разработки свою программу VisualInterDev.
Начальная программа-скрипт (Db008.asp), запускается у пользователя-клиента, осуществляет вывод полей для ввода уточняющей информации по запросу. Эта же программа осуществляет вызов следующего ASPфайла и передачу ему необходимой информации по конкретному запросу.
Существует два метода для передачи параметров из форм: метод GETи метод POST.
Метод GET служит для получения любой информации, идентифицированной URI-Запроса. Если URI — Запроса ссылается на процесс, выдающий данные, в качестве ответа будут выступать данные, сгенерированные данным процессом, а не код самого процесса (если только это не является выходными данными процесса). Использование метода условный GET направлено на разгрузку сети, так как он позволяет не передавать по сети избыточную информацию.
Метод POST используется для запроса сервера, чтобы тот принял информацию, включенную в запрос, как субординантную для ресурса, указанного в Строке Статус в поле URI-Запроса. Метод POST был разработан, чтобы была возможность использовать один общий метод для следующих функций:
Аннотация существующих ресурсов Добавление сообщений в группы новостей, почтовые списки или подобные группы статей Доставка блоков данных процессам, обрабатывающим данные Расширение баз данных через операцию добавления
Реальная функция, выполняемая методом POST, определяется сервером и обычно зависит от URI- Запроса. Добавляемая информация рассматривается как субординатная указанному URI в том же смысле, как файл субординатен каталогу, в котором он находится, новая статья субординатна группе новостей, в которую она добавляется, запись субординатна базе данных.
Клиент может предложить URI для идентификации нового ресурса, включив в запрос заголовок «URI». Тем не менее, сервер должен рассматривать этот URI только как совет и может сохранить тело запроса под другим URI или вообще без него.
Для передачи параметров запроса используется метод POST, так как объем передаваемых параметром большой.
Далее происходит вызов других ASPфайлов, в зависимости от введённой информации по конкретному запросу или активизации определённой ссылки, а так же передача параметров самого запроса.
Вызванный файл — обработчик запроса. Он формирует конкретный запрос к базе данных и возвращает полученную информацию пользователю.
Список выполняемых функций конкретного файла:
- Srch_Org.asp– осуществляет запрос на выборку информации по организациям;
- Org_Info.asp— осуществляет запрос на выборку подробной информации об организациях;
- Srch_Glb.asp— осуществляет запрос по конкретной информации;
- Stat_TY1.asp— осуществляет запрос на выборку статистической информации по категории товаров;
- Stat_TY2.asp— осуществляет запрос на выборку статистической информации по категории услуги.
Схема взаимосвязей между файлами запросов:
<img width=«515» height=«277» src=«ref-1_1951116732-3655.coolpic» v:shapes="_x0000_s1035 _x0000_s1036 _x0000_s1037 _x0000_s1038 _x0000_s1039 _x0000_s1040 _x0000_s1041 _x0000_s1042 _x0000_s1053 _x0000_s1054 _x0000_s1055 _x0000_s1056 _x0000_s1058 _x0000_s1059 _x0000_s1060 _x0000_s1061 _x0000_s1062 _x0000_s1063 _x0000_s1064 _x0000_s1065 _x0000_s1066 _x0000_s1067 _x0000_s1068 _x0000_s1070 _x0000_s1071 _x0000_s1072 _x0000_s1073 _x0000_s1074 _x0000_s1075 _x0000_s1076">
Рис.5 Схема взаимосвязей между файлами запросами.
Начальный файл базы Db008.asp— содержит форму для ввода параметров поиска. Здесь пользователь может выбрать интересующий его раздел или просто задать слово для контекстного поиска, так же выбрав разделы где искать.
<img width=«623» height=«468» src=«ref-1_1951120387-44392.coolpic» v:shapes="_x0000_i1029">
Рис.6 Db008.asp
Далее происходит следующее:
- Когда пользователь нажимает кнопку типа «Submit» в форме Web-браузер запрашивает определённый ASP-файл с необходимым запросом по выборке необходимой информации, а так же передаёт необходимые параметры запроса.
- Далее уже непосредственно ASP-программа осуществляет запрос к базе данных SQLчерез драйвер ODBC с полученными параметрами.
- Затем полученные результаты поиска передаются WEB-браузеру пользователя.
Термин ODBC означает «open database connectivity» — технологию, основанную на стандарте ANSI/ISO, которая позволяет приложениям осуществлять доступ к нескольким базам данных сторонних поставщиков. В ODBC применяется интерфейс общего назначения CLI (call level interface), в котором SQL используется как стандарт для доступа к данным. Нашей целью является обеспечение устойчивых серверных сессий для клиентских систем, поддерживающих ODBC. Сессии могут переживать системный крах без потребности того, чтобы клиентские приложения не беспокоились об остановке работы, разве только из соображений времени выполнения.
Когда клиентское приложение запрашивает информацию из базы данных, запрос поступает драйверу ODBC, который является специфической программой для системы баз данных, реально производящей доступ к базе данных. Драйвер ODBC транслирует запрос таким образом, чтобы сервер баз данных мог понять его и ответить. Сервер передает запрошенные данные драйверу ODBC, который преобразует данные в форму, которую может понять клиентское приложение ODBC.
Все запросы на получение практически любого количества данных из одной или нескольких таблиц выполняются с помощью единственного предложения SELECT. В общем случае результатом реализации предложения SELECT является другая таблица. К этой новой (рабочей) таблице может быть снова применена операция SELECT и т.д., т.е. такие операции могут быть вложены друг в друга. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного «структуризированный» в названии языка SQL.
Предложение SELECT может использоваться как:
самостоятельная команда на получение и вывод строк таблицы, сформированной из столбцов и строк одной или нескольких таблиц (представлений); элемент WHERE- или HAVING-условия (сокращенный вариант предложения, называемый «вложенный запрос»); фраза выбора в командах CREAT VIEW, DECLARE CURSOR или INSERT; средство присвоения глобальным переменным значений из строк сформированной таблицы (INTO-фраза).
Здесь в синтаксических конструкциях используются следующие обозначения:
звездочка (*) для обозначения «все» — употребляется в обычном для программирования смысле, т.е. «все случаи, удовлетворяющие определению»; квадратные скобки ([]) – означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены); фигурные скобки ({}) – означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL; многоточие (...) – указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз; прямая черта (|) – означает наличие выбора из двух или более возможностей. Например обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC); точка с запятой (;) – завершающий элемент предложений SQL; запятая (,) – используется для разделения элементов списков; пробелы ( ) – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL; прописные жирные латинские буквы и символы – используются для написания конструкций языка SQL и должны (если это специально не оговорено) записываться в точности так, как показано; строчные буквы – используются для написания конструкций, которые должны заменяться конкретными значениями, выбранными пользователем, причем для определенности отдельные слова этих конструкций связываются между собой символом подчеркивания (_); термины таблица, столбец,… – заменяют (с целью сокращения текста синтаксических конструкций) термины имя_таблицы, имя_столбца, ..., соответственно; термин таблица – используется для обобщения таких видов таблиц, как базовая_таблица, представление или псевдоним; здесь псевдоним служит для временного (на момент выполнения запроса) переименования и (или) создания рабочей копии базовой_таблицы (представления).
Предложение SELECT (выбрать) имеет следующий формат:
подзапрос [UNION [ALL] подзапрос] ...
[ORDER BY {[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]
[,{[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]] ...;
и позволяет объединить (UNION) а затем упорядочить (ORDER BY) результаты выбора данных, полученных с помощью нескольких «подзапросов». При этом упорядочение можно производить в порядке возрастания — ASC (ASCending) или убывания DESC (DESCending), а по умолчанию принимается ASC.
В этом предложении подзапрос позволяет указать условия для выбора нужных данных и (если требуется) их обработки
SELECT
(выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями
FROM
(из) перечисленных таблиц, в которых расположены эти столбцы
WHERE
(где) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк
GROUP BY
(группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение)
HAVING
(имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп
и имеет формат
SELECT [[ALL] | DISTINCT]{ * | элемент_SELECT [, элемент_SELECT] ...}
FROM {базовая_таблица | представление} [псевдоним]
[,{базовая_таблица | представление} [псевдоним]] ...
[WHERE фраза]
[GROUP BY фраза[HAVING фраза]];
Элемент_SELECT — это одна из следующих конструкций:
[таблица.]* | значение | SQL_функция | системная_переменная
где значение – это:
[таблица.]столбец | (выражение) | константа | переменная
Синтаксис выражений имеет вид
( {[ [+] | — ] {значение | функция_СУБД} [ + | — | * | ** ]}… )
а синтаксис SQL_функций – одна из следующих конструкций:
{SUM|AVG|MIN|MAX|COUNT} ( [[ALL]|DISTINCT][таблица.]столбец )
{SUM|AVG|MIN|MAX|COUNT} ( [ALL] выражение )
COUNT(*)
Фраза WHERE включает набор условий для отбора строк:
WHERE [NOT] WHERE_условие[[AND|OR][NOT] WHERE_условие]…
где WHERE_условие – одна из следующих конструкций:
значение { = | <> | < | <= | > | >= } { значение | ( подзапрос ) }
значение_1 [NOT] BETWEEN значение_2 AND значение_3
значение [NOT] IN { ( константа [, константа]… ) | ( подзапрос ) }
значениеIS [NOT] NULL
[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']
EXISTS ( подзапрос )
Кроме традиционных операторов сравнения (= | <> | < | <= | > | >=) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:
AND
— когда должны удовлетворяться оба разделяемых с помощью AND условия;
OR
— когда должно удовлетворяться одно из разделяемых с помощью OR условий;
ANDNOT
— когда должно удовлетворяться первое условие и не должно второе;
продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике