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

 

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

 

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

 

2.7. วิวัฒน์ของแบบจำลองฐานข้อมูล
การพัฒนาแบบจำลองข้อมูลเริ่มขึ้นตั้งแต่เริ่มมีการสร้างคอมพิวเตอร์ในปี ค.ศ. 1940 ช่วงแรกเป็นแบบจำลองข้อมูลที่เก็บข้อมูลเป็นไฟล์แบบเครือข่าย (network database model) แบบจำลองข้อมูลที่เก็บข้อมูลเป็นไฟล์แบบลำดับชั้น (hierarchical database model) ซึ่งทั้งสองแบบเป็นแบบจำลองที่ไม่สู้มีประสิทธิภาพนัก ต่อมาในช่วงปี 1960 จึงมีการคิดแบบจำลองข้อมูลสัมพันธ์ (relational database model) ที่ใช้งานได้จริงจัง และถือว่าเป็นแบบที่มีประสิทธิภาพสูงสุด และนิยมใช้กันมาจนถึงทุกวันนี้

 

ภาพ 2-6 : วิวัฒนาการของแบบจำลองข้อมูล

 

2.7.1. แบบจำลองฐานข้อมูลแบบ File System
แบบจำลองฐานข้อมูลแบบ File Systems เป็นแบบจำลองฐานข้อมูลที่โบราญสุด ปรากฏตัวขึ้นตั้งแต่เริ่มมีคอมพิวเตอร์คือก่อนปี 1950 และถูกใช้เรื่อยมาจนเสื่อมความนิยมไปในปี 1970 ข้อดีของ File Systems คือไม่ซับซ้อนทำความเข้าใจได้ง่าย ข้อเสียของ File Systems คือการขาดความยืดหยุ่น

File Systems จะเก็บข้อมูลเรียงติดกันไปหมด โปรแกรมจะแยกแยะว่าส่วนไหนเป็นข้อมูลอะไรได้ด้วยการนับจำนวนไบต์ เพราะความกว้างของคอลัมน์จะมีขนาดตายตัว หากข้อมูลสั้นกว่าก็จะถมด้วยเลขศูนย์หรือเครื่องหมายวรรค เราเรียก File Systems ได้อีกอย่างหนึ่งว่า Flat File

Flat File ที่ยังเหลือให้เห็นอยู่ในปัจจุบันคือแฟ้มแบบ CSV ซึ่งเป็นแบบที่คั่นคอลัมน์ด้วยคอมมา (comma-delimited file) เป็นแฟ้มที่เก็บข้อมูลตัวอักษรธรรมดา (text file) ข้อมูลแต่ละคอลัมน์ถูกคั่นด้วยเครื่องหมายจุลภาค  (,) แต่ละบรรทัดถูกแยกจากกันด้วยรหัสขึ้นบรรทัดใหม่ (รหัส new line ในภาษาซีคือ \n) ถ้าพูดให้ถึงที่สุดแล้วแฟ้มแบบ CSV ไม่ใช่ Flat File เพราะการมีคอมมาคั่นอาจถือว่าเป็นโครงสร้างอย่างหนึ่งได้เหมือนกัน

 

ภาพ 2-7 : แฟ้มแบบ CSV หรือแบบคั่นด้วยคอมมา (comma-delimited file)

 

2.7.2. แบบจำลองฐานข้อมูลแบบลำดับชั้น
แบบจำลองฐานข้อมูลแบบลำดับชั้น (Hierarchical Database Model ย่อ HDM) เกิดขึ้นในปี 1950 เป็นแบบจำลองฐานข้อมูลที่ถูกพัฒนาให้มีประสิทธิภาพดีกว่า File System และถูกใช้เรื่อยมาจนเสื่อมความนิยมไปในปี 1980 ข้อดีของ HDM คือการเพิ่มลดระเบียน (record) ทำได้ง่ายมาก ข้อเสียคือการค้นหาข้อมูลทำได้ช้าเพราะต้องไล่ไปตามลำดับชั้น

HDM มีโครงสร้างเหมือนต้นไม้กลับหัว คือรากอยู่บนสุดแล้วลำต้นแตกกิ่งก้านลงไปข้างล่าง (ดูภาพ 2-8)  ตารางที่อยู่บนคือตารางแม่ (parent table) ตารางที่มีลำดับต่ำกว่าคือตารางลูก (child table)

HDM มีความสัมพันธ์เป็นแบบ "หนึ่งต่อหลาย" (one to many) เพราะตารางแม่หนึ่งตารางอาจมีตารางลูกได้หลายตาราง และในขณะเดียวกันตารางลูกใดๆ อาจมีตารางลูกลงไปอีกชั้นหนึ่ง ทำให้มันมีฐานะเป็นตารางแม่ด้วยเช่นกัน ในทำนองเดียวกัน ตารางแม่ใดๆ อาจมีตารางแม่อยู่เหนือตัวมันอีก ทำให้มันมีฐานะเป็นตารางลูกด้วยเช่นกัน

 

ภาพ 2-8 : ในแผนภูมิแสดงแบบจำลองฐานข้อมูลแบบลำดับชั้นนี้ตารางงาน (Task)  คือส่วนหนึ่งของตารางโครงการ (Project) ตารางโครงการและตารางพนักงาน (Employee) เป็นส่วนหนึ่งของตารางผู้จัดการ (Manager) ตารางผู้จัดการเป็นส่วนหนึ่งของตารางแผนก (Department) ตารางแผนกต่างๆ เป็นส่วนหนึ่งของตารางบริษัท (Company) ข้อเสียของแบบจำลองฐานข้อมูลแบบลำดับชั้นคือการค้นหาข้อมูลต้องไล่ไปตามโหนดต่างๆ ยกตัวอย่างในภาพนี้หากต้องการค้นข้อมูลในตารางพนักงาน การค้นต้องทำจากบนสุดแล้วท่องไปในโหนดต่างๆ คือตารางบริษัท ตารางแผน ตารางผู้จัดการ แล้วจึงมาถึงตารางพนักงาน

 

2.7.3. แบบจำลองฐานข้อมูลแบบเครือข่าย
แบบจำลองฐานข้อมูลแบบเครือข่าย (Network Database Model ย่อ NDM) ถูกพัฒนามาจาก HDM เริ่มปรากฏในปี 1960 และถูกใช้เรื่อยมาจนเสื่อมความนิยมไปในปี 1990 แบบจำลอง NDM คล้ายคลึงกันมากกับ HDM จึงมีข้อดีข้อเสียใกล้เคียงกัน

คำว่าเครือข่ายในที่นี้ไม่ได้หมายถึงเครือข่ายคอมพิวเตอร์ แต่หมายถึงตารางต่างๆ ถูกนำมาเชื่อมโยงกันเป็นเครือข่ายเพื่อให้ตารางลูกมีตารางแม่ได้มากกว่าหนึ่งตาราง (ต่างจาก HDM ที่ตารางลูกมีตารางแม่ได้ได้เพียงตารางเดียว)  NDM จึงมีความสัมพันธ์เป็นแบบ "หลายต่อหลาย" (many to many)

 

ภาพ 2-9 : แผนภูมิแสดงแบบจำลองฐานข้อมูลแบบเครือข่าย จะเห็นว่าตารางผู้จัดการเป็นทั้งส่วนหนึ่งของตารางแผนกและตารางบริษัท หรือพูดอีกอย่างหนึ่งคือไม่เฉพาะตารางแผนกเท่านั้นที่มีตารางผู้จัดการ แต่ตารางบริษัทเองก็มีผู้จัดการด้วยเช่นกัน และตารางพนักงานสามารถแยกออกเป็นประเภทต่างๆ ของพนักงานได้

 

2.7.4. แบบจำลองฐานข้อมูลสัมพันธ์
แบบจำลองฐานข้อมูลสัมพันธ์ (Relational Database Model ย่อ RDM) เป็นแบบจำลองข้อมูลที่ถูกพัฒนาด้วยแนวคิดใหม่ซึ่งแตกต่างจากแบบจำลองฐานข้อมูล  HDM และ NDM ไปมาก RDM เริ่มปรากฏในปี 1970 และถูกใช้เรื่อยมาจนถึงทุกวันนี้ ข้อดีของ RDM คือมีบูรณภาพของข้อมูลดีมาก ข้อเสียคือโปรแกรม DBMS ซับซ้อนกว่าแบบจำลองสามแบบแรก

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

RDM มีประสิทธิภาพสูงกว่า  HDM และ NDM เช่นหากต้องการค้นหาข้อมูลของพนักงานหนึ่งคน เราไม่ต้องไล่จากตารางบนสุด (ตารางบริษัท) แล้วท่องไปตามตารางต่างๆ จนกระทั่งถึงตารางพนักงาน แต่เราสามารถเข้าถึงตารางพนักงานได้โดยตรง ข้อดีอีกอย่างหนึ่งของ RDM คือเราสามารถเชื่อมโยงตารางต่างๆ เข้าด้วยกันได้โดยไม่จำเป็นต้องคำนึงถึงลำดับชั้น คือตารางหนึ่งๆ จะเชื่อมโยงกับตารางอื่นๆ อย่างไรก็ได้โดยอิสระ

 

ภาพ 2-10 : สมมุตว่าเรามีตารางอยู่สองตาราง ตารางแรก Project (กรอบบน) ทำหน้าที่เก็บข้อมูลโครงการต่างๆ อีกตารางหนึ่งคือ Task  (กรอบล่าง) ทำหน้าที่เก็บรายละเอียดงานต่างๆ ในหนึ่งโครงงาน สองตารางนี้เชื่อมกันได้ด้วยคอลัมน์ Project_ID ซึ่งเป็นรหัสงาน ตัวเลขนี้ทำหน้าที่เป็นไพรมารีคีย์ในตาราง Project ซึ่งจะไม่มีค่าซ้ำกัน แต่ในตาราง Task คอลัมน์ Project_ID ทำหน้าที่เป็นฟอร์เรนคีย์ (คือเป็นคีย์สำหรับอ้างถึงข้อมูลในตารางอื่น) อาจมีค่าซ้ำกันได้ ยกตัวอย่างเช่นในตาราง Project บรรทัดแรก Project_ID เท่ากับ 1 คือโครงการ Software sales data mart มีงานย่อยสามงาน คือบรรทัดที่หนึ่งถึงสามในตาราง Task จะเห็นว่าคอลัมน์ Project_ID ในตาราง Task มีเลข 1 ซ้ำกันอยู่สามแถว

 

ภาพ 2-11 : แผนภูมิแสดงแบบจำลองฐานข้อมูลสัมพันธ์ตามตัวอย่างตารางในภาพ 2-10


 

2.7.5. แบบจำลองฐานข้อมูลแบบวัตถุ
แบบจำลองฐานข้อมูลแบบวัตถุ  (Object Database Model ย่อ ODM) เป็นแนวคิดใหม่ที่ปรากฏขึ้นในปี 1980 และยังได้รับการพัฒนาต่อเนื่องมาจนถึงทุกวันนี้  แบบจำลอง ODM อาศัยแนวคิดว่าข้อมูลเป็นออพเจ็กต์เหมือนออพเจ็กต์ในวิชา OOP (การเขียนโปรแกรมวัตถุวิธี)  แบบจำลอง ODM มีข้อดีคือการทำงานได้มีประสิทธิภาพสูงกว่า RDM อย่างชัดเจนในบางสถานการณ์ แต่มีข้อเสียคือเรียนรู้ได้ยากและผนวกกับภาษา OOP มาตรฐานอย่าง C# ไม่ได้

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

 

ภาพ 2-12 : นี่คือฐานข้อมูลเดียวกันกับในหัวข้อแบบจำลองฐานข้อมูลสัมพันธ์ แต่ภาพนี้แสดงในแบบจำลองฐานข้อมูลแบบวัตถุ โปรดสังเกตว่าคลาสพนักงาน (Employee Class) อยู่ในคอลเลคชันเดียวกันกับคลาสผู้จัดการ  (Manager Class) โดยมีคลาสงาน (Task Class) และคลาสอื่นๆ สืบคุณสมบัติไปจากมัน (เช่นคลาสพนักงานเต็มเวลา Full Time Employee Class)

 

แบบจำลองฐานข้อมูล: ตอน 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) นำแนวคิดของคอดด์มาต่อยอดเป็นแบบจำลองฐานข้อมูลแบบวัตถุ และแบบจำลองฐานข้อมูลแบบออพเจ็กต์สัมพันธ์

 

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

 

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

 

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

 

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

ในบทนี้ท่านจะได้เรียนเรื่องแบบจำลองฐานข้อมูลซึ่งประกอบด้วยหัวข้อต่างๆ ดังนี้

•    การประยุกต์ใช้งาน
•    สองสถาปัตยกรรม
•    วิวและออพเจ็กต์พิเศษอื่นๆ
•    นิยามชนิดข้อมูล
•    นิยาม RDBMS
•    ความเป็นมาของ  RDBMS
•    วิวัฒน์ของแบบจำลองฐานข้อมูล

 

2.1. การประยุกต์ใช้งาน
คำว่า "แอพลิเกชัน" (application) คือ "คำจาร์กอน" ในวงการคอมพิวเตอร์ หมายถึงซอฟต์แวร์ที่รันในคอมพิวเตอร์และทำงานบางอย่าง งานที่ว่าอาจเป็นการมีปฏิสัมพันธ์กับผู้ใช้แบบรูปภาพ หรือ GUI ที่ช่วยให้การสร้างรายงานง่ายเพียงแค่ลากเมาส์ไปมา แล้วกดปุ่มสองสามทีก็จะได้รายงานที่สมบูรณ์

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

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

 

2.2. สองสถาปัตยกรรม
การประมวลผลธุรกรรมออนไลน์ (OnLine Transaction Processing ย่อ OLTP) คือสถาปัตยกรรมที่มีผู้ใช้จำนวนมากเข้าถึงข้อมูลจำนวนน้อยๆ แต่ทำอย่างถี่ๆ แบบจำลองฐานข้อมูลที่เหมาะกับการประยุกต์ใช้งานลักษณะนี้คือ "แบบจำลองข้อมูลสำหรับธุรกรรม" (Transactional Database Model ย่อ TDM) ซึ่งเป็นแบบจำลองฐานข้อมูลที่ออกแบบมาสำหรับบริการผู้ใช้งานจำนวนมากที่เข้าถึงข้อมูลที่มีปริมาณน้อยแต่ใช้งานพร้อมกันและอย่างถี่ๆ

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

 

ภาพ 2-1: การใช้งาน Business Intelligence (BI) และดาต้าแวร์เฮาส์

 

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

  • วิว: วิว (View) คือนิยามคิวรี ตัวมันเองไม่ใช่ตารางและไม่ได้เก็บข้อมูลใดๆ ไว้ภายใน วิวเป็นเพียงโครงสร้างทางตรรกะของตาราง เมื่อสั่งให้วิวทำงานเราจะได้ข้อมูลเป็นตารางเสมือน วิวมีประโยชน์เมื่อนำมาใช้ระหว่างขั้นตอนพัฒนา แต่ไม่ควรนำไปใช้ในขั้นตอนใช้งานจริง เพราะวิวอาจทำให้ประสิทธิภาพของฐานข้อมูลลดลง
  • วิววัตถุ: วิววัตถุ (Materialized views) ตางจากวิวธรรมดาตรงที่มันเป็นตารางข้อมูลชั่วคราวที่ถูกสร้างจากตารางจริงและมีข้อมูลเก็บไว้จริงๆ จุดประสงค์ในการสร้างวิววัตถุคือเพื่อลดภาระของตารางหลัก วิววัตถุมักถูกนำมาใช้เพื่อหาผลรวมของชุดข้อมูล (ดาต้าเซต dataset) ขนาดใหญ่ในงานคลังข้อมูล ในบาง RDBMS จะสนับสนุนการปรับข้อมูล (refresh) ระหว่างตารางจริงกับวิววัตถุโดยอัตโนมัติ ทำให้เราสามารถใช้งานวิววัตถุได้โดยไม่ต้องห่วงเรื่องความล้าสมัยของข้อมูล
  • คลัสเตอร์: คลัสเตอร์ (Cluster) เป็นออพเจ็กต์พิเศษที่ปัจจุบันไม่นิยมใช้แล้ว มันมีลักษณะและจุดประสงค์ในการใช้งานเหมือนวิววัตถุแต่ไม่มีการการปรับข้อมูลอัตโนมัติ
  • ตัวนับอัตโนมัติ: ตัวนับอัตโนมัติ (auto counter) คือคอลัมน์ที่เพิ่มค่าได้โดยอัตโนมัติ ทำให้เราสร้างคอลัมน์ซึ่งทำหน้าที่เป็นกุญแจแทนได้ง่ายขึ้น เพราะ RDBMS จะใส่ค่าในคอลัมน์นี้ให้โดยอัตโนมัติเป็นค่าที่เรียงลำดับ (เช่น 001, 002, 003 ฯลฯ)
  • ตัวประมวลผลแบบขนาน: โปรแกรม RDBMS บางตัวสนับสนุนการแยกตารางออกเป็นหลายส่วนเพื่อให้ตัวประมวลผลหลายตัวประมวลผลไปพร้อมๆ กันได้เพื่อเพิ่มประสิทธิภาพของฐานข้อมูล

ภาพ 2-2: ตัวประมวลผลแบบขนาน CELL/B.E. ที่ผลิตโดยบริษัทไอบีเอ็ม โซนีและโตชิบา

ฐานข้อมูลเบื้องต้น : ตอน 2

 

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

 

ฐานข้อมูลเบื้องต้น : ตอน 2

 

1.3. ระบบฐานข้อมูล
โดยพื้นฐานแล้วระบบฐานข้อมูล (database system) ก็คือการนำคอมพิวเตอร์มาใช้เพื่อเก็บข้อมูล ท่านสามารถสั่งให้มันทำงานที่เกี่ยวข้องกับการเก็บข้อมูลได้หลายอย่าง อาทิ
•    เพิ่มตารางเข้าสู่ฐานข้อมูล
•    แทรกข้อมูลใหม่สู่ตาราง
•    ดึงข้อมูลจากตาราง
•    ลบข้อมูลจากตาราง
•    เปลี่ยนแปลงข้อมูลในตาราง
•    ลบตารางจากฐานข้อมูล

ยกตัวอย่างเช่นในฐานข้อมูล AdventureWorks (ดูภาคผนวก จ) มีตารางชื่อ Person.Contact ทำหน้าที่เก็บข้อมูลบุคคลที่เกี่ยวข้องกับบริษัทเพื่อใช้ในการติดต่อ มีข้อมูลดังที่เห็นในภาพ 1-5

 

ภาพ 1-5: ตารางชื่อ Person.Contact

เราสามารถป้อนคำสั่งต่างๆ เพื่อจัดการกับข้อมูลได้ ยกตัวอย่างเช่นคำสั่งเพื่อเรียกดูข้อมูลห้าคนแรกเป็นดังนี้

ภาพ 1-6: คำสั่งเพื่อเรียกดูข้อมูลห้าคนแรก

 

คำว่า SELECT, TOP และ FROM เป็นคำสั่งหรือคำเฉพาะ (keyword)  คำว่า Person.Contact คือชื่อตารางที่เราต้องการเรียกดูข้อมูล เมื่อนำคำสั่ง คำเฉพาะและชื่อตารางมาเขียนเป็นประโยคสั่งหนึ่งหรือหลายประโยคต่อกันเช่นนี้ เรียกว่า คิวรี (query) เป็นภาษาชื่อ SQL แต่เดิมคำว่า SQL ย่อจาก Structured Query Language และอ่านออกเสียงว่า "ซีเควล" แต่ปัจจุบันถือว่า SQL ไม่ใช่คำย่อ แต่เป็นชื่อภาษาหนึ่งและอ่านออกเสียงว่า "เอส-คิว-เอล"

 

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

ตัวจัดการฐานข้อมูลที่อ้างถึงในหนังสือเล่มนี้คือโปรแกรม Microsoft SQL Server 2008 (ต่อไปจะเรียกย่อว่า SQL2008 อ่านประวัติโดยย่อของ SQL2008 ในภาคผนวก ข) SQL2008 จะอ่านคิวรีและนำไปปฏิบัติ โปรดสังเกตว่าผู้เขียนๆ คำสั่งและคำเฉพาะเป็นอักษรตัวใหญ่ทั้งหมด ส่วนชื่อตารางเขียนแบบมีตัวนำตัวตาม การทำเช่นนี้ไม่ใช่ข้อกำหนดของ SQL2008 เราอาจเขียนตัวใหญ่ทั้งหมดหรือเล็กทั้งหมด หรือผสมกันอย่างไรก็ได้ การเขียนด้วยอักษรตัวใหญ่หรือเล็กมีจุดมุ่งหมายเพื่อให้อ่านเข้าใจง่ายและมีแนวทางปฏิบัติเป็นมาตรฐาน (10.16)

ระบบจัดการฐานข้อมูลประกอบด้วยส่วนหลักสี่ส่วนดังนี้

  • ข้อมูล: ข้อมูลในฐานข้อมูลหนึ่งๆ อาจะเก็บไว้ในคอมพิวเตอร์เล็กๆ เพียงเครื่องเดียว หรือกระจายอยู่ในคอมพิวเตอร์เตอร์แบบเซอฟเวอร์จำนวนมากที่รวมตัวกันเป็นกลุ่ม (เรียกกว่า คลัสเตอร์ Cluster) ฐานข้อมูลจะถูกเก็บไว้อย่างไรขึ้นอยู่กับขนาดของข้อมูลและจำนวนผู้ใช้ หากมีผู้ใช้เพียงคนเดียวก็สามารถเก็บไว้ในคอมพิวเตอร์เล็กๆ เพียงเครื่องเดียวได้ หากมีผู้ใช้ที่อาจเรียกใช้ข้อมูลพร้อมๆ กันเป็นจำนวนมากก็ต้องใช้ระบบที่ใหญ่ขึ้น การเรียนและทำแบบฝึกหัดในหนังสือเล่มนี้ท่านจะติดตั้งโปรแกรมและข้อมูลทุกอย่างไว้ในคอมพิวเตอร์เพียงเครื่องเดียว
  • ฮาร์ดแวร์: โปรแกรม SQL2008 ทำงานในคอมพิวเตอร์ที่ใช้ซีพียูแบบ 32 และ 64 บิตของอินเทล รวมถึงซีพียูอิทาเนียม ขนาดและปริมาณของข้อมูลคือตัวกำหนดความต้องการของฮาร์ดแวร์ สิ่งที่ต้องคำนึงถึงคือพลังการประมวลผลของตัวประมวลผล และความจุของอุปกรณ์เก็บข้อมูล ผู้เขียนจะไม่กล่าวถึงเรื่องฮาร์ดแวร์มากไปกว่านี้เพราะอยู่นอกขอบเขตของหนังสือเล่มนี้
  • ซอฟต์แวร์: โปรแกรมจัดการฐานข้อมูล (database management system หรือ DBMS) เป็นซอฟต์แวร์ที่ช่วยให้ท่านสามารถจัดการกับข้อมูลได้โดยไม่ต้องสนใจฮาร์ดแวร์หรือรายละเอียดในการเก็บข้อมูลทางกายภาพ ท่านจะไม่กระทำการใดๆ กับฐานข้อมูลโดยตรง แต่เขียนคิวรีสั่งให้ DMBS จัดการแทน โปรแกรม DBMS มีมากมายหลายตัวเช่น SQL2008, เออราเคิล, ไซเบส และ MySQL ในหนังสือเล่มนี้จะมุ่งสนใจเฉพาะ SQL2008 แต่ผู้เขียนอาจกล่าวถึง DMBS ตัวอื่นๆ บ้างเพื่อเปรียบเทียบ

 

ภาพ 1-7: ระบบฐานข้อมูล

 

  • ผู้ใช้: ผู้ใช้งานแบ่งออกเป็นสามระดับคือ
    o    ผู้ใช้ทั่วไป: เป็นผู้ใช้งานกลุ่มใหญ่ที่สุด ใช้งานฐานข้อมูลโดยเขียนคิวรีภาษา SQL หรือใช้เครื่องมือที่มีการติดต่อผู้ใช้เป็นกราฟิกเพื่อสร้างคิวรี คนกลุ่มนี้จำไม่จำเป็นต้องได้รับการฝึกฝนทางไอที (IT = Information Technology วิทยาการสารสนเทศ) และไม่จำเป็นต้องเขียนโปรแกรมเป็น
    o    ผู้พัฒนาโปรแกรมประยุกต์: ทำหน้าที่เขียนโปรแกรมด้วยภาษาต่างๆ เช่น C#, PHP และจาวาสำหรับการประยุกต์ใช้งานที่ต้องเกี่ยวข้องกับฐานข้อมูล อาจเป็นโปรแกรมสำหรับใช้งานในอินเตอร์เน็ต เช่นใช้ ADO.NET เป็นตัวเชื่อมต่อกับ SQL2008 เพื่อสร้างเว็บไซต์แบบ ASP.NET  คนกลุ่มนี้เป็นผู้ที่ได้รับการฝึกฝนทางไอทีมาโดยตรง
    o    ผู้ดูแลฐานข้อมูล: หรือที่มักเรียกย่อว่า "แอดมิน" (administrator บางที่เรียก DBA) คือผู้ทำหน้าที่ดูแลระบบฐานข้อมูลให้พร้อมใช้งานอยู่เสมอ

 

 

ฐานข้อมูลเบื้องต้น : ตอน 1

 

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

ฐานข้อมูลเบื้องต้น : ตอน 1

 

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

•    ตาราง คอลัมน์และแถว
•    ฐานข้อมูลคืออะไร
•    ระบบฐานข้อมูล
•    องค์ประกอบของฐานข้อมูล
•    ความสัมพันธ์และเอนทิตี
•    นิยามฐานข้อมูล

 

1.1 ตาราง คอลัมน์และแถว
เคยมีนักศึกษาผู้หนึ่งกล่าวแก่ผู้เขียนว่า “ตำราฐานข้อมูลนั้นหนาหนักแลยืดยาวนัก จะสรุปใจความสำคัญให้เหลือเพียงประโยคเดียวได้หรือไม่?” ผู้เขียนตอบว่าได้ และเฉลยว่า “ฐานข้อมูลคือตาราง คอลัมน์และแถว” นี่คือใจความสำคัญทั้งหมดของฐานข้อมูล หากท่านเข้าใจประโยคนี้ก็นับว่าท่านเข้าใจเรื่องฐานข้อมูลแล้ว

ฐานข้อมูลหรือดาต้าเบส (database) คือส่วนบนสุดหรือใหญ่สุด ภายในดาต้าเบสจะประกอบด้วยตาราง (table) จำนวนมาก ในหนึ่งตารางมีองค์ประกอบสองส่วนคือคอลัมน์ (Column) และแถว (Row) ยกตัวอย่างเช่น ภาพ 1-1 คือฐานข้อมูลชื่อ MotionPicture ทำหน้าที่เก็บข้อมูลเกี่ยวแก่ภาพยนตร์ กรอบสี่เหลี่ยมแต่ละกรอบคือตาราง ฐานข้อมูลนี้เป็นฐานข้อมูลเล็กๆ ที่มีตารางเพียงห้าตาราง ในการใช้งานจริงท่านอาจพบฐานข้อมูลที่มีตารางหลายร้อยหรือหลายพันตาราง

 

ภาพ 1-1: ฐานข้อมูล MotionPicture

 

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

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

ในหนังสือนี้คำว่า แถว ทูเพิล เรคคอร์ด และ row ถือเป็นคำเดียวกันหมด แต่ผู้เขียนจะใช้คำว่า “แถว” เป็นหลัก

 

ภาพ 1-2 ตารางเก็บข้อมูลโรงแรมต่างๆ ในเขตพระนคร

 

ต่อไปมาดูความหมายของคำว่าคอลัมน์บ้าง  คอลัมน์คือสิ่งที่ทำหน้าที่แบ่งแถวออกเป็นส่วนๆ ตามคุณสมบัติของข้อมูลที่จะเก็บ ยกตัวอย่างเช่น แถวข้อมูลทั้งหมดในภาพ 1-2 ถูกแบ่งออกตามแนวตั้ง คอลัมน์แรกชื่อ EntryID คอลัมน์ที่สองชื่อ Hotel Name ฯลฯ คอลัมน์แต่ละคอลัมน์อาจมีชนิดข้อมูลต่างกันหรือเหมือนกันก็ได้ ยกตัวอย่างเช่น คอลัมน์ EntryID มีชนิดข้อมูลแบบจำนวนเต็ม ขณะที่คอลัมน์ Location มีชนิดข้อมูลเป็นสตริงและคอลัมน์ Fee มีชนิดข้อมูลแบบจำนวนเงิน

ในหนังสือนี้คำว่า คอลัมน์ แอตทริบิวต์ และฟิลด์ มีความหมายเหมือนกันหมด แต่ผู้เขียนจะใช้คำว่า “คอลัมน์” เป็นหลัก คำเหล่านี้แท้จริงมีความหมายแตกต่างกันดังท่านจะได้เรียนในบทต่อๆ ไป

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


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

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

ข้อมูลที่องค์กรเหล่านี้ต้องเก็บและจัดการคือ
•    ข้อมูลการผลิต
•    ข้อมูลบัญชี
•    ข้อมูลผู้ป่วย
•    ข้อมูลนักศึกษา
•    ข้อมูลแผนงาน

ภาพ 1-3: ความแต่ต่างระหว่างฐานข้อมูลแบบ OLTP

 

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

ฐานข้อมูลอีกชนิดหนึ่งใช้เก็บข้อมูลเพื่อช่วยในการตัดสินใจ ยกตัวอย่างเช่น ผู้จัดการแผนกสินค้าคงคลังใช้ฐานข้อมูลเพื่อช่วยในการตัดสินใจว่าต้องสั่งสินค้าเพิ่มหรือไม่ โดยตรวจดูว่าสินค้ามีจำนวนต่ำกว่าหรือถึงระดับที่กำหนดหรือไม่ ฐานข้อมูลที่ใช้เพื่อการวิเคราะห์นี้เรียกว่า "คลังข้อมูล" หรือดาต้าแวร์เฮาส์ (data warehouse) เก็บข้อมูลที่ประมวลจากฐานข้อมูล OLTP อีกต่อหนึ่ง การวิเคราะห์นี้บางครั้งเรียกว่าการวิเคราะห์แบบออนไลน์ (Online Analytical Processing ย่อ OLAP)

 


ภาพ 1-4: Data Warehouse

 

ภาคผนวก ง อภิธานศัพท์ : ตอน 5

 

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

ภาคผนวก ง อภิธานศัพท์ : ตอน 5

 

Software Development Kit (SDK)    ชุดเครื่องมือสำหรับพัฒนาโปรแกรม   
Solid-State Disk    ฮาร์ดดิสก์ที่ทำจากสารกึ่งตัวนำ   
Specification    ข้อกำหนดความต้องการ    
Sproc    Stored Procedure   
SQEC    Sub-Queries for Existence Checking    
SQL Injection    คำสั่งร้ายที่ผู้ไม่ประสงค์ดีใส่เข้าสู่ระบบ   
SQL Server Agent     ทำหน้าที่เหมือนออโตรันในแผ่นซีดี    
SQL Server Language Resources Pakcage    ส่วนสนับสนุนภาษาต่างๆ   
SRA    Set Relational Algebra    
SSAS    Analysis services   
SSIS    Integration Services    
SSMS    โปรแกรม Microsoft SQL Server Management Studio    
SSQ    Scalar Sub-Query    
SSRS    Reporting Services    
SSRS    Reporting Services    
SSRSDB    SQL Server Report Database    
Storage Engine      เอ็นจินจัดการหน่วยบันทึก  คือโปรแกรมใน SQL2008  หน้าที่อ่านหรือบันทึกข้อมูลในฮาร์ดดิสก์   
Stored Procedure     คิวรีที่เก็บไว้ในฐานข้อมูลเพื่อให้เรียกใช้งานได้ตลอดเวลา    
Structured Query Language (SQL)    "เป็นชื่อภาษาหนึ่งและอ่านออกเสียงว่า ""เอส-คิว-เอล"""   
Sub-Queries for Existence Checking     คิวรีย่อยเพื่อการตรวจหาค่า    
Subroutine    โปรแกรมย่อย    
Surrogate Key    กุญแจแทน เหมือน Unique Key   
Syntax    ความสัมพันธ์ระหว่างถ้อยคำในประโยค   
sysadmin    System Administrator ผู้ดูแลระบบ   
System Administrator    ผู้ดูแลระบบ   
Table    ตาราง ดู Relational    
Table Scan     การค้นหาแบบกวาดดูทั้งตาราง  เป็นวิธีพื้นฐานที่สุดและช้าที่สุด    
Table Variable    ตัวแปรแบบตาราง    
Tablix    ตารางแบบ Table และแบบ Matrix   
Tabular Report    รายงานที่แสดงเป็นตารางมีคอลัมน์และแถวเหมือนข้อมูลที่ได้จากการคิวรี    
TD    Transitive Dependence    
Temporary Table     ตารางชั่วคราว   
Terabyte    ล้านล้านไบต์   
Test environment    สภาพแวดล้อมเพื่อศึกษาการทำงานและการทดสอบ    
Text file    แฟ้มที่เก็บข้อมูลตัวอักษรธรรมดา   
Thread    เธรด ภาวะการทำงานของโปรแกรมหนึ่ง session   
Three-Tier     สถาปัตยกรรมไคลแอนท์/เซอฟเวอร์แบบสามชั้น    
Tight coupling    ฐานข้อมูลเชื่อมต่อกับแอพลิเกชันอย่างแน่นหนา   
TP    Trivial Plan    
Transaction Table     ตารางธุรกรรม   
Transactional Database Model    แบบจำลองข้อมูลที่มีผู้ใช้จำนวนมากเข้าถึงข้อมูลจำนวนน้อยๆ แต่ทำอย่างถี่ๆ    
Transact-SQL     ภาษา SQL สำหรับใช้งานใน SQL2008   
Transitive Dependence     การพาดพิงทางอ้อม    
Transparency    ผู้ใช้ได้รับข้อมูลจากฐานข้อมูลผ่านแอพลิเกชัน จึงไม่เห็นการทำงานหรือโครงสร้างของฐานข้อมูล   
Tree Diagram     แผนภูมิต้นไม้    
Trigger    คือโค้ดที่จะทำงานเองโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่าง    
Trivial Plan     แผนปลีกย่อย เป็น CBP พื้นฐานสำหรับคิวรีง่ายๆ ทั่วไป   
TS    Table Scan    
TSID    T-SQL Integrated Debugger   
T-SQL    ภาษา SQL สำหรับใช้งานใน SQL2008   
T-SQL Integrated Debugger    ส่วนช่วยหาบักใน SSMS   
TT    Transaction Table    
TT    Temporary Table    
Tuple    แถวข้อมูลในตาราง   
UC    Union Compatibility    
UCT    Union Compatible Tables    
UDA    User Defined Aggregate    
UDT    User Defined Type ชนิดข้อมูลที่ผู้ใช้นิยามเอง   
UK    Unique Key   
UNICODE    รหัสแทนตัวอักษรชนิดหนึ่ง   
Union Compatible    ความเข้ากันได้ในทางยูเนียน    
Union Compatible Tables     ตารางสองชุดที่มีความเข้ากันได้ในทางยูเนียน    
Unique Key    กุญแจเอกลักษณ์ ทำหน้าที่แยกแยะความแตกต่างระหว่างข้อมูลแถวต่างๆ ในตารางโดยค่าของกุญแจจะไม่มีการซ้ำกัน   
User Defined Aggregate     ฟังก์ชันแบบเอกริเกตที่ผู้ใช้นิยามขึ้นเอง    
User Defined Type     ชนิดข้อมูลที่ผู้ใช้นิยามขึ้นเอง    
User Defined Type (UDT)    ชนิดข้อมูลที่ผู้ใช้สร้างขึ้นโดยนำชนิดข้อมูลพื้นฐานมาจัดรูปแบบเป็นโครงสร้างที่แน่นอน เช่น structure   
Variable    ตัวแปร   
Variant    ตัวแปรแบบวาเรียนใน VB6  สามารถเปลี่ยนไทป์ไปมาได้   
VD    Virtual Directory   
Venn Diagram     แผนภูมิวงกลม ที่ได้รับการคิดค้นโดย ยอนห์ เวนน์    
Version    รุ่นของ SQL2008   
View    นิยามคิวรีที่นำไปใช้แทนตารางแต่ไม่ได้เก็บข้อมูลใดๆ ไว้ภายใน   
View    คิวรีภาษา T-SQL ทำหน้าที่เป็นตารางเสมือนฉายแสดงข้อมูลจากตารางเดียวหรือจากหลายๆ ตาราง    
View Designer     วิวดีไซน์เนอร์ เครื่องมือช่วยออกแบบสร้างวิว   
Virtual Directory    โฟลเดอร์เสมือน คือไม่ได้มีอยู่จริง   
Virtual Table    ตารางเสมือน   
VNA    Von Neumann Architecture    
Von Neumann Architecture     สถาปัตยกรรมแบบ ฟอน นอยมาน    
Web application    เว็บแอพลิเกชัน หรือโปรแกรมที่ทำงานผ่านเว็บ ยกตัวอย่างเช่นการขายสินค้าผ่านอินเตอร์เน็ต และการทำธุรกรรมแบบออนไลน์   
Web Server    เว็บเซอฟเวอร์ คอมพิวเตอร์ซึ่งทำหน้าที่เป็นผู้ให้เชื่อมต่อกับเครือข่าย   
Wild card    เครื่องหมาย % ทำหน้าที่แทนกลุ่มตัวอักษรใดๆ    
Windows Authentication     ระบบกำหนดสิทธิของวินโดวส์เพื่อลงชื่อเข้าใช้งาน    
เซมิโคลอน    เครื่องหมายระบุจุดสิ้นสุดของบรรทัดคำสั่ง   
เซสชัน     session   
เซอฟเวอร์    Server   
เอกซ์เทนท์     Extent   
แคช     Cache กลไกเพื่อการทดข้อมูลไว้ในแรมหรือฮาร์ดดิสก์   
แอกริเกต     Aggregate   
แอดมิน    System Administrator หรือ Database  Administrator   
แอตทริบิวต์    โครงสร้างคอลัมน์ของตาราง   
แอสเซมบลี    ไฟล์ที่ถูกคอมไพล์เป็นภาษา MSIL อัดรวมอยู่เป็นไฟล์เพียงไฟล์เดียว   
แอสเซมบลี มานิเฟสต์    Assembly Manifest   
โกดังข้อมูล    Data warehouse   
โมเลกุล    การเก็บค่าหลายๆ ค่าไว้ภายในคอลัมน์เดียว Molecule   
โรวเซต     ค่าเป็นแถวๆ หลายๆ แถวเหมือนข้อมูลในตาราง   
ไคลแอนเซอฟเวอร์    แอพลิเกชันที่แบ่งเป็นส่วนผู้ให้บริการและส่วนผู้ใช้บริการ    
ไคลแอนท์    Client   
ไมโครซอฟต์เอกเซส     Microsoft Access   
กฎทางธุรกิจ    นิยามของกระบวนการ คำจำกัดความและข้อกำหนดต่างๆ ที่จำเป็นต้องนำมาใช้เพื่อให้หน่วยงานสามารถทำงานได้บรรลุเป้าหมาย   
การโจมตีแบบ SQL Injection     การที่ผู้ไม่ประสงค์ดีใช้โปรแกรมฝั่งไคลแอนท์สอดแทรกสคริปต์คำสั่ง SQL โดยมีจุดมุ่งหมายเพื่อสร้างความเสียหายให้แก่ฐานข้อมูล   
การพาดพิงเป็นวงรอบ     Cyclic Dependency    
การพาดพิงทางอ้อม     Transitive Dependence    
การพาดพิงสมบูรณ์     Full Functional Dependence    
การพาดพิงหลายค่า     Multiple valued dependency    
คอมเมนท์     ข้อความที่ใส่ไว้ภายในโค้ด แต่ไม่ได้เป็นส่วนหนึ่งของโค้ดเพราะโปรแกรม SQL2008 จะไม่นำข้อความเหล่านั้นไปตีความปฏิบัติ    
คอมโพเนนท์     Component   
คำจาร์กอน    ถ้อยคำที่ใช้เฉพาะคนที่ประกอบอาชีพเหล่าหนึ่งๆ   
ซินแท็กซ์     Syntax   
ดรรชนี    สำเนาของข้อมูลบางส่วนในฐานข้อมูลมีไว้ค้นหาสิ่งที่ต้องการได้อย่างรวดเร็ว   
ดรรชนีเผื่อเลือก     Alternate Indexing    
ดาต้าเบสเซอฟเวอร์    Database Server   
ดาต้าเบสเอ็นจิน     โปรแกรมทำหน้าที่จัดการทุกอย่างที่เกี่ยวข้องกับฐานข้อมูล   
ตัวแปร     (Variable) คือหน่วยเก็บข้อมูลที่ท่านประกาศไว้ใช้ทดข้อมูลชั่วคราวขณะโปรแกรมทำงาน    
ตัวแปรแบบตาราง     Table Variable   
ตัวกำหนด    Determinant   
ตาราง     เซตที่มีโครงสร้างประกอบด้วยแอตทริบิวต์และทูเพิล   
ตารางแฮช    การนำข้อมูลมาจัดเรียงใหม่ให้มีโครงสร้างตามอัลกอริทึมของการแฮช   
ตารางธุรกรรม    ตารางเก็บข้อมูลที่มีพลวัต   
ตารางสืบ     Derived table    
ทูเพิล    แถวข้อมูลในตาราง   
นอร์มัลฟอร์มแบบฉาย     Projection Normal Form    
นอร์มัลฟอร์มแบบบอยซ์-คอดด์     การทำให้คอลัมน์ที่เป็นตัวกำหนดทั้งหมดในตารางคือกุญแจเสนอ   
นอร์มัลฟอร์มกุญแจโดเมน    การทำนอร์มัลไลเซชันระดับสูงสุด   
นอร์มัลฟอร์มระดับที่สอง     ทำให้คอลัมน์ที่ไม่ใช่กุญแจเป็น FFD ของคอลัมน์ที่เป็น PK และห้ามไม่ให้มี PD   
นอร์มัลฟอร์มระดับที่สาม     กำจัด TD กับคอลัมน์ที่เป็น PK    
นอร์มัลฟอร์มระดับที่สี่     การกำจัด MVD   
นอร์มัลฟอร์มระดับที่หนึ่ง     ตัดข้อมูลที่ซ้ำกันเป็นกลุ่ม ทำให้สามารถจำแนกข้อมูลทุกแถวในทุกตารางได้ด้วย PK   
นอร์มัลฟอร์มระดับที่ห้า     นอร์มัลฟอร์มแบบฉาย    
นอร์มัลฟอร์มระดับศูนย์    ภาวะที่ยังไม่ได้ทำนอร์มัลไลเซชัน   
ฟังก์ชันเชิงตัวประกอบ    factorial function   
ฟังก์ชันแบบฝังตัว    Build-in functions   
ฟังก์ชันดีเลย์     Delay Routine   
ฟังก์ชันสตริง     ฟังก์ชันเพื่อจัดการหรือประมวลผลข้อความตัวอักษร โดยข้อมูลที่ป้อนให้จะเป็นสายอักขระ (สตริง) หรือตัวอักษรตัวเดียวก็ได้ ส่วนผลลัพธ์ที่ฟังก์ชันคืนค่ามาอาจเป็นตัวเลขหรือตัวอักษรก็ได้    
ฟิลด์    ข้อมูลหนึ่งชิ้นที่สัมพันธ์กับตาราง สมาชิกเก็บข้อมูลของคลาส   
ภาษา MDX     ภาษาเพื่อคิวรีข้อมูลใน SSAS   
มิดเดิลแวร์      Middleware   
รีเคอร์ซีฟ    โค้ดที่อ้างถึงตัวเอง   
วากยสัมพันธ์    Syntax   
วินโดวส์เอกซ์พลอเรอร์     Windows Explorer   
สเกลาร์    ค่าเดี่ยว   
สเกลาร์     scalar ค่าเดี่ยว   
สโตอร์โพรซีเชอร์    Stored Procedure    
สพร็อกซ์    Sproc คำเรียกย่อของ Stored procedure   
ออเปอแรนด์    ตัวถูกดำเนินการ   
ออพเจ็กต์เอ็กซ์พลอเรอร์     Object Explorer    
ออราเคิล    RDBMS ของบริษัท Oracle Corporation   
อะตอม    "เป็นภาษากรีกแปลว่า ""แบ่งแยกไม่ได้"" Atom"   
อะนอมาลิ    Anomaly ความผิดปรกติที่ไม่พึงประสงค์    
อัลกอรึทึม    หลักการทำงานของโปรแกรม   
อินสแตนซ์     Instance
   

 

ภาคผนวก ง อภิธานศัพท์ : ตอน 3

 

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

ภาคผนวก ง อภิธานศัพท์ : ตอน 3

 

IDE    Integrated Development Environment    
IEnumerable    อินเตอร์เฟสที่ทำให้เกิดการวนซ้ำในกลุ่มออพเจ็กต์ได้   
IGrouping    สิ่งทำหน้าที่แสดงออพเจ็กต์คอลเลคชันทีมีกุญแจร่วมกัน   
Implicit Typing Variable Declaration    การระบุชนิดข้อมูลโดยนัย   
Index    ดรรชนี   
Index Organized Table     ตารางดรรชนี    
Index Seek     การค้นแบบด่วนด้วยดรรชนี   
Indexed Sequential Access Method     โครงสร้างข้อมูลที่ใช้การเข้าถึงแบบไล่จากโหนดแรกเรื่อยไปถึงโหนดสุดท้าย   
Information Technology (IT)    ไอที วิทยาการสารสนเทศ   
Inline Table-Valued Function    TVF แบบ Inline    
Instance    การทำงานของโปรแกรมหนึ่งชุด   
Integrated Development Environment     สภาพแวดล้อมแบบบูรณาการร่วมเพื่อพัฒนาซอฟต์แวร์   
Integration services     เซอร์วิสซึ่งทำหน้าที่รวบรวมข้อมูลจากหลายๆ แหล่งเพื่อนำมาสังเคราะห์ให้อยู่ในรูปแบบที่นำไปใช้ได้อย่างมีประสิทธิภาพ    
IOT    Index Organized Table    
IR    Referential Integrity    
ISAM    Indexed Sequential Access Method    
ISK    Index Seek    
Isomer    ไอโซเมอร์    
ITVD    Implicit Typing Variable Declaration   
ITVF    Inline Table-Valued Function   
Key Lookup     การค้นของคิวรีที่มีดรรชนีไม่ครบ   
Key Performance Indicators     ตัวชี้ประสิทธิภาพหลัก   
Keyword    คำสั่งหรือคำเฉพาะ   
KPI    Key Performance Indicators    
Lambda Expression     นิพจน์แลมดา การใช้ตัวกระทำ => ช่วยให้เขียนโค้ดได้กระชับอ่านง่ายขึ้นในหลายๆ บริบท (เช่นเมื่อทำดีลิเกต)   
Language Interacted Query     ภาษาคิวรีแบบบูรณาการ   
Lazy Writer    โปรแกรมเขียนข้อมูลที่ถูกแก้ไขจากแรมไปยังฮาร์ดดิสก์   
Lazywriter    โปรเซสของ SQL2008 ทำหน้าที่ตรวจสอบว่า EP ในแคชหมดอายุหรือยัง   
LE    Linear Expression    
LE    Lambda Expression    
Lexicographic    การให้ค่าน้ำหนักของตัวอักษรเรียงตามพจนานุกรม    
Linear Expression     นิพจน์เชิงเส้น    
Linear Notation     สัญลักษณ์เชิงเส้น    
LINQ    Language Integrated Query คิวรีแบบไทป์เซฟเมนเนจโค้ด   
LINQ to DataSet    ชนิดของ LINQ ที่ใช้เพื่อคิวรีดาต้าเซต   
LINQ to Entities    ชนิดของ LINQ ที่ใช้เพื่อคิวรีแบบจำลองข้อมูล (ไม่สนใจฐานข้อมูลในฉากหลัง)   
LINQ to Object    ชนิดของ LINQ ที่ใช้เพื่อคิวรีกลุ่มหรือชุดออพเจ็กต์ในหน่วยความจำ (Data Collection)   
LINQ to SQL    ชนิดของ LINQ ที่ใช้เพื่อคิวรีฐานข้อมูลเช่นตารางและวิว   
LINQ to XML    ชนิดของ LINQ ที่ใช้เพื่อคิวรีข้อมูลที่เป็นโครงสร้าง XML    
LN    Linear Notation    
LO    Logical Operator    
Lock    กลไกที่ใช้เพื่อป้องกันการขัดแย้งกันของข้อมูลเมื่อมีผู้ใช้มากกว่าหนึ่งรายเปลี่ยนแปลงข้อมูลเดียวกันพร้อมๆ กัน    
Logical Operator     ตัวดำเนินการทางตรรกะ  ใช้เพื่อแสดงการทำนายหรือคาดการณ์กระบวนการที่จะเกิดขึ้น   
Loose coupling    เชื่อมหลวม ระบบงานสองระบบที่เป็นอิสระต่อกัน แต่มีความสัมพันธ์ต่อกันอย่างหลวมๆ  เช่น ฐานข้อมูลเชื่อมต่อกับแอพลิเกชันอย่างหลวมๆ   
Managed Code     โปรแกรมที่สร้างจากภาษา CLR อย่าง C# โค้ดที่ถูกดูแลจัดการโดย .NET CLR   
Materialized views    ตารางข้อมูลชั่วคราวที่ถูกสร้างจากตารางจริงและมีข้อมูลเก็บไว้จริงๆ   
Matrix Report    รายงานที่มีลักษณะคล้าย Pivot table ในโปรแกรม Excel    
MC    Managed-Code    
Metadata    เมตาดาต้า ข้อมูลเกี่ยวกับข้อมูล คือข้อมูลที่ใช้พรรณนาข้อมูลอื่นๆ   
Microsoft Access    โปรแกรมฐานข้อมูลในเดสก์ท็อป   
Microsoft Office SharePoint     เทคโนโลยีของบริษัทไมโครซอฟต์ เพื่อให้พนักงานในองค์กรติดต่อสื่อสารและใช้เอกสารร่วมกันผ่านเครือข่ายและอินเตอร์เน็ตได้ง่าย    
Microsoft SQL Management Studio     SSMS   
Microsoft SQL Server Management Studio     ส่วนติดต่อกับผู้ใช้เพื่อให้ใช้งาน SQL2008 ได้ในลักษณะเป็นกราฟิก   
Microsoft Visual Studio     โปรแกรม ไมโครซอฟต์วิสชวลสตูดิโอ    
Middle tier    ชั้นตัวกลาง   
Middleware    คอมพิวเตอร์และซอฟต์แวร์ที่ทำหน้าที่เป็นตัวกลางระหว่างไคลแอนท์และเซอฟเวอร์   
MSIL    Microsoft Intermediate Language ภาษากลางในสถาปัตยกรรมดอตเน็ต   
MSOSP    Microsoft Office SharePoint    
MSVC#EE    Microsoft Visual C# 2008 Express Edition    
MSVS    Microsoft Visual Studio    
MSVS2008    Microsoft Visual Studio 2008    
MTA    Multi-tired Architecture    
Multi Thread    การประมวลผลแบบหลายสาย    
Multiple valued dependency     การพาดพิงหลายค่า    
Multi-set     ตารางที่มีทูเพิลซ้ำกัน   
Multi-tier    สถาปัตยกรรมแบบหลายชั้น  ไคลแอนท์รันแอพลิเกชันทำงานประสานกับมิดเดิลแวร์หลายตัว   
Multi-tired Architecture     สถาปัตยกรรมแบบหลายระดับ   
MVD    Multiple valued dependency    
MySQL    RDBMS ของบริษัท MySQL AB   
native machine code    โค้ดภาษาเครื่องอยู่ในรูปของไฟล์ .exe หรือ .dll     
Native Queries    คิวรีแบบไทป์เซฟ   
NCI    Non-Clustered Index    
NCICT    Non-Clustered Index on Clustered Table    
NCIH    Non-Clustered Indexes on Heap   
NDF    Non-Deterministic Function    
NDM    Network Database Model แบบจำลองฐานข้อมูลแบบเครือข่าย   
Network database model    แบบจำลองข้อมูลที่เก็บข้อมูลเป็นไฟล์แบบเครือข่าย   
NFA    .NET Framework Assembly    
Non-Clustered Index     ดรรชนีไม่เป็นคลัสเตอร์    
Non-Clustered Index on Clustered Table     ดรรชนีไม่เป็นคลัสเตอร์ใน CT    
Non-Clustered Indexes on Heap    ดรรชนีไม่เป็นคลัสเตอร์ในฮีพ    
Non-Deterministic Function     ฟังก์ชันแบบคืนค่าไม่ตายตัว   
Non-Procedural     การคิดแบบไม่เน้นกระบวนการ    
Normal Form    ขั้นตอนต่างๆ ของการทำ Normalization   
Normalization    กระบวนการลดทอนความซ้ำซ้อนข้อข้อมูล หรือตัดส่วนที่ซ้ำกันโดยไม่จำเป็นในตารางออกไป   
Notification Services     บริการแจ้งเตือน    
NP    Non-Procedural    
NULL    ค่าที่ไม่มีค่า    
O/RM    Object / Relational Mapping    
Object / Relational Mapping     การจับคู่ระหว่างออพเจ็กต์กับความสัมพันธ์ (ตาราง)   
Object Explorer     องค์ประกอบของ SSMS ทำหน้าที่แสดงออพเจ็กต์ต่างๆ ในฐานข้อมูล    
Object Initializes     ตัวกำหนดค่าเริ่มต้นให้ออพเจ็กต์ สิ่งที่ช่วยให้เขียนโค้ดได้กระชับอ่านง่ายขึ้น เพราะสามารถกำหนดค่าเริ่มต้นให้พรอพเพอร์ตีได้ในบรรทัดเดียวกับการนิวออพเจ็กต์   
Object Oriented Database Model    แบบจำลองฐานข้อมูลวัตถุวิธี    
Object Oriented Programming     การโปรแกรมแบบวัตถุวิธี   
ODBC    ตัวเชื่อมต่อ SQL2008 ไมโครซอฟต์เอ็กเซล     
ODM    Object Database Model แบบจำลองฐานข้อมูลแบบวัตถุ   
OE    Object Explorer    
OI    Object Initializes    
OLAP    Online Analytical Processing   
OLE DB    ตัวเชื่อมต่อ SQL2008 กับไมโครซอฟต์เอ็กเซส    
OLTP    Online Transaction Processing   
On-demand Report    การสร้างรายงานสดทุกครั้งเมื่อผู้ใช้เรียกดู    
Online transaction processing (OLTP)    ฐานข้อมูลเพื่อการประมวลผลทางธุรกรรม   
OO    Ordering Operator    
OODM    Object Oriented Database Model แบบจำลองฐานข้อมูลวัตถุวิธี   
OOP    Object Oriented Programming การเขียนโปรแกรมวัตถุวิธี   
Operation System     ระบบปฏิบัติการ   
Operator    ตัวดำเนินการ   
OQL    Object Query Language   
Ordering Operator     ตัวดำเนินการเรียงข้อมูล    
ORDM    Object-Relational Database Model แบบจำลองฐานข้อมูลแบบวัตถุสัมพันธ์   
Orperand    ตัวถูกดำเนินการ   
Page    หน่วยเก็บข้อมูลพื้นฐานในโปรแกรม SQL2008 ระดับรองจากเอกซ์เทนท์    
Page Split    การแบ่งเพจ    
Parallel programming    การประมวลผลแบบคู่ขนาน   
Parameter    พารามิเตอร์ ค่าที่เมธอดหรือฟังก์ชันรับมาจากผู้เรียก   
Parameterized view    วิวแบบมีพารามิเตอร์    
Parent table    ตารางที่มีตารางลูกหนึ่งหรือหลายๆ ตารางในระดับต่ำกว่า   
Parent Table     ตารางซึ่งมีข้อมูลที่ถูกอ้างถึงใน CT