《數(shù)據(jù)庫系統(tǒng)原理與開發(fā)數(shù)據(jù)庫連接技術(shù)ODBC》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫系統(tǒng)原理與開發(fā)數(shù)據(jù)庫連接技術(shù)ODBC(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
6A數(shù)據(jù)庫連接技術(shù)(ODBC)
【本節(jié)的主要內(nèi)容】
? 了解數(shù)據(jù)庫編程的內(nèi)容
? 了解ODBC的技術(shù)背景
?掌握數(shù)據(jù)庫ODBC的層次架構(gòu)
? 理解應(yīng)用程序使用ODBC訪問數(shù)據(jù)庫的步驟
?掌握ODBC數(shù)據(jù)源的配置方法
數(shù)據(jù)庫編程簡介
客戶端應(yīng)用程序
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
DB
(1)存儲過程/函數(shù)
(2) 觸發(fā)器
(3) 游標
服務(wù)器程序
(1) 客戶端應(yīng)用編程
(2) 數(shù)據(jù)庫服務(wù)器端編程
編程結(jié)合ODBC/JDBC
二、ODBC的技術(shù)背景
?在傳統(tǒng)應(yīng)用開發(fā),應(yīng)用系統(tǒng)通常選
2、用特定的DBMS管理系統(tǒng);
?網(wǎng)絡(luò)環(huán)境下,應(yīng)用系統(tǒng)通常需要對多種數(shù)據(jù)庫的實現(xiàn)互連和資源共享;
?而在同一應(yīng)用系統(tǒng)中,編制多種能在不同的DBMS上運行的應(yīng)用程序,
顯然不是可取的方法。
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
二、ODBC的技術(shù)背景(續(xù))
? Microsoft推出 了開放式數(shù)據(jù)庫互連(Open DataBase Connectivity,簡寫 為ODBC)技術(shù)。
?ODBC實現(xiàn)了應(yīng)用程序?qū)Χ喾N不同DEMS的數(shù)據(jù)庫的訪問,實現(xiàn)了數(shù) 據(jù)庫連接方式的變革。
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
二、ODBC的技術(shù)背景(續(xù))
? ODBC定
3、義了一套基于SQL的、公共的、與數(shù)據(jù)庫無關(guān)的API (應(yīng)用程
序設(shè)計接口);
?使每個應(yīng)用程序利用相同的源代碼就可訪問不同的數(shù)據(jù)庫系統(tǒng),存取 多個數(shù)據(jù)庫中的數(shù)據(jù);
?從而使得應(yīng)用程序與數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間在邏輯上的獨立
性,使應(yīng)用程序具有數(shù)據(jù)庫無關(guān)性。
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
6
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)
客戶端數(shù)據(jù)庫應(yīng)用程序
立用數(shù)據(jù)庫設(shè)計人員提供
ODBC應(yīng)用程序接口
ODBC驅(qū)動程序管理器
由操作系統(tǒng)提供
驅(qū)動程序1 |
驅(qū)動譽序2 |… 數(shù)彩源2 ]...
Ora
4、cle DBMS
| PostgreSQL DBM列■ ■ ■ SQL Server DBMS
由各數(shù) 據(jù)庫廠 商提供
①②③④⑤⑥⑦⑧
請求與數(shù)據(jù)源的連接和會話 向數(shù)據(jù)源發(fā)送SQL請求 對SQL請求的結(jié)果定義存儲區(qū) 和數(shù)據(jù)格式
請求結(jié)果
處理錯誤
如果需要,把結(jié)果返回給用戶
對事務(wù)進行控制,請求執(zhí)行或
回退操作
終止對數(shù)據(jù)源的連接
Oracle D
PostgreSQL D
SQL Server D
6
數(shù)據(jù)庫系統(tǒng)原
5、理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
由應(yīng)用數(shù)據(jù)庫設(shè)計人員提供
ODBC驅(qū)動程序管理器
驅(qū)動程序1 |
驅(qū)動譽序2 |… 數(shù)彩源2 ]...
客戶端數(shù)據(jù)庫應(yīng)用程序
ODBC應(yīng)用程序接口
由操作系統(tǒng)提供
ODBC應(yīng)用程序接口: 是一種使用ODBC技術(shù)實現(xiàn)應(yīng)用程 序與數(shù)據(jù)庫互連的標準接口。
Oracle DBMS
|PostgreSQL DBMS[
驅(qū)動程序n |
I ?
I
I
數(shù)據(jù)源n |
SQL Server DBMS
6、 ]
SQL Server D
由各數(shù) 據(jù)庫廠 商提供
Oracle D
PostgreSQL D
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
由應(yīng)用數(shù)據(jù)庫設(shè)計人員提供
由操作系統(tǒng)提供
ODBC驅(qū)動程序管理器
驅(qū)動程序1 |
驅(qū)動程序n |
客戶端數(shù)據(jù)庫應(yīng)用程序
ODBC應(yīng)用程序接口
驅(qū)動譽序2 |… 數(shù)彩
7、源2 ]...
Oracle DBMS
| PostgreSQL DBM列■ ■ ■ SQL Server DBMS
由各數(shù) 據(jù)庫廠 商提供
Oracle D
PostgreSQL D
SQL Server D
ODBC驅(qū)動程序管理器: 用于管理系統(tǒng)中的各種驅(qū)動程序。
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
由操作系統(tǒng)提供
ODBC驅(qū)動程序管理器
驅(qū)動程序1 |
驅(qū)動譽序2 |… 數(shù)彩源2
8、 ]...
客戶端數(shù)據(jù)庫應(yīng)用程序
ODBC應(yīng)用程序接口
由應(yīng)用數(shù)據(jù)庫設(shè)計人員提供
Oracle DBMS
| PostgreSQL DBM列■ ■ ■ SQL Server DBMS
驅(qū)動程序n
數(shù)據(jù)源n |
由各數(shù) 據(jù)庫廠 商提供
Oracle D
PostgreSQL D
SQL Server D
驅(qū)動程序是一個用于支持 ODBC函數(shù)調(diào)用的模塊,通 常是一個動態(tài)鏈接庫DLL。 不同RDBMS的驅(qū)動程序是 不同的。每種數(shù)據(jù)庫都要向 ODBC驅(qū)動程序管理器注冊 它自己的驅(qū)動程序。 建立與數(shù)據(jù)源的連接 向數(shù)據(jù)源提交請求 在應(yīng)用程序需求時,轉(zhuǎn)換數(shù) 據(jù)格式 返回結(jié)果給應(yīng)用程序
9、 將運行錯誤格式化為標準代 碼返回 需要時可聲明和處理游標。
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
客戶端數(shù)據(jù)庫應(yīng)用程序
由應(yīng)用數(shù)據(jù)庫設(shè)計人員提供
①數(shù)據(jù)源是驅(qū)動程序與數(shù)據(jù)庫
系統(tǒng)連接的橋梁。
ODBC應(yīng)用程序接口
ODBC驅(qū)動程序管理器
由操作系統(tǒng)提供
Oracle DBMS |
Oracle D
驅(qū)動程序2 |…
數(shù)據(jù)源n
它不是數(shù)據(jù)庫系統(tǒng),而是用
于表達ODBC驅(qū)動程序與
10、DBMS特殊連接的命名。
在連接中,用數(shù)據(jù)源名來代
數(shù)冷源2 |
IPostgreSQL DBMS I … SQL Server DBMS |
表用戶名、服務(wù)器名、連接 的數(shù)據(jù)庫名等;
可以將數(shù)據(jù)源名看成是與一 個具體數(shù)據(jù)庫建立的連接; 創(chuàng)建數(shù)據(jù)源最簡單的方法是
使用Windows的O DBC驅(qū)動 程序管理器
10
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
數(shù)據(jù)庫系
11、統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
由操作系統(tǒng)提供
ODBC驅(qū)動程序管理器
驅(qū)動程序1 |
驅(qū)動譽序2 |… 數(shù)彩源2 ]...
客戶端數(shù)據(jù)庫應(yīng)用程序
ODBC應(yīng)用程序接口
由應(yīng)用數(shù)據(jù)庫設(shè)計人員提供
是用戶向各數(shù)據(jù)庫廠商購買
由各數(shù) 據(jù)庫廠
Oracle DBMS
| PostgreSQL DBM列■ ■ ■ SQL Server DBMS
的管理數(shù)據(jù)庫的管理軟件;
② 是管理數(shù)據(jù)庫的系統(tǒng)軟件;
③ 用戶可以執(zhí)行SQL語句;
④ 創(chuàng)建數(shù)據(jù)庫、表、視圖等;
⑤ 對數(shù)據(jù)庫進行權(quán)限管理。
Oracle D
PostgreSQL
12、D
SQL Server D
11
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
三、ODBC的層次結(jié)構(gòu)(續(xù))
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
四、應(yīng)用程序使用ODBC訪問數(shù)據(jù)庫的步驟
① 首先必須用ODBC管理器注冊一個數(shù)據(jù)源;
② 管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動程序等信息,建立
起ODBC與具體數(shù)據(jù)庫的聯(lián)系;
③ 應(yīng)用程序只需將數(shù)據(jù)源名提供給ODBC, ODBC就能建立起
13、與相應(yīng)數(shù)據(jù)庫的連接;
④ 這樣,應(yīng)用程序就可以通過驅(qū)動程序管理器與數(shù)據(jù)庫交換信息;
⑤ 驅(qū)動程序管理器負責將應(yīng)用程序?qū)DBC API的調(diào)用傳遞給正確的驅(qū)動程序;
驅(qū)動程序在執(zhí)行完相應(yīng)的SQL操作后,將結(jié)果通過驅(qū)動程序管理器返回給應(yīng)用程序
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
五、使用ODBC管理器配置數(shù)據(jù)源
① 首先必須在數(shù)據(jù)庫廠商的官網(wǎng)下載與你的數(shù)據(jù)庫對應(yīng)的驅(qū)動程序;
② 例如:名字為psqlodbc_x64?ms啲驅(qū)動程序支持PostgreSQL 64位數(shù)據(jù)庫;
③ 執(zhí)行psqlodbc_x64.msi,安裝PostgreSQL數(shù)據(jù)庫驅(qū)動程序;
打開win
14、dows 7的ODBC管理器,如下圖:
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
* ODBC Data Source Administrator
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
| UserDSN | System DSN | File DSN | Driiers | Tracing | Connection Pooling | Wxxjt
ODBC Drivers that are installed on your system:
Name
Version
Compan
厶
Microsoft Excel Driver (*jds
15、. *>dsx. *jdsm. *jdsb
14.00.71SD.5QDD
fvlicrosoi
Oracle in OraDB12Home 1 ■“
12.01.00.02
Oracle C
——
PostgreSQL ANS I{x64) ?
9.05.04.00
Postgre!
PostgreSQL ODBC Driver(ANSI)
3.06.04.10
Postgre:
PostgreSQL ODBC Driver(UNICODE)
9.06.04.10
Postgre!
PostgreSQL Unicode Ex 6
16、4)
3.05.04.00
Postgre:
—
SQL An>nArhere
16.-tWi.dO. 1^4
SAP AG
SQL Server
6.01.7601.17514
Microsol
〈L nr I
卜
An ODBC driver allows ODBC-enabled programs to get information from ODBC data sources. To install new drivers, use the drivers setup program.
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
OK | I Cancel
少ply
Help
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
五、使用ODBC管理器配置數(shù)據(jù)源(續(xù))
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
數(shù)據(jù)庫系統(tǒng)原理與開發(fā) 電子科技大學-陳安龍
配置數(shù)據(jù)源,如右圖: