БАЗЫ ДАННЫХ часть II Создание информационных систем на основе БД Фролов А. В., Фролов Г. В. Базы данных в Интернете: практическое руководство по созданию.

Презентация:



Advertisements
Похожие презентации
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Advertisements

Программируемый клиент ORACLE Технология Pro C/C++
Лекция 2. Тема « Новые технологии и тенденции развития Интернет »
Корпоративные системы Лекция 5. Механизмы доступа к БД через Web-интерфейс.
Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
Информационные системы. Базы данных. Информационная система – любая система обработки информации (шир)
Интеграция «1С:Предприятие 8» с другими системами ЗАО "МиСофт НВП" , г.Минск, ул.Шафарнянская, 11, офис 31. тел. (017)
БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
PL/SQL Курсоры в PL/SQL Неявные курсоры создаются PL/SQL неявно для всех команд DML и SELECT. Явные курсоры объявляются программистом, который присваивает.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
Администрирование информационных систем Лекция 4. Система управления базами данных.
Языки, технологии и средства создания Web-сайтов. Компонентная структура. Выполнил Федорова Я.В., студентка СФУ ИППС 1 курс заочное отделение.
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 5 СТРУКТУРИРОВАННЫЙ ЯЗЫК ЗАПРОСОВ SQL.
СУБД Microsoft Access 2003 ЗНАКОМСТВО. Что такое Access? Access – Приложение, входящее в состав пакета Microsoft Office (разработано компанией Microsoft).
Соколова В. В. Поддержка баз данных в РНР. Соколова В. В. Лаб 6 Работа с базами данных в РНР В РНР реализована обширная поддержка практически всех существующих.
Java Database Connectivity (JDBC) Универсальное API для доступа к данным.
Object Relational Mapping (ORM) Объектно-реляционное отображение.
Чувашский Государственный педагогический университет имени И.я.Яковлева Тема учебного проекта: Базы данных в сети Интернет Автор: Студент ФМФ 5-го курса.
Лекция 23 Лекция 23 Схемы распределения данных и запросов. Обработка распределенных данных и запросов. Многопотоковые и многосерверные архитектуры. Типы.
РЭУБД РЭУБД Модель распределенных объектов.
Транксрипт:

БАЗЫ ДАННЫХ часть II Создание информационных систем на основе БД Фролов А. В., Фролов Г. В. Базы данных в Интернете: практическое руководство по созданию Web-приложений с базами данных. Изд. 2-ое, испр. М.: Издатель- ско-торговый дом «Русская Редакция», с.

Связь приложений с базами данных Для доступа к базам данных SQL Server можно использовать различные методы программный интерфейс DB Library, программный интерфейс ODBC, объектный интерфейс RDO, объектный интерфейс OLE DB и объектный интерфейс ADO. Посредством интерфейса ActiveX Data Objects (ADO) приложения (как обычные, так и ориентированные на использование технологий Интернета) могут подключаться к базам данных, извлекать, обрабатывать и обновлять информацию в них.

Связь приложений с базами данных ADO представляет собой интерфейс уровня приложений, созданный поверх объектного интерфейса OLE DB. При этом интерфейс OLE DB обеспечивает универсальный доступ к данным. Такой доступ обеспечивается в свою очередь с помощью провайдеров, таких, как Microsoft OLE DB Provider для ODBC (MSDASQL) или Microsoft OLE DB Provider для SQL Server (SQLOLEDB).

Связь приложений с базами данных Ключевыми элементами программной модели ADO является набор объектов, с помощью которых осуществляется соединение с базами данных, выполнение команд с параметрами, получение результата выполнения этих команд в виде переменных или наборов записей, обработка событий и ошибок. Connection Errors Command Recordset

Связь приложений с базами данных var connect, rs, cmd, ClientID; connect = Server.CreateObject("ADODB.Connection"); connect.ConnectionTimeout = 15; connect.CommandTimeout = 10; connect.Open("DSN=BookStore", "dbo", "password"); cmd = Server.CreateObject("ADODB.Command"); cmd.CommandText = "ListOrders"; cmd.CommandType = adCmdStoredProc; cmd.ActiveConnection = connect; cmd. Parameters.Append(cmd.CreateParameter( "ClientID", adVarChar, adParamlnput, 50, ClientID)); rs = cmd.Execute(); Пример доступа к БД на языке Jscript c использованием интерфейса ADO:

Связь приложений с базами данных var fieldbooksID = 0; var fieldAuthor = 1; var fieldTitle = 2; var fieldPublisher = 3; var fieldPrice = 4; %> Вы отобрали для покупки . y. e. %> Здесь мы создаем таблицу и записываем в ее ячейки содержимое полей текущей записи (на которую указывает курсор), обращаясь к четырем из пяти столбцов.

Связь приложений с базами данных Интерфейс OLE DB открытый стандарт, разработанный специально для предоставления доступа приложениям к базам данных, как реляционных, так и нереляционных (таких, как серверы почты, базы данных VSAM и т. д.). Создавая приложения OLE DB, Вы можете реализовать в нем как функции провайдера данных, так и функции потребителя данных.

Связь приложений с базами данных Так же как и в случае только что рассмотренной объектной модели ADO, базовыми элементами программной модели OLE DB является набор объектов. Эти объекты применяются для установки соединения с базами данных и сеансов, выполнения команд с параметрами, получения результата выполнения этих команд в виде переменных или наборов записей, обработки событий и ошибок. Работа OLE DB основана на модели компонентных объектов СОМ, поэтому сразу после начала своей работы приложение должно выполнить инициализацию системы СОМ.

Связь приложений с базами данных IMalloc* рIМаllос = NULL; IDBInitialize* pIDBInitialize = NULL; IRowset* pIRowset = NULL; int main(int агдс, TCHAR* argv[J, TCHAR* envp[ ]) { if(init()) { if(startCommand()) get_records(); } Else { if(pIRowset != NULL) pIRowset->Release(); ifCpIDBInitialize != NULL) { pIDBInitialize->Uninitialize(); pIDBInitialize->Release(); } if(pIHalloc != NULL) pIMalloc->Release(); } return 0; }

Связь приложений с базами данных Функция startCommsnd запускает команду SELECT, выбирающую из таблицы покупателей clients поля с именами ClientID, UserlD, Password, RegisterDate и LPCTSTR wSQLString = OLESTR("SELECT ClientID, UserlD, Password, RegisterDate, FROM clients");

Связь приложений с базами данных for(nCurrentCol = 0; nCurrentCol < nColsCount; nCurrentCol++) { if(pColInfo[nCurrentCol].wType == DBTYPE_STR) { printf("*10s ", &pRowValues[pDBBind[nCurrentCol].obValue]); } else if(pColInfo[nCurrentCol].wType == DBTYPE_I4) { printf("X5d ", pRowValues[pDBBind[nCurrentCol].obValue]); } else if(pColInfo[nCurrentCol].wType == DBTYPE_DBTIMESTAMP) { DBTIMESTAMP- ts = (DBTIMESTAMP*) C&pRowValu9s[pD8BInd[nCurrentCol].obValue]>; prlntf('1X02d.X02d.X04d X02d: K02d: J!02d ",ts->day, ts->month, ts->year,ts->hour, ts->minute, ts->second); } printf("\n"); Обработка полей текущей строки выполняется в цикле:

Связь приложений с базами данных Интерфейс Open Database Connectivity (ODBC) представляет собой набор предназначенных для доступа к базам данных функций программного интерфейса. Этот набор предполагает использование структурного языка запросов SQL. Для того чтобы интерфейс ODBC стал доступен программам, необходимо установить драйвер ODBC. Такой драйвер имеется в составе Microsoft SQL Server, а также в составе многих других СУБД, рассчитанных на работу в среде операционных систем Microsoft Windows, Macintosh и некоторых версий Unix.

Связь приложений с базами данных Программа, обращающаяся к базам данных посредством интерфейса ODBC, обычно выполняет следующие действия: 1.инициализирует среду выполнения; 2.подключается к источнику данных; 3.создает и выполняет команды; 4.обрабатывает результат выполнения команды; 5.освобождает ресурсы, полученные для работы с ODBC.

Связь приложений с базами данных Прежде всего программа должна получить идентификатор среды типа SQL_HANDLE_ENV: SQLHENV hEnv = SQL_NULL_HENV; RETCODE гс; гс = SQLAllOcHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); На следующем этапе нам нужно установить атрибуты среды: rc = SQLSetEnvAttr(hEnv, SQLJVTTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS,INTEGER); На втором этапе инициализации надо получить идентификатор соединения: SQLHDBC hDbC = SQL_NULL_HDBC; rc = SQLAllocHandle(SQL_HANDLEJ)BC, hEnv, &hDbc);

Связь приложений с базами данных Фрагмент текста программы, выполняющий соединение с источником данных BookStore: UCHAR szDSN[SQL_MAX_DSN_LENGTH + 1] = "BookStore"; UCHAR szUserName[MAXNAME] = "dbo"; UCHAR szPasswor[fMAXNAME] = ""; rс = SQLConnect(hObc, szDSN, (SWORD)strlen((const char*)szDSN), szUserName, (SWORD)strlen( (const cnar*)szUserName), szPassword, (SWORD)strlen((const char*)szPassword)); В случае успешного соединения функция SQLConnect вернет значение SQL_SUCCESS или SQL_SUCCESS_WITH_INFO, а при ошибке - значение SQL_INVALID_HANDLE или SQL_ERROR.

Связь приложений с базами данных Получение идентификатора команды реализуется обычным способом с применением функции SQLAllocHandle: SQLHSTMT hStmt = SQL_NULL_HSTMT; гс = SQLAllocHandle(SQL_HANDLE_STMT, hDbc, fchStmt); Для запуска команды на выполнение надо вызвать функцию SQLExecDirect: гс = SQLExecDirect(hStmt, (unsigned char*) "select ManagerlD, Name, Password, Lastlogin, Rights from managers", SOLENTS);

Связь приложений с базами данных Создание приложений Web к базам данных Oracle в простейшем случае обеспечивает PL/SQL. Хранимые процедуры могут извлекать информацию из базы данных и форматировать ее в виде страниц HTML. Интерпретировать команды HTML позволяют стандартные пакеты htf и htp.

Связь приложений с базами данных PROCEDURE book_list(setid IN NUMBER,cookie IN VARCHAR2 DEFAULT "0") IS i INTEGER; vbook BOOK%ROWTYPE; vset BOOK_SET%ROWTYPE; CURSOR cs_book IS SELECT * FROM book WHERE book.setno=setid ORDER BY book.num_in_list; CURSOR cs_set IS SELECT * FROM book_set WHERE book_set.id=setid; BEGIN OPEN cs_set; FETCH cs_set INTO vset; CLOSE cs_set; htp.htmlOpen; htp.headOpen; htp.title(vset.set_name); htp.headClose; htp.bodyOpen("/images/ppaper.jpg");

Связь приложений с базами данных htp.htitle("Документация СУБД ORACLE на русском языке:" ||htf.br||"комплект" ||htf.italic(vset.set_name), "2","center"); … htp.br; htp.hr; htp.FormOpen (owa_util.get_owa_service_path ||"store.submit_books"); htp.tableOpen; i := 1; htp.tableRowOpen; htp.tableData(""); htp.tableHeader(""); htp.tableHeader("Цена"); htp.tableHeader("Количество"); htp.tableRowClose; … htp.bodyClose; htp.htmlClose; END book_list;

Связь приложений с базами данных Oracle WebServer представляет собой сервер HTTP с возможностью интеграции с базой данных. Oracle WebServer получает Uniform Resource Locator (URL) с помощью протокола HTTP от навигатора WWW и извлекает информацию, необходимую для ответа на запрос, из базы данных или файловой системы. Web Listener - обычный Web-сервер, который получает URL от клиента - навигатора WWW - и отвечает на запрос. При получении URL Web Listener определяет, требуется ли для выполнения запроса обращение к файловой системе, выполнение программы через интерфейс CGI или обращение к базе данных.

Связь приложений с базами данных В последнем случае Listener передает запрос диспетчеру многопотокового сервера приложений Web Request Broker (WRB) и возвращается к состоянию ожидания новых запросов HTTP. Диспетчер WRB распределяет запрос между процессами, называемыми WRB Executable Engines (WRBX). Каждый из WRBX с помощью встроенного API обращается к специальным приложениям, т. н. WRB- картриджам.

Связь приложений с базами данных WebServer 3.0 позволяет использовать cледующие картриджи. Картридж PL/SQL, позволяющий строить Web- страницы, основанные на информации, извлекаемой из базы данных. Динамические страницы создаются с помощью хранимых процедур PL/SQL, которые используют стандартный пакет функций и процедур, интерпретирующих команды языка HTML.

Связь приложений с базами данных Картридж Java, представляющий собой интерпретатор языка Java, полностью интегрированный с базой данных Oracle. Картридж ODBC позволяет иметь доступ к информации, хранящейся в базах данных различных типов через драйверы ODBC (Open DataBase Connectivity). Картридж Perl дает возможность использования программ, написанных на языке Perl в архитектуре Web Request Broker. WRB API позволяет разработчикам также создавать свои собственные картриджи, расширяющие возможности Oracle WebServer.

Альтернативные технологии для реализации ИС фактографические базы данных (Oracle DataBase Server 9i ); WEB-сервер (Apache Tomcat ) : –управление взаимодействием клиентов с АИС: Java 2 EE –формирование выходных данных для отображения в броузере: XSLT –формирование списков и отчетов в формате PDF: XSL:FO –Выходные данные: XHTML, CSS, JavaScript Связь приложений с базами данных

ВОПРОСЫ ? Связь приложений с базами данных