แบบจำลองฐานข้อมูล: ตอน 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)

 

โฆษณา

ใส่ความเห็น

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: