Database and Web
Database and Web
Motivasi
Menyediakan jalan/cara remote access ke database server melalui browser. Menggabungkan web server (http) dan database server. Menggunakan semua metodologi web design standard untuk menyediakan kemudahan pemakaian, front end GUI ke database.
Aplikasi
E-commerce! Contoh lain:
Database besar yang tersedia bagi end-user (online catalog), contoh amazon.com, yahoo.com, google.com, etc. Akses langsung ke database yang sebelumnya hanya dapat diakses dengan menggunakan bantuan third party, e.g. online banking.
Aplikasi
Resource libraries Catalogs Directories (Yellow pages) Online-Shopping Online Auctions Training courses Survey Financial Analysis
Arsitektur Client/Server
Web database merupakan bentuk dari arsitektur client/server. Arsitektur client/server dikembangkan untuk memanfaatkan kekuatan pemrosesan client (desktop) untuk :
Pemrosesan data secara lokal (improve esponse time) Menyediakan graphical interfaces Mengurangi beban komputasi pada server
2-Tier Client/Server
Model client/server klasik adalah 2-tier (client dan server). Client:
User interface Query formulation Data manipulation
Server:
Standard DBMS services query optimisation, transaction management, concurrency control etc.
3/multi-Tier Client/Server
Adanya penambahan tier antara database server dan client. Tier ketiga (middle) dapat digunakan untuk menjalankan business rules dan melakukan pemrosesan. Beban pada DBMS server dapat berkurang, sehingga transaksi pada DBMS Server dapat lebih efisien. Aplikasi pemroses akan digeser ke lapisan middle, yang memungkinkan thin clients.
3/multi-Tier Client/Server
Application server (middle tier) dapat berada pada mesin yang berbeda dengan DBMS server. Banyak vendor menawarkan 3-Tier environments:
Oracle 9i Application Server + Oracle 9i RDBMS Microsoft Transaction Server (MTS part of Internet Info. Server 4.0) + Microsoft SQL Server IBM CICS + IBM DB2 Sybase Enterprise Application Server+ Sybase Adaptive Server RDBMS
Middleware
Software yang menjadi perantara antara client dan database server. Menyediakan API (application programming interface) pada dua sisi sehingga memungkinkan client dan server untuk berkomunikasi satu dengan lainnya. Memungkinkan pendekatan standard pengaksesan database antara server dan client yang terpisah dan berbeda. Database driver sama dengan device driver software.
Middleware
Contoh : Oracle SQL*Net (Net8)
SQL
Structured Query Language. DDL dan DML (serta DCL). Standard ANSI untuk bahasa query relational database. Non-procedural. Pengoptimasi Query diperlukan untuk penerapan yang lebih efisien.
Perintah SQL
Contoh SQL
select s.stunum,surname,street,subject,result from student s, enrolment e where s.stunum = e.stunum union select stunum,surname,street,' ',' ' from student where stunum not in (select s.stunum from student s, enrolment e where s.stunum = e.stunum);
CGI
CGI=Common Gateway Interface Menyediakan standard komunikasi (via http) antara halaman web dan program (CGI scripts) yang dijalankan pada web server. Memungkinkan halaman web yang dinamis/interaktif.
CGI scripts
CGI scripts dapat ditulis dalam berbagai bahasa yang dapat dijalankan pada web server. Bahasa untuk CGI:
Perl (requires perl interpreter) C/C++
Perintah SQL dapat dikirimkan ke DBI yang kemudian dikomunikasikan dengan RDBMS melalui DBD. Hasil dikirim kembali dari DBD dan diperoleh melalui DBI.
Microsoft ASP
ASP = Active Server Pages Platform Microsoft memerlukan (NT/2000 dengan IIS Internet Information Server) Coba tengok www.apache-asp.org Dapat digunakan dalam arsitektur 2-tier atau 3-tier, sebagian besar model 3-tier (MTS sudah build in IIS 4.0)
Sebuah file ASP (.asp) berisi campuran static HTML dan script. Bahasa script harus sebuah ActiveX scripting engine yang tersertifikasi Microsoft, contoh VBScript, Jscript, Perlscript. Komponen scripting menerapkan pemrosesan server-side sebuah halaman (yaitu halaman yang secara dinamis diproses oleh web server sebelum dikirim ke client) Scripts ditandai dengan <% ...script %>
Halaman ASP terhubung ke database menggunakan ActiveX Data Objects (ADO). ADO digunakan untuk terhubung ke database yang menyediakan ODBC interface. DSN (Data Source Names) dapat diset up di server (Control Panel/ODBC Data Sources).
Oracle 9iAS
Oracle 9i Application Server Menggunakan web (http) server didasarkan pada Apache, dengan modul utama :
Dispatching http requests ke Java servlets Dispatching http requests ke Perl interpreter Encryption Memanggil PL/SQL stored procedures
Htp package
Contoh : create or replace procedure hello AS BEGIN
htp.htmlopen; -- generates <HTML> htp.headopen; -- generates <HEAD> htp.title('Hello'); -- generates <TITLE>Hello</TITLE> htp.headclose; -- generates </HEAD> htp.bodyopen; -- generates <BODY> htp.header(1, 'Hello'); -- generates <H1>Hello</H1> htp.bodyclose; -- generates </BODY> htp.htmlclose; -- generates </HTML>
END;
ODBC/JDBC
ODBC dan JDBC keduanya menyediakan API yang digunakan programmers untuk mengakses databases.
Sebagai middleware. Berada di antara application server dan database server pada C/S 3-tier.
ODBC vs JDBC
ODBC dikembangkan Microsoft Corp. ODBC menyediakan C/C++/VB API JDBC dikembangkan Sun Microsystems. JDBC menyediakan Java API JDBC-ODBC bridge (disediakan JDK) memungkingkan aplikasi JDBC untuk berkomunikasi dengan database yang menyediakan antarmuka ODBC.
ODBC / JDBC
Programmer dapat menggunakan ODBC and JDBC secara langsung pada program dan kemudian akan dikompilasi dengn librari ODBC atau JDBC yang sesuai. Pre-compiler tool dapat digunakan untuk konversi dari SQL ke pemanggil ODBC or JDBC. Setelah pre-compilation, final compilation proceeds as in the first case. Contoh: Oracle menyediakan :
PRO*C, C pre-compiler -> konversi ke ODBC calls SQLJ, Java pre-compiler -> konversi ke JDBC calls