วันอาทิตย์ที่ 23 พฤศจิกายน พ.ศ. 2557

ความสามารถของภาษา PHP

ความสามารถของภาษา PHP




ความสามารถของภาษา PHP

1.เป็นภาษาที่มีลักษณะเป็นแบบ Open source ผู้ใช้สามารถ Download และนำ Source code ของ PHP ไปใช้ได้โดยไม่เสียค่าใช้จ่าย

2.เป็นสคริปต์แบบ Server Side Script ดังนั้นจึงทำงานบนเว็บเซิร์ฟเวอร์ ไม่ส่งผลกับการทำงานของเครื่อง Client โดย PHP จะอ่านโค้ด และทำงานที่เซิร์ฟเวอร์ จากนั้นจึงส่งผลลัพธ์ที่ได้จากการประมวลผลมาที่เครื่องของผู้ใช้ในรูปแบบของ HTML ซึ่งโค้ดของ PHP นี้ผู้ใช้จะไม่สามารถมองเห็นได้

3.PHP สามารถทำงานได้ในระบบปฎิบัติการที่ต่างชนิดกัน เช่น Unix, Windows, Mac OS หรือ Risc OS อย่างมีประสิทธิภาพ เนื่องจาก PHP เป็นสคริปต์ที่ต้องทำงานบนเซิร์ฟเวอร์ ดังนั้นคอมพิวเตอร์สำหรับเรียกใช้คำสั่ง PHP จึงจำเป็นต้องติดตั้งโปรแกรมเว็บเซิร์ฟเวอร์ไว้ด้วย เพื่อให้สามารถประมวลผล PHP ได้

4.PHP สามารถทำงานได้ในเว็บเซิร์ฟเวอร์หลายชนิด เช่น Personal Web Server(PWS), Apache, OmniHttpd และ Internet Information Service(IIS) เป็นต้น

5.ภาษา PHP สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming)

6.PHP มีความสามารถในการทำงานร่วมกับระบบจัดการฐานข้อมูลที่หลากหลาย ซึ่งระบบจัดการฐานข้อมูลที่สนับสนุนการทำงานของ PHP เช่น Oracle, MySQL, FilePro, Solid, FrontBase, mSQL และ MS SQL เป็นต้น

7.PHP อนุญาตให้ผู้ใช้สร้างเว็บไซต์ซึ่งทำงานผ่านโปรโตคอลชนิดต่างๆ ได้ เช่น LDAP, IMAP, SNMP, POP3 และ HTTP เป็นต้น

8.โค้ด PHP สามารถเขียน และอ่านในรูปแบบของ XML ได้

โครงสร้างของภาษา PHP

โครงสร้างของภาษา PHP 
 ภาษา PHP มีลักษณะเป็น embedded script หมายความว่าเราสามารถฝังคำสั่ง PHP ไว้ในเว็บเพจร่วมกับคำสั่ง(Tag) ของ HTML ได้ และสร้างไฟล์ที่มีนามสกุลเป็น .php, .php3 หรือ .php4 ซึ่งไวยากรณ์ที่ใช้ใน PHP เป็นการนำรูปแบบของภาษาต่างๆ มารวมกันได้แก่ C, Perl และ Java ทำให้ผู้ใช้ที่มีพื้นฐานของภาษาเหล่านี้อยู่แล้วสามารถศึกษา และใช้งานภาษานี้ได้ไม่ยาก ตัวอย่างที่ 1
1
2
3
4
5
6
7
8
9
10
<html>
<head>
<title>Example 1 </title>
</head>
<body>

<?
   echo"Hi, I'm a PHP script!";
?>

</body>
</html>
   จากตัวอย่าง บรรทัดที่ 6 - 8 เป็นส่วนของสคริปต์ PHP ซึ่งเริ่มต้นด้วย <? ตามด้วยคำสั่งที่เรียกฟังก์ชั่นหรือข้อความ และปิดท้ายด้วย ?> สำหรับตัวอย่างนี้เป็นสคริปต์ที่แสดงข้อความว่า "Hi, I'm a PHP script" โดยใช้คำสั่ง echo ซึ่งเป็นคำสั่งที่ใช้ในการแสดงผลของภาษาสคริปต์ PHP ซึ่งจะแสดงผลดังนี้ เราสามารถฝังคำสั่ง PHP ไว้ในเว็บเพจหนึ่งๆ โดยเปิดและปิดด้วยแท็ก(Tag) ของ PHP กี่ครั้งก็ได้ ดังตัวอย่างต่อไปนี้

ตัวอย่างที่ 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<title>Example 1 </title>
</head>
<body>

<table border=1>
<tr>
<td>
<? echo"PHP script block 1"; ?></td>
<td>
<? echo"PHP script block 2 "; ?></td>
</tr>
</table>

<?
   echo"PHP script block 3 <br> ";
   echo date("ขณะนี้เวลา H:i น.");
?>

</body>
</html>

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

PHP คืออะไร

PHP คืออะไร
     PHP ย่อมาจาก PHP Hypertext Preprocessor แต่เดิมย่อมาจาก Personal Home Page Tools
     PHP คือภาษาคอมพิวเตอร์จำพวก scripting language ภาษาจำพวกนี้คำสั่งต่างๆจะเก็บอยู่ในไฟล์ที่เรียกว่า script และเวลาใช้งานต้องอาศัยตัวแปรชุดคำสั่ง ตัวอย่างของภาษาสคริปก็เช่น JavaScript , Perl เป็นต้น ลักษณะของ PHP ที่แตกต่างจากภาษาสคริปต์แบบอื่นๆ คือ PHP ได้รับการพัฒนาและออกแบบมา เพื่อใช้งานในการสร้างเอกสารแบบ HTML โดยสามารถสอดแทรกหรือแก้ไขเนื้อหาได้โดยอัตโนมัติ ดังนั้นจึงกล่าวว่า PHP เป็นภาษาที่เรียกว่า server-side หรือ HTML-embedded scripting language นั้นคือในทุกๆ ครั้งก่อนที่เครื่องคอมพิวเตอร์ซึ่งให้บริการเป็น Web server จะส่งหน้าเว็บเพจที่เขียนด้วย PHP ให้เรา มันจะทำการประมวลผลตามคำสั่งที่มีอยู่ให้เสร็จเสียก่อน แล้วจึงค่อยส่งผลลัพธ์ที่ได้ให้เรา ผลลัพธ์ที่ได้นั้นก็คือเว็บเพจที่เราเห็นนั่นเอง  ถือได้ว่า PHP เป็นเครื่องมือที่สำคัญชนิดหนึ่งที่ช่วยให้เราสามารถสร้าง Dynamic Web pages (เว็บเพจที่มีการโต้ตอบกับผู้ใช้) ได้อย่างมีประสิทธิภาพและมีลูกเล่นมากขึ้น 
     PHP เป็นผลงานที่เติบโตมาจากกลุ่มของนักพัฒนาในเชิงเปิดเผยรหัสต้นฉบับ หรือ OpenSource ดังนั้น PHP จึงมีการพัฒนาไปอย่างรวดเร็ว และแพร่หลายโดยเฉพาะอย่างยิ่งเมื่อใช้ร่วมกับ Apache Web server ระบบปฏิบัติอย่างเช่น Linuxหรือ FreeBSD เป็นต้น ในปัจจุบัน PHP สามารถใช้ร่วมกับ Web Server หลายๆตัวบนระบบปฏิบัติการอย่างเช่น Windows 95/98/NT เป็นต้น

ลักษณะเด่นของ PHP
     1.ใช้ได้ฟรี
     2.PHP เป็นโปร แกรมวิ่งข้าง Sever ดังนั้นขีดความสามารถไม่จำกัด 
     3.Conlatfun นั่นคือPHP วิ่งบนเครื่อง UNIX,Linux,Windows ได้หมด
     4.เรียนรู้ง่าย เนืองจาก PHP ฝั่งเข้าไปใน HTML และใช้โครงสร้างและไวยากรณ์ภาษาง่ายๆ
     5.เร็วและมีประสิทธิภาพ โดยเฉพาะเมือใช้กับ Apach Xerve เพราะไม่ต้องใช้โปรแกรมจากภายนอก
     6.ใช้ร่วมกับ XML ได้ทันที
     7.ใช้กับระบบแฟ้มข้อมูลได้
     8.ใช้กับข้อมูลตัวอักษรได้อย่างมีประสิทธิภาพ
     9.ใช้กับโครงสร้างข้อมูล แบบ Scalar,Array,Associative array
     10.ใช้กับการประมวลผลภาพได้

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

ไอบีเอ็ม ดีบีทู

DB2 เป็นผลิตภัณฑ์ในกลุ่ม ระบบจัดการฐานข้อมูล (RDBMS) ของ ไอบีเอ็ม ปัจจุบันถูกเรียกว่า ไอบีเอ็ม DB2 Data Server ซึ่งเป็นผลิตภัณฑ์ในกลุ่ม ไอบีเอ็ม Information Management Software ไอบีเอ็ม DB2 Data Server แบ่งเป็นหลายแบบตามความเหมาะสมในการใช้งาน DB2 สามารถทำงานกับอุปกรณ์ต่างๆ ตั้งแต่เครื่อง PC จนกระทั่งถึงเมนเฟรมคอมพิวเตอร์ นอกเหนือจาก DB2 แล้ว ไอบีเอ็ม ยังมี ระบบจัดการฐานข้อมูล อีกตัวอื่น เช่น Informix ซึ่งถูก ไอบีเอ็ม ซื้อมาเมื่อปี 2001.

ประวัติ

DB2 มีประวัติยาวนานและถูกมองว่าเป็นระบบฐานจัดการฐานข้อมูลแรกที่ใช้ภาษา SQL (SQL คิดค้นโดย ไอบีเอ็ม)
ชื่อ "DB2" ถูกใช้ครั้งแรกเมื่อค.ศ. 1983 เมื่อ ไอบีเอ็ม ส่ง DB2 ซึ่งทำงานกับระบบปฏิบัติการ MVS บนเครื่องเมนเฟรมคอมพิวเตอร์ แต่ก่อนหน้านี้ ไอบีเอ็ม เคยออกผลิตภัณฑ์ที่ชื่อว่า SQL/DS ซึ่งเป็นระบบจัดการฐานข้อมูลเหมือนกันแต่ทำงานบนระบบปฏิบัติการ VM บนเครื่องเมนเฟรมคอมพิวเตอร์มาก่อนแล้ว สำหรับระบบจัดการฐานข้อมูลที่เป็นตัวต้นแบบนั้นถูกพัฒนามาตั้งแต่ยุค 1970s ซึ่งถูกเรียกว่า System R และถูกนำมาใช้งานร่วมกับเครื่อง System 38 ในยุคปี ค.ศ. 1968 Dr. E.F. Codd (ซึงทำงานอยู่ที่ ไอบีเอ็ม) ได้นำเสนอโมเดลเชิงสัมพันธ์ ซึ่งมีหลักการอยู่บนพื้นฐาน ทางคณิตศาสตร์ เพื่อแก้ปัญหาของโมเดลฐานข้อมูลแบบเดิม ไอบีเอ็ม ก็ได้นำแนวคิด ของ Dr. E.F. Codd ไปสร้างระบบฐานข้อมูลเชิงสัมพันธ์ที่ชื่อว่า System R ขึ้น และพัฒนาต่อเนื่องมาเรื่อย จนเป็น DB2 รวมถึงการพัฒนาภาษา SEQUEL เพื่อใช้สำหรับเรียกดูและจัดการกับข้อมูลในฐานข้อมูลเชิงสัมพันธ์ ในช่วงปีต่อมาคือ1976-1977 ได้มีการปรับปรุงเวอร์ชันใหม่จาก SEQUEL เป็น SEQUEL/2 และภายหลังก็ได้เปลี่ยนแปลงชื่อเป็น SQL
ในปัจจุบันมีผู้ผลิตซอฟต์แวร์ฐานข้อมูลขึ้นมามากมาย โดยใช้ทฤษฎีของ Dr. E.F. Codd เพื่อสร้าง ระบบฐานข้อมูลเชิงสัมพันธ์ขึ้นมามากมาย
เริ่มแรกนั้น DB2 ถูกพัฒนามาเพื่อใช้งานกับเครื่อง ไอบีเอ็ม เมนเฟรม หลังจากนั้น (1990s) ได้มีการพัฒนาต่อเนื่องทำให้สามารถใช้งานกับแพลทฟอร์มอื่นๆ ได้ทั้ง MS. Windows Linux ต่างๆ ไอบีเอ็ม AIX Sun Solaris HP-UX ไอบีเอ็ม i/OS แต่ภาษาที่ใช้ในการพัฒนา DB2 บนเครื่องเมนเฟรมกับแพลทฟอร์มอื่นนั้นแตกต่างกัน DB2 สำหรับเครื่องเมนเฟรมนั้นถูกพัฒนาโดยภาษา PL/S แต่ DB2 LUW (Linux/Unix/Windows) นั้นถูกพัฒนาโดยภาษา C++ แต่โดยรวมแล้ว DB2 จะมีการแชร์ฟังก์ชันและ Common Archictecture ร่วมกัน กลางยุค 1990s ไอบีเอ็ม ได้มีการพัฒนา DB2 Parallel Edition ขึ้นภายใต้แนวความคิด Shared Nothing Architecture เพื่อรองรับการขยายตัวของฐานข้อมลขนาดใหญ่ โดยสามารถทำการกระจายข้อมูลต่างๆ ไปยังเครื่อง DB2 Server หลายๆ เครื่องได้ หลังจากนั้นก็มีการพัฒนาเรื่อยมาและมีการเปลี่ยนชื่อเป็น DB2 Extended Enterprise Edition (DB2 EEE) และในปัจจุบัน ไอบีเอ็ม เรียกความสามารถในส่วนนี้ว่า Data Partitioning Feature (DPF) ซึ่งเป็นส่วนเสริม (option) ซึ่งต้องใช้งานร่วมกับ DB2 Enterprise Edition ปี 2006 ทาง ไอบีเอ็ม ได้มีการพัฒนาเพิ่มเติมในส่วนของ XML ทำให้ DB2 สามารถจัดเก็บข้อมูล XML ในลักษณะ "natively" โดยมีการพัฒนา Database Engine เพิ่มเติมสำหรับจัดการข้อมูล XML โดยเฉพาะเรียกว่า (PureXML) ซี่งในโหมดนี้ XML data จะถูกจัดเก็บในลักษณะที่เป็น XML จริงๆ ไม่ใช่ CLOB (Character Large Object) หรือ relation data ทำให้มีประสิทธิภาพในการเข้าถึงดีขึ้น

รุ่นของผลิตภัณฑ์

รุ่นของผลิตภัณฑ์นั้นแบ่งตามความเหมาะสมในการใช้งาน ได้แก่ เวอร์ชันคอมมิวนิตี้ (ฟรี) และ เวอร์ชันการค้า ความแตกต่างคือเวอร์ชันคอมมิวนิตี้นั้นสามารถนำไปใช้งานได้ฟรีแต่ขาดการสนับสนุนหรือการช่วยเหลือเมื่อมีปัญหาเกิดขึ้น (ต้องซื้อบริการหลังการขายเพิ่ม)
  • ไอบีเอ็ม DB2 for z/OS
  • ไอบีเอ็ม DB2 Data Warehouse Edition
  • ไอบีเอ็ม DB2 Enterprise Edition
  • ไอบีเอ็ม DB2 Workgroup Edition (จำกัดการผลประมวลผลที่ CPU ไม่เกิน 4 cores)
  • ไอบีเอ็ม DB2 Express Edition (ใช้ได้เฉพาะ MS.Windows and Linux เท่านั้น และจำกัดการผลประมวลผลที่ CPU ไม่เกิน 2 cores และหน่วยความจำไม่เกิน 4 GB)
  • ไอบีเอ็ม DB2 Personal Edition
  • ไอบีเอ็ม DB2 Express-C Edition (สามารถดาวน์โหลดไปใช้ได้ฟรี ใช้ได้เฉพาะ MS.Windows and Linux เท่านั้น และจำกัดการประมวลผลจำนวน CPU ไม่เกิน 2 cores และหน่วยความจำได้ไม่เกิน 2 GB)

การแข่งขัน

คู่แข่งของ ไอบีเอ็ม DB2 ในเชิงของระบบฐานข้อมูลทั่วไป เช่น Oracle Microsoft SQL Server Sybase MySQL และอื่นๆ ในเชิงของระบบฐานข้อมูลขนาดใหญ่มาก (Data Warehouse) เช่น TeraData และอื่นๆ ในเชิงของระบบฐานข้อมูลสำหรับเครื่องเมนเฟรม เช่น CA-DATACOM, ADABAS และอื่นๆ

ข้อมูลในเชิงเทคนิค

การบริหารจัดการ ไอบีเอ็ม DB2 นั้นสามารถทำได้ผ่าน 2 ช่องทางคือ command-line หรือ Graphic User Interface (GUI) ที่เรียกว่า DB2 Control Center ซึ่งสามารถใช้บริหารจัดการ DB2 ได้ทุกเอดิชั่นและเนื่องจาก Control Center นั้นถูกพัฒนาโดย JAVA จึงทำให้สามารถทำงานได้หลายแพลทฟอร์ม DB2 สนับสนุนการใช้คำสั่งทั้ง SQL และ XQuery ผู้พัฒนาแอปพลิเคชันสามารถพัฒนาโปรแกรมผ่าน APIs ต่างๆ ดังนี้ APIs for .NET CLIJavaภาษาไพทอน,PerlPHPRuby,C++CREXXPL/ICOBOLRPGFORTRAN, และภาษาอื่นๆ การพัฒนา DB2 แอปพลิเคชันนั้น สามารถพัฒนาผ่าน Eclipse หรือ Visual Studio .NET และอื่นๆ ได้

กลุ่มผู้ใช้งาน

IDUG (International DB2 Users Group), เป็นการรวมตัวกันของกลุ่มผู้ใช้งาน DB2 ในลักษณะที่ไม่แสวงหาผลกำไร ผู้ใช้ DB2 สามารถหาความรู้ต่างๆ จาก IDUG ได้ทั้ง เรื่องการศึกษา การแก้ปัญหา ตัวอย่างโปรแกรม และอื่นๆ

มายเอสคิวเอล

MySQL (มายเอสคิวแอล) เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management System) โดยใช้ภาษา SQL แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ
MySQL สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael "Monty" Widenius.
ปัจจุบันบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB เรียบร้อยแล้ว ฉะนั้นผลิตภัณฑ์ภายใต้ MySQL AB ทั้งหมดจะตกเป็นของซัน
ชื่อ "MySQL" อ่านออกเสียงว่า "มายเอสคิวเอล" (maɪˌɛskjuːˈɛl[2] หรือ "มายเอสคิวแอล" (ในการอ่านอักษร L ในภาษาไทย) ซึ่งทางซอฟต์แวร์ไม่ได้อ่าน มายซีเควล หรือ มายซีควล เหมือนกับซอฟต์แวร์จัดการฐานข้อมูลตัวอื่น

รุ่นของผลิตภัณฑ์

รุ่นของผลิตภัณฑ์นั้นแบ่งออกมาได้สามสายการผลิต ได้แก่ เวอร์ชันใช้ฟรี เวอร์ชันการค้า และเวอร์ชันที่สนับสนุนกับผลิตภัณฑ์ SAP (MAX DB) ความแตกต่างคือเวอร์ชันคอมมิวนิตี้นั้นสามารถนำไปใช้งานได้ฟรีแต่ขาดการสนับสนุนหรือการช่วยเหลือเมื่อมีปัญหาเกิดขึ้น, เวอร์ชันที่เป็นคอมเมอร์เชียลนั้นให้บริการด้านความสนับสนุนเมื่อมีปัญหา (ซื้อบริการ) สรุปคร่าวๆ ประเภทดาต้าเบสให้เลือกใช้ดังนี้
  • MySQL เอนเทอร์ไพรส์ Enterprise
  • MySQL คลัสเตอร์ Cluster
  • MySQL Embedded
  • MySQL Community (opensource เวอร์ชัน)
  • ความสามารถที่เพิ่มขึ้น

    ในเวอร์ชัน 5.0 มีความสามารถหลายอย่างที่สำคัญสำหรับระบบฐานข้อมูลขนาดใหญ่หรือระดับองค์กร (EnterPrise Feature) เช่น Store Proceduredatabase triggerdatabase viewdatabase schema ซึ่งได้มีการปรับเพิ่มประสิทธิภาพในส่วนของตารางและการทำดัชนี (index) ขึ้นมาอีก ปัจจุบันเวอร์ชัน community หรือเวอร์ชันที่เสถียร (stable) 5.0 และเวอร์ชันทดสอบคือ 5.1 beta release และ 5.2 Alpha
    ตั้งแต่เวอร์ชัน 5.1 เริ่มสนับสนุนการทำ Parttion Database , ตารางเวลาสำหรับเหตุการณ์ต่างๆ (Event schedule)111

    ประเภทการจัดเก็บข้อมูล (Database Storage Engine) ที่สนับสนุน

    • MyISAM ค่าปกติ (default)
    • InnoDB สนับสนุนการทำ ทรานแซคชั่น (transaction) แบบ ACID
    • Memory การจัดเก็บในหน่วยความจำ ใช้เป็นตารางชั่วคราวเพื่อความรวดเร็ว เนื่องจากเก็บไว้ในหน่วยความจำ ทำให้มีความเร็วในการทำงานสูงมาก
    • Merge เป็นการรวม Table หลาย ๆ ตัวให้แสดงผล หรือแก้ไข เสมือนเป็นข้อมูลจาก Table เดียว
    • Archive เหมาะสำหรับการจัดเก็บข้อมูลพวก log file,ข้อมูลที่ไม่ต้องมีการ คิวรี่ (query) หรือใช้บ่อยๆ เช่น log file เพื่อประโยชน์ในการตรวจสอบย้อนหลัง (Security Audit Information)
    • Federated สำหรับการจัดเก็บแบบปลายทาง (remote server) แทนที่จะเป็นการจัดเก็บแบบ local เหมือนการจัดเก็บ (Storage) แบบอื่นๆ
    • NDB สำหรับการจัดเก็บแบบ คลัสเตอร์(cluster)
    • CSV เก็บข้อมูลจาก Text ไฟล์โดยอาศัยเครื่องหมาย คอมมา (comma) เป็นตัวแบ่งฟิลด์
    • Blackhole
    • Example

    ชนิดของข้อมูลที่สนับสนุน

    ชนิดข้อมูลที่ MySQL สนับสนุนแบ่งเป็นสามประเภทหลักใหญ่ๆ
    • ชนิดข้อมูลที่เป็นตัวเลข
      • BIT (มีใช้ได้กับ MyISAM, InnoDB, Memory)
      • TINYINT
      • SMALLINT
      • MEDIUMINT
      • INT
      • BIGINT
      • Float
    • ชนิดข้อมูลที่เกี่ยวกับวันที่และเวลา
      • DATETIME
      • DATE
      • TIMESTAMP
      • TIME
      • YEAR
    • ชนิดข้อมูลที่เกี่ยวกับตัวอักษร
      • CHAR
      • VARCHAR
      • BINARY
      • VARBINARY
      • BLOB
      • TEXT
      • ENUM
      • SET
      • การใช้งาน

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

        โปรแกรมช่วยในการจัดการฐานข้อมูล และ ทำงานกับฐานข้อมูล

        ในการจัดการฐานข้อมูล MySQL คุณสามารถใช้โปรแกรมแบบ command-line เพื่อจัดการฐานข้อมูล (โดยใช้คำสั่ง: mysql และ mysqladmin เป็นต้น). หรือจะดาวน์โหลดโปรแกรมจัดการฐานข้อมูลแบบ GUI จากเว็บไซต์ของ MySQL ซึ่งคือโปรแกรม: MySQL Administrator และ MySQL Query Browser. เป็นต้น

        ส่วนเชื่อมต่อกับภาษาการพัฒนาอื่น (database connector)

        มีส่วนติดต่อ (interface) เพื่อเชื่อมต่อกับภาษาในการพัฒนา อื่นๆ เพื่อให้เข้าถึงฟังก์ชันการทำงานกับฐานข้อมูล MySQL ได้เช่น ODBC (Open Database Connector) อันเป็นมาตรฐานกลางที่กำหนดมาเพื่อให้ใช้เป็นสะพานในการเชื่อมต่อกับโปรแกรมหรือระบบอื่นๆ เช่น MyODBC อันเป็นไดรเวอร์เพื่อใช้สำหรับการเชื่อมต่อในระบบปฏิบัติการวินโดว์, JDBC คลาสส่วนเชื่อมต่อสำหรับ Java เพื่อใช้ในการติดต่อกับ MySQL และมี API (Application Programming Interface) ต่างๆมีให้เลือกใช้มากมายในการที่เข้าถึง MySQL โดยไม่ขึ้นอยู่กับภาษาการพัฒนาใดภาษาหนึ่ง
        นอกเหนือจาก ตัวเชื่อมต่อกับภาษาอื่น (Connector) ที่ได้กล่าวมาแล้ว ยังมี API ที่สนับสนุนในขณะนี้คือ
        • DBI สำหรับการเชื่อมต่อกับ ภาษา perl
        • Ruby สำหรับการเชื่อมต่อกับ ภาษา ruby
        • Python สำหรับการเชื่อมต่อกับภาษา python
        • .NET สำหรับการเชื่อมกับภาษา .NET framework
        • MySQL++ สำหรับเชื่อมต่อกับภาษา C++
        • Ch สำหรับการเชื่อมต่อกับ Ch (C/C++ interpreter)
        • PHP สำหรับการเชื่อมต่อกับภาษาPHP
        ยังมีโปรแกรมอีกตัว เป็นโปรแกรมบริหารพัฒนาโดยผู้อื่น ซึ่งใช้กันอย่างแพร่หลายและนิยมกันเขียนในภาษาพีเอชพี เป็นโปรแกรมเว็บแอปพลิเคชัน ชื่อ phpMyAdmin
        ทั้ง MySQL server และ client libraries ถูกเผยแพร่ในลิขสิทธิ์ 2 แบบ ผู้ใช้สามารถเลือกได้ระหว่างลิขสิทธิ์ GNU General Public License [1] หรือลิขสิทธิ์ proprietary license
        ผู้ใช้บางคนพัฒนาซอฟต์แวร์ต่อจากเวอร์ชันแรกๆของ client libraries ที่ใช้ลิขสิทธิ์ Lesser General Public License [2]

ระบบฐานข้อมูล

ฐานข้อมูล

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

ประวัติ

ฐานข้อมูลในลักษณะที่คล้ายกับฐานข้อมูลสมัยใหม่ ถูกพัฒนาเป็นครั้งแรกในทศวรรษ 1960 ซึ่งผู้บุกเบิกในสาขานี้คือ ชาลส์ บากแมน แบบจำลองข้อมูลสำคัญสองแบบเกิดขึ้นในช่วงเวลานี้ ซึ่งเริ่มต้นด้วย แบบจำลองข่ายงาน (พัฒนาโดย CODASYL) และตามด้วยแบบจำลองเชิงลำดับชั้น (นำไปปฏิบัติใน IMS) แบบจำลองทั้งสองแบบนี้ ในภายหลังถูกแทนที่ด้วย แบบจำลองเชิงสัมพันธ์ ซึ่งอยู่ร่วมสมัยกับแบบจำลองอีกสองแบบ แบบจำลองแบบแรกเรียกกันว่า แบบจำลองแบนราบ ซึ่งออกแบบสำหรับงานที่มีขนาดเล็กมาก ๆ แบบจำลองร่วมสมัยกับแบบจำลองเชิงสัมพันธ์อีกแบบ คือ ฐานข้อมูลเชิงวัตถุ หรือ โอโอดีบี3 (OODB)
ในขณะที่แบบจำลองเชิงสัมพันธ์ มีพื้นฐานมาจากทฤษฎีเซต ได้มีการเสนอแบบจำลองดัดแปลงซึ่งใช้ทฤษฎีเซตคลุมเครือ (ซึ่งมีพื้นฐานมาจากตรรกะคลุมเครือ) ขึ้นเป็นอีกทางเลือกหนึ่ง
ปัจจุบันมีการกล่าวถึงมาตรฐานโครงสร้างฐานข้อมูล เพื่อให้สามารถเชื่อมโยงฐานข้อมูลต่างระบบ ให้สืบค้นรวมกันเสมือนเป็นฐานข้อมูลเดียวกัน และการสืบค้นต้องแสดงผลตรงตามคำถาม มาตรฐานดังกล่าวได้แก่ XML RDF Dublin Core Metadata เป็นต้น และสิ่งสำคัญอีกประการหนึ่งที่จะช่วยให้การแลกเปลี่ยนข้อมูลรหว่างต่างหน่วยงานได้ดี คือการใช้ Taxonomy และ อรรถาภิธาน ซึ่งเป็นเครื่องมือสำหรับจัดการความรู้ในลักษณะศัพท์ควบคุม เพื่อจำกัดความหมายของคำที่ใช้ได้หลายคำในความหมายเดียวกัน

ระบบจัดการฐานข้อมูล

ระบบจัดการฐานข้อมูล (DBMS) ประกอบด้วยซอฟต์แวร์ที่ใช้ในการจัดการฐานข้อมูล, จัดเตรียมพื้นที่ในการเก็บ, การเข้าถึง, ระบบรักษาความปลอดภัย, สำรองข้อมูล และสิ่งอำนวยความสะดวกอื่นๆ ระบบจัดการฐานข้อมูลสามารถแบ่งหมวดหมู่ได้ตามแบบจำลองฐานข้อมูลที่สนับสนุน อาทิเช่น เชิงสัมพันธ์ หรือ XML เป็นต้น แบ่งตามประเภทของคอมพิวเตอร์ที่สนับสนุน อาทิเช่น server cluster หรือ โทรศัพท์พกพา เป็นต้น แบ่งตามประภทของภาษาสอบถามที่ใช้ในการเข้าถึงฐานข้อมูล อาทิเช่น ภาษาสอบถามเชิงโครงสร้าง หรือ XQuery แบ่งตามประสิทธิภาพในการ trade-offs อาทิเช่น ขนาดที่ใหญ่ที่สุด หรือ ความเร็วสูงสุด หรือ อื่นๆ เป็นต้น ในบาง DBMS จะครอบคลุมมากกว่าหนึ่งหมวดหมู่ เช่น สนับสนุนภาษาสอบถามได้หลายๆ ภาษา ยกตัวอย่างเช่น ใน DBMS ที่นิยมใช้การอย่างแพร่หลาย MySQL, PostgreSQL, Microsoft Access, SQL Server, FileMaker,Oracle,Sybase, dBASE, Clipper,FoxPro อื่นๆ ในทุกๆ ซอฟต์แวร์ฐานข้อมูลจะมี Open Database Connectivity (ODBC) driver มาให้ด้วย เพื่ออนุญาตให้ฐานข้อมูลสามารถทำงานร่วมกับฐานข้อมูลแบบอื่นๆ ได้

การออกแบบฐานข้อมูล

การออกแบบฐานข้อมูล (Designing Databases) มีความสำคัญต่อการจัดการระบบฐานข้อมูล (DBMS) ทั้งนี้เนื่องจากข้อมูลที่อยู่ภายในฐานข้อมูลจะต้องศึกษาถึงความสัมพันธ์ของข้อมูล โครงสร้างของข้อมูลการเข้าถึงข้อมูลและกระบวนการที่โปรแกรมประยุกต์จะเรียกใช้ฐานข้อมูล ดังนั้น เราจึงสามารถแบ่งวิธีการสร้างฐานข้อมูลได้ 3 ประเภท
1. รูปแบบข้อมูลแบบลำดับขั้น หรือโครงสร้างแบบลำดับขั้น (Hierarchical data model) วิธีการสร้างฐาน ข้อมูลแบบลำดับขั้นถูกพัฒนาโดยบริษัท ไอบีเอ็ม จำกัด ในปี 1980 ได้รับความนิยมมาก ในการพัฒนาฐานข้อมูลบนเครื่องคอมพิวเตอร์ขนาดใหญ่และขนาดกลาง โดยที่โครงสร้างข้อมูลจะสร้างรูปแบบเหมือนต้นไม้ โดยความสัมพันธ์เป็นแบบหนึ่งต่อหลาย (One- to -Many)
2. รูปแบบข้อมูลแบบเครือข่าย (Network data Model) ฐานข้อมูลแบบเครือข่ายมีความคล้ายคลึงกับฐาน ข้อมูลแบบลำดับชั้น ต่างกันที่โครงสร้างแบบเครือข่าย อาจจะมีการติดต่อหลายต่อหนึ่ง (Many-to-one) หรือ หลายต่อหลาย (Many-to-many) กล่าวคือลูก (Child) อาจมีพ่อแม่ (Parent) มากกว่าหนึ่ง สำหรับตัวอย่างฐานข้อมูลแบบเครือข่ายให้ลองพิจารณาการจัดการข้อมูลของห้องสมุด ซึ่งรายการจะประกอบด้วย ชื่อเรื่อง ผู้แต่ง สำนักพิมพ์ ที่อยู่ ประเภท
3. รูปแบบความสัมพันธ์ข้อมูล (Relation data model) เป็นลักษณะการออกแบบฐานข้อมูลโดยจัดข้อมูลให้อยู่ในรูปของตารางที่มีระบบคล้ายแฟ้ม โดยที่ข้อมูลแต่ละแถว (Row) ของตารางจะแทนเรคอร์ด (Record) ส่วน ข้อมูลนแนวดิ่งจะแทนคอลัมน์ (Column) ซึ่งเป็นขอบเขตของข้อมูล (Field) โดยที่ตารางแต่ละตารางที่สร้างขึ้นจะเป็นอิสระ ดังนั้นผู้ออกแบบฐานข้อมูลจะต้องมีการวางแผนถึงตารางข้อมูลที่จำเป็นต้องใช้ เช่นระบบฐานข้อมูลบริษัทแห่งหนึ่ง ประกอบด้วย ตารางประวัติพนักงาน ตารางแผนกและตารางข้อมูลโครงการ แสดงประวัติพนักงาน ตารางแผนก และตารางข้อมูลโครงการ
การออกแบบฐานข้อมูลเชิงสัมพันธ์
การออกแบบฐานข้อมูลในองค์กรขนาดเล็กเพื่อตอบสนองความต้องการของผู้ใช้งานอาจเป็นเรื่องที่ไม่ยุ่งยากนัก เนื่องจากระบบและขั้นตอนการทำงานภายในองค์กรไม่ซับซ้อน ปริมาณข้อมูลที่มีก็ไม่มาก และจำนวนผู้ใช้งานฐานข้อมูลก็มีเพียงไม่กี่คน หากทว่าในองค์กรขนาดใหญ่ ซึ่งมีระบบและขั้นตอนการทำงานที่ซับซ้อน รวมทั้งมีปริมาณข้อมูลและผู้ใช้งานจำนวนมาก การออกแบบฐานข้อมูลจะเป็นเรื่องที่มีความละเอียดซับซ้อน และต้องใช้เวลาในการดำเนินการนานพอควรทีเดียว ทั้งนี้ ฐานข้อมูลที่ได้รับการออกแบบอย่างเหมาะสมจะสามารถตอบสนองต่อความต้องการของผู้ใช้งานภายในหน่วยงานต่าง ๆ ขององค์กรได้ ซึ่งจะทำให้การดำเนินงานขององค์กรมีประสิทธิภาพดียิ่งขึ้น เป็นผลตอบแทนที่คุ้มค่าต่อการลงทุนเพื่อพัฒนาระบบฐานข้อมูลภายในองค์กรทั้งนี้ การออกแบบฐานข้อมูลที่นำซอฟต์แวร์ระบบจัดการฐานข้อมูลมาช่วยในการดำเนินการ สามารถจำแนกหลักในการดำเนินการได้ 6 ขั้นตอน คือ
1.การรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูล
2.การเลือกระบบจัดการฐานข้อมูล
3.การออกแบบฐานข้อมูลในระดับแนวคิด
4.การนำฐานข้อมูลที่ออกแบบในระดับแนวคิดเข้าสู่ระบบจัดการฐานข้อมูล
5.การออกแบบฐานข้อมูลในระดับกายภาพ
6.การนำฐานข้อมูลไปใช้และการประเมินผล

การออกแบบฐานข้อมูลในระดับตรรกะ
การออกแบบฐานข้อมูลในระดับตรรกะ หรือในระดับแนวความคิด เป็นขั้นตอนการออกแบบความสัมพันธ์ระหว่างข้อมูลในระบบโดยใช้แบบจำลองข้อมูลเชิงสัมพันธ์ ซึ่งอธิบายโดยใช้แผนภาพแสดงความสัมพันธ์ระหว่างข้อมูล (E-R Diagram) จากแผนภาพ E-R Diagram นำมาสร้างเป็นตารางข้อมูล (Mapping E-R Diagram to Relation) และใช้ทฤษฏีการ Normalization เพื่อเป็นการรับประกันว่าข้อมูลมีความซ้ำซ้อนกันน้อยที่สุด ซึ่งการออกแบบเชิงตรรกะนี้จะบอกถึงรายละเอียดของ Relation , Attribute และ Entity