Database Architecture [ Database the series ] Part 5

Database the series 4 ธ.ค. 2022

ต่อกันที่ Part ที่ 5 ใน part นี้จะเกี่ยวกับ database architecture แบบต่างๆ และหลักการ data independence กัน

อยากแรกเราต้องไปรู้จักกับ Level ของ architecture กันก่อน

The Three-Schema Architecture

จากรูปจะเห็นได้ว่า Architecture ในรูปจะถูกแบ่งออกมาหลักๆ เป็น 3 level คือ

  • External Level ส่วนที่ user ใช้งาน
  • Conceptual Level ส่วนที่นำเสนอ data model (อ่านได้ใน part 4)
  • Internal Level ส่วนที่มีการเก็บข้อมูลลงใน hardware จริงๆ
👉
ประโยชน์จากการแบ่งออกเป็น 3 level ทำให้เวลามีการเปลี่ยนแปลงในแต่ละ level จะไม่กระทบ level อื่นๆ

จากประโยชน์ที่ได้จากการแบ่ง level จึงเกิดสิ่งทีเรียกว่า Data Independence

Data Independence

  • Logical Data Independence : ความสามารถในการเปลี่ยน conceptual schema โดยไม่ต้องเปลี่ยน external schemas และโปรแกรมแอ็พพลิเคชันที่เกี่ยวข้อง
  • Physical Data Independence : ความสามารถในการเปลี่ยน internal schemaโดยไม่ต้องเปลี่ยน conceptual schema

User-Friendly DBMS Interfaces

การที่ DBMS สักตัวจะมีความเป็นมิตรต่อผู้ใช้งานทั้งในด้านของ ความใช้ง่าย หรือ ความง่ายต่อการเรียนรู้ ส่วนติดต่อผู้ใช้งาน (interface) ย่อมเป็นส่วนที่ทำหน้าที่หลัก ดังนั้น DBMS ที่มีความ user-friendly ก็ควรจะมี

  • Menu-based (Web-based) นิยม web base
  • Forms-based ออกแบบสำหรับ naïve users โดยมีการใช้ฟอร์มให้กรอกได้
  • Graphics-based การคลิก ลาก วาง , ระบุ query บน schema diagram
  • Natural language request ถูกเขียนในภาษาอังกฤษ
  • Combinations of the above รวมฟีเจอร์ต่างๆข้างบนเข้าด้วยกัน

Typical DBMS Component Modules

ต่อไปเรามาเข้าเรื่องกันที่ Architecture กันว่า ส่วนประกอบทั่วไปของ DBMS มีแบบไหนบ้าง

  • A Physical Centralized Architecture
A Physical Centralized Architecture

เห็นคำว่า Centralized แน่นอนว่า คือ การรวมทุกอย่างไว้ที่ระบบเดียว ทั้ง DBMS software , hardware , application , UI แต่ผู้ใช้งานยังคงสามารถใช้งานได้ผ่าน remote terminal ซึ่งทุกอย่างจะประมวลผลภายในตัวมันเอง

  • Two-tier Client/Server
Two-tier Client/Server
Two-tier Client/Server

จากการมีทีเดียวเริ่มมีการเพิ่มลำดับชั้นเข้ามาเป็น 2 ระดับ โดยมีการแยกตามฟังก์ชั่นการใช้งานออกมา เช่น แยก DBMS Server , Web Server , File Server , Mail Server และมี Network กลางสำหรับการสื่อสารกันในแต่ละ Server โดยในรูปแบบนี้ ผู้ใช้งานสามารถเข้าถึงบางฟังก์ชั่นการใช้งานได้โดยตรงตามที่ต้องการ

⚠️
จากการที่มีหลาย Server การที่จะ update ทุกระบบย่อมทำได้ยาก
  • Three-tier Client/Server
Three-tier Client/Server

มาถึงรูปแบบนี้รูปแบบที่ใช้อยู่ในปัจจุบัน โดยนิยมอย่างมากในระบบ website ต่างๆ และการที่มีการแบ่งออกเป็น 3 Tier ทำให้สามารถเพิ่มความปลอดภัยในการ กำหนดการเข้าถึง ส่วนต่างๆ ได้ เช่น Client จะไม่สามารถติดต่อ Database Server โดยตรงได้ ต้องทำผ่าน Application Server และเมื่อต้องการจะ update บางอย่างสามารถทำที่ระบบนั้นได้เลยโดยไม่กระทบต่อระบบอื่นๆ

จบไปแล้วสำหรับ Part 5 นะครับ หวังว่าจะมีประโยชน์กับคนที่ได้เข้ามาอ่านนะครับ ขอบคุณทุกคนที่อ่านจนจบนะครับ สำหรับเนื้อหาต่อจากนี้สามารถติดตาม Part 6 ต่อได้เลย

Tags

Witchayut Gerdchai

Software Engineer คนนึง