วันศุกร์ที่ 21 พฤศจิกายน พ.ศ. 2557

ฟังก์ชันใน PHP

       ฟังก์ชันในโปรแกรมส่วนใหญ่ได้รับการเรียกคำสั่งเพื่อทำงานอย่างเดียว สิ่งนี้ทำให้คำสั่งอ่านได้ง่ายและยอมให้ใช้คำสั่งใหม่แต่ละครั้งเมื่อต้องการทำงานเดียวกัน
ฟังก์ชันเป็นโมดูลเก็บคำสั่งที่กำหนดการเรียกอินเตอร์เฟซ ทำงานเดียวกัน และตัวเลือกส่งออกค่าจากการเรียกฟังก์ชัน คำสั่งต่อไปเป็นการเรียกฟังก์ชันอย่างง่าย
my_function ();
       คำสั่งเรียกฟังก์ชันชื่อ my_function ที่ไม่ต้องการพารามิเตอร์ และไม่สนใจค่าที่อาจจะส่งออกโดยฟังก์ชันนี้
   ฟังก์ชันจำนวนมากได้รับการเรียกด้วยวิธีนี้ เช่น ฟังก์ชัน phpinfo () สำหรับแสดงเวอร์ชันติดตั้งของ PHP สารสนเทศเกี่ยวกับ PHP การตั้งค่าแม่ข่ายเว็บ ค่าต่างๆ ของ PHP และตัวแปร ฟังก์ชันนี้ไม่ใช้พารามิเตอร์และโดยทั่วไปไม่สนใจค่าส่งออก ดังนั้นการเรียก phpinfo () จะประกอบขึ้นดังนี้

phpinfo ();


เรียน PHP กับการสร้างฟังก์ชั่น ใช้งานเอง

ตัวอย่าง : การสร้างฟังก์ชั่น PHP


การกำหนดฟังก์ชันและการเรียกฟังก์ชัน

       การประกาศฟังก์ชันเริ่มต้นด้วยคีย์เวิร์ด function กำหนดชื่อฟังก์ชัน พารามิเตอร์ที่ต้องการ และเก็บคำสั่งที่จะประมวลผลแต่ละครั้งเมื่อเรียกฟังก์ชันนี้
<?php
function function_name(parameter1,…)
{
ชุดคำสั่ง
}
?>
ชุดคำสั่งต้องเริ่มต้นและสิ้นสุดในวงเล็บปีกกา ({ }) ตัวอย่างฟังก์ชัน my_function
<?php
function my_function()
{
$mystring =<<<BODYSTRING
my function ได้รับการเรียก
BODYSTRING;
echo $mystring;
}
?>
การประกาศฟังก์ชันนี้ เริ่มต้นด้วย function ดังนั้นผู้อ่านและตัวกระจาย PHP ทราบว่าต่อไปเป็นฟังก์ชันกำหนดเอง ชื่อฟังก์ชันคือ my_function การเรียกฟังก์ชันนี้ใช้ประโยคคำสั่งนี้
my_function ();
การเรียกฟังก์ชันนี้จะให้ผลลัพธ์เป็นข้อความ "my function ได้รับการเรียก " บน browser
       การตั้งชื่อฟังก์ชัน
   สิ่งสำคัญมากในการพิจารณาเมื่อตั้งชื่อฟังก์ชันคือชื่อต้องสั้นแต่มีความหมาย ถ้าฟังก์ชันสร้างส่วนตัวของเพจควรตั้งชื่อเป็น pageheader () หรือ page_header ()
ข้อจำกัดในการตั้งชื่อคือ
  • ฟังก์ชันไม่สามารถมีชื่อเดียวกับฟังก์ชันที่มีอยู่
  • ชื่อฟังก์ชันสามารถมีได้เพียงตัวอักษรตัวเลข และ underscore
  • ชื่อฟังก์ชันไม่สามารถเริ่มต้นด้วยตัวเลข
หลายภาษายอมให้ใช้ชื่อฟังก์ชันได้อีก ส่วนการทำงานนี้เรียกว่า function overload อย่างไรก็ตาม PHP ไม่สนับสนุน function overload ดังนั้นฟังก์ชันไม่สามารถมีชื่อเดียวกันกับฟังก์ชันภายใน หรือฟังก์ชันกำหนดเองที่มีอยู่
   หมายเหตุ ถึงแม้ว่าทุกสคริปต์ PHP รู้จักฟังก์ชันภายในทั้งหมด ฟังก์ชันกำหนดเองอยู่เฉพาะในสคริปต์ที่ประกาศสิ่งนี้หมายความว่า ชื่อฟังก์ชันสามารถใช้ในคนละไฟล์แต่อาจจะไปสู่ความสับสน และควรหลีกเลียง
ชื่อฟังก์ชันต่อไปนี้ถูกต้อง
name ()
name2 ()
name_three ()
_namefour ()
ชื่อไม่ถูกต้อง
5name ()
Name-six ()
fopen ()
   การเรียกฟังก์ชันไม่มีผลจากชนิดตัวพิมพ์ ดังนั้นการเรียก function_name (), Function_Name() หรือ FUNCTION_NAME() สามารถทำได้และมีผลลัพธ์เหมือนกัน แต่แบบแผนการกำหนดชื่อฟังก์ชันใน PHP ให้ใช้ตัวพิมพ์เล็ก
ชื่อฟังก์ชันแตกต่างจากชื่อตัวแปร โดยชื่อตัวแปรเป็นชนิดตัวพิมพ์มีผล ดังนั้น $Name และ $name เป็น 2 ตัวแปร แต่ Name () และ name () เป็นฟังก์ชันเดียวกัน
       การหยุดประมวลผลภายในฟังก์ชัน
   คีย์เวิร์ด return หยุดการประมวลผลฟังก์ชัน ฟังก์ชันสิ้นสุดได้เพราะประโยคคำสั่งทั้งหมดได้รับการประมวลผล หรือ ใช้คีย์เวิร์ด return การประมวลผลกลับไปยังประโยคคำสั่งต่อจากการเรียกฟังก์ชัน
<?php
function division($x, $y)
{
if ($y == 0 || !isset($y))
{
echo " ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า" ;
return;
}
$result = $x / $y;
echo $result;
}
?>
   ถ้าประโยคคำสั่ง return ได้รับการประมวลผล บรรทัดคำสั่งต่อไปในฟังก์ชันจะถูกข้ามไป และกลับไปยังผู้เรียกฟังก์ชันนี้ ในฟังก์ชันนี้ ถ้า y เป็น 0 จะหยุดการประมวลผล ถ้า y ไม่เท่ากับ 0 จะคำนวณผลหาร
สมมติป้อนค่าเป็น
x = 4, y = 0
x = 4
x = 4, y = 2
    ผลลัพธ์ของคำสั่ง คือ
x = 4, y = 0 ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = ผลลัพธ์ ตัวหาร y ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = 2 ผลลัพธ์ 2
       การเรียกฟังก์ชัน
   เมื่อฟังก์ชันได้รับการประกาศหรือสร้างขึ้นแล้ว การเรียกฟังก์ชันสามารถเรียกมาจากที่ใดๆ ภายในสคริปต์ หรือ จากไฟล์ที่มีการรวมด้วยประโยคคำสั่ง include() หรือ require()
ตัวอย่าง ฟังก์ชัน show_message() เก็บอยู่ในไฟล์ fn_ 03 _keeper.php ส่วนผู้เรียกอยู่ในสคริปต์ fn_ 03 _caller.php
<?php
include("fn_ 03 _keeper.php");
show_message();

?>

พารามิเตอร์

       ตามปกติฟังก์ชันส่วนใหญ่ต้องการรับสารสนเทศจากผู้เรียกสำหรับการประมวลผล โดยทั่วไปเรียกว่า พารามิเตอร์
       ไวยากรณ์พื้นฐาน
   การกำหนดฟังก์ให้รับพารามิเตอร์ส่งผ่านโดยการวางข้อมูล ชื่อตัวแปรที่เก็บข้อมูลภายในวงเล็บหลังชื่อฟังก์ชัน การเรียกฟังก์ชันที่ประกอบด้วยพารามิเตอร์เขียนดังนี้
<?php
function show_parameter($param1, $param2, $param3)
{
echo <<<PARAM
รายการพารามิเตอร์ <br/>
param1: $param1 <br/>
param2: $param2 <br/>
param3: $param3 <br/>
PARAM;
}
?>
       พารามิเตอร์ที่ส่งไปยังฟังก์ชันแยกกันเครื่องหมายจุลภาคภายในวงเล็บ โดยสามารถส่งเป็นนิพจน์สำหรับแต่ละพารามิเตอร์ด้วย ตัวแปร ค่าคงที่ ผลลัพธ์จากการคำนวณ รวมถึงการเรียกฟังก์ชัน
scope ของพารามิเตอร์จำกัดภายในฟังก์ชัน ถ้าชื่อตัวแปรเหมือนกับตัวแปรใน scope ระดับอื่น พารามิเตอร์นี้ "ระบุ" เป็นตัวแปรภายในที่ไม่มีผลกับตัวแปรภายนอกฟังก์ชัน
      การส่งผ่านโดยค่า(By Value)
   ตามปกติการส่งผ่านพารามิเตอร์ไปยังฟังก์ชันเป็นการส่งผ่านค่า การเปลี่ยนแปลงจะจำกัดภายในเฉพาะภายในฟังก์ชัน
ตัวอย่างฟังก์ชัน new_value () ที่ยอมให้เพิ่มค่า อาจจะเขียนคำสั่งดังนี้
<?php
function new_value($value, $increment= 1)
{
$value = $value + $increment;
}
$value = 10 ;
new_value($value);
echo "$value<br/>\n";
?>
     คำสั่งนี้ใช้ไม่ได้ ผลลัพธ์จะเป็น "10" ค่าใหม่ของ $value ไม่มีการเปลี่ยนแปลง
สิ่งนี้เป็นเพราะกฎ scope คำสั่งนี้สร้างตัวแปรเรียกว่า $value เป็น 10 เมื่อเรียกฟังก์ชัน new_value () ตัวแปร $value ในฟังก์ชันได้รับการสร้างเมื่อเรียกฟังก์ชัน ค่า 1 ได้รับการเพิ่มให้กับตัวแปร ดังนั้นค่าของ $value คือ 11 ภายในฟังก์ชัน จนกระทั่งสิ้นสุดฟังก์ชัน แล้วกลับไปยังคำสั่งที่เรียกภายในคำสั่งนี้ ตัวแปร $value เป็นอีกตัวแปร global scope และไม่มีการเปลี่ยนแปลง
       การส่งผ่านโดยการอ้างอิง (By Reference)
   ตามตัวอย่างฟังก์ชัน new_value ถ้าต้องการให้ฟังก์ชันเปลี่ยนแปลงค่าได้ มีวิธีหนึ่งในการแก้ไขคือ ประกาศ $value ในฟังก์ชันเป็น global แต่หมายความว่าในการใช้ฟังก์ชันนี้ ตัวแปรที่ต้องการเพิ่มค่าต้องตั้งชื่อเป็น $value แต่มีวิธีดีกว่าคือ ใช้การส่งผ่านโดยการอ้างอิง
   การอ้างอิงไปตัวแปรต้นทางแทนที่มีค่าของตัวเอง การปรับปรุงไปยังการอ้างอิงจะมีผลกับตัวแปรต้นทางด้วย
การระบุพารามิเตอร์ที่ใช้การส่งผ่านโดยการอ้างอิงให้วาง ampersand (&) หน้าชื่อพารามิเตอร์ในข้อกำหนดฟังก์ชัน
ตัวอย่าง new_value () ได้รับปรับปรุงให้มี 1 พารามิเตอร์ส่งผ่านโดยการอ้างอิงและทำงานได้อย่างถูกต้อง
<?php
function new_value(&$value, $increment=1)
{
$value = $value + $increment;
}
?>
     คำสั่งทดสอบฟังก์ชัน ให้พิมพ์ 10 ก่อนการเรียก increment () และ 11 ภายหลัง
ในการส่งค่าโดยการอ้างอิงต้องส่งเป็นตัวแปรไม่สามารถกำหนดค่าคงที่โดยตรง
       จำนวนตัวแปรของพารามิเตอร์
   การส่งผ่านพารามิเตอร์ไปยังฟังก์ชันนั้น การควบคุมของ PHP ได้กำหนดฟังก์ชันจำนวนหนึ่งให้ยอมรับจำนวนตัวแปรของพารามิเตอร์ ได้แก่ func_num_args, func_get_arg และ func_get_args
func_num_args() บอกจำนวนพารามิเตอร์ไปยังฟังก์ชันที่เรียก func_get_arg() แสดงค่าของพารามิเตอร์ตามดัชนี และ func_get_args() ส่งออก array ของพารามิเตอร์
<?php
function show_pass_value()
{
$idx = count(func_get_args());
echo " จำนวนพารามิเตอร์ $idx <br/>\n";
if ($idx > 0)
    echo ">> ใช้ฟังก์ชัน func_get_arg<br/>\n";
for ($i = 0 ; $i < $idx; $i++)
{
echo " พารามิเตอร์ที่ $i ค่า: ". func_get_arg($i)."<br/>\n";
}
if ($idx > 0)
    echo ">> ใช้ฟังก์ชัน func_get_args<br/>\n";
$params = func_get_args();
foreach ($params as $index => $val)
{
echo " พารามิเตอร์ที่ $index ค่า: $val<br/>\n";
}
echo " *********<br/>\n";
}
$x = 4 ;
show_pass_value("one", "two", 3 , $x, " ห้า" , " หก") ;
show_pass_value();
?>
    ผลลัพธ์
จำนวนพารามิเตอร์ 6
>> ใช้ฟังก์ชัน func_get_arg
พารามิเตอร์ที่ 0 ค่า: one
พารามิเตอร์ที่ 1 ค่า: two
พารามิเตอร์ที่ 2 ค่า: 3
พารามิเตอร์ที่ 3 ค่า: 4
พารามิเตอร์ที่ 4 ค่า: ห้า
พารามิเตอร์ที่ 5 ค่า: หก
>> ใช้ฟังก์ชัน func_get_args
พารามิเตอร์ที่ 0 ค่า: one
พารามิเตอร์ที่ 1 ค่า: two
พารามิเตอร์ที่ 2 ค่า: 3
พารามิเตอร์ที่ 3 ค่า: 4
พารามิเตอร์ที่ 4 ค่า: ห้า
พารามิเตอร์ที่ 5 ค่า: หก
*********
จำนวนพารามิเตอร์ 0
*********








ตัวอย่าง : การส่งตัวแปรแบบ array เข้าไปในฟังก์ชัน ด้วย PHP


Scope

       เมื่อต้องการใช้ตัวแปรภายในไฟล์ที่รวม ต้องมีการประกาศตัวแปรเหล่านั้นก่อนประโยคคำสั่ง require () หรือ include () แต่เมื่อใช้ฟังก์ชันจะเป็นการส่งผ่านตัวแปรเชิงประจักษ์เหล่านั้นไปยังฟังก์ชัน บางส่วนเป็นเพราะไม่มีกลไกส่งผ่านตัวแปรเชิงประจักษ์ไปยังไฟล์ที่รวม และบางส่วนเป็นเพราะ scope ของตัวแปรของฟังก์ชันแตกต่างกัน
การควบคุม scope ของตัวแปรเป็นการทำให้ตัวแปรมองเห็นได้ ใน PHP มีกฎตั้งค่า scope ดังนี้
  • การประกาศตัวแปรภายในฟังก์ชันอยู่ใน scope จากประโยคคำสั่งซึ่งตัวแปรให้รับการประกาศภายในวงเล็บปีกกา สิ่งนี้เรียกว่า function scope ตัวแปรเรียกว่า local variable
  • การประกาศตัวแปรภายนอกฟังก์ชันอยู่ใน scope จากประโยคคำสั่งซึ่งตัวแปรได้รับการประกาศที่สิ้นสุดแต่ไม่ใช้ภายในฟังก์ชัน สิ่งนี้เรียกว่า global scope ตัวแปรเรียกว่า global variable
  • การใช้ประโยคคำสั่ง require () และ include () ไม่มีผลกับ scope ถ้าประโยคคำสั่งได้รับการใช้ภายในฟังก์ชัน ประยุกต์ด้วย function scope ถ้าไม่ได้อยู่ภายในฟังก์ชัน ประยุกต์ด้วย global scope
  • คีย์เวิร์ด global สามารถระบุได้เองเพื่อกำหนดหรือใช้ตัวแปรภายในฟังก์ชันให้มี scope เป็น global
  • ตัวแปร สามารถลบโดยการเรียก unset ($variable_name) และตัวแปรที่ unset จะไม่มี scope
  • ตัวแปรระดับ superglobal สามารถเข้าถึงได้ทุกส่วนในสคริปต์
       ตัวแปรระดับฟังก์ชัน
   ตัวแปรระดับฟังก์ชันหรือ local variable เป็นการประกาศเพื่อใช้เฉพาะภายในฟังก์ชัน ไม่สามารถเรียกจากภายนอกฟังก์ชันได้
<?php
$newline = <<<NLSTRING
<br/>\n
NLSTRING;
$var_global = 10 ;
function show_value()
{
global $newline;
$var_local= 75 ;
echo "\$var_local 1: $var_local";
echo $newline;
}
show_value();
echo "\$var_global : $var_global";
echo $newline;
echo "\$var_local 2: $var_local";
echo $newline;
?>
    ผลลัพธ์
$var_global 1 :
$var_local 1: 75
$var_global 2: 10
$var_local 2:
ตามตัวอย่างนี้ ตัวแปรระดับฟังก์ชัน $var_local ไม่สามารถแสดงผลในการพิมพ์ภายนอกฟังก์ชัน show_value() และ $var_global ที่เป็นตัวแปรระดับ global ไม่สามารถแสดงผลภายใน show_value() เพราะมี scope ต่างกัน
       ตัวแปรระดับ global
   ถ้าต้องการนำตัวแปรระดับ global มาใช้ภายในฟังก์ชันต้องประกาศด้วยคีย์เวิร์ด global ก่อนประโยคคำสั่งที่ใช้ตัวแปรนั้น ตัวอย่าง ฟังก์ชัน show_value() ใช้ $newline จากภายนอกฟังก์ชัน
global $newline;
       ตัวแปรสถิตย์
   การประกาศตัวแปรสถิตย์ใช้ คีย์เวิร์ด static เมื่อมีการเรียกใช้ฟังก์ชัน โปรแกรมจะกำหนดค่าตัวแปรตามที่ระบุเพียงครั้งเดียว ถ้าเรียกซ้ำอย่างต่อเนื่องค่านี้จะเปลี่ยนแปลงตามการคำนวณ
<?php
function increment()
{
static $increase = 5 ;
$increase++;
echo $increase."<br/>\n";
}
$end = 5 ;
for ($i = 1 ; $i < $end; $i++)
    increment();
?>
    ผลลัพธ์ 
6
7
8
9
ค่าของตัวแปรสถิตย์ได้รับการตั้งทุกครั้งเมื่อเรียกใช้ในครั้งต่อไป


การส่งออกค่าจากฟังก์ชัน

      การส่งค่าออกจากฟังก์ชันใช้คีย์เวิร์ด return เช่นเดียวกับการออกจากฟังก์ชันได้ ถ้าไม่มีการระบุส่งออกฟังก์ชันจะส่งค่า NULL
ตัวอย่าง ฟังก์ชัน get_larger () สาธิตการส่งออกค่า
<?
function get_larger($x=NULL, $y=NULL)
{
if (!isset($x) || !isset($y))
    return " ไม่มีการส่งค่า" ;
if ($x > $y)
    return $x;
else if ($x < $y)
    return $y;
else
    return " ค่าเท่ากัน" ;
}
$sends = array();
$sends[0] = array('x' =>5);
$sends[1] = array('x' =>9, 'y'=>3);
$sends[2] = array('x' =>5, 'y'=>8);
$sends[3] = array('x' =>4, 'y'=>4);
foreach ($sends as $send)
{
echo "x = ".$send['x']." y = ".$send['y']." : ค่า - > "
.get_larger($send['x'], $send['y']);
echo "<br/>\n";
}
?>
   ผลลัพธ์
x = 5 y = : ค่า - > ไม่มีการส่งค่า
x = 9 y = 3 : ค่า - > 9
x = 5 y = 8 : ค่า - > 8
x = 4 y = 4 : ค่า - > ค่าเท่ากัน

       ฟังก์ชันที่ทำงานอาจเดียว แต่ไม่จำเป็นต้องส่งออกค่า มักจะส่งออก TRUE หรือ FALSE เพื่อระบุความสำเร็จหรือล้มเหลว ค่า TRUE หรือ FALSE สามารถได้รับการแสดงแทนด้วย 1 หรือ 0

Recursio

       Recursion ได้รับการสนับสนุนใน PHP ฟังก์ชันชนิดนี้เป็นการเรียกตัวเองและเป็นประโยชน์กับการบังคับโครงสร้างข้อมูลไดนามิคส์ เช่น รายการเชื่อมโยงและโครงสร้างต้นไม้ (tree)
       โปรแกรมประยุกต์เว็บจำนวนไม่มากต้องการโครงสร้างข้อมูลซับซ้อนมากและจำกัดการใช้ เนื่องจาก recursion ช้ากว่าและใช้หน่วยความจำมากกว่าการทำงานวนรอบ ดังนั้นควรเลือกการทำงานแบบวนรอบปกติ ถ้าเป็นไปได้
ตัวอย่างการประยุกต์แบบย้อนกลับตัวอักษร
<?php
function word_reverse_r($str)
{
if (strlen($str)>0)
    word_reverse_r(substr($str, 1));
echo substr($str, 0, 1);
return;
}
function word_reverse_i($str)
{
for ($i=1; $i<=strlen($str); $i++)
{
echo substr($str, -$i, 1);
}
return;
}
?>
       รายการคำสั่งของ 2 ฟังก์ชันนี้จะพิมพ์ข้อความย้อนกลับ ฟังก์ชัน word_reverse_r เป็น recursion ฟังก์ชัน word_reverse_i เป็นการวนรอบฟังก์ชัน word_reverse_r ใช้ข้อความเป็นพารามิเตอร์ เมื่อมีการเรียกฟังก์ชันนี้ จะเกิดการเรียกตัวเองแต่ละครั้งส่งผ่านตัวอักษรที่ 2 ไปถึงตัวอักษรสุดท้าย
       การเรียกฟังก์ชันแต่ละครั้งจะทำสำเนาใหม่ของคำสั่งในหน่วยความจำของแม่ข่าย แต่ด้วยพารามิเตอร์ต่างกัน ดังนั้นจึงเหมือนกับการเรียกคนละฟังก์ชัน


วันพฤหัสบดีที่ 13 พฤศจิกายน พ.ศ. 2557

ฐานข้อมูล

ฐานข้อมูลคืออะไร
     ฐานข้อมูลเป็นเครื่องมือสำหรับการเก็บรวบรวมและจัดระเบียบข้อมูล ฐานข้อมูลสามารถเก็บข้อมูลเกี่ยวกับบุคคล ผลิตภัณฑ์ ใบสั่งซื้อ หรือสิ่งอื่นใดก็ได้ ฐานข้อมูลจำนวนมากเริ่มมาจากรายการในโปรแกรมประมวลผลคำหรือโปรแกรมกระดาษคำนวณ เมื่อรายการมีขนาดใหญ่ขึ้น ความซ้ำซ้อนและความไม่สอดคล้องกันของข้อมูลจะเริ่มปรากฏขึ้น การดูข้อมูลในฟอร์มรายการเริ่มไม่เข้าใจ และมีข้อจำกัดในการค้นหาหรือดึงเซตย่อยของข้อมูลมาตรวจทาน เมื่อปัญหาดังกล่าวเกิดขึ้นแล้ว จึงเป็นการดีที่จะโอนถ่ายข้อมูลไปยังฐานข้อมูลที่สร้างขึ้นด้วยระบบการจัดการฐานข้อมูล (DBMS) เช่น Office Access 2007
     ฐานข้อมูลในระบบคอมพิวเตอร์เป็นคอนเทนเนอร์ของวัตถุ โดยฐานข้อมูลหนึ่งชุดสามารถมีตารางได้มากกว่าหนึ่งตาราง ตัวอย่างเช่น ระบบติดตามสินค้าคงคลังหนึ่งระบบจะใช้ข้อมูลจากตารางสามตารางไม่ใช่จากฐานข้อมูลสามชุด แต่ฐานข้อมูลหนึ่งชุดนั้นสามารถมีตารางได้สามตาราง เว้นแต่ว่าฐานข้อมูลนั้นจะถูกออกแบบพิเศษให้ใช้ข้อมูลหรือโค้ดจากแหล่งข้อมูลอื่นได้ ฐานข้อมูล Access จะเก็บตารางไว้ในแฟ้มข้อมูลเดียว พร้อมกับวัตถุอื่นด้วย เช่น ฟอร์ม รายงาน แมโคร และโมดูล โดยฐานข้อมูลที่สร้างในรูปแบบ Access 2007 จะมีนามสกุลเป็น .accdb และฐานข้อมูลที่สร้างในรูปแบบของ Access รุ่นก่อนหน้าจะมีนามสกุลแฟ้มเป็น .mdb คุณสามารถใช้ Access 2007สร้างแฟ้มข้อมูลในรูปแบบแฟ้มของรุ่นก่อนหน้าได้ (ตัวอย่างเช่น Access 2000 และ Access 2002-2003)



การใช้ Access จะทำให้คุณสามารถ
  • เพิ่มข้อมูลใหม่ลงในฐานข้อมูล เช่น รายการใหม่ในสินค้าคงคลัง
  • แก้ไขข้อมูลที่มีอยู่ในฐานข้อมูล เช่น การเปลี่ยนตำแหน่งที่ตั้งปัจจุบันของรายการ
  • ลบข้อมูล ถ้ารายการถูกขายออกหรือละทิ้งแล้ว
  • จัดระเบียบและดูข้อมูลด้วยวิธีต่างๆ
  • ใช้ข้อมูลร่วมกันกับผู้อื่นผ่าานทางรายงาน ข้อความอีเมล อินทราเน็ต หรืออินเทอร์เน็ต

ส่วนประกอบของฐานข้อมูล Access

     ส่วนต่างๆ ต่อไปนี้เป็นการอธิบายส่วนประกอบของฐานข้อมูล Access โดยทั่วไปแบบย่อ เมื่อต้องการศึกษาเพิ่มเติมในแต่ละส่วน ให้ติดตามการเชื่อมโยงในส่วน ดูเพิ่มเติม ของบทความนี้

ตาราง

     ตารางฐานข้อมูลจะมีลักษณะคล้ายกับกระดาษคำนวณ นั่นคือข้อมูลจะถูกเก็บไว้ในแถวและคอลัมน์ ดังนั้น จึงเป็นเรื่องค่อนข้างง่ายในการนำเข้าข้อมูลจากกระดาษคำนวณไปยังตารางฐานข้อมูล โดยข้อแตกต่างที่สำคัญระหว่างการเก็บข้อมูลของคุณในกระดาษคำนวณและการเก็บในฐานข้อมูลจะอยู่ที่วิธีการจัดระเบียบข้อมูล
     เมื่อต้องการความยืดหยุ่นสำหรับฐานข้อมูลให้มากที่สุด ข้อมูลต้องมีการจัดระเบียบลงในตารางเพื่อไม่ให้เกิดความซ้ำซ้อน ตัวอย่างเช่น ถ้าคุณจะเก็บข้อมูลเกี่ยวกับพนักงาน ควรป้อนข้อมูลของพนักงานแต่ละคนเข้าไปในตารางที่ใช้เก็บข้อมูลพนักงานเพียงครั้งเดียว ข้อมูลเกี่ยวกับผลิตภัณฑ์จะเก็บในตารางของผลิตภัณฑ์ และข้อมูลเกี่ยวกับที่อยู่ของสาขาจะเก็บในตารางอื่น กระบวนการนี้เรียกว่า การทำNormalization
     แต่ละแถวในตารางจะถูกอ้างอิงเป็นหนึ่งระเบียน ระเบียนคือที่ที่ใช้เก็บข้อมูลแต่ละส่วน แต่ละระเบียนจะประกอบด้วยเขตข้อมูลอย่างน้อยหนึ่งเขตข้อมูล เขตข้อมูลจะสอดคล้องกับคอลัมน์ในตาราง ตัวอย่างเช่น คุณอาจมีตารางหนึ่งที่ชื่อ "พนักงาน" ซึ่งแต่ละระเบียน (แถว) จะมีข้อมูลต่างๆ เกี่ยวกับพนักงานหนึ่งคน และแต่ละเขตข้อมูล (คอลัมน์) จะมีชนิดข้อมูลที่ต่างกัน เช่น ชื่อ นามสกุล ที่อยู่ และอื่นๆ เขตข้อมูลนั้นต้องได้รับการออกแบบให้มีชนิดข้อมูลที่แน่นอน ไม่ว่าจะเป็นข้อความ วันที่หรือเวลา ตัวเลข หรือชนิดข้อมูลอื่นๆ
     อีกวิธีหนึ่งที่จะอธิบายให้เห็นภาพของระเบียนและเขตข้อมูลก็คือให้นึกถึงชุดบัตรข้อมูลรุ่นเก่าของห้องสมุด โดยบัตรข้อมูลแต่ละใบที่อยู่ในตู้บัตรรายการจะเทียบเท่ากับระเบียนในฐานข้อมูล ส่วนข้อมูลแต่ละส่วนบนบัตรแต่ละใบ (ชื่อผู้แต่ง ชื่อเรื่อง และอื่นๆ) จะเทียบเท่ากับเขตข้อมูลในฐานข้อมูล

ฟอร์ม

     ในบางครั้งฟอร์มจะถูกอ้างอิงเป็น "หน้าจอสำหรับป้อนข้อมูล" ซึ่งเป็นส่วนติดต่อที่คุณใช้ทำงานกับข้อมูลของคุณ และฟอร์มมักมีปุ่มคำสั่งที่ใช้ดำเนินการคำสั่งได้หลากหลาย คุณสามารถสร้างฐานข้อมูลโดยไม่ต้องใช้ฟอร์มด้วยการแก้ไขข้อมูลของคุณอย่างง่ายๆ ในแผ่นข้อมูลตาราง อย่างไรก็ตาม ผู้ใช้ฐานข้อมูลส่วนใหญ่ต้องการที่จะใช้ฟอร์มเพื่อดู ป้อนข้อมูล และแก้ไขข้อมูลในตารางมากกว่า
     ฟอร์มจะให้รูปแบบที่ง่ายต่อการใช้สำหรับทำงานกับข้อมูล และคุณสามารถเพิ่มองค์ประกอบการใช้งาน เช่น ปุ่มคำสั่ง ลงในฟอร์มได้ด้วย คุณอาจเขียนโปรแกรมให้กับปุ่มต่างๆ เพื่อใช้กำหนดว่าจะให้ข้อมูลใดบ้างปรากฏบนฟอร์ม เปิดฟอร์มหรือรายงานอื่นๆ หรือดำเนินงานอื่นหลากหลายประเภท ตัวอย่างเช่น คุณอาจมีฟอร์มชื่อ "ฟอร์มลูกค้า" ที่คุณใช้ทำงานกับข้อมูลลูกค้า ฟอร์มลูกค้าอาจมีปุ่มที่ใช้เปิดฟอร์มใบสั่งซื้อที่คุณสามารถป้อนรายการสั่งซื้อใหม่สำหรับลูกค้ารายนั้นได้
     นอกจากนี้ ฟอร์มยังอนุญาตให้คุณสามารถควบคุมวิธีที่ผู้ใช้รายอื่นจะโต้ตอบกับข้อมูลในฐานข้อมูลด้วย ตัวอย่างเช่น คุณสามารถสร้างฟอร์มที่แสดงเฉพาะบางเขตข้อมูลและอนุญาตให้มีการดำเนินการได้เพียงบางอย่างเท่านั้น สิ่งนี้จะช่วยป้องกันข้อมูลและทำให้แน่ใจได้ว่าข้อมูลจะถูกป้อนอย่างถูกต้อง

รายงาน

     รายงานเป็นสิ่งที่คุณใช้เพื่อสรุปและนำเสนอข้อมูลในตาราง บ่อยครั้งที่รายงานจะตอบคำถามตามที่ระบุไว้ เช่น "เรารับเงินจากลูกค้าแต่ละรายเป็นจำนวนเท่าไรในปีนี้" หรือ "ลูกค้าของเราอยู่ที่เมืองใดบ้าง" แต่ละรายงานสามารถกำหนดรูปแบบให้นำเสนอข้อมูลในรูปแบบที่อ่านง่ายที่สุดได้
     รายงานสามารถถูกเรียกใช้เวลาใดก็ได้ และจะแสดงข้อมูลปัจจุบันในฐานข้อมูลเสมอ โดยทั่วไปรายงานจะถูกจัดรูปแบบให้สามารถพิมพ์ออกมาได้ แต่คุณก็ยังสามารถดูรายงานบนหน้าจอ ส่งออกไปยังโปรแกรมอื่น หรือส่งเป็นข้อความอีเมลได้เช่นกัน

แบบสอบถาม

     แบบสอบถามเป็นส่วนสำคัญในฐานข้อมูลและสามารถดำเนินการฟังก์ชันที่ต่างกันได้จำนวนมาก ฟังก์ชันทั่วไปส่วนใหญ่ของแบบสอบถามคือการดึงข้อมูลที่ระบุจากตารางต่างๆ ออกมา โดยข้อมูลที่คุณต้องการดูอาจจะกระจายอยู่ในหลายๆ ตารางก็ได้ และแบบสอบถามจะทำให้คุณสามารถดูข้อมูลที่ต้องการได้ในรูปของแผ่นข้อมูลเดียว นอกจากนี้ ถ้าคุณไม่ต้องการดูระเบียนทั้งหมดพร้อมกัน แบบสอบถามจะให้คุณเพิ่มเงื่อนไขเพื่อ "กรอง" ข้อมูลเอาเฉพาะระเบียนที่คุณต้องการออกมา บ่อยครั้งที่แบบสอบถามทำหน้าที่เป็นแหล่งระเบียนสำหรับฟอร์มและรายงานต่างๆ
     แบบสอบถามบางชุด "สามารถปรับปรุงได้" นั่นหมายความว่า คุณสามารถแก้ไขข้อมูลในตารางต้นแบบผ่านแผ่นข้อมูลแบบสอบถามได้ ถ้าคุณทำงานในแบบสอบถามที่สามารถปรับปรุงได้ โปรดจำไว้ว่าการเปลี่ยนแปลงของคุณจะมีผลกับตารางต่างๆ ด้วย ไม่ใช่เฉพาะในแผ่นข้อมูลแบบสอบถามเท่านั้น
     แบบสอบถามมีรูปแบบพื้นฐานสองรูปแบบ ได้แก่ แบบสอบถามแบบใช้เลือกข้อมูลและแบบสอบถามแอคชัน แบบสอบถามแบบใช้เลือกข้อมูลจะเรียกใช้ข้อมูลและทำให้ข้อมูลพร้อมใช้งานได้อย่างง่ายดาย คุณสามารถดูผลลัพธ์ของแบบสอบถามบนหน้าจอ พิมพ์แบบสอบถาม หรือคัดลอกไปยังคลิปบอร์ด หรือคุณสามารถใช้ผลลัพธ์ของแบบสอบถามเป็นแหล่งระเบียนสำหรับฟอร์มหรือรายงานได้
     แบบสอบถามแอคชัน (เหมือนกับชื่อ) จะดำเนินงานกับข้อมูล โดยแบบสอบถามแอคชันสามารถใช้สร้างตารางใหม่ เพิ่มข้อมูลลงในตารางที่มีอยู่ ปรับปรุงข้อมูล หรือลบข้อมูลได้

แมโคร

     แมโครใน Access นั้นจะเหมือนกับภาษาที่ใช้ในการเขียนโปรแกรมอย่างง่ายที่คุณสามารถใช้เพื่อเพิ่มหน้าที่การใช้งานให้กับฐานข้อมูลของคุณ ตัวอย่างเช่น คุณสามารถแนบแมโครลงในปุ่มคำสั่งบนฟอร์ม เพื่อให้แมโครนั้นทำงานเมื่อใดก็ตามที่มีการกดปุ่ม แมโครจะมีแอคชันที่ใช้ดำเนินงานหลายอย่าง เช่น การเปิดรายงาน การเรียกใช้แบบสอบถาม หรือการปิดฐานข้อมูล โดยการดำเนินการกับฐานข้อมูลส่วนใหญ่ที่คุณทำด้วยตนเองนั้นสามารถทำได้อัตโนมัติโดยใช้แมโคร ดังนั้นแมโครจึงเป็นเครื่องมือที่ช่วยประหยัดเวลาที่อย่างมาก

โมดูล


     โมดูล (คล้ายแมโคร) เป็นวัตถุที่คุณสามารถใช้เพื่อเพิ่มหน้าที่การใช้งานให้กับฐานข้อมูลได้ ขณะที่คุณสร้างแมโครใน Access ด้วยการเลือกจากรายการแอคชันของแมโคร แต่คุณจะสามารถเขียนโมดูลได้ในภาษาการเขียนโปรแกรม Visual Basic for Applications (VBA)โมดูลเป็นคอลเลกชันของการประกาศ คำสั่ง และกระบวนงานที่ถูกเก็บไว้ด้วยกันเป็นหน่วยเดียว โมดูลสามารถเป็นได้ทั้งคลาสโมดูลหรือโมดูลมาตรฐาน คลาสโมดูลจะถูกแนบไว้ในฟอร์มหรือรายงาน และมักจะประกอบด้วยกระบวนงานที่เฉพาะเจาะจงไปยังฟอร์มหรือรายงานที่คลาสโมดูลแนบอยู่ ส่วนโมดูลมาตรฐานจะประกอบด้วยกระบวนงานทั่วไปที่ไม่สัมพันธ์กับวัตถุอื่นใด โมดูลมาตรฐานจะถูกแสดงอยู่ภายใต้โมดูล ในบานหน้าต่างนำทาง ขณะที่คลาสโมดูลจะไม่ถูกแสดงไว้

Microsoft Access

     Microsoft Access คือ โปรแกรมเพื่อพัฒนาระบบฐานข้อมูล มีตารางเก็บข้อมูลและสร้างแบบสอบถามได้ง่าย มีวัตถุคอนโทลให้เรียกใช้ในรายงานและฟอร์ม สร้างมาโครและโมดูลด้วยภาษาเบสิก เพื่อประมวลผลตามหลักภาษาโครงสร้าง สามารถใช้โปรแกรมนี้เป็นเพียงระบบฐานข้อมูลให้โปรแกรมจากภายนอกเรียกใช้ก็ได้
     ไมโครซอฟท์แอคเซส (Microsoft Access) ต่างกับ วิชวลเบสิก (Visual Basic) หรือวิชวลเบสิกดอทเน็ต (Visual Basic .Net) เพราะ วิชวลเบสิกไม่มีส่วนเก็บข้อมูลในตนเอง แต่สามารถพัฒนาโปรแกรมได้หลากหลาย เช่น พัฒนาโปรแกรมควบคุมอุปกรณ์ โปรแกรมประยุกต์ทางวิทยาศาสตร์ เกมส์ หรือเชื่อมต่อกับระบบฐานข้อมูลภายนอก เป็นภาษาที่เหมาะกับการพัฒนาโปรแกรมประยุกต์ (Application) ส่วนไมโครซอฟท์แอคเซสเหมาะสำหรับนักพัฒนาระบบฐานข้อมูลที่ไม่ต้องการโปรแกรมที่ซับซ้อน ความสามารถของโปรแกรมที่สำคัญคือสร้างตาราง แบบสอบถาม ฟอร์ม หรือรายงานในแฟ้มเดียวกันได้ ด้วยคุณสมบัติพื้นฐานและวิซซาร์ดจึงอำนวยให้พัฒนาโปรแกรมให้แล้วเสร็จได้ในเวลาอันสั้น มีเครื่องมือที่อำนวยความสะดวกในการพัฒนาระบบฐานข้อมูลอย่างครบถ้วน

MySQL

     ชื่อ "MySQL" อ่านออกเสียงว่า "มายเอสคิวเอล" หรือ "มายเอสคิวแอล" (ในการอ่านอักษร L ในภาษาไทย) ซึ่งทางซอฟต์แวร์ไม่ได้อ่าน มายซีเควล หรือ มายซีควล เหมือนกับซอฟต์แวร์จัดการฐานข้อมูลตัวอื่น


     มายเอสคิวแอล (MySQL) คือ โปรแกรมระบบจัดการฐานข้อมูล ที่พัฒนาโดยบริษัทมายเอสคิวแอลเอบี (MySQL AB) มีหน้าที่เก็บข้อมูลอย่างเป็นระบบ รองรับคำสั่งเอสคิวแอล (SQL = Structured Query Language) เป็นเครื่องมือสำหรับเก็บข้อมูล ที่ต้องใช้ร่วมกับเครื่องมือหรือโปรแกรมอื่นอย่างบูรณาการ เพื่อให้ได้ระบบงานที่รองรับความต้องการของผู้ใช้ เช่นทำงานร่วมกับเครื่องบริการเว็บ (Web Server) เพื่อให้บริการแก่ภาษาสคริปต์ที่ทำงานฝั่งเครื่องบริการ (Server-Side Script) เช่น ภาษาพีเอชพี (PHP) , ภาษาเอเอสพีดอทเน็ต (ASP.NET) , หรือภาษาเจเอสพี (JSP) เป็นต้น หรือทำงานร่วมกับโปรแกรมประยุกต์ (Application Program) เช่น ภาษาวิชวลเบสิกดอทเน็ต (VB) ภาษาจาวา (JAVA) เป็นต้น โปรแกรมถูกออกแบบให้สามารถทำงานได้บนระบบปฏิบัติการที่หลากหลาย และเป็นระบบฐานข้อมูลโอเพนทซอร์ทที่ถูกนำไปใช้งานมากที่สุด



     MySQL (มายเอสคิวแอล) เป็นระบบจัดการฐานข้อมูลโดยใช้ภาษา SQL. แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ



     MySQL สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius.



     ปัจจุบันบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB เรียบร้อยแล้ว ฉะนั้นผลิตภัณฑ์ภายใต้ MySQL AB ทั้งหมดจะตกเป็นของซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.)





การใช้งาน


     MySQL เป็นที่นิยมใช้กันมากสำหรับฐานข้อมูลสำหรับเว็บไซต์ เช่น มีเดียวิกิ และ phpBB , Joomla ,Wordpess , Discuz เป็นต้น และนิยมใช้งานร่วมกับภาษาโปรแกรม PHP ซึ่งมักจะได้ชื่อว่าเป็นคู่กัน จะเห็นได้จากคู่มือคอมพิวเตอร์ต่างๆ ที่จะสอนการใช้งาน MySQL และ PHP ควบคู่กันไป นอกจากนี้ หลายภาษาโปรแกรมที่สามารถทำงานร่วมกับฐานข้อมูล MySQL ซึ่งรวมถึง ภาษาซี ซีพลัสพลัส ปาสคาล ซีชาร์ป ภาษาจาวา ภาษาเพิร์ล พีเอชพี ไพทอน รูบี และภาษาอื่น ใช้งานผ่าน API สำหรับโปรแกรมที่ติดต่อผ่าน ODBC หรือ ส่วนเชื่อมต่อกับภาษาอื่น (database connector) เช่น เอเอสพี สามารถเรียกใช้ MySQL ผ่านทาง MyODBC,ADO,ADO.NET เป็นต้น


SQL Server

      Microsoft SQL Server คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational database management system: RDBMS) ผู้ที่เกี่ยวข้องกับงานฐานข้อมูล หรือนักศึกษาตั้งแต่ปี 2 ก็น่าจะคุ้นเคยกับคำว่า “RDBMS” ความหมายง่ายๆ ของคำว่า RDBMS ก็คือระบบจัดการฐานข้อมูลที่ทำงานกับฐานข้อมูลที่จัดเก็บในลักษณะของตารางนั่นเอง
    ผู้อ่านอาจจะสงสัยว่า นอกจาก RDBMS แล้วยังมีอย่างอื่นอีกหรือไม่? คำตอบคือ “มี” นั้นคือ Object-Oriented database, NoSQL database หรือ XML database โดยจริงๆแล้ว ทั้ง 3 ตัวที่พูดไปก็เป็นตัวจัดการยุคใหม่ ที่มีชื่อเสียงและมีการจัดการที่มีประสิทธิภาพที่ดีเช่นกัน
    แล้วทำไม SQL Server ถึงต้องใช้ RDBMS? คำตอบง่ายๆ อาจจะเป็นเพราะ มัน “ง่าย” มัน “เร็ว” หรือมัน “สะดวก” ลองคิดง่ายๆ ทุกๆ คน คุ้นเคยกับตารางกันดีอยู่แล้ว ไม่ว่าจะเป็นตารางรายชื่อ ตารางรายการอาหาร หรือตารางรายการสินค้า การจัดเก็บแบบ RDBMS ก็จัดเก็บทื่อๆ แบบนั้นเลย ใช้การจัดเก็บแบบตาราง ที่มีการแสดงความสัมพันธ์ระหว่าง 2 ตารางได้ และกำหนดคุณสมบัติต่างๆ ได้ทั้งเรื่อง key, data type หรือ index ซึ่งการทำงานแบบนี้นอกจากเพิ่มข้อมูลง่าย แก้ไขง่าย และยังทำให้สามารถดึงข้อมูลที่มีจำนวนปานกลางได้อย่างรวดเร็ว
     โดยสรุปแล้ว SQL Server คือ “โปรแกรมที่ทำหน้าที่จัดการการเข้าถึงฐานข้อมูล” นั่นเอง ซึ่งใช้ลักษณะการจัดการข้อมูลแบบตาราง (Tabular) ทำให้การทำงานใช้งานง่ายๆ เข้าใจง่าย และรวดเร็ว สุดเด่นที่สำคัญของ SQL คือการที่เป็น product ของ Microsoft นั้นหมายความว่า SQL Server สามารถเชื่อมต่อกับโปรแกรมอื่นของ Microsoft ได้แทบจะทั้งหมด ตั้งแต่ Excel, Access, Outlook, SharePoint, InfoPath และอื่นๆ รวมถึงสามารถเชื่อมต่อกับ product บริษัทอื่นได้โดยมีการเพิ่ม Connector เข้ามา
     ในการใช้งานหลัก จะใช้ภาษาในการ query ข้อมูลที่ชื่อว่า T-SQL (Transact-SQL) และ ANSI SQL
     ในปัจจุบันเวอร์ชั่นที่ใหม่ที่สุดคือ SQL Server 2012 ซึ่ง Microsoft Thailand กำลังจะจัดงาน SQL Server 2012 Virtual launch Event ในวันที่ 15 พฤษภาคม 2555




Oracle

      Oracle ซอฟต์แวร์ระบบการจัดการฐานข้อมูลที่คุณควรรู้จักซอฟท์แวร์ เป็นองค์ประกอบหนึ่งที่ช่วยขับเคลื่อนองค์กรอย่างมีประสิทธิภาพผู้ผลิต ซอฟท์แวร์จึงจำเป็นที่ต้องมีการพัฒนาเทคโนโลยีเพื่อให้องค์กรตัดสินเลือก ซอฟท์แวร์ไปใช้งานภายในองค์กรซอฟท์แวร์ที่ได้รับความนิยมด้านการจัดการฐาน ข้อมูลอย่างเป็นระบบ รายงานล่าสุดจากออราเคิล คอร์ปอเรชั่น ผู้ผลิตซอฟต์แวร์สำหรับองค์กรรายใหญ่สุดของโลกเปิดเผยว่า ซอฟต์แวร์และบริการของออราเคิลเป็นที่ยอมรับในตลาดเอเชียมากขึ้นอย่างต่อ เนื่อง ทั้งระบบแอพพลิเคชั่นเพื่อธุรกิจ เทคโนโลยีด้านดาต้าเบส ระบบอัจฉริยะ ที่ช่วยลดค่าใช้จ่ายในการสร้างระบบกลางที่ช่วยให้เห็นการทำงานของระบบ ปฏิบัติการเดียวกันทั้งหมดไม่ว่าจะอยู่ส่วนไหนของโลก 

      
ในไตรมาสแรกลูกมีผู้ประกอบการในภูมิภาคที่เลือกใช้ระบบ Oracle9i Database และ/หรือ Oracle9i Application Server และหรือ Oracle Collaboration Suite ได้แก่ Citibank, N.A. Asia Pacific Processing Center (สิงคโปร์), Compal Electronics Inc. (ไต้หวัน), กรมทางหลวง กระทรวงคมนาคม ไทย), Ministry of the Interior (ไต้หวัน), National Archives Administration (ไต้หวัน) และ Tenaga Nasional Berhad (มาเลเซีย) เนื่องจากระบบเว็บไซด์อี-บิสสิเนส และแอพพลิเคชั่นเพื่อสนับสนุนการทำธุรกรรม และการตัดสินใจ ต้องมีระบบแอพพลิเคชั่นเซริฟเวอร์รองรับ และทั้ง Oracle9i Database กับ Oracle9i Application Server ก็เป็นอีกทางเลือกสำหรับองค์กรที่ต้องการยกระดับผลการดำเนินงานและเพื่อ ประโยชน์ในด้านค่าใช้จ่ายของระบบโครงสร้างที่สมบูรณ์แบบ       ระบบจัดการฐานข้อมูล หรือ DBMS(Database Management System)ระบบ ฐานการจัดการฐานข้อมูล( DBMS) คือ ซอฟต์แวร์ที่ถูกสร้างขึ้น วัตถุประสงค์เพื่ออำนวยความสะดวกต่อผู้ใช้ฐานข้อมูล ทำหน้าที่สร้างฐานข้อมูล แก้ไขฐานข้อมูล การเข้าถึงข้อมูล การเรียกคืนข้อมูล เป็นต้น ปรัปปรุง และใช้ฐานข้อมูล ซึ่งในปัจจุบันมีการพัฒนาซอฟต์แวร์มาเพื่อทำหน้าที่ต่างๆของ DMBS เช่น ,SQL Serverเวอร์ชั่น 7.0, 2000 ,Oracel ,dBASE, FOXPRO, MICROSFT ACCESS, INFORMIX, เป็นต้น









ทำความรู้จัก Oracle    

    ฐานข้อมูล Oracle เป็นฐานข้อมูลที่ได้รับความนิยมและมีการใช้งานอย่างแพร่หลาย เนื่องจากเป็นฐานข้อมูลที่มีประสิทธิภาพในการทำงานสูง เหมาะกับการจัดการเก็บข้อมูลขนาดใหญ่ที่ต้องการความปลอดภัยและความมั่นคงใน การใช้งาน การจัดการฐานข้อมูล Oracleให้เป็นไปอย่างถูกต้องจะช่วยให้การใช้งานฐานข้อมูลเป็นไปได้ง่ายและมี ประสิทธิภาพมากยิ่งขึ้น หน้าที่ในการจัดการฐานข้อมูลเป็นหน้าที่หลักของผู้ดูและระบบฐานข้อมูล หรือ DBA (Database Administrator)




     ประวัติ ในปี ค.ศ. 1977 บริษัท Relation Software Inc หรือ RSI ได้ถือกำเนิดขึ้นใน Redwood รัฐ Clariflornia ผู้ร่วมก่อตั้งคือ Lawrence; J Ellison จบการศึกษาจากมหาวิทยาลัยอิลินอยส์และชิคาโก ต่อมาในปี ค.ศ.1983 บริษัท RSI ได้เปลี่ยนชื่อเป็น Oracle Corparation เพื่อหลีกเลี่ยงความสับสนกับคู่แข่งที่ชื่อ RIT ณ เวลานั้นนักพัฒนา Applicationได้สร้างระบบฐานข้อมูลที่สามารถทำงานได้หลายแพลตฟอร์มซึ่งเป็น เวอร์ชั่น 3 และออกจำหน่ายในท้องตลาด โดยเวอร์ชั่นนี้สามารถทำงานได้ทั้งระบบ Digital VAX / VMS แต่ยังสามารถทำงานบนแพลตฟอร์ม Unix และแพลตฟอร์มอื่นๆอีกด้วย จนถึง ค.ศ. 1985 บริษัท Oracle ได้กล่าวว่าระบบฐานข้อมูลสามารถทำงานได้มากกว่า 30 แพลตฟอร์ม ในปัจจุบันนี้สามารถทำงานได้ถึง 80 แพลตฟอร์ม เช่น แพลตฟอร์ม Sun”Solaris, IBM, AIX, Windows ต่างๆและ Linux เพื่อต้องการส่วนแบ่งตลาดมากที่สุด นอกจากมีการสนับสนุนหลายๆแพลตฟอร์มแล้ว ข่าวคราวของ Oracle กลางทศวรรษที่ 1980 ยังคงได้ยินจนถึงปัจจุบันนี้ รวมถึงเครื่องมือในการพัฒนา Software และการตัดสินใจภาษา SQL ตามมาตรฐาน ANSI สามารถทำงานข้ามแพลตฟอร์มต่างๆได้และเชื่อมต่อเน็ตเวิร์คมาตรฐาน เป็นต้น



       ตั้งแต่กลางทศวรรษที่ 1980 โมเดลการกระจายฐานข้อมูลก็ค่อยๆปรากฏออกมาจาก ดาตาเบส แอปพลิเคชั่น เซิร์ฟเวอร์เป็น ไคลแอนท์/เซิร์ฟเวอร์ แล้วกลายมาเป็น Internet ที่ทำงานบนเครื่องคอมพิวเตอร์ส่วนบุคคลและเครื่องคอมพิวเตอร์ไคลแอนท์ที่ใช้ ทรัพยากรน้อย หรือเรียกว่า Thin Client และสามารถเข้าถึง ดาต้าเบสแอปพลิเคชั่นด้วยเบราเซอร์และกลายเป็นเทคโนโลยี Three-Tier ซึ่งเราจะพบเห็นในปัจจุบันนี้เช่น Web Service Oracle นะนำลักษณะเด่นด้านเทคนิคใหม่ๆ มาใส่ไว้ในฐานข้อมูลเหมือนกับโมเดลการคำนวณและการกระจายที่มีการเปลี่ยนแปลง จากการให้ฐานข้อมูลแบบกระจายจนถึง Java Virtual Machine ในเอ็นจิน ฐานข้อมูลหลัก
      กว่า 3 ทศวรรษ ที่ออราเคิลยืนหยัดอยู่บนถนนสายซอฟต์แวร์ แลรี่ เอลลิสัน ก่อตั้งออราเคิลขึ้น เพราะเห็นโอกาสเติบโตสูงมากของตลาดฐานข้อมูล(ดาต้าเบส) และยังพัฒนาขยายธุรกิจดาต้าเบส ซึ่งเป็นเจ้าตลาดอยู่แล้วอย่างต่อเนื่อง ชื่อของออราเคิลในฐานะบริษัทซอฟต์แวร์ด้านระบบบริหารฐานข้อมูลที่ใหญ่ที่สุด ในโลกและมีระบบบริหารธุรกิจ การบัญชีการเงิน ระบบบริหารการผลิต บริหารลูกค้าสัมพันธ์ (CRM) หรือเรียกรวมๆว่า อีบิสซิเนส สวีท (E-Business Suite) ซึ่งคุณสมบัติของ Oracle เช่น โปรแกรมประมวลผลคำ โปรแกรมตารางคำนวณ โปรแกรมฐานข้อมูล โปรแกรมนำเสนอเกม โปรแกรมป้องกันไวรัส นอกจากนี้ยังมีระบบการติดตั้งที่รวดเร็ว ช่วยให้วงจรการดำเนินธุรกิจหลักๆ ขับเคลื่อนได้ภายในเวลาอันสั้น อีกทั้งยังเป็นชุดแอปพลิเคชั่นอยู่ภายใต้งบประมาณที่เหมาะสม       
       ชุดผลิตภัณฑ์ฐานข้อมูล Oracle 1. เวอร์ชั่นบุคคล เป็นฐานข้อมูลที่ใช้คนเดียวเพราะสามารถ เขียน แก้ไขบนโค้ดคอมพิวเตอร์เดียว ซึ่งถ้ามีการ Hank ของข้อมูลก็จะไม่ทำให้ผู้อื่นเดือดร้อน 2. เวอร์ชั่นมาตรฐาน เป็นฐานข้อมูล Server ใช้กันหลายคนหรือเรียกว่า Work group Server 3. เวอร์ชั่น Enterprise เช่นเดียวกับเวอร์ชั่นมาตรฐาน แต่สนับสนุนผู้ใช้ได้มากและรวมฟังก์ชั่นเครื่องมือต่างๆเพิ่มขึ้น เช่นการจัดการระดับสูง network program คลังข้อมูล เป็นต้น


   


    การใช้ฐานข้อมูล Oracle  ก่อนอื่นขอแนะนำแบบของฐานข้อมูล Oracle เพื่อให้ผู้ใช้งานมีความคุ้นเคยกับ oracle มากขึ้น และสามารถเลือกใช้ได้ตรงตามจุดประสงค์ และลักษณะงาน ซอฟแวร์ของ Oracle มี 2 แบบ คือ Personal Oracle และ Oracle Server ทั้ง 2 แบบนี้มีลักษณะการใช้งานและคำสั่งเหมือนกัน แต่ต่างกันที่ Personal Oracle คือฐานข้อมูลที่เมื่อติดตั้งบนเครื่องคอมพิวเตอร์แล้ว ผู้ใช้จะต้องนั่งทำงานกับ Oracle นี้ที่หน้าเครื่องท่านั้น
   ส่วนของ Oracle Server คือฐานข้อมูลในลักษณะเซิร์ฟเวอร์ คือเครื่องคอมพิวเตอร์ที่ติดตั้งโปรแกรมของ Oracle Server ไว้ และยอมให้ผู้ใช้งานเรียกฐานข้อมูล หรือจัดการกับข้อมูลจากเครื่องคอมพิวเตอร์อื่น ๆ ได้(เรียกเครื่องอื่นๆ เป็นไคลเอนต์) ดังนั้นถ้าต้องการให้มีผู้เรียกใช้ข้อมูลจากฐานข้อมูลหลาย ๆ คนได้ ก็ควรต้องเลือกแบบที่เป็น Oracle Server ซึ่งมี 2 อิดิชั่น คือ Standard Edition และ Enterprise Edition สำหรับเวอร์ชั่นของ Oracle ซึ่งใช้กันอยู่ปัจจุบันมีหลายเวอร์ชั่น ตั่งแต่เวอร์ชั่น 7,8 และ 9 แต่ไม่ว่าจะเป็นเวอร์ชั่นใด ถ้ากล่าวถึงคำสั่งทีใช้ในการจัดการข้อมูลแล้วยังเหมือนกันทั้งสิ้น