Anda di halaman 1dari 39

Databases dan 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.

Apa yang kita bahas?


Pengertian web database Motivasi dan aplikasi Sekilas arsitektur Client/Server
2-Tier vs 3-Tier

Sekilas Relational Databases/SQL Teknik Pengaksesan Web ke RDBMS


ODBC/JDBC Middleware CGI ASP

Definisi Web Database


Tempat penyimpanan (repositories) databases atau informasi yang secara dinamis berinteraksi dengan halaman Web. Sebuah metode untuk menyimpan content WWW, dalam format terstruktur atau useable, yang terhubung baik secara statis maupun dinamis ke database lain.
Membantu komunikasi antara Web server dan database Memungkinkan pemakai menerbitkan atau mengumpulkan informasi dari manapun

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

Mengapa bergeser ke web?

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.

Integritas/Business Rules mungkin dijalankan baik di client maupun di server.

Kelemahan C/S 2- tier


Apakah arsitektur 2-tier cocok untuk web clients? Not necessarily
Kita tidak ingin pemakai untuk mendownload dan menjalankan S/W di mesin pemakai yang akan melakukan query dan pemrosesan data secara local Dengan web, client akan menjadi thinner (thin client), artinya, kita hanya ingin menyediakan GUI saja dengan tidak banyak pemrosesan.

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

Dimungkinkan untuk menggabungkan antara application servers dan database servers.

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)

Arsitektur dasar WebDB

Arsitektur dasar WebDB

Konsep Relational Database


Dr. E.F. Codd mengajukan model relational untuk system database th 1970. Model tersebut menjadi dasar relational database management system(RDBMS). Model relational terdiri dari :
Kumpulan objek atau relasi Sekumpulan operator digunakan pada relasi Integritas data untuk ketepatan dan konsistensi

Terminologi Relational Relational Database

Model Entity Relationship

Relational Databases dan SQL


Relational Database menyimpan data pada table. Objek-objeknya :
Primary keys Foreign keys Views Etc.

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.

Bagaimana CGI scripts dijalankan

CGI scripts
CGI scripts dapat ditulis dalam berbagai bahasa yang dapat dijalankan pada web server. Bahasa untuk CGI:
Perl (requires perl interpreter) C/C++

CGI untuk Akses Database - Perl


Databases dapat dimanipulasi melalui dua modul perl :
DBI (Database Interface) DBD (Database Driver)

Perintah SQL dapat dikirimkan ke DBI yang kemudian dikomunikasikan dengan RDBMS melalui DBD. Hasil dikirim kembali dari DBD dan diperoleh melalui DBI.

CGI untuk Akses Database - Perl


DBD Layer menyediakan ketidak tergantungan RDBMS. Untuk menggunakan database lain, cukup mengganti DBD

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).

Contoh Microsoft ASP


<% Dim Conn Set Conn=Server.CreateObject("ADODB.Connection") Conn.Open DataSource1 Dim objRS Set objRS = Server.CreateObject("ADODB.Recordset") Dim strSQL strSQL = "SELECT Prod_Name, Description FROM Products WHERE Unit_Price < 10" objRS.Open strSQL, objConn Do Until objRS.EOF = True Response.Write "Name = " & objRS(Prod_Name") Response.Write "<BR>Description = " & objRS(Description") Response.Write "<P><HR><P>" objRS.MoveNext Loop objRS.Close Set objRS = Nothing objConn.Close Set objConn = Nothing %>

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

Platform Internet Oracle9i

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;

PSP (PL/SQL Server Pages)


Contoh : <%@ plsql parameter='dept' type='number' default='0'%> <%! cursor emp_cur(deptid emp.dept_id%type) is select * from emp where dept_id = deptid; %> <html><head><title>Test</title></head><body> <table border=1> <%for emp_rec in emp_cur(dept) loop %> <tr><td><%= emp_rec.last_name%></td></tr> <% end loop; %> </table> </body></html>

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

Anda mungkin juga menyukai