แบบจำลองฐานข้อมูล: ตอน 2

 

 
Home Page  |   รายการบทความ   |   ลิงค์ที่เกี่ยวข้อง   |   laploy.com  |  เกี่ยวกับผู้เขียน

 

แบบจำลองฐานข้อมูล: ตอน 2

 

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

 

2.4.1. ชนิดข้อมูลพื้นฐาน
ชนิดข้อมูลพื้นฐานแบ่งออกเป็นประเภทต่างๆ หลายแบบ จำนวนประเภทแตกต่างกันไประหว่างโปรแกรม DBMS แต่ละยี่ห้อ โดยทั่วไปแล้วชนิดข้อมูลพื้นฐานจะมีแบบต่างๆ ดังนี้

  • ตัวอักษร: ตัวอักษร (string) เก็บข้อมูลตัวอักษรหนึ่งหรือหลายๆ ตัว แบ่งออกเป็นชนิดย่อยดังนี้
    o    แบบความยาวคงที่: ข้อมูลตัวอักษรที่มีความยาวของสายอักขระที่แน่นอน เช่น CHAR(3) กำหนดความยาวไว้สามตัวอักษร หากนำมาใส่ข้อมูลที่มีความยาวเพียงสองตัวอักษร DBMS จะแทรกรหัสอักษรเคาะวรรคไว้หนึ่งตัวเพื่อทำให้มีจำนวนอักษรครบสามตัว
    o    แบบความยาวไม่คงที่: มีความยาวของสายอักขระที่ไม่แน่นอน เช่น VCHAR(10) กำหนดความยาวไว้สิบตัวอักษร หากนำมาใส่ข้อมูลที่มีความยาวเพียงห้าตัวอักษร DBMS จะไม่แทรกรหัสใดๆ ต่อท้ายเพื่อให้มีจำนวนครบสิบตัว
  • ตัวเลข: ข้อมูลตัวที่ใช้เพื่อข้อมูลเก็บตัวเลขแบ่งออกเป็นสามชนิดย่อยคือ
    o    จำนวนเต็ม: ใช้เก็บตัวเลขที่ไม่มีจุดทศนิยม เช่น SINT (TINYINT), INT และ LONGINT
    o    ทศนิยมหลักคงที่: ใช้เก็บตัวเลขที่มีจำนวนหลักที่แน่นอน ยกตัวอย่างเช่น DECIMAL(5.2) คือการกำหนดให้เก็บตัวเลขได้ 5 หลัก และมีเลขหลังทศนิยมได้ 2 ตำแหน่ง จึงสามารถเก็บข้อมูล12345.67 และ 12.34 ได้ แต่เก็บ 12.345 หรือ 123456.12 ไม่ได้
    o    โฟลตติงพอยน์: floating point ใช้เก็บตัวเลขทศนิยมที่มีตำแหน่งทศนิยมไม่แน่นอน เช่น 1234, 123.45, 0.1234 เหล่านี้เป็นค่าที่เก็บด้วยชนิดข้อมูลโฟลตติงพอยน์ได้
  • วันที่: เก็บวันเดือนปีในลักษณะต่างๆ และอาจรวมข้อมูลเวลาไว้ด้วยก็ได้

 

ภาพ 2-3 : ตัวอย่างชนิดข้อมูลแบบเวลาใน SQL2008


2.4.2. ชนิดข้อมูลซับซ้อน
ชนิดข้อมูลซับซ้อนเป็นโครงสร้างข้อมูล หรือข้อมูลที่อยู่รวมกันเป็นกลุ่ม (data collection) ยกตัวอย่างเช่น
•    ไบนารี: ข้อมูลแบบไบนารี (binary) คือข้อมูลในรูปเลขฐานสองที่เป็นก้อนขนาดใหญ่ เช่นรูปภาพ วิดีโอ เสียง ไม่สามารถบรรจุไว้ในแถวของตารางโดยตรงได้ เพราะปรกติแถวของตารางจะเก็บข้อมูลได้รวมกันไม่เกิน 2KB
•    พอยน์เตอร์: เป็นข้อมูลไบนารีที่ใช้สำหรับชี้ตำแหน่งข้อมูลในหน่วยความจำหรือในจานบันทึกข้อมูล
•    อาร์เรย์: (array) คือโครงสร้างข้อมูลที่มีการเรียงตัวซ้ำๆ กัน แบ่งออกเป็นอาร์เรย์แบบความยาวคงที่ และอาร์เรย์แบบความยาวเปลี่ยนแปลงได้ (dynamic array)
•    ชนิดข้อมูลที่ผู้ใช้นิยามขึ้นเอง: (User Defined Type ย่อ UDT) เป็นชนิดข้อมูลที่ผู้ใช้สร้างขึ้นโดยนำชนิดข้อมูลพื้นฐานมาจัดรูปแบบเป็นโครงสร้างที่แน่นอน เช่น structure

 

ภาพ 2-4 : ตัวอย่างชนิดข้อมูลแบบพอยน์เตอร์


2.4.3. ชนิดข้อมูลพิเศษ
ชนิดข้อมูลพิเศษคือชนิดข้อมูลที่เป็นออพเจ็กต์ และสามารถสืบคุณสมบัติของออพเจ็กต์ได้ เช่นแฟ้มข้อมูล XML และออพเจ็กต์ที่เป็นมัลติมีเดีย

 

2.5. นิยาม RDBMS
RDBMS (ย่อจาก Relational Database Management System) คือคำที่ใช้เรียกชุดโปรแกรมทั้งมวลที่ประกอบเป็นเอนจินฐานข้อมูลและโปรแกรมจัดการฐานข้อมูล บางครั้งนับรวมชุดพัฒนาโปรแกรม (Software Development Kit หรือ SDK) และส่วนเครื่องมือสำรับใช้งานที่มีส่วนติดต่อกับผู้ใช้เป็นกราฟิกด้วย โปรแกรม SQL2008 ก็เข้าข่ายนิยามนี้ สรุปว่า RDBMS ก็คือเอนจินฐานข้อมูลบวกซอฟต์แวร์ที่เกี่ยวข้องทั้งหลายบรรจุไว้เป็นชุดเดียวกัน

 

2.6. ความเป็นมาของ  RDBMS
RDBMS  ถูกประดิษฐ์คิดค้นโดยนักวิจัยของบริษัทไอบีเอ็มชื่อ ดร. อี เอฟ คอดด์ (Dr. E. F. Codd) ภายหลังทีมงานฐานข้อมูลของไอบีเอ็มได้นำแนวคิดนี้ไปสร้างเป็นสินค้า งานวิจัยของคอดด์เน้นการลดทอนความซ้ำซ้อนของการเก็บข้อมูลโดยใช้กระบวนการ "นอร์มาไลเซชัน"  (normalization) กระบวนการนี้ประกอบด้วยขั้นตอนต่างๆ หลายขั้นตอน แต่ละขั้นตอนเรียกว่า "นอร์มัล ฟอร์ม" (normal form)

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

 

ภาพ 2-5 : แนวคิดพื้นฐานที่คอดด์พรรณนาไว้ในเอกสารวิชาการหลายฉบับถูกคณะบุคคลหลายกลุ่มนำไปพัฒนาต่อยอด ช่วงปี  1970 ทีมนักวิจัยของไอบีเอ็มที่เมือง ซาน โฮเซ (เมือง San Jose ในแคลิฟอร์เนีย ปัจจุบันคือศูนย์วิจัย อัลมาเดน) ผู้พัฒนาโครงการ System R นำแนวคิดของคอดด์ไปพัฒนาเป็นภาษา SQL และผลิตภัณฑ์ DB2 ซึ่งเป็นผลิตภัณฑ์ RDBMS ที่วิ่งในหลายโอเอสเช่น UNIX, Windows และ Linux รวมถึง z/OS ซึ่งเป็นโอเอสแบบหกสิบสี่บิตทำงานในคอมพิวเตอร์แบบเมนเฟรมของไอบีเอ็ม

 

ในช่วงปี 1997 ถึง 1998 นักวิทยาศาสตร์สองคนที่มหาวิทยาลัยแคลิฟอร์เนีย วิทยาเขตเบอร์คลีย์ ทำโครงการ Ingres ซึ่งเป็น RDBMS ที่ทำงานในระบบปฏิบัติการ UNIX บนคอมพิวเตอร์ของบริษัท DEC เนื่องจากผู้สร้าง Ingres ขายซอร์สโค้ดในราคาถูกภายใต้สัญญาการใช้งานแบบ BSD (Berkeley Software Distribution) จึงมีบริษัทเอกชนหลายรายนำซอร์สโค้ดไปสร้างเป็นสินค้า เช่น ออราเคิล ไซเบสและไมโครซอฟต์ (ไมโครซอฟต์ซื้อสิทธิจากไซเบสอีกทอดหนึ่ง)

นักวิทยาศาสตร์ที่เบอร์คลีย์ตั้งบริษัทชื่อ Ingres ขาย  RDBMS ในลักษณะโอเพ่นซอร์สต่อมาแตกออกเป็นอีกสองบริษัทคือ Informix (ถูกไอบีเอ็มซื้อกิจการไปในปี 2001)  และ Postgres ซึ่งเป็น  RDBMS แบบออพเจ็กต์สัมพันธ์ที่ฟรี (สัญญาการใช้งานแบบ BSD) ในทศวรรษ 1990 บริษัทออราเคิล (และ Postgres) นำแนวคิดของคอดด์มาต่อยอดเป็นแบบจำลองฐานข้อมูลแบบวัตถุ และแบบจำลองฐานข้อมูลแบบออพเจ็กต์สัมพันธ์

 

โฆษณา

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: