ฐานข้อมูลเบื้องต้น : ตอน 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

 

โฆษณา

ใส่ความเห็น

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: