Glossary of Common Database Terms

19-Feb-20

คัมภีร์เทพ IT

See the original english version Click here!

 

ในบทความนี้จะกล่าวถึง อภิธานศัพท์ของข้อกำหนดและแนวคิดที่ใช้โดยรวมใน Database ทุกประเภท หากคุณต้องทำงานกับ Database การรู้จักคำศัพท์เหล่านี้ไว้ จะเป็นประโยชน์ในการทำงานของคุณอย่างยิ่ง ในบทความนี้จะมาบอกถึง อภิธานศัพท์ของ Database ที่คุณควรเรียนรู้ไว้

1. ACID

ACID Model ของ Database Design เป็นหลักการเพื่อใช้ยืนยันถึงความถูกต้องของข้อมูล โดยประกอบไปด้วย

  • Atomicity: แต่ละ Database Transaction จะต้องเป็นไปตามกฏ All-or-Nothing ซึ่งหมายความว่า หากส่วนใดส่วนหนึ่งของ Transaction เกิด Fail ขึ้นมา Transaction ทั้งหมดก็จะ Fail ไปด้วย
  • Consistency: แต่ละ Database Transaction จะต้องเป็นไปตามกฏที่กำหนดไว้ทั้งหมดของ Database จะไม่อนุญาตให้ Transaction ใด ๆ ที่ละเมิดกฎเหล่านั้นได้
  • Isolation: แต่ละ Database Transaction จะเกิดขึ้นโดยอิสระจาก Transaction อื่น ๆ ตัวอย่างเช่น หากมีการ Submit Transaction พร้อม ๆ กันหลาย Transaction ตัว Database จะป้องกันไม่ให้เกิดการรบกวนระหว่างกัน
  • Durability: แต่ละ Database Transaction จะยังคงอยู่อย่างถาวรแม้ Database จะ Fail ก็ตาม ผ่านการสำรองข้อมูล (Backups) หรือวิธีการอื่น ๆ

2. Attribute

Database Attribute เป็นข้อมูลที่แสดงถึงคุณสมบัติของ Database Entity โดยที่ Attribute ก็คือ Column ใน Database Table

3. Authentication

Database ใช้ Authentication (การยืนยันตัวตน) เพื่อให้แน่ใจว่า User ที่ได้รับอนุญาตเท่านั้นถึงจะสามารถเข้าถึง Database หรือส่วนหนึ่งส่วนใดของ Database ได้ ตัวอย่างเช่น Administrators อาจได้รับอนุญาตให้สามารถ Insert หรือ Edit ข้อมูลในขณะที่พนักงานคนอื่น ๆ สามารถดูข้อมูลได้เท่านั้น ซึ่งการที่จะผ่านขั้นตอนของ Authentication จะใช้ Usernames และ Passwords

4. BASE Model

BASE Model ได้รับการพัฒนาขึ้นมาเพื่อเป็นทางเลือกแทน ACID Model เพื่อตอบสนองความต้องการของ noSQL Databases ซึ่งข้อมูลจะไม่ถูกจัดโครงสร้างเหมือนอย่างที่ใช้กับ Relational Databases โดยมีหลักการเบื้องต้นดังนี้:

  • Basic Availability: Database จะต้องพร้อมใช้งานและสามารถใช้งานได้ ในบางครั้งก็ได้รับการสนับสนุนจาก Data Replication ที่กระจายข้ามหลาย ๆ Servers
  • Soft State: เป็นสิ่งที่ตรงกันข้ามกับ ACID Model ซึ่ง้ขมงวดในเรื่อง Consistency โดยหลักการนี้ระบุว่า ข้อมูลไม่จำเป็นต้อง Consistency เสมอไป และ Consistency ใด ๆ ที่ถูกบังคับให้ทำตาม ถือเป็นความรับผิดชอบของ Database หรือของ Developer เอง
  • Eventual Consistency: ณ วันหนึ่งในอนาคต Database ก็จะเกิด Consistency เอง

5. Constraints

Database Constraint คือ ชุดของกฏที่ระบุถึง Valid Data โดย Constrain หลัก ๆ ประกอบไปด้วย:

  • UNIQUE constraints: Field จะต้องมี ค่าที่ไม่ซ้ำกัน (Unique Value) ใน Table
  • CHECK constraints: Field สามารถมี Data Types ที่ระบุไว้หรือค่าที่อนุญาตให้มี ได้
  • DEFAULT constraints: Field สามารถมีค่า Default Value ได้ เพื่อป้องกันการเกิดค่า Null
  • PRIMARY KEY Constraints: Primary Key จะต้องไม่ซ้ำกัน (Unique)
  • FOREIGN KEY Constraints: Foreign Key จะต้อง Match กับ Primary Key ที่มีอยู่ใน Table อื่น

6. Database Management System

DBMS เป็น Software ที่จัดการกับทุกเรื่องของการทำงานกับ Database ตั้งแต่การจัดเก็บข้อมูล และการรักษาความปลอดภัยของข้อมูล ไปจนถึงการบังคับใช้กฎความถูกต้องสมบูรณ์ของข้อมูล (Data Integrity) จนถึงการจัดเตรียมรูปแบบสำหรับ Data Entry และการจัดการต่าง ๆ โดย Relational Database Management System จะ Implement Relational Model ของ Table และความสัมพันธ์ระหว่างพวกมัน

7. Entity

Entity คือ Table ใน Database มันถูกอธิบายไว้โดยใช้ Entity-Relationship Diagram ซึ่งเป็นประเภทของ Graphic ที่แสดงความสัมพันธ์ระหว่าง Tables ต่าง ๆ ใน Database

8. Functional Dependency

Functional Dependency Constraint จะช่วยให้มั่นใจได้ว่า ข้อมูลนั้นมีความถูกต้อง และมีอยู่จริง เมื่อ Attribute หนึ่งเป็นตัวกำหนดค่าของตัวอื่น ๆ ได้ เราสามารถอธิบายได้ว่า A -> B หมายถึง ค่าของ A กำหนดค่าของ B หรือ B นั้นขึ้นอยู่กับ A ตัวอย่างเช่น Table ใน University ที่มี Record ของ Students ทุกคน อาจจะมี Dependency กันระหว่าง Student ID และ Student Name นั่นคือ Student ID ที่ไม่ซ้ำกัน จะเป็นตัวกำหนดค่าของ Name

9. Index

Index เป็น Data Structure ที่ช่วยเพิ่มความเร็วของ Database Queries สำหรับ Datasets ที่มีขนาดใหญ่ Database Developers จะสร้าง Index ใน Column ใด Column หนึ่งใน Table โดย Index จะผูกติดกับ Column Values เพียงแต่จะชี้ไปที่ Data ในส่วนที่เหลือของ Table และสามารถค้นหาได้อย่างมีประสิทธิภาพและรวดเร็ว

10. Key

Key เป็น Database Field ที่มีวัตถุประสงค์เพื่อ ระบุ Record ที่ไม่ซ้ำกัน Key จะช่วยเป็นตัวบังคับให้ข้อมูลมีความถูกต้องและหลีกเลี่ยงการซ้ำกันของข้อมูล ประเภทหลัก ๆ ของ Keys ที่ใช้ใน Database ก็คือ:

  • Candidate Keys: ชุดของ Column ที่มีค่าที่ไม่ซ้ำกันและมีคุณสมบัติที่คล้ายกับ Primary Keys
  • Primary Keys: Keys นี้เป็นข้อมูลใน Column ที่มีค่าไม่ซ้ำกันใน Table และไม่สามารถเป็นค่า Null ได้
  • Foreign Keys: เป็น Key ที่เชื่อมความสัมพันธ์ระหว่าง Record หนึ่งไปยังอีก Record หนึ่งของ Table อื่น โดย Foreign Key ของ Table จะเป็น Primary Key ของ Table อื่น

11. Normalization

การทำ Normalize Database ก็คือ การออกแบบ Table (relations) และ Column (attributes) เพื่อให้แน่ใจว่า ข้อมูลมีความถูกต้องและหลีกเลี่ยงการซ้ำกันของข้อมูล ใน Level พื้นฐานของการทำ Normalization ก็คือ First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF) และ Boyce-Codd Normal Form (BCNF)

12. NoSQL

NoSQL เป็น Database Model ที่ถูกพัฒนาขึ้นเพื่อตอบสนองความต้องการในการจัดเก็บข้อมูลที่ไม่มีโครงสร้าง (Unstructured Data) เช่น Emails, Social Media Posts, Video หรือ Images และแทนที่จะใช้ SQL และ ACID Model ที่เข้มงวดเพื่อรับรองความถูกต้องของข้อมูล แต่ NoSQL จะยึดถือตาม BASE Model ที่มีความเข้มงวดน้อยกว่า โดย Database Schema ของ NoSQL จะไม่ใช้ Table เพื่อเก็บข้อมูล แต่อาจใช้ Key/Value Design หรือ Graphs

13. Null

ค่า Null มักจะมีคนสับสนว่า มันคือ None หรือ Zero แต่อย่างไรก็ตามมันหมายถึง Unknown ซึ่ง Structured Query Language จะใช้ IS NULL และ IS NOT NULL Operator เพื่อทดสอบหาค่า Null

14. Query

โดยทั่วไป Database Query มักจะถูกเขียนใน SQL และอาจเป็น Select Query หรือ Action Query โดย Select Query จะทำการ Request ข้อมูลจาก Database ส่วน Action Query จะทำการ เปลี่ยนแปลง, Update หรือเพิ่มข้อมูลเข้าไป ในบาง Database ได้จัดเตรียมรูปแบบ Drag-and-Drop ที่ซ่อน Semantics ของ Query เอาไว้ ซึ่งมันช่วยให้ผู้คนสามารถ Request ข้อมูลได้โดยที่ไม่จำเป็นต้องเขียน SQL

15. Schema

Database Schema เป็นการออกแบบของ Tables, Columns, Relations และ Constraints ซึ่งสร้างขึ้นเพื่อบอกว่า Database นี้มี Entity/Attribute อะไรบ้าง และพวกมันมีความสัมพันธ์กันอย่างไร

16. Stored Procedure

Stored Procedure เป็น Pre-Compiled Query หรือ SQL Statement ที่สามารถถูกใช้ร่วมกันระหว่าง Program และ User ต่าง ๆ ใน Database Management System โดย Stored Procedures จะช่วยปรับปรุงประสิทธิภาพ ช่วยทำให้ข้อมูลมีความถูกต้อง และเพิ่มประสิทธิภาพการทำงาน

17. Structured Query Language

Structured Query Language หรือ SQL เป็นภาษาที่ถูกใช้บ่อยที่สุดในการเข้าถึงข้อมูลใน Database โดย SQL สามารถแยกออกเป็น Syntax 2 ประเภทคือ Data Manipulation Language ซึ่งมี Subset ของ SQL Commands ที่ใช้งานบ่อย ๆ ไม่ว่าจะเป็น SELECT, INSERT, UPDATE และ DELETE ส่วน Data Definition Language จะสร้าง Database Objects ใหม่ อย่างเช่น Indexes และ Tables

18. Trigger

Trigger เป็น Stored Procedures ที่ถูกตั้งค่าให้ Execute ใน Events บางอย่างตามที่กำหนด โดยส่วนใหญ่มักจะเป็นการเปลี่ยนแปลงข้อมูลของ Table ตัวอย่างเช่น Trigger อาจถูกออกแบบมาเพื่อเขียน Log, รวบรวมสถิติ หรือการคำนวณค่าต่าง ๆ

19. View

Database View เป็นชุดของข้อมูลที่ถูก Filtered มาแล้ว ซึ่งแสดงผลให้ End User โดยที่ซ่อนความซับซ้อนของข้อมูลไว้และช่วยทำให้ User Experience มีประสิทธิภาพยิ่งขึ้น โดยที่ View สามารถเกิดจากการ Join ข้อมูลของ 2 Table ขึ้นไปได้ และประกอบไปด้วย Subset ของข้อมูล ซึ่ง Materialized View เป็น View ที่ดูเหมือนและทำหน้าที่เหมือนเป็น Table หนึ่ง

ที่มา:  https://www.lifewire.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด