หากคุณเคยใช้ spreadsheet เช่น Microsoft Excel คุณเข้าใจแล้วว่าข้อมูลจัดเก็บในตารางได้อย่างไร ฐานข้อมูล (Database) ก็ใช้ตารางเช่นกัน เพื่อจัดเก็บ จัดการ และดึงข้อมูล
คุณใช้ฐานข้อมูลอยู่แล้ว (แต่อาจไม่รู้)
คุณพบพลังของฐานข้อมูลในชีวิตประจำวันตลอดเวลา เช่น เมื่อ login เข้าธนาคารออนไลน์ ธนาคารตรวจสอบ username/password แล้วแสดงยอดเงินและธุรกรรม ฐานข้อมูลทำงานเบื้องหลัง: ตรวจสอบข้อมูล login ให้สิทธิ์เข้าถึง แล้วกรองธุรกรรมแสดงตามวันที่หรือประเภทที่คุณต้องการ
ฐานข้อมูลต่างจาก Spreadsheet อย่างไร?
ฐานข้อมูลเก่งกว่าที่ จัดเก็บข้อมูลปริมาณมาก และ จัดการ/จัดการข้อมูล หลายรูปแบบ ที่ spreadsheet ทำได้ยากหรือเป็นไปไม่ได้:
- ดึงข้อมูล (retrieve) ทุกรายการที่ตรงเงื่อนไข
- อัปเดตรายการจำนวนมากพร้อมกัน (bulk update)
- อ้างอิงข้ามตาราง (cross-reference records in different tables)
- คำนวณรวมซับซ้อน (complex aggregate calculations)
องค์ประกอบของฐานข้อมูล
ฐานข้อมูลประกอบด้วยหลาย ตาราง (tables) เหมือน Excel: มี คอลัมน์ (columns) และ แถว (rows)
- แต่ละคอลัมน์ = attribute (ลักษณะ/คุณสมบัติ)
- แต่ละแถว = record (เรคคอร์ด/ระเบียน) เดียว
ตัวอย่าง: ตารางเก็บชื่อ-เบอร์โทรพนักงาน 50 คน บริษัท X
- คอลัมน์: “FirstName”, “LastName”, “TelephoneNumber”
- แต่ละแถว = ข้อมูลของ 1 คน
- รวม 50 แถวข้อมูล + 1 แถวหัวข้อ (header row)
แต่ละตารางต้องมี ชื่อที่ไม่ซ้ำกัน และต้องมี Primary Key column เพื่อระบุ identity เฉพาะของแต่ละแถว (record)
ข้อมูลในฐานข้อมูลได้รับการคุ้มครองโดย Constraints (ข้อจำกัด) เพื่อบังคับกฎให้ข้อมูลสมบูรณ์:
- Unique constraint: Primary key ห้ามซ้ำ
- Check constraint: ควบคุมประเภทข้อมูล เช่น ชื่อรับข้อความธรรมดา แต่หมายเลขประจำตัวประชาชนต้องเป็นตัวเลขชุดเฉพาะ
คุณสมบัติทรงพลังที่สุด: สร้าง ความสัมพันธ์ (relationships) ระหว่างตารางด้วย Foreign Keys
ตัวอย่าง: ตาราง Customers และ Orders ลูกค้าแต่ละคน link ไป order ใน Orders table ซึ่งอาจ link ไป Products table อีก ทำให้ออกแบบง่าย จัดกลุ่มข้อมูลตาม category แทนที่จะ塞ทั้งหมดในตารางเดียว
Database Management System (DBMS)
ฐานข้อมูลเพียงเก็บข้อมูล เพื่อใช้งานจริง ต้องมี DBMS = ฐานข้อมูล + ซอฟต์แวร์ + ฟังก์ชันสำหรับดึง/ใส่ข้อมูล DBMS สร้างรายงาน บังคับกฎ constraints และดูแล schema โดยไม่มี DBMS ฐานข้อมูลก็แค่ bits และ bytes ไม่มีความหมาย
💡 อยากลองสร้างฐานข้อมูล? เริ่มต้นที่ Microsoft Access ได้เลย
คำถามที่พบบ่อย (FAQ)
- Database Schema คืออะไร?
- โครงสร้างของฐานข้อมูล ระบุว่าข้อมูล/อ็อบเจ็กต์ไหนเข้าสู่ระบบได้ และกำหนดความสัมพันธ์ระหว่างพวกมัน ใช้ SQL กำหนด schema ทั่วไป
- Relational Database คืออะไร?
- จัดเก็บข้อมูลที่เกี่ยวข้องกัน จัดระเบียบเป็นตาราง 1 หรือหลายตาราง แต่ละตารางมี unique key ระบุตัวตน
- Database Query คืออะไร?
- คำขอข้อมูลจากฐานข้อมูล ข้อมูลมาจาก 1 หลายตาราง หรือจาก query อื่นๆ เช่น พิมพ์ค้นหา Google = ส่ง query
- Database Record คืออะไร?
- ชุดข้อมูลที่จัดเก็บในตาราง เรียกอีกอย่างว่า Tuple
- Foreign Key ในฐานข้อมูลคืออะไร?
- องค์ประกอบร่วม link ข้อมูล 2 ตาราง Foreign key อ้างอิง primary key ของอีกตาราง (parent table) ตารางที่มี foreign key เรียก child table
- Entity ในฐานข้อมูลคืออะไร?
- วัตถุที่มีอยู่ในฐานข้อมูล อาจเป็น คน สถานที่ หน่วย หรือแนวคิดนามธรรม ที่ต้องการจัดเก็บข้อมูล เช่น ฐานข้อมูลโรงเรียนมี entities: นักเรียน ครู วิชา