วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2557

Scope

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 สามารถเข้าถึงได้ทุกส่วนในสคริปต์

จำนวนตัวแปรของพารามิเตอร์

จำนวนตัวแปรของพารามิเตอร์



การส่งผ่านพารามิเตอร์ไปยังฟังก์ชันนั้น การควบคุมของ 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 
พารามิเตอร์ที่ ค่า: one
พารามิเตอร์ที่ ค่า: two
พารามิเตอร์ที่ ค่า: 3
พารามิเตอร์ที่ ค่า: 4
พารามิเตอร์ที่ ค่า: ห้า
พารามิเตอร์ที่ ค่า: หก
>> ใช้ฟังก์ชัน func_get_args 
พารามิเตอร์ที่ ค่า: one
พารามิเตอร์ที่ ค่า: two
พารามิเตอร์ที่ ค่า: 3
พารามิเตอร์ที่ ค่า: 4
พารามิเตอร์ที่ ค่า: ห้า
พารามิเตอร์ที่ ค่า: หก
********* 
จำนวนพารามิเตอร์ 0

*********

การส่งผ่านโดยการอ้างอิง (By Reference)

การส่งผ่านโดยการอ้างอิง (By Reference)


ตามตัวอย่างฟังก์ชัน new_value ถ้าต้องการให้ฟังก์ชันเปลี่ยนแปลงค่าได้ มีวิธีหนึ่งในการแก้ไขคือ ประกาศ$value ในฟังก์ชันเป็น global แต่หมายความว่าในการใช้ฟังก์ชันนี้ ตัวแปรที่ต้องการเพิ่มค่าต้องตั้งชื่อเป็น $valueแต่มีวิธีดีกว่าคือ ใช้การส่งผ่านโดยการอ้างอิง
การอ้างอิงไปตัวแปรต้นทางแทนที่มีค่าของตัวเอง การปรับปรุงไปยังการอ้างอิงจะมีผลกับตัวแปรต้นทางด้วย
การระบุพารามิเตอร์ที่ใช้การส่งผ่านโดยการอ้างอิงให้วาง ampersand (&) หน้าชื่อพารามิเตอร์ในข้อกำหนดฟังก์ชัน
ตัวอย่าง new_value () ได้รับปรับปรุงให้มี พารามิเตอร์ส่งผ่านโดยการอ้างอิงและทำงานได้อย่างถูกต้อง
<?php
function new_value(&$value, $increment=1) 
{
$value = $value + $increment;
}
?>
คำสั่งทดสอบฟังก์ชัน ให้พิมพ์ 10 ก่อนการเรียก increment () และ 11 ภายหลัง

ในการส่งค่าโดยการอ้างอิงต้องส่งเป็นตัวแปรไม่สามารถกำหนดค่าคงที่โดยตรง

การส่งผ่านโดยค่า(By Value)

การส่งผ่านโดยค่า(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 ในฟังก์ชันได้รับการสร้างเมื่อเรียกฟังก์ชัน ค่า ได้รับการเพิ่มให้กับตัวแปร ดังนั้นค่าของ $value คือ 11ภายในฟังก์ชัน จนกระทั่งสิ้นสุดฟังก์ชัน แล้วกลับไปยังคำสั่งที่เรียกภายในคำสั่งนี้ ตัวแปร $value เป็นอีกตัวแปรglobal scope และไม่มีการเปลี่ยนแปลง

พารามิเตอร์ ไวยากรณ์พื้นฐาน

พารามิเตอร์

ตามปกติฟังก์ชันส่วนใหญ่ต้องการรับสารสนเทศจากผู้เรียกสำหรับการประมวลผล โดยทั่วไปเรียกว่า พารามิเตอร์

ไวยากรณ์พื้นฐาน


การกำหนดฟังก์ให้รับพารามิเตอร์ส่งผ่านโดยการวางข้อมูล ชื่อตัวแปรที่เก็บข้อมูลภายในวงเล็บหลังชื่อฟังก์ชัน การเรียกฟังก์ชันที่ประกอบด้วยพารามิเตอร์เขียนดังนี้
<?php
function show_parameter($param1, $param2, $param3) 
{
echo <<<PARAM
รายการพารามิเตอร์ <br/> 
param1: $param1 <br/>
param2: $param2 <br/>
param3: $param3 <br/>
PARAM;
} 
?>
พารามิเตอร์ที่ส่งไปยังฟังก์ชันแยกกันเครื่องหมายจุลภาคภายในวงเล็บ โดยสามารถส่งเป็นนิพจน์สำหรับแต่ละพารามิเตอร์ด้วย ตัวแปร ค่าคงที่ ผลลัพธ์จากการคำนวณ รวมถึงการเรียกฟังก์ชัน

scope ของพารามิเตอร์จำกัดภายในฟังก์ชัน ถ้าชื่อตัวแปรเหมือนกับตัวแปรใน scope ระดับอื่น พารามิเตอร์นี้ "ระบุ" เป็นตัวแปรภายในที่ไม่มีผลกับตัวแปรภายนอกฟังก์ชัน

การเรียกฟังก์ชัน

การเรียกฟังก์ชัน



เมื่อฟังก์ชันได้รับการประกาศหรือสร้างขึ้นแล้ว การเรียกฟังก์ชันสามารถเรียกมาจากที่ใดๆ ภายในสคริปต์ หรือ จากไฟล์ที่มีการรวมด้วยประโยคคำสั่ง include() หรือ require()
ตัวอย่าง ฟังก์ชัน show_message() เก็บอยู่ในไฟล์ fn_ 03 _keeper.php ส่วนผู้เรียกอยู่ในสคริปต์ fn_ 03 _caller.php
<?php
include("fn_ 03 _keeper.php"); 
show_message();
?>

การหยุดประมวลผลภายในฟังก์ชัน

การหยุดประมวลผลภายในฟังก์ชัน



คีย์เวิร์ด return หยุดการประมวลผลฟังก์ชัน ฟังก์ชันสิ้นสุดได้เพราะประโยคคำสั่งทั้งหมดได้รับการประมวลผล หรือ ใช้คีย์เวิร์ด return การประมวลผลกลับไปยังประโยคคำสั่งต่อจากการเรียกฟังก์ชัน
<?php
function division($x, $y) 
{
if ($y == 0 || !isset($y)) 
{
echo " ตัวหาร ต้องไม่เป็นศูนย์หรือไม่มีค่า" ; 
return;
}
$result = $x / $y; 
echo $result;
} 
?>
ถ้าประโยคคำสั่ง return ได้รับการประมวลผล บรรทัดคำสั่งต่อไปในฟังก์ชันจะถูกข้ามไป และกลับไปยังผู้เรียกฟังก์ชันนี้ ในฟังก์ชันนี้ ถ้า เป็น จะหยุดการประมวลผล ถ้า ไม่เท่ากับ จะคำนวณผลหาร
สมมติป้อนค่าเป็น 
x = 4, y = 0
x = 4
x = 4, y = 2

ผลลัพธ์ของคำสั่ง คือ
x = 4, y = 0 ผลลัพธ์ ตัวหาร ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = ผลลัพธ์ ตัวหาร ต้องไม่เป็นศูนย์หรือไม่มีค่า
x = 4, y = 2 ผลลัพธ์ 2

การตั้งชื่อฟังก์ชัน

การตั้งชื่อฟังก์ชัน


สิ่งสำคัญมากในการพิจารณาเมื่อตั้งชื่อฟังก์ชันคือชื่อต้องสั้นแต่มีความหมาย ถ้าฟังก์ชันสร้างส่วนตัวของเพจควรตั้งชื่อเป็น 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 เป็น ตัวแปร แต่ Name () และ name () เป็นฟังก์ชันเดียวกัน

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

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


การประกาศฟังก์ชันเริ่มต้นด้วยคีย์เวิร์ด 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

ฟังก์ชันใน PHP

ฟังก์ชันใน PHP


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

วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2557

วิธีการสร้างฐานข้อมูล

วิธีการสร้างฐานข้อมูล


วิธีการสร้างฐานข้อมูล

1.    เปิดเบราเซอร์เข้าลิงค์ http://localhost.






2. คลิกที่ phpMyAdmin หรือเข้าที่ลิ้งค์ http://localhost/phpmyadmin

3.    - ชื่อผู้ใช้งาน ใส่ rootรหัสผ่าน 
อันเดียวกับตอนที่ติดตั้ง appserv



4. ใส่ชื่อของฐานข้อมูลที่ต้องการ และคลิก สร้าง


5. ฐานข้อมูลถูกสร้างแล้ว



โปรแกรมฐานข้อมูลที่นิยมใช้

โปรแกรมฐานข้อมูลที่นิยมใช้
        โปรแกรมฐานข้อมูล เป็นโปรแกรมหรือซอฟแวร์ที่ช่วยจัดการข้อมูลหรือรายการต่าง ๆ ที่อยู่ในฐานข้อมูล ไม่ว่าจะเป็นการจัดเก็บ การเรียกใช้ การปรับปรุงข้อมูล
        โปรแกรมฐานข้อมูล จะช่วยให้ผู้ใช้สามารถค้นหาข้อมูลได้อย่างรวดเร็ว ซึ่งโปรแกรมฐานข้อมมูลที่นิยมใช้มีอยู่ด้วยกันหลายตัว เช่น Access, FoxPro, Clipper, dBase, FoxBase, Oracle, SQL เป็นต้น โดยแต่ละโปรแกรมจะมีความสามารถต่างกัน บางโปรแกรมใช้ง่ายแต่จะจำกัดขอบเขตการใช้งาน บ่งโปรแกรมใช้งานยากกว่า แต่จะมีความสามารถในการทำงานมากกว่า
        โปรแกรม Access นับเป็นโปรแกรมที่นิยมใช้กันมากในขณะนี้ โดยเฉพาะในระบบฐานข้อมูลขนาดใหญ่ สามารถสร้างแบบฟอร์มที่ต้องการจะเรียกดูข้อมูลในฐานข้อมูล หลังจากบันทึกข้อมูลในฐานข้อมูลเรียบร้อยแล้ว จะสามารถค้นหาหรือเรียกดูข้อมูลจากเขตข้อมูลใดก็ได้ นอกจากนี้ Access ยังมีระบบรักษาความปลอดภัยของข้อมูล โดยการกำหนดรหัสผ่านเพื่อป้องกันความปลอดภัยของข้อมูลในระบบได้ด้วย
       โปรแกรม FoxPro เป็นโปรแกรมฐานข้อมูลที่มีผู้ใช้งานมากที่สุด เนื่องจากใช้ง่ายทั้งวิธีการเรียกจากเมนูของ FoxPro และประยุกต์โปรแกรมขึ้นใช้งาน โปรแกรมที่เขียนด้วย FoxPro จะสามารถใช้กลับ dBase คำสั่งและฟังก์ชั่นต่าง ๆ ใน dBase จะสามารถใช้งานบน FoxPro ได้ นอกจากนี้ใน FoxPro ยังมีเครื่องมือช่วยในการเขียนโปรแกรม เช่น การสร้างรายงาน
      โปรแกรม dBase เป็นโปรแกรมฐานข้อมูลชนิดหนึ่ง การใช้งานจะคล้ายกับโปรแกรม FoxPro ข้อมูลรายงานที่อยู่ในไฟล์บน dBase จะสามารถส่งไปประมวลผลในโปรแกรม Word Processor ได้ และแม้แต่ Excel ก็สามารถอ่านไฟล์ .DBF ที่สร้างขึ้นโดยโปรแกรม dBase ได้ด้วย
     โปรแกรม SQL เป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่งที่มีผู้นิยมใช้กันมาก โดยทั่วไปโปรแกรมฐานข้อมูลของบริษัทต่าง ๆ ที่มีใช้อยู่ในปัจจุบัน เช่น Oracle, DB2 ก็มักจะมีคำสั่ง SQL ที่ต่างจากมาตรฐานไปบ้างเพื่อให้เป็นจุดเด่นของแต่ละโปรแกรมไป

ความสำคัญของระบบการจัดการฐานข้อมูล

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

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

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

ชนิดข้อมูล



ชนิดข้อมูล
รายละเอียดการจัดเก็บ
INT, INTEGER
จัดเก็บข้อมูลที่เป็นตัวเลขที่มีค่าตั้งแต่ -2,147,483,648 ถึง2,147,483,647 ประเภทข้อมูลนี้นิยมใช้ในการคำนวณ
SMALLINT
จัดเก็บข้อมูลที่เป็นตัวเลขที่มีค่าตั้งแต่ -32,768 ถึง 32,767
TINYINT
จัดเก็บข้อมูลที่เป็นตัวเลขที่มีค่าตั้งแต่ -128 ถึง 127
DECIMAL(L,D)
จัดเก็บข้อมูลที่เป็นตัวเลขที่กำหนดเป็นจำนวนหลักและจำนวนจุดทศนิยมได้ เช่น DECIMAL(5,2) หมายถึง สามารถเก็บข้อมูลได้ หลักและทศนิยมตำแหน่งในระบบเลขฐานสิบ
FLOAT(m)
จัดเก็บข้อมูลชนิดตัวเลขที่มีทศนิยม กำหนดให้ มีค่าน้อยกว่า 24
CHAR(n)
จัดเก็บตัวอักขระที่ประกาศได้จำนวน ตัวอักษร เป็นความกว้างคงที่ เช่นCHAR(10) ถ้ามีข้อมูลเพียง ตัวอักษรจะถูกใช้ตามจำนวน 10 ตัวอักษรตามที่กำหนดเอาไว้ สามารถเก็บตัวเลขได้แต่ไม่สามารถนำมาคำนวณได้
VARCHAR(n)
จัดเก็บข้อมูลประเภทอักขระเช่นเดียวกับ CHAR แต่จะเก็บข้อมูลตามที่มีข้อมูลอยู่จริง สามารถจัดเก็บตัวอักขระได้ถึง 255 อักขระ
TEXT
เหมาะสำหรับจัดเก็บอักขระที่มากกว่า 255 อักขระ สามารถจัดเก็บอักขระได้สูงสุด 65,535 อักขระ
DATE
จัดเก็บข้อมูลที่เป็นวันเดือนปี มีรูปแบบ YYYY-MM-DD ค่าตั้งแต่ 1000-01-01 ถึง 9999-12-31
DATETIME
จัดเก็บข้อมูลที่เป็นวันเดือนปีเวลา มีรูปแบบ YYYY-MM-DD HH:MM:SSค่าตั้งแต่ 1000-01-01 00:00:00ถึง9999-12-31 23:59:59

ตัวอย่างซอฟต์แวร์จัดการระบบฐานข้อมูลในปัจจุบัน

ตัวอย่างซอฟต์แวร์จัดการระบบฐานข้อมูลในปัจจุบัน

ระบบฐานข้อมูลที่มีอยู่ในปัจจุบัน มีอยู่เป็นจำนวนมาก ซึ่งแบ่งออกเป็น 2 กลุ่มได้ คือระบบ ฐานข้อมูลขนาดใหญ่ ซึ่งมีความสามารถในการจัดการฐานข้อมูลครบทุกด้าน และอีกกลุ่มคือระบบฐาน ข้อมูลขนาดไม่ใหญ่มาก ซึ่งมีความสามารถในการจัดการฐานข้อมูลเช่นกัน แต่อาจจะขาดความสามารถ บางอย่างไป ตัวอย่างของซอฟต์แวร์ระบบฐานข้อมูลต่างๆ มีดังนี้ ซอฟต์แวร์ฐานข้อมูลที่เหมาะสำหรับระบบงานใหญ่ เช่น Oracle, Microsoft SQL, MySQL, Sysbase, DB2, Informix, Ingres เป็นต้น


บุคคลที่เกี่ยวข้องกับฐานข้อมูล

บุคคลที่เกี่ยวข้องกับฐานข้อมูล

1.6.1 ผู้บริหารฐานข้อมูล (Database Administrator หรือ DBA) เป็นบุคคลคนเดียว หรือกลุ่มผู้เชี่ยวชาญซึ่งมีหน้าที่ควบคุมและบริหารทรัพยากรฐานข้อมูลขององค์กรให้สามารถดำเนินการประยุกต์ใช้ฐานข้อมูลโดยความร่วมมือช่วยเหลือจากพนักงานในหน่วยงานที่เกี่ยวข้อง อีกทั้งต้องเป็นผู้ที่สามารถติดต่อกับผู้บริหารระดับสูง ผู้ใช้แผนกต่าง ๆ และเจ้าหน้าที่ฝ่ายปฏิบัติการ และควรมีความรู้ทั้งหลักการบริหารและด้านเทคนิคของระบบจัดการฐานข้อมูล (DBMS)
หน้าที่ของผู้บริหารฐานข้อมูล แบ่งเป็น 2 ส่วน
- การออกแบบฐานข้อมูลจะต้องทราบวิธีออกแบบและรายละเอียดของระบบงาน ซึ่งที่จริงแล้วในส่วนนี้ควรจะเป็นหน้าที่ของผู้จัดการข้อมูลหรือ DA (Data Administrator) ซึ่งก็คือ SA (System Analysis) โดยผู้ใช้หรือเจ้าของระบบงานเขียนและออกแบบโครงสร้างด้วย ER Model แต่ SA จะออกแบบอัลกอริทึม
- การปฏิบัติงานกับ DBMS จะต้อบทราบเทคโนโลยีของ DBMS ดังนั้น ในส่วนนี้จะเป็นหน้าที่ของ DBA โดย DBA จะต้องทราบวิธีการปฏิบัติงานกับ DBMS ดังนี้
1. การติดตั้งระบบจัดการฐานข้อมูล (Install DBMS) 2. การจัดสรรเนื้อที่ในดิสก์ (allocate disk space) 3. การสร้างโครงสร้างของข้อมูล (create data structure) 4. การทำข้อมูลสำรองเอง (backup) และการฟื้นสภาพข้อมูล (recovery) 5. การปรับผลการปฏิบัติงาน (performance tuning)
DBA จะทำหน้าที่เป็นที่ปรึกษาและประสานงานกับเจ้าหน้าที่ฝ่ายปฏิบัติการ เช่น นักวิเคราะห์และออกแบบโปรแกรมเมอร์และผู้ใช้
1.6.2 นักวิเคราะห์และออกแบบ (System Analyst) ทำหน้าที่ออกแบบอัลกอริทึม (Algorithm) ของระบบงาน
1.6.3 โปรแกรมเมอร์ (Programmer) เป็นผู้เขียนโปรแกรมประยุกต์ (Application program) สำหรับใช้กับฐานข้อมูล อาจจะเขียนด้วยภาษาระดับสูง เช่น SQL เป็นต้น
1.6.4 ผู้ใช้ (End User) เจ้าของระบบงานที่ต้องการเรียกใช้ฐานข้อมูล โดยอาจผ่านทางโปรแกรมประยุกต์หรือภาษาเรียกค้น เช่น SQL ผู้ใช้เหล่านี้ไม่จำเป็นต้องมีความรู้เกี่ยวกับการเขียนโปรแกรม
ถึงแม้ว่าฐานข้อมูลจะมีคุณลักษณะที่ดีดังได้กล่าวมาข้างต้นแต่ก็มีข้อเสียดังนี้
1. ขนาดของระบบจัดการฐานข้อมูลมักมีขนาดใหญ่และราคาแพง เนื่องจากซอฟต์แวร์ประกอบด้วยฟังก์ชันต่าง ๆ มากมาย จึงต้องการฮาร์ดแวร์เพิ่มขึ้นทั้งหน่วยความจำหลัก และหน่วยความจำสำรอง
2. ต้องอาศัยผู้ดูแลที่มีความรู้ความเข้าใจเทคโนโลยี ระบบการจัดการฐานข้อมูล
3. ถ้าระบบเสียจะทำให้มีผลต่อผู้ใช้หลายคน
4. ความเป็นเจ้าของข้อมูลลดลง ข้อมูลจะไม่เป็นของผู้หนึ่งผู้ใดโดยเฉพาะ

คุณลักษณะที่ดีของฐานข้อมูล


 คุณลักษณะที่ดีของฐานข้อมูล (Good Characteristics of Database System)
1) ลดความซ้ำซ้อนของข้อมูลให้เหลือน้อยที่สุด (Minimum redundancy) 
เป็นการทำให้ปัญหาเรื่องข้อมูลไม่ตรงกันลดน้อยลงหรือหมดไป โดยนำข้อมูลทั้งหมดมารวมกันเพื่อตัดหรือลดส่วนที่ซ้ำกันทิ้งไป ให้เหลืออยู่เพียงแห่งเดียว และเป็นผลทำให้สามารถแบ่งข้อมูลกันใช้ได้ระหว่างผู้ใช้หลาย ๆ คน รวมทั้งการใช้ข้อมูลเดียวกันในเวลาพร้อม ๆ กันได้อีกด้วย2) ความถูกต้องสูงสุด (Maximum Integrity : Correctness) ในระบบฐานข้อมูลจะมีความถูกต้องของข้อมูลสูงสุด เพราะว่าฐานข้อมูลมี DBMS คอยตรวจสอบกฎเกณฑ์หรือเงื่อนไขต่าง ๆ (Integrity Rules) ให้ทุกครั้งที่มีการแก้ไขข้อมูลหรือเพิ่มเติมข้อมูลเข้าไปในระบบฐานข้อมูลนั้น โดยกฎเกณฑ์เหล่านี้จะเก็บไว้ในฐานข้อมูลตามแนวคิดของ International Organization for Standard (ISO) แต่ในปัจจุบันมี DBMS บาง product ที่ข้อบังคับเหล่านี้ไม่ได้ผูกติดอยู่กับฐานข้อมูลยังคงเก็บอยู่ในโปรแกรม การเปลี่ยนแปลงกฎเกณฑ์เหล่านี้ทำให้ต้องแก้ไขโปรแกรมตามไปด้วยทุกครั้ง ซึ่งไม่สะดวก เช่นเดียวกับระบบแฟ้มข้อมูลเดิมทำให้เกิดความยุ่งยากในการเขียนโปรแกรม แต่ถ้าย้ายการเก็บข้อบังคับหรือกฎเกณฑ์เหล่านี้มาไว้ที่ฐานข้อมูล ระบบจัดการฐานข้อมูลบางชนิดจะมีฟังก์ชั่นพิเศษ (trigger) กับ procedure อยู่บน FORM ปัจจุบันจะมีให้เลือกว่าจะไว้บนจอหรือไว้ในกฎเกณฑ์กลาง ซึ่งจะเก็บไว้ที่ฐานข้อมูลเรียกว่า stored procedure ซึ่งถูกควบคุมดูแลโดย DBMS สำหรับ DBMS ชั้นดีส่วนใหญ่จะเป็น compile stored procedure เพราะเก็บกฎเกณฑ์เหล่านี้ไว้ที่ stored procedure ไม่ได้เก็บไว้ในโปรแกรมเหมือนระบบแฟ้มข้อมูลเดิม ดังนั้นเมื่อเงื่อนไขเหล่านี้เปลี่ยนแปลงไปก็จะทำการแก้ไขเพียงแห่งเดียว ทำให้ระบบฐานข้อมูลมีความถูกต้องของข้อมูลมากที่สุด และลดค่าใช้จ่ายในการพัฒนา และบำรุงรักษา
3) มีความเป็นอิสระของข้อมูล (Data Independence)
ถือเป็นคุณลักษณะเด่นของฐานข้อมูลซึ่งไม่มีในระบบไฟล์ธรรมดา เนื่องจากในไฟล์ธรรมดาจะเป็นข้อมูลที่ไม่อิสระ (data dependence) กล่าวคือ ข้อมูลเหล่านี้จะผูกพันอยู่กับวิธีการจัดเก็บและการเรียกใช้ข้อมูลซึ่งในลักษณะการเขียนโปรแกรมเราจำเป็นต้องใส่เทคนิคการจัดเก็บและเรียกใช้ข้อมูลไว้ในโปรแกรม เมื่อมีการเปลี่ยนแปลงวิธีการจัดเก็บทำให้ต้องเปลี่ยนแปลงแก้ไขโปรแกรมตามไปด้วย ดังนั้น ถ้าหากมีการแก้ไขหรือเปลี่ยนแปลงโครงสร้างข้อมูลทั้งในระดับ logical และ physical ย่อมมีผลกระทบต่อโปรแกรม แต่ถ้าข้อมูลเก็บในลักษณะของฐานข้อมูลแล้วปัญหานี้จะหมดไป เพราะฐานข้อมูลมี DBMS คอยดูแลจัดการให้ ทำให้โปรแกรมเหล่านี้เป็นอิสระจากการเปลี่ยนแปลงโครงสร้างข้อมูล
4) มีระบบความปลอดภัยของข้อมูลสูง (High Degree of Data Security)
ฐานข้อมูลจะมีระบบรักษาความปลอดภัยของข้อมูลสูง โดย DBMS จะตรวจสอบรหัสผ่าน (login password) เป็นประเด็นแรก หลังจากผ่านเข้าสู่ระบบได้แล้ว DBMS จะตรวจสอบดูว่าผู้ใช้นั้นมีสิทธิใช้ข้อมูลได้มากน้อยเพียงใด เช่น จะอนุญาตให้ใช้ได้เฉพาะ in query หรือ update และสามารถทำได้เฉพาะตารางใดหรือแถวใดหรือคอลัมน์ใด เป็นต้น นอกจากนี้ โครงสร้างข้อมูลระดับล่างยังถูกซ่อนไว้ไม่ให้ผู้ใช้มองเห็นว่าอยู่ตรงไหน DBMS จะไม่ยอมให้โปรแกรมใด ๆ เข้าถึงข้อมูลได้โดยไม่ผ่าน DBMS
5) การควบคุมจะอยู่ที่ส่วนกลาง (Logically Centralized Control)
แนวความคิดนี้จะนำไปสู่ระบบการปฏิบัติงานที่ดี อย่างน้อยสามารถควบคุมความซ้ำซ้อนและความปลอดภัยของข้อมูลได้ นอกจากนี้ในการควบคุมทุกอย่างให้มาอยู่ที่ส่วนกลางจะนำมาสู่ระบบสารสนเทศเพื่อการบริหาร (MIS) โดยต้องมีการควบคุมดูแลจากศูนย์กลางทั้งการใช้และการสร้างโดยหลักการแล้ว จะไม่ยอมให้โปรแกรมเมอร์สร้างตารางหรือวิวเอง แต่จะให้ผู้บริหารฐานข้อมูลเป็นผู้สร้างให้ เพื่อจะได้ทราบว่าตารางหรือวิวซ้ำหรือไม่ นอกจากนี้ผู้บริหารฐานข้อมูลจะเป็นผู้ให้สิทธิแก่ผู้ใช้วิว ดังนั้น โปรแกรมเมอร์จะต้องติดต่อประสานงานกับผู้บริหารฐานข้อมูลในการจัดทำรายงาน คุณลักษณะนี้จะทำให้มีความคล่องตัวในการใช้งาน ซึ่งเป็นผลมาจากข้อมูลมาอยู่รวมกัน

คำศัพท์ที่เกี่ยวข้องกับฐานข้อมูลที่สำคัญ

คำศัพท์ที่เกี่ยวข้องกับฐานข้อมูลที่สำคัญ
1) ความถูกต้องของข้อมูล (Data Integrity) มี 2 ประเภท
- Static Integrity (State of Data)
เป็นความถูกต้องของเนื้อข้อมูล เช่น ผู้หญิงลาบวชไม่ได้ ผู้ชายลาคลอดไม่ได้ อายุของ พนักงานอยู่ระหว่าง 18-60 ปี หรือสมาชิกยืมหนังสือได้ไม่เกิน 5 เล่ม เป็นต้น
- Dynamic Integrity (State of Transition)
          2) ความเป็นอิสระของข้อมูล (Data Independence)
หมายถึงการที่โปรแกรมเป็นอิสระจากการเปลี่ยนแปลงโครงสร้างข้อมูล แบ่งออกเป็น 2 ชนิด
2.1) ความเป็นอิสระทางกายภาพ (Physical Data Independence)
การเปลี่ยนแปลงโครงสร้างข้อมูลระดับล่าง (Physical structure) จะไม่มีผลกระทบต่อโปรแกรม เช่น การเปลี่ยนแปลงโครงสร้างข้อมูลจากการเก็บแบบ sequential file เป็นแบบ Index file โปรแกรมที่เรียกใช้ข้อมูลจาก file เหล่านี้จะไม่มีการแก้ไขหรือไม่ต้องการทำ compile ใหม่ หรือการโยกย้ายข้อมูลจากที่หนึ่งไปยังที่หนึ่งก็ไม่มีผลกระทบต่อโปรแกรม
2.2) ความเป็นอิสระทางตรรกะภาพ (Logical Data Independence)
การเปลี่ยนแปลงโครงสร้างข้อมูลระดับกลางหรือระดับหลักการ (Conceptual level) ซึ่งเป็น logical structure จะไม่มีผลกระทบต่อโปรแกรม เช่น การเพิ่มเติมข้อมูลเข้าไปในโครงสร้างระดับกลางที่ผู้บริหารฐานข้อมูล (Database Administrator) เป็นผู้กำหนดโปรแกรมที่มีอยู่เดิม ซึ่งไม่เกี่ยวข้องกับข้อมูลที่เพิ่มเข้าไปนั้น ไม่มีการเปลี่ยนแปลงหรือ compile ใหม่
อีกความหมายหนึ่งก็คือ เมื่อมีการเปลี่ยนแปลงโครงสร้างข้อมูลระดับบน (External level) ก็ไม่มีผลกระทบต่อข้อมูลระดับกลางและข้อมูลระดับล่าง เช่น การสลับลำดับของฟิลด์ในโปรแกรม เป็นต้น
ความเป็นอิสระของข้อมูลนี้ทำให้โปรแกรมสามารถเรียกใช้ข้อมูลได้ด้วยภาษาต่างกัน เช่น โปรแกรมหนึ่งเรียกใช้ข้อมูลได้ด้วยภาษาต่างกัน เช่น โปรแกรมหนึ่งเรียกใช้ข้อมูลด้วยภาษา COBOL อีกโปรแกรมหนึ่งเรียกใช้ข้อมูลด้วยภาษา SQL นอกจากนี้ยังรวมถึงการที่โปรแกรมสามารถเห็นข้อมูลได้หลายรูปแบบแตกต่างกัน


ประโยชน์ของระบบฐานข้อมูล

ประโยชน์ของระบบฐานข้อมูล

ระบบฐานข้อมูล จะช่วยแก้ปัญหาของระบบแฟ้มข้อมูล และมีประโยชน์ หลายๆ ด้านดังนี้
1.4.1 ลดความซ้ำซ้อนของข้อมูล เนื่องจากการนำข้อมูลที่จำเป็นต่อการใช้งานมาจัดเก็บไว้ รวมกันเป็นฐานข้อมูลส่วนกลาง ทำให้แต่ละหน่วยงานที่จำเป็นต้องใช้ข้อมูล ไม่ต้องจัดเก็บข้อมูลไว้ที่หน่วย งานของตนเองอีก นอกจากลดความสิ้นเปลืองในการจัดเก็บแล้ว ยังช่วยแก้ปัญหาต่างๆ ที่จะเกิดตามมา เนื่องจากความซ้ำซ้อนของข้อมูลได้
1.4.2 แก้ปัญหาความขัดแย้งกันของข้อมูล ซึ่งเป็นปัญหาที่เกิดเนื่องมาจากความซ้ำซ้อนของข้อมูล เมื่อมีข้อมูลที่ซ้ำๆ กันอยู่หลายที่ หากมีการปรับปรุงแก้ไขข้อมูลในที่หนึ่งแล้ว แต่ไม่ได้แก้ไขข้อมูลในที่ อื่นๆ ตามด้วย ก็จะทำให้ข้อมูลในแต่ละที่เกิดความขัดแย้งกันขึ้น ดังนั้นการจัดเก็บข้อมูลไว้เพียงที่เดียวจึง ช่วยแก้ปัญหาความขัดแย้งกันของข้อมูลได้
1.4.3 การบริหารจัดการฐานข้อมูลทำได้ง่าย เนื่องจากมีการจัดเก็บข้อมูลไว้ที่ส่วนกลาง ทำให้การ จัดการข้อมูลทำได้ง่ายขึ้น โดยผู้ที่ทำหน้าที่ในการบริหารจัดการฐานข้อมูลเรียกว่า ผู้บริหารฐานข้อมูล (Database Administrator: DBA)
1.4.4 กำหนดมาตรฐานของข้อมูลได้ เนื่องจากการจัดเก็บข้อมูลไว้ที่ส่วนกลางที่เดียวดังนั้น DBA จะเป็นผู้กำหนดโครงสร้างในการจัดเก็บข้อมูล ทำให้โครงสร้างของข้อมูลต่างๆ
1.4.5 สามารถใช้งานฐานข้อมูลร่วมกันได้ เนื่องจากโครงสร้างการจัดเก็บข้อมูลในฮาร์ดดิสก์จะ ถูก กำหนดด้วย DBMS และผู้ใช้แต่ละคนจะต้องใช้งานผ่าน DBMS เท่านั้น ดังนั้นจึงสามารถใช้งาน ฐาน ข้อมูลร่วมกันได้โดยไม่ต้องกังวลถึงความแตกต่างของภาษาคอมพิวเตอร์ที่ใช้ นอกจากนี้ข้อมูลอื่นๆ ที่ผู้ใช้ไม่ได้เป็นผู้สร้างขึ้นมา ก็สามารถใช้งานได้ถ้าหากได้รับสิทธิในการใช้งานข้อมูลดังกล่าว
1.4.6 เกิดความเป็นอิสระระหว่างข้อมูลกับโปรแกรม จากปัญหาของระบบแฟ้มข้อมูล ซึ่งการ แก้ไขโครงสร้างของแฟ้มข้อมูล เช่นการเพิ่มฟิลด์ ซึ่งโปรแกรมที่มีอยู่เดิมไม่จำเป็นต้องนำไปใช้งาน แต่ต้องทำการแก้ไขโปรแกรมเนื่องจากการเขียนโปรแกรมจะยึดติดกับโครงสร้างของแฟ้มข้อมูล หากใช้งานเป็นระบบฐานข้อมูล จะสามารถแก้ไขปัญหานี้ได้ เนื่องจากการใช้งานต่างๆ จะต้องใช้งานไว้เพียงที่เดียวจึง ช่วยแก้ปัญหาความขัดแย้งกันของข้อมูลได้
1.4.7 กำหนดระบบรักษาความปลอดภัยให้กับข้อมูลได้ เนื่องจากข้อมูลแต่ละข้อมูลจะมีความ สำคัญไม่เท่ากัน ดังนั้นจึงต้องมีการกำหนดสิทธิในการใช้งาน ข้อมูลแต่ละส่วน ซึ่งเป็นหน้าที่ของ ผู้บริหารฐานข้อมูล เป็นผู้กำหนดว่าใครมีสิทธิใช้งานข้อมูลส่วนไหนได้บ้าง

ความรู้พื้นฐานของระบบฐานข้อมูล

ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล

ระบบฐานข้อมูล (Database system)

โดยทั่วไปแล้วความหมายของฐานข้อมูลจะหมายถึง การเก็บรวบรวมไฟล์ที่เกี่ยวข้องสัมพันธ์กัน มาอยู่รวมกันไว้เข้าด้วยกัน (Integrated) อย่างมีระบบ ไฟล์ในที่นี้จะหมายถึง logical file ความนี้จะเป็นความหมายทั่ว ๆ ไป ซึ่งยังไม่สมบูรณ์แบบ ทั้งนี้ เนื่องจาก logical file จะประกอบด้วยกลุ่มของ records แต่ความจริงแล้วอาจจะไม่ใช่ก็ได้ เช่น ฐานข้อมูลใหม่ ๆ ที่เป็น object oriented model จะประกอบด้วยกลุ่มของ objects ดังนั้น ความหมายของฐานข้อมูลที่ครอบคลุมถึง object oriented ด้วยก็คือความหมายต่อไปนี้
ฐานข้อมูล หมายถึง ที่เก็บข้อมูลและความสัมพันธ์ระหว่างข้อมูลเหล่านั้น (A collection of data and relationships) โดยปกติแล้ว ในเรื่องของฐานข้อมูลมักจะเกี่ยวข้องกับ logical file มากกว่า physical file โดยเฉพาะการออกแบบฐานข้อมูลจะเป็นการออกแบบในส่วนของ logical file ถ้ากล่าวถึง logical file จะเป็นมุมมองของผู้ใช้หรือ application program แต่ถ้ากล่าวถึง physical file จะเป็นมุมมองของ system หรือ operating system การเกี่ยวข้องกันระหว่าง physical file กับ logical file นั้นก็คือ สามารถใช้ physical file มาสร้าง logical file ได้ สำหรับการเปลี่ยน logical file เป็น physical file นั้น ในระดับไฟล์ธรรมดาจะใช้ Operating system แต่ถ้าเป็นฐานข้อมูลจะใช้ระบบจัดการฐานข้อมูลเป็นตัวเปลี่ยน (map) และนำเสนอโครงสร้างข้อมูลให้กับ application หรือผู้ใช้ เช่น ถ้าเราใช้ฐานข้อมูลแบบ relational model โครงสร้างที่เห็นจะเป็นตาราง (relation) แต่ฐานข้อมูลที่มีโครงสร้างแบบ hierarchical model หรือ network model นั้น application หรือผู้ใช้จะมองเห็นเป็น tree และ link list ตามลำดับ
ระบบฐานข้อมูลจะมีลักษณะคล้ายการนำแฟ้มข้อมูล ที่มีความสัมพันธ์กันมาจัดเก็บไว้ด้วยกัน แต่ลักษณะโครงสร้างการจัดเก็บ รวมทั้งวิธีการใช้งานข้อมูลของฐานข้อมูล จะมีความแตกต่างออกไปจากแฟ้มข้อมูล ซึ่งการใช้งานระบบฐานข้อมูลจะต้องมีโปรแกรมที่ทำหน้าที่ในการบริหารจัดการข้อมูลและเป็นตัวกลางระหว่าง ผู้ใช้กับฐานข้อมูล ที่เรียกว่า "Database Management System (DBMS)" หรือระบบจัดการฐานข้อมูล ซึ่งผู้ใช้จะต้องใช้งานฐานข้อมูล ผ่านทางระบบจัดการฐานข้อมูลนี้เท่านั้น แสดงระบบจัดการฐานข้อมูล


องค์ประกอบของระบบฐานข้อมูล

องค์ประกอบของระบบฐานข้อมูล

1.5.1 Data หมายถึงข้อมูลที่ถูกเก็บไว้ในระบบฐานข้อมูล รวมถึงความสัมพันธ์ระหว่างข้อมูลด้วย ดังนั้น data ในที่นี้จึงหมายถึง database
1.5.2 Hardware ได้แก่เครื่องคอมพิวเตอร์ อุปกรณ์ที่เก็บข้อมูลประกอบด้วย secondary storage เช่น disk และอุปกรณ์อื่น ๆ ที่เกี่ยวข้อง
1.5.3 Software คือโปรแกรมที่จัดการเกี่ยวกับฐานข้อมูล โดยปกติแล้วจะเรียกว่าระบบจัดการ ฐานข้อมูลหรือ DBMS ส่วนนี้จะทำหน้าที่เชื่อมต่อระหว่างข้อมูลกับผู้ใช้ ดังนั้น การเรียกใช้หรือดึงข้อมูลจากฐานข้อมูลจะต้องผ่าน DBMS
1.5.4 User ได้แก่บุคคลต่าง ๆ ที่เกี่ยวข้องกับฐานข้อมูล เช่น ผู้บริหารฐานข้อมูล โปรแกรมเมอร์ นักวิเคราะห์ระบบ และผู้ใช้.