Introduction to PostgreSQL

แนะนำ PostgreSQL

PostgreSQL คืออะไร

PostgreSQL  คือ ระบบจัดการฐานข้อมูลเชิงวัตถุ-สัมพันธ์ (Object-Relational DataBase Management System หรือ ORDBMS) ซึ่งมีต้นแบบระบบฐานข้อมูล POSTGRES 4.2 ของมหาวิทยาลัยแคลิฟอร์เนีย วิทยาลัยเขตเบอร์กเลย์ (UC Berkeley) ตั้งแต่ปี ค.ศ. 1977 จัดเป็น Open Source Software ที่มีประวัติยาวนานมากที่สุดตัวหนึ่ง บทความนี้จะแนะนำประวัติความเป็นมา ความสามารถต่างๆของ PostgreSQL ในปัจจุบัน 

ความเป็นมาของ PostgreSQL

ในหัวข้อนี้จะกล่าวถึงประวัติความเป็นมาของระบบจัดการฐานข้อมูลตัวนี้กันตั้งแต่ต้นจนถึงปัจจุบัน

Postgres กำเนิด PostgreSQL

PostgreSQL มีต้นตอมาจากโครงการ University Ingres ตั้งแต่ปี ค.ศ. 1977 ภายใต้การควบคุมการวิจัยโดย Professor Michael Stonebraker ซึ่งต้นแบบของ Ingres ได้นำไปปรับปรุงเป็นเชิงพาณิชย์โดย Relational Tecnologies/Ingres Corperation (ปัจจุบันเป็นผลิตภัณฑ์ของ Computer Associates ภายใต้ชื่อ CA-Ingres II)

ต่อมาในปี ค.ศ. 1986 Professor Michael Stonebraker เล็งเห็นว่าระบบฐานข้อมูลเชิงสัมพันธ์ในขณะนั้น ไม่เพียงพอในการรองรับระบบงานด้านฐานข้อมูลที่ซับซ้อนในอนาคตได้ ซึ่งต้องการความสามารถพิเศษเพิ่มเติมแบ่งออกเป็น 3 หัวข้อใหญ่ๆ คือ

1. ระบบจัดการฐานข้อมูล (Database Management System) ต้องการองค์ความรู้และสถาปัตยกรรมโครงสร้างใหม่ในการจัดการฐานข้อมูลให้มีประสิทธิภาพยิ่งขึ้น

2.  ระบบจัดการฐานความรู้ (knowledge-based Management System) เป็นโครงสร้างใหม่เพื่อสร้างฐานความรู้ ซึ่งเห็นได้ทั่วไปในการจัดการกฎเกณฑ์และข้อกำหนดทางธุรกิจ (Business Rules and Policy) องค์ความรู้ใหม่ที่นำมาเพิ่มเติมลงในระบบฐานข้อมูล เพื่อใช้ในการสนับสนุนความสามารถดังกล่าว ได้แก่ database constraints, triggers, rules และ transaction integrityเป็นต้น

3.  ระบบจัดการวัตถุ (Object Management System) เป็นโมเดลใหม่ที่จำเป็นต้องขยายต่อเพื่อช่วยเสริมให้ระบบฐานข้อมูลเชิงสัมพันธ์สามารถรองรับระบบงานที่ต้องการประเภทข้อมูล (data type) และ โมเดลเชิงวัตถุ (object-oriented model) ระบบงานที่ต้องการใช้โมเดลเชิงวัตถุและระบบจัดการฐานข้อมูล ได้แก่ งานประเภท CAD-CAM หรือ multimedia เป็นต้น องค์ความรู้ที่นำมาเพิ่มเติมเพื่อใช้ในการสนับสนุนความสามารถดังกล่าว ได้แก่ inheritance, user-defined data types และ functions เป็นต้น

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

 

ต้นแบบ Postgres

ต้นแบบระบบฐานข้อมูลตัวแรกในโครงการนี้ใช้ชื่อเริ่มแรกว่า POSTGRES ต้นแบบตัวแรกถูกเขียนด้วยภาษา LISP ซึ่งทำงานได้ช้ามาก หลังจากนั้นจึงเขียนใหม่ด้วยภาษา C ต้นแบบเริ่มใช้งานได้เมื่อปี ค.ศ. 1987 และได้ถูกเปิดตัวครั้งแรกในงานประชุมวิจัย ACM-SIGMOD ในปีเดียวกัน นับจากนั้นมาแนวความคิดใหม่ต่างๆ ได้ถูกเพิ่มเติม พร้อมทั้งสิ่งที่ล้าสมัยถูกรื้อทิ้งและได้รับการออกแบบพัฒนาใหม่มาตลอดเวลา

ระหว่างนั้น POSTGRES ถูกนำไปใช้เป็นระบบจัดการฐานข้อมูลในระบบงานที่ใช้งานจริงไม่ว่าจะเป็นระบบวิเคราะห์การเงิน ระบบตรวจวัดสมรรถภาพเครื่องยนต์อากาศยาน ระบบติดตามทางดาราศาสตร์ ระบบฐานข้อมูลการแพทย์ หรือระบบงานเชิงภูมิศาสตร์ นอกจากถูกนำไปใช้ในมหาวิทยาลัยในงานการศึกษาในปี ค.ศ. 1992 ยังถูกนำไปใช้เป็นระบบจัดการฐานข้อมูลหลักของโครงการ Sequoia 2000 ของ NASA ซึ่งใช้เก็บข้อมูลเกี่ยวกับความเปลี่ยนแปลงของโลกไม่ว่าจะเป็นภูมิอากาศ  ระดับน้ำ รังสี และอื่นๆ โดยมีจำนวนข้อมูลประมาณ 2 terabytes/วัน การที่ถูกนำไปใช้อย่างมากมายนี่เอง  ทำให้จำนวนผู้ใช้เพิ่มขึ้นอย่างรวดเร็ว

โดยจุดประสงค์ของโครงการนั้น เพียงเพื่อใช้เป็นต้นแบบในการทดสอบหลักการและทฤษฎีที่คิดค้นแต่การที่ได้รับความนิยมอย่างมากทำให้ต้องให้การสนับสนุนแก่ผู้ใช้จนเกิดเป็นภาระแก่ผู้พัฒนา ทำให้จุดประสงค์ของโครงการถูกเบี่ยงเบนไป อีกทั้งการเพิ่มเติมความสามารถต่างๆ ลงไปในซอฟต์แวร์ ทำให้ POSTGRES มีขนาดใหญ่มากขึ้นจนยากที่จะควบคุม ด้วยเหตุผลต่างๆ ดังกล่าว ทำให้โครงการ POSTGRES ได้สิ้นสุดอย่างเป็นทางการเมื่อปี ค.ศ. 1993 ที่เวอร์ชัน 4.2 อย่างน่าเสียดาย

 

Postgres95

ในปี ค.ศ. 1994 นักศึกษาสองคนของโครงการ POSTGRES คือ Andrew Yu และ Jolly Chen ได้นำ POSTGRES เวอร์ชัน 4.2 มาทำการรื้อใหม่หมด ซึ่งทั้งสองได้แก้ไขข้อบกพร่องและเพิ่มเติมข้อดีต่างๆ ให้แก่ซอฟต์แวร์ดังนี้

§      ตัดทอน source code ส่วนที่ซ้ำซ้อนออกไป โดยใช้ ANSI C ทั้งหมดเพื่อประโยชน์ในการพอร์ตข้ามระบบ

§      เปลี่ยนภาษาในการสืบค้นข้อมูลมาตรฐาน SQL แทนที่ภาษาในการสืบค้นเดิม Postquel

§      ปรับปรุงสมรรถภาพให้สามารถทำงานได้เร็วขึ้น 30-50%

§      เพิ่มเติมเครื่องมือต่างๆ เพื่อสนับสนุนในการใช้งาน เช่น Tcl/Tk Interface

รวมทั้งปรับแต่งระบบต่างๆ และเปิดให้ download ผ่านทาง Web site ในรูปแบบของ open-source ซอฟต์แวร์ภายใต้ชื่อรหัสโครงการใหม่ Postgres95

PostgreSQL

ในปี ค.ศ. 1996 ชื่อ Postgres95 ถูกเปลี่ยนใหม่เป็น PostgreSQL โดยเริ่มต้นที่เวอร์ชั่น 6.0 ด้วยเหตุผลหลังจากการเพิ่มความสามารถในภาษาสืบค้นข้อมูล SQL เพื่อให้เทียบเท่ากับมาตรฐาน SQL-92 ลงในระบบฐานข้อมูล Postgres95

ในระยะเริ่มต้นโครงการนั้นต้องการอาสาสมัคร (ที่เป็นมืออาชีพ) โดยไม่เน้นที่จำนวนแต่ต้องมีเวลาทุ่มเทมากกว่าจำนวนมากแต่ไม่ค่อยมีเวลาทำงาน เริ่มแรกนอกจาก Jolly Chen ยังมีผู้พัฒนาที่ทุ่มเทให้กับโครงการอีก 4 คน คือ Marc Fournier ชาว Canada, Vadim Mikheev ชาว Russia, Thomas Lockhart และ Bruce Momjian ชาว American ในเริ่มต้นเป็นการแก้ไขข้อผิดพลาดต่างๆ ที่มีอยู่ตามที่ได้รับการแจ้งมา มีการจำแนกประเภทของข้อผิดพลาดเพื่อจัดลำดับในการแก้ไข บางอย่างสามารถแก้ไขได้ง่าย บางอย่างจำเป็นต้องใช้ความรู้เพิ่มเติมในการวิจัยเพิ่มเติม อย่างไรก็ตาม ในการปรับปรุงนั้นเน้นอยู่ที่ความน่าเชื่อถือของระบบเนื่องจากงานฐานข้อมูลเป็นงานที่ละเอียดอ่อนระบบงานที่ทำงานภายใต้ระบบฐานข้อมูลไม่เหมือนงานประเภทอื่น เช่น โปรแกรมจัดการเอกสารหรือเกมส์ ที่ระบบหยุดทำงานแล้วเริ่มใหม่ได้โดยไม่สนใจงานที่ทำมา

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

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

ในปัจจุบัน มีนักพัฒนาจำนวนมากร่วมกันพัฒนาเพิ่มเติมความสามารถให้กับ PostgreSQL ส่วนของฐานผู้ใช้เองก็ขยายมากขึ้น โดยเฉพาะอย่างยิ่งเมื่อ Red Hat Linux ได้นำ PostgreSQL บรรจุเป็นส่วนหนึ่งในแพ็กเกจของตน อีกทั้งได้มีการตั้งบริษัทเพื่อให้บริการสนับสนุนการใช้งานและให้คำปรึกษาทางเทคนิคอีกด้วย


Print