TỔNG QUAN VỀ ODBC/JDBC
Chia sẻ bởi Đoàn Quốc Việt |
Ngày 14/10/2018 |
40
Chia sẻ tài liệu: TỔNG QUAN VỀ ODBC/JDBC thuộc Tư liệu tham khảo
Nội dung tài liệu:
Tổng quan về ODBC/JDBC
Kiến trúc và các mô hình hoạt động
Người viết báo cáo: Đào Chung Thành.
WEB Database Applications Development Group.
giới thiệu chung.
Cùng với sự phát triển của CNTT, nhu cầu xây dựng, lưu trữ các CSDL lớn và nhu cầu về chia sẻ dữ liệu ngày càng gia tăng. Điều đó dẫn đến sự ra đời của các Hệ quản trị cơ sở dữ liệu khác nhau (DBMS - Database Management System: Là phần mềm thực thi các lệnh để truy xuất dữ liệu trong Data Storage. Thường thì một DBMS bao gồm một SQL parser - module phân tích cú pháp các lệnh SQL, một Optimizer - module đánh giá, tối ưu các câu lệnh, một module thực thi, và một vài thành phần khác mà nó cung cấp các phục vụ quản lý dữ liệu như security, transactions, recovery. Đôi khi DBMS được nhắc tới như một server, khi nói đến Microsoft SQL Server, Oracle, hoặc DB2 chúng ta thường nghĩ ngay tới DBMS. Trong nội dung trình bày ở đây chúng ta sẽ xem các DBMS bao gồm cả các Desktop Database Product như Foxpro, Access và Paradox). Mỗi DBMS khác nhau được triển khai tuỳ thuộc vào các nhu cầu riêng của từng bộ phận.
Trước những nhu cầu ngày càng cao của người sử dụng, họ cần có những ứng dụng mà nó có thể được phát triển và sửa đổi nhanh chóng và các ứng dụng đó phải phải khai thác được các khả năng đặc biệt của mỗi DBMS và cuối cùng là nó phải đơn giản dễ sử dụng. Và như vậy các nhà phát triển ứng dụng đã gặp phải nhiều khó khăn vì mỗi DBMS sử dụng một version SQL của riêng họ và do đó nó có một API riêng rất phức tạp. Điều này đã tạo ra một nhu cầu cần thiết phải có một middleware layer đảm nhận chức năng của một translator, nó sẽ chuyển đổi các lệnh SQL chuẩn thành các câu lệnh SQL sử dụng bởi DBMSs đặc biệt. Microsoft`s ODBC và Sun Microsystem`s JDBC chính là các translator như vậy.
A. ODBC - Open database connectivity
I - ODBC là gì ?
ODBC (Open Database Connectivity) là một standard Database API. ở đây cần phân biệt 2 khái niệm "standard API" và "native API": Standard API là một API chuẩn, điều đó có nghĩa là nó được sự chấp thuận và hỗ trợ từ các nhà cung cấp DBMSs và các nhà phát triển ứng dụng. Còn các native API là các API do từng nhà cung cấp DBMS đưa ra để truy xuất và khai thác hiệu quả các khả năng đặc trưng của DBMS do họ cung cấp (ví dụ Oracle OCI, Sybase DB-Library là các native API).
Các bạn đã làm quen với Windows API khi lập trình trong môi trường Windows. Trong Visual Basic có thể bạn sẽ ít dùng trực tiếp các hàm, thủ tục do Windows API cung cấp nhưng trong Visual C++ thì gần như liên tục sử dụng các hàm, thủ tục này để ứng dụng của bạn giao tiếp được với hệ điều hành Windows và để tạo ra các giao diện của người sử dụng. Cho ví dụ, trong vấn đề hiển thị video để đưa ra một cửa sổ trên màn hình thì bạn không cần phải biết đến loại màn hình nào đang được sử dụng, Windows API cung cấp cho bạn khả năng hiển thị video độc lập với các thiết bị. Cũng tương tự như vậy, ODBC là một Database API chuẩn, nó cung cấp cho các bạn khả năng truy nhập đến các CSDL một cách độc lập với các DBMS, qua ODBC các bạn có thể truy xuất được tới các CSDL trên các DBMS khác nhau.
Các đặc điểm của ODBC:
ODBC là một giao diện lập trình sử dụng SQL: ODBC sẽ sử dụng các lệnh SQL để truy xuất các CSDL.
ODBC tách các nhà phát triển ứng dụng khỏi sự phức tạp của việc kết nối tới một nguồn dữ liệu: Mục tiêu chính được đề cho ODBC là nó phải dễ dàng cho người lập trình ứng dụng có thể tạo ra các kết nối của người sử dụng cuối tới nguồn dữ liệu thích hợp mà không phải trở thành một chuyên gia về mạng.
Kiến trúc của ODBC cho phép nhiều ứng dụng truy xuất nhiều nguồn dữ liệu.
Truy xuất nhiều DBMS không có ODBC:
Truy xuất nhiều DBMS với ODBC:
ODBC cung cấp một mô hình lập trình "thích ứng" (adaptive): ODBC cung cấp các chức năng mà nó có thể được sử dụng với tất cả các DBMS trong khi vẫn cho phép một ứng dụng khai thác các khả năng riêng của mỗi DBMS. Nó cung cấp các interrogation function mà một ứng dụng có thể chủ động sử dụng để xác định các khả năng của một DBMS. Các interrogation function cho phép một ứng dụng hỏi một driver về một vài chức năng đặc biệt có được cung cấp trong một DBMS nào đó hay không.
II - Kiến trúc của ODBC.
ODBC được xây dựng trên mô hình kiến trúc Client/Server.
Trong kiến trúc Client/Server bao gồm một một client, một server, và một data protocol mà nó cho phép client và server giao tiếp với nhau. Mô hình này rất lý tưởng cho một Traditional Relational DBMS, trong đó một mạng vật lý kết nối client PC tới DBMS ở trên một máy khác. ODBC được thiết kế để sử dụng với các hệ thống nằm trong mô hình kiến trúc client/server, đáp ứng được các yêu cầu cần thiết cho các Traditional Relational DBMS như:
Cung cấp một standard API.
Khai thác tất cả các chức năng của bất cứ một DBMS nào.
Cung cấp một sự thực thi tương đương với native API của bất cứ một DBMS nào.
Kiến trúc của ODBC đặt trên nền tảng mô hình kiến trúc client/server và sự đảm nhận cho bất cứ một giao diện lập trình nào cũng có thể phát và thu trên giao thức truyền dữ liệu của bất cứ một SQL DBMS, sẽ hoạt động và thực thi như native API cho DBMS đó.
ODBC không chỉ giới hạn với các client/server DBMS, nó cũng làm việc với các desktop database và các file-oriented store như bảng tính và text.
Các thành phần cơ bản trong kiến trúc của ODBC.
Applications: Các ứng dụng đảm nhận việc tương tác với người sử dụng qua user interface và gọi các ODBC function để đưa ra các câu lệnh SQL và nhận các kết quả trả về.
Driver Manager: Như tên gọi của nó, nhiệm vụ của nó là quản lý sự tương tác giữa các chương trình ứng dụng và các driver, nhiều ứng dụng và nhiều driver có thể được quản lý cùng một lúc. Driver Manager cung cấp sự liên kết giữa các ứng dụng và các driver, cho phép nhiều ứng dụng truy xuất dữ liệu qua nhiều driver. Driver Manager load hay unload một hoặc nhiều driver cho một hoặc nhiều ứng dụng. Khi một ứng dụng cần truy xuất một nguồn dữ liệu, Driver Manager sẽ load đúng driver cần thiết. Driver Manager xác định các ODBC function được cung cấp bởi driver đó và ghi các địa chỉ trong bộ nhớ của chúng vào một bảng. Khi một ứng dụng gọi một function trong một driver, Driver Manager sẽ xác định vào gọi function đó. Bằng cách này, nhiều driver có thể được quản lý đồng thời và người lập trình ứng dụng không phải lo lắng đến việc quản lý chi tiết các từng driver. Một ứng dụng có thể sử dụng ODBC tại cùng một thời điểm với một ứng dụng khác mà không cần phải biết đến ứng dụng này.
Drivers: Các driver xử lý các ODBC function được gọi, đưa ra các yêu cầu SQL để chỉ định các nguồn dữ liệu, và trả về kết quả cho các ứng dụng. Các driver cũng đảm nhận việc tương tác với bất cứ các lớp phần mềm nào cần thiết để truy xuất nguồn dữ liệu.
Data sources: Bao gồm các tập hợp dữ liệu và các môi trường tương ứng của chúng, bao gồm các hệ điều hành, các DBMS, và các phần mềm mạng.
III - Các mô hình hoạt động của ODBC.
Mô hình One-Tier
Mô hình này được dùng để truy xuất các Desktop Database/ISAM (Indexed Sequential Access Method) file (các file dữ liệu Foxpro, Access, Paradox, dBase), hoặc các flat file (các file text hoặc spreadsheet).
Trong mô hình này One-Tier driver sẽ đảm nhiệm vai trò của một SQL Database Engine, thực hiện xử lý tất cả các câu lệnh SQL (parse, optimize, execute).
Mô hình Two-Tier
Đây là một mô hình kinh điển trong kiến trúc Client/Server. Các Two-Tier driver trực tiếp gửi và nhận thông tin trên giao thức truyền dữ liệu của một DBMS hoặc ánh xạ tới các native Database API, không trực tiếp truy xuất dữ liệu. DBMS Server nhận các yêu cầu SQL từ Client, thực hiện chúng và gửi kết quả trở lại Client.
Cho ví dụ, Two-Tier driver truy xuất CSDL trên Microsoft SQL Server sẽ trực tiếp truyền và nhận thông tin trên giao thức truyền dữ liệu, Two-Tier driver truy xuất CSDL trên Oracle sẽ ánh xạ tới Oracle`s Native API đó là OCI (Oracle Call Interface).
Một sự biến đổi khác của mô hình này:
Mô hình Three-Tier
Client trong mô hình Three-Tier thay vì kết nối trực tiếp tới DBMS, nó được kết nối qua một Gateway Server.
Trong thực tế, Gateway Server sẽ kết nối tới nhiều DBMS. Trong hệ thống triển khai các ứng dụng xây dựng trên ODBC để truy xuất nhiều nguồn dữ liệu, mô hình Three-Tier đã đưa hầu hết những sự phức tạp trên Client lên Server. Nó trợ giúp rất nhiều trong việc đơn giản hoá sự cài đặt, quản lý các driver trên Client.
B. JDBC - Java Database Connectivity
I - JDBC là gì?
Tương tự như ODBC thì JDBC cũng là một Database API chuẩn. JDBC API định nghĩa các lớp Java để đưa ra các kết nối CSDL, các câu lệnh SQL, các tập hợp kết quả, các siêu dữ liệu,... Nó cho phép một người lập trình Java đưa ra các câu lệnh SQL và xử lý các kết quả được trả về. JDBC là primary API cho việc
Kiến trúc và các mô hình hoạt động
Người viết báo cáo: Đào Chung Thành.
WEB Database Applications Development Group.
giới thiệu chung.
Cùng với sự phát triển của CNTT, nhu cầu xây dựng, lưu trữ các CSDL lớn và nhu cầu về chia sẻ dữ liệu ngày càng gia tăng. Điều đó dẫn đến sự ra đời của các Hệ quản trị cơ sở dữ liệu khác nhau (DBMS - Database Management System: Là phần mềm thực thi các lệnh để truy xuất dữ liệu trong Data Storage. Thường thì một DBMS bao gồm một SQL parser - module phân tích cú pháp các lệnh SQL, một Optimizer - module đánh giá, tối ưu các câu lệnh, một module thực thi, và một vài thành phần khác mà nó cung cấp các phục vụ quản lý dữ liệu như security, transactions, recovery. Đôi khi DBMS được nhắc tới như một server, khi nói đến Microsoft SQL Server, Oracle, hoặc DB2 chúng ta thường nghĩ ngay tới DBMS. Trong nội dung trình bày ở đây chúng ta sẽ xem các DBMS bao gồm cả các Desktop Database Product như Foxpro, Access và Paradox). Mỗi DBMS khác nhau được triển khai tuỳ thuộc vào các nhu cầu riêng của từng bộ phận.
Trước những nhu cầu ngày càng cao của người sử dụng, họ cần có những ứng dụng mà nó có thể được phát triển và sửa đổi nhanh chóng và các ứng dụng đó phải phải khai thác được các khả năng đặc biệt của mỗi DBMS và cuối cùng là nó phải đơn giản dễ sử dụng. Và như vậy các nhà phát triển ứng dụng đã gặp phải nhiều khó khăn vì mỗi DBMS sử dụng một version SQL của riêng họ và do đó nó có một API riêng rất phức tạp. Điều này đã tạo ra một nhu cầu cần thiết phải có một middleware layer đảm nhận chức năng của một translator, nó sẽ chuyển đổi các lệnh SQL chuẩn thành các câu lệnh SQL sử dụng bởi DBMSs đặc biệt. Microsoft`s ODBC và Sun Microsystem`s JDBC chính là các translator như vậy.
A. ODBC - Open database connectivity
I - ODBC là gì ?
ODBC (Open Database Connectivity) là một standard Database API. ở đây cần phân biệt 2 khái niệm "standard API" và "native API": Standard API là một API chuẩn, điều đó có nghĩa là nó được sự chấp thuận và hỗ trợ từ các nhà cung cấp DBMSs và các nhà phát triển ứng dụng. Còn các native API là các API do từng nhà cung cấp DBMS đưa ra để truy xuất và khai thác hiệu quả các khả năng đặc trưng của DBMS do họ cung cấp (ví dụ Oracle OCI, Sybase DB-Library là các native API).
Các bạn đã làm quen với Windows API khi lập trình trong môi trường Windows. Trong Visual Basic có thể bạn sẽ ít dùng trực tiếp các hàm, thủ tục do Windows API cung cấp nhưng trong Visual C++ thì gần như liên tục sử dụng các hàm, thủ tục này để ứng dụng của bạn giao tiếp được với hệ điều hành Windows và để tạo ra các giao diện của người sử dụng. Cho ví dụ, trong vấn đề hiển thị video để đưa ra một cửa sổ trên màn hình thì bạn không cần phải biết đến loại màn hình nào đang được sử dụng, Windows API cung cấp cho bạn khả năng hiển thị video độc lập với các thiết bị. Cũng tương tự như vậy, ODBC là một Database API chuẩn, nó cung cấp cho các bạn khả năng truy nhập đến các CSDL một cách độc lập với các DBMS, qua ODBC các bạn có thể truy xuất được tới các CSDL trên các DBMS khác nhau.
Các đặc điểm của ODBC:
ODBC là một giao diện lập trình sử dụng SQL: ODBC sẽ sử dụng các lệnh SQL để truy xuất các CSDL.
ODBC tách các nhà phát triển ứng dụng khỏi sự phức tạp của việc kết nối tới một nguồn dữ liệu: Mục tiêu chính được đề cho ODBC là nó phải dễ dàng cho người lập trình ứng dụng có thể tạo ra các kết nối của người sử dụng cuối tới nguồn dữ liệu thích hợp mà không phải trở thành một chuyên gia về mạng.
Kiến trúc của ODBC cho phép nhiều ứng dụng truy xuất nhiều nguồn dữ liệu.
Truy xuất nhiều DBMS không có ODBC:
Truy xuất nhiều DBMS với ODBC:
ODBC cung cấp một mô hình lập trình "thích ứng" (adaptive): ODBC cung cấp các chức năng mà nó có thể được sử dụng với tất cả các DBMS trong khi vẫn cho phép một ứng dụng khai thác các khả năng riêng của mỗi DBMS. Nó cung cấp các interrogation function mà một ứng dụng có thể chủ động sử dụng để xác định các khả năng của một DBMS. Các interrogation function cho phép một ứng dụng hỏi một driver về một vài chức năng đặc biệt có được cung cấp trong một DBMS nào đó hay không.
II - Kiến trúc của ODBC.
ODBC được xây dựng trên mô hình kiến trúc Client/Server.
Trong kiến trúc Client/Server bao gồm một một client, một server, và một data protocol mà nó cho phép client và server giao tiếp với nhau. Mô hình này rất lý tưởng cho một Traditional Relational DBMS, trong đó một mạng vật lý kết nối client PC tới DBMS ở trên một máy khác. ODBC được thiết kế để sử dụng với các hệ thống nằm trong mô hình kiến trúc client/server, đáp ứng được các yêu cầu cần thiết cho các Traditional Relational DBMS như:
Cung cấp một standard API.
Khai thác tất cả các chức năng của bất cứ một DBMS nào.
Cung cấp một sự thực thi tương đương với native API của bất cứ một DBMS nào.
Kiến trúc của ODBC đặt trên nền tảng mô hình kiến trúc client/server và sự đảm nhận cho bất cứ một giao diện lập trình nào cũng có thể phát và thu trên giao thức truyền dữ liệu của bất cứ một SQL DBMS, sẽ hoạt động và thực thi như native API cho DBMS đó.
ODBC không chỉ giới hạn với các client/server DBMS, nó cũng làm việc với các desktop database và các file-oriented store như bảng tính và text.
Các thành phần cơ bản trong kiến trúc của ODBC.
Applications: Các ứng dụng đảm nhận việc tương tác với người sử dụng qua user interface và gọi các ODBC function để đưa ra các câu lệnh SQL và nhận các kết quả trả về.
Driver Manager: Như tên gọi của nó, nhiệm vụ của nó là quản lý sự tương tác giữa các chương trình ứng dụng và các driver, nhiều ứng dụng và nhiều driver có thể được quản lý cùng một lúc. Driver Manager cung cấp sự liên kết giữa các ứng dụng và các driver, cho phép nhiều ứng dụng truy xuất dữ liệu qua nhiều driver. Driver Manager load hay unload một hoặc nhiều driver cho một hoặc nhiều ứng dụng. Khi một ứng dụng cần truy xuất một nguồn dữ liệu, Driver Manager sẽ load đúng driver cần thiết. Driver Manager xác định các ODBC function được cung cấp bởi driver đó và ghi các địa chỉ trong bộ nhớ của chúng vào một bảng. Khi một ứng dụng gọi một function trong một driver, Driver Manager sẽ xác định vào gọi function đó. Bằng cách này, nhiều driver có thể được quản lý đồng thời và người lập trình ứng dụng không phải lo lắng đến việc quản lý chi tiết các từng driver. Một ứng dụng có thể sử dụng ODBC tại cùng một thời điểm với một ứng dụng khác mà không cần phải biết đến ứng dụng này.
Drivers: Các driver xử lý các ODBC function được gọi, đưa ra các yêu cầu SQL để chỉ định các nguồn dữ liệu, và trả về kết quả cho các ứng dụng. Các driver cũng đảm nhận việc tương tác với bất cứ các lớp phần mềm nào cần thiết để truy xuất nguồn dữ liệu.
Data sources: Bao gồm các tập hợp dữ liệu và các môi trường tương ứng của chúng, bao gồm các hệ điều hành, các DBMS, và các phần mềm mạng.
III - Các mô hình hoạt động của ODBC.
Mô hình One-Tier
Mô hình này được dùng để truy xuất các Desktop Database/ISAM (Indexed Sequential Access Method) file (các file dữ liệu Foxpro, Access, Paradox, dBase), hoặc các flat file (các file text hoặc spreadsheet).
Trong mô hình này One-Tier driver sẽ đảm nhiệm vai trò của một SQL Database Engine, thực hiện xử lý tất cả các câu lệnh SQL (parse, optimize, execute).
Mô hình Two-Tier
Đây là một mô hình kinh điển trong kiến trúc Client/Server. Các Two-Tier driver trực tiếp gửi và nhận thông tin trên giao thức truyền dữ liệu của một DBMS hoặc ánh xạ tới các native Database API, không trực tiếp truy xuất dữ liệu. DBMS Server nhận các yêu cầu SQL từ Client, thực hiện chúng và gửi kết quả trở lại Client.
Cho ví dụ, Two-Tier driver truy xuất CSDL trên Microsoft SQL Server sẽ trực tiếp truyền và nhận thông tin trên giao thức truyền dữ liệu, Two-Tier driver truy xuất CSDL trên Oracle sẽ ánh xạ tới Oracle`s Native API đó là OCI (Oracle Call Interface).
Một sự biến đổi khác của mô hình này:
Mô hình Three-Tier
Client trong mô hình Three-Tier thay vì kết nối trực tiếp tới DBMS, nó được kết nối qua một Gateway Server.
Trong thực tế, Gateway Server sẽ kết nối tới nhiều DBMS. Trong hệ thống triển khai các ứng dụng xây dựng trên ODBC để truy xuất nhiều nguồn dữ liệu, mô hình Three-Tier đã đưa hầu hết những sự phức tạp trên Client lên Server. Nó trợ giúp rất nhiều trong việc đơn giản hoá sự cài đặt, quản lý các driver trên Client.
B. JDBC - Java Database Connectivity
I - JDBC là gì?
Tương tự như ODBC thì JDBC cũng là một Database API chuẩn. JDBC API định nghĩa các lớp Java để đưa ra các kết nối CSDL, các câu lệnh SQL, các tập hợp kết quả, các siêu dữ liệu,... Nó cho phép một người lập trình Java đưa ra các câu lệnh SQL và xử lý các kết quả được trả về. JDBC là primary API cho việc
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Đoàn Quốc Việt
Dung lượng: 74,00KB|
Lượt tài: 0
Loại file: DOC
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)