"ต้องการทำโปรเจ็ค อยากใช้ PHP กับ Oracle จะเริ่มยังไง ไม่รู้ว่าจะใช้
Oracle แผ่นไหน เพื่อสร้าง database
แล้วมีหนังสือที่บอกถึงการใช้Oracle ติดต่อกับ PHP หรือเปล่า ช่วยแนะนำด้วย
อีกอย่างมีหนังสือสอนการใช้ Oracle ตั้งแต่เริ่มต้นหรือเปล่าในท้องตลาดที่เป็นภาษาไทย"
เราคงพบเห็นคำถามประเภทนี้อยู่บ่อยๆ และอย่างที่หลายคนทราบ
ทุกครั้งที่เราสนใจ และอยากเรียนรู้ Technology ใหม่ คำถามที่เกิดขึ้นในใจเราอยู่เสมอ
นั่นคือ "จะเริ่มต้นอย่างไร"
บทความนี้มีจุดประสงค์เพื่อเป็นแนวทางให้กับผู้ที่กำลังสนใจพัฒนา
Application ซึ่งอาศัย Oracle Technology เป็นหลัก โดยเราได้นำเสนอขั้นตอน
เพื่อช่วยให้ท่านเริ่มต้นได้อย่างง่ายๆ ดังขั้นตอนต่อไปนี้
1.
What's Oracle Database?
Oracle Database Server จัดว่าเป็น Object-Relational Database
Management System (ORDBMS)
ซึ่งหมายความว่า สามารถทำงานได้ ทั้งในรูปแบบ Rational และบางคุณสมบัติของ
Object Oriented ได้
โดย Oracle Database Server นั้น มีความสามารถทำงานร่วมกันกับ Software
หลายๆ ตัวได้ จากผู้ผลิตหลายราย และสนับสนุนมาตรฐานระบบเปิดต่าง
ๆ
Oracle Database Server จะประกอบด้วย 2 ส่วนหลัก คือ
- Oracle Database จะเป็นส่วนของการจัดเก็บข้อมูล
- Oracle Server Instance จะประกอบด้วย
Memory และ Background Process
ในการติดต่อใช้งานกับ Oracle Database นั้น เราต้องใช้ภาษา SQL
(ซึ่งบางท่านเรียกว่า SEQUEL)
ซึ่งเป็นภาษาที่ใช้ในการกำหนด และจัดการกับ Database (DDL, DML)
การทำงานกับ Database ในแบบ Relational Database นั้นหมายความว่า
Database Engine จะมีการจัดเก็บข้อมูล ในลักษณะที่เป็นกลุ่มของข้อมูลที่มีความสัมพันธ์กัน
ใน 1 Database สามารถที่จะมี Table ตั้งแต่ 1 table เป็นต้นไป และในแต่ละ
Table ก็สามารถมีได้หลาย Column หลาย Row
รายละเอียดเพิ่มเติมสามารถอ่านได้ที่บทความ Oracle
Architecture
2.
Getting Oracle software
ก่อนอื่นที่จะเริ่มพัฒนา ก็คงต้องจัดหา Software กันก่อน ซึ่งที่เราพูดถึงคือ
Oracle Database Software ในการจัดหา ท่านอาจสอบถามจากแผนกข้างๆ,
Download ที่เป็น Development License จาก http://otn.oracle.com/
หรือสั่งซื้อ Software ได้จาก http://oraclestore.oracle.com
โดยปกตินั้น Oracle Database Software จะแบ่งออกเป็น 4 ประเภทด้วยกัน
คือ
- Oracle Enterprise Edition จะเป็น
Edition ที่มีความสามารถครบที่สุด มี Feature ตามที่ Oracle โฆษณาไว้ทุกอย่าง
- Oracle Standard Edition จะมีความสามารถน้อยกว่า
Enterprise Edition ซึ่งถูกออกแบบเพื่อรองรับงานระดับ Department
โดยความสามารถที่ขาดหายไปจาก Enterprise Edition ก็อย่างเช่น การทำ
Parallel Processing และ Function ที่เกี่ยวกับ Data Warehousing
เป็นต้น
- Oracle Personal Edition จะมีความสามารถใกล้เคียงกับ
Enterprise Edition เกือบทุกอย่าง เพียงแต่ว่า Edition นี้ถูกออกแบบให้ใช้งาน
Database ได้เพียงแค่คนเดียว
- Oracle Lite ถูกออกแบบเพื่อให้ใช้งานกับอุปกรณ์ประเภท
Mobile อย่าง Palm หรือ Windows CE เป็นต้น
ซึ่งก็คงแล้วแต่ความต้องการของท่าน ที่จะหา Oracle Software ที่เหมาะสมกับความต้องการ
และตรงกับ OS ของท่านได้ อย่างเช่น Oracle for Linux, Oracle for
Windows NT/2000/XP หรือ Oracle for Solaris ซึ่งเรียกได้ว่า Oracle
มี Software ที่ครอบคลุมเกือบทุก OS ที่มีอยู่ในท้องตลาด
อย่างที่เรากล่าวไว้เบื้องต้นว่า ท่านสามารถ Download ได้จาก http://otn.oracle.com/
ซึ่งเป็น Oracle Technology Network Developer License ท่านสามารถใช้
Software ที่ได้จาก OTN เพื่อทดสอบได้อย่างเต็มที่ (แนะนำอ่านเรื่องรายละเอียดของ
license เพิ่มเติมที่ OTN นะค่ะ)เพราะ
Software ที่ท่าน Download มา มีความสามารถเหมือนกับ Production
Software ทุกอย่าง
3.
Installing Oracle Database Server
หลังจากที่ได้ Oracle Software มาแล้ว ในแผ่น CD นั้นจะมีทั้ง Oracle
ในส่วน Server และ Client สำหรับ OS นั้นๆ
ทำความเข้าใจกันเสียก่อนนะค่ะ ว่า Oracle Database Server ที่เรา
Install ในขั้นตอนแรกนี้คือ ส่วนของโปรแกรมที่ช่วยจัดการ Database
ที่เราจะสร้างขึ้นเท่านั้น ไม่ใช่ขั้นตอนการสร้าง Database ที่เราจะใช้จัดเก็บข้อมูล
สำหรับการ Install Oracle Database Server Software สามารถดูรายละเอียดได้ที่นี่
" http://www.exzilla.net/docs/InstallDB/InstallDB01.php
"
4.
Creating Oracle Database
และมาถึงขั้นตอนนี้คือขั้นตอนในการสร้าง Database เพื่อที่จะจัดเก็บข้อมูลต่าง
ๆ ตามที่เราต้องการ ซึ่งเราก็ควรสร้าง Database ให้เหมาะสมกับลักษณะการใช้งานที่เราต้องการ
ดูตัวอย่างการสร้าง Database ได้จาก
" http://www.exzilla.net/docs/createDB/createDB016.php
"
5.
Startup/Shutdown Database
ในกรณีที่คุณเพิ่งสร้าง Database เสร็จ Database ของคุณจะถูก Startup
ไว้ให้อัตโนมัติ ถ้าคุณต้องการ Startup หรือ Shutdown Database เอง
สามารถดูตัวอย่างได้จากบทความนี้
" http://www.exzilla.net/docs/instance/StartupNshutdownWithshell.php
"
6. Configuring
Oracle Network Server Side (Listener)
ในฝั่ง Server เราจำเป็นต้องอาศัย Oracle Software อีกตัวหนึ่งคือ
Listener ซึ่งถูกติดตั้งเรียบร้อยแล้วจากขั้นตอนที่ 2 แต่เราต้องทำการ
Config และ Startup มันขึ้นมาก่อน
เจ้าตัว Listener นี้จะทำให้ Software Oracle Client หรือโปรแกรมที่เราพัฒนาขึ้น
สามารถติดต่อกับ Oracle Database Server ได้
ตัวอย่างการจัดการ Listener ได้จากบทความนี้
" http://www.exzilla.net/docs/sqlnet/orcl-listener-01.php
"
เมื่อมาถึง Step นี้ เราก็มี Oracle Database Server พร้อมที่จะใช้งานแล้ว
ในขั้นตอนติดตั้ง Oracle Database Server Software จากตัวอย่างข้อ
2 จะมีการติดตั้ง Oracle Client Software ให้อัตโนมัติอยู่แล้ว
ถ้าเราเลือกที่จะพัฒนาโปรแกรมบนเครื่องเดียวกับ Database Server
เราก็สามารถพัฒนา หรือเริ่มใช้โปรแกรม Oracle Client อย่าง SQL*Plus
ได้เลย
แต่ถ้าเราวางแผนที่จะพัฒนา หรือทำงานบนเครื่องอื่นๆ ที่อยู่ใน Network
เดียวกัน เราจำเป็นต้อง install Oracle Client Software ที่เครื่องนั้น
เพื่อให้โปรแกรมที่เราพัฒนาขึ้น หรือ utility ต่างๆ ที่จะใช้งาน
Oracle Database สามารถติดต่อกับ Oracle Database Server ที่อยู่ต่างเครื่องกันได้
7. Installing
Oracle Client
ตัวอย่างการติดตั้ง Oracle Client Software ดูได้ที่นี่
" http://www.exzilla.net/docs/orcle-client/orcl-client-01.php
"
8. Configuring
Oracle Network Client Side
หลังจากติดตั้ง Oracle Client เรียบร้อยแล้ว เพื่อให้ Software
ที่ฝั่ง Client ติดต่อไปยัง Database Server ที่เราต้องการได้( Database
Server อาจจะอยู่ต่างเครื่อง ต่างชนิดของ OS กันก็ได้ ) เราต้อง
Config Oracle Network Client เพื่อให้ Oracle Client กับ Oracle
สามารถพูดคุยกันได้ ซึ่งสามารถดูรายละเอียดและขั้นตอนตามเอกสารนี้
Oracle Client configuration
และวิธีการตรวจสอบการทำงานของ Oracle client เบื้องต้น
Checking your
Oracle client configuration (pdf, 55kb)
9. Testing
current configuration with sql*plus
เพื่อเป็นการทดสอบ Configuration จากขั้นตอนต่างๆ ที่ผ่านมา เราจะใช้โปรแกรม
SQL*Plus ที่เราได้ติดตั้งไว้ที่ฝั่ง Client ทำการทดสอบ ดังนี้
|
$ sqlplus
system/manager@viper
sql>
select * from v$database;
sql>
exit
$
|
จากตัวอย่างข้างบน ทำการ Connect ด้วย User ชื่อ system และ password
manager ติดต่อไปยัง Database ตาม Alias ที่ชื่อ viper ซึ่งก็ควรจะสามารถ
connect และดึงข้อมูลจาก v$database ได้
หมายเหตุ user system และ password manager จะเป็น user default
ที่ระบบสร้างให้โดยอัตโนมัติ หลังจากสร้าง Database
10.
Creating New Database User
หลังจากทำการสร้าง Database โดยใช้ Oracle Database Configuration
Assistant จาก Step ที่ 3 เรียบร้อยแล้ว เราจะได้ User ที่เป็น Default
User หลาย User ด้วยกัน อย่างเช่น
SYS,SYSTEM,OUTLN,DBSNMP,TRACESVR
โดยที่ User ที่เป็น "SYS" จะเป็น user ที่มีสิทธิสูงสุดในการจัดการ
Database รวมถึงสิทธิในการ Startup และ Shutdown Database ด้วย ส่วน
user "SYSTEM" จะเป็น user ที่มีสิทธิในการดูแลรักษาทั้งหมด
แต่ไม่มีสิทธิในการ Startup หรือ Shutdown Database
ในการใช้งานจริง เราควรสร้าง user ขึ้นมาใหม่ เพื่อใช้ในการพัฒนา
และง่ายต่อการดูแลรักษา
ตัวอย่างข้างล่างนี้ เป็นการสร้าง user ขึ้นมาใหม่ โดยผู้ที่มีสิทธิสร้าง
user ต้องมีสิทธิเป็น DBA ซึ่งก็คือ user SYSTEM โดยมี password
คือ manager
|
$sqlplus
/nolog
sql>
connect system/manager@viper
sql>
create user nicole identified by tiger default
tablespace users temporary tablespace temp;
sql>
grant connect,resource to nicole;
sql>
exit
|
หลังจาก connect ด้วย user "SYSTEM" ก็ทำการสร้าง user
ด้วยคำสั่ง Create User ดังตัวอย่างข้างบน user ที่สร้างขึ้นใหม่คือ
"nicole" มี password คือ "tiger" และกำหนดให้ข้อมูลที่ถูกสร้างจาก
user "nicole" ถูกจัดเก็บไว้ที่ tablespace ชื่อ "users"
และให้ใช้ temporary tablespace ที่ชื่อ "temp"
จากนั้น ให้สิทธิในการ "connect" และ "resource"
กับ user "nicole" เพื่อ user นี้สามารถทำงาน และจัดเก็บข้อมูลของตนเองได้
11.
Using Created Oracle Database by SQL*Plus
เมื่อทุกอย่างพร้อมสำหรับการใช้งาน ตัวอย่างข้างล่างนี้ เป็นการ
connect Oracle Database ด้วย user "nicole" ไปยัง Database
"viper" และจากนั้นทำการสร้าง Table เพื่อทดสอบการใส่ข้อมูล
และการดึงข้อมูลออกมาในรูปแบบต่างๆ
|
$ sqlplus
nicole/tiger@viper
SQL> create table mytable(mydate date);
Table created.
SQL> insert into mytable values(to_date('12-JAN-2001','DD-MON-YYYY'));
1 row created.
SQL> commit;
Commit complete.
SQL> select * from mytable;
MYDATE
---------
12-JAN-01
SQL> select to_char(mydate,'DD-MM-YYYY') from mytable;
TO_CHAR(MY
----------
12-01-2001
SQL> select to_char(mydate,'DD-MONTH-YYYY') from mytable;
TO_CHAR(MYDATE,'D
-----------------
12-JANUARY -2001
SQL> |
12.
Using Thai Support Feature in Oracle Database
เพื่อให้เราใช้ความสามารถเรื่องการสนับสนุนภาษาไทยของ Oracle Database
ได้อย่างมีประสิทธิภาพ เรามีข้อปฎิบัติง่ายๆ อธิบายไว้ในบทความต่อไปนี้
Using Thai Support Features in Oracle Database
" http://www.exzilla.net/docs/nls/nlsdatabase.php
"
13.
Creating development environment from different development technology
มาถึงตรงนี้ ก็ขึ้นอยู่กับเราแล้วว่า เราจะเลือกใช้ technology
หรือภาษาอะไรในการพัฒนา Application ที่เราถนัด ซึ่งก็มีทางเลือกอยู่หลากหลาย
และก่อนที่จะพัฒนา Application เราจำเป็นต้องจัดเตรียมวิธีการติดต่อระหว่าง
Technology ที่เลือกกับ Oracle Database(Data Access to Oracle Database
) เสียก่อน ดังเช่น
-
PHP OCI8 extension Data Access to Oracle Database
-
COM Data Access to Oracle Database
-
J2EE Data Access to Oracle Datbase
14.
Developing your application with your favorite technology
และมาถึงขั้นตอนการพัฒนา Application
โดยเลือกใช้ Technology ที่เราถนัด
-
SQL*PLUS
http://www.exzilla.net/docs/howto/HowtoOracleSqlplus01.php
-
PHP
http://www.exzilla.net/docs/howto/HowtoOraclePHP01.php
-
ASP
http://www.exzilla.net/docs/howto/HowtoOracleASP01.php
-
Servlet
http://www.exzilla.net/docs/howto/HowtoOracleServlet01.php
-
JSP
http://www.exzilla.net/docs/howto/HowtoOracleJSP01.php
-
PL/SQL
http://www.exzilla.net/docs/plsql01/plsql01.php
15.
Getting in deep for your career path
-
Oracle DBA
http://www.exzilla.net/node/view/8
-
J2EE Developer
http://www.exzilla.net/node/view/9
-
ASP Developer
http://www.exzilla.net/node/view/10
-
PHP Developer
http://www.exzilla.net/node/view/11
และท้ายสุดที่สำคัญและขาดไม่ได้ในการเริ่มเรียนรู้
Oracle Technology ก็คือความตั้งใจและเวลาที่เราได้แบ่งไว้เพื่อการเรียนรู้อย่างจริงจัง
สำหรับท่านที่ สนใจจะแลกเปลี่ยนความคิดเห็นหรือ
พูดคุยกับ ทีมงาน
Exzilla.net ขอเชิญแวะที่ Discussion
Forums ( http://www.narisa.com ) ของเราดูนะคะ
|