เอนทิตี้-สัมพันธภาพ

เอนทิตี้-สัมพันธภาพ

เอ็นทิตี้
        คำว่า เอ็นทิตี้” (Entity) หมายถึง วัตถุใด ๆ ที่เราสามารถระบุ หรือแยกแยะออกจากกันได้ ซึ่งแทนอยู่ในฐานข้อมูล (An entity is any distinguishable object that is to be represented in the database.)
สัมพันธภาพ
        คำว่า สัมพันธภาพ” (Relationship) บางที่เรียกว่า ความสัมพันธ์หมายถึง การเชื่อมโยงหรือความเกี่ยวข้องระหว่างเอ็นทิตี้ต่าง ๆ ซึ่งความสัมพันธภาพเป็นตัวเชื่อมโยงเอ็นทิตี้เหล่านั้นเข้าไว้ด้วยกัน (Relationship links those basic entities together.)
ความสัมพันธ์ระหว่างเอนทิตี้   จึงอาจแบ่งออกได้เป็น  3  ประเภท  คือ
1.  ความสัมพันธ์แบบหนึ่งต่อหนึ่ง  (ONE – TO ONE   RELATIONSHIPS)  เป็นการแสดงความสัมพันธ์ของข้อมูลในแอนทิตี้หนึ่งที่มีความสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง  ในลักษณะหนึ่งต่อหนึ่ง  เช่น
            2.  ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (ONE-TO-MANY RELATIONSHIPS) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่งที่มีความสัมพันธ์กับข้อมูลหลาย    ข้อมูลในอีกเอทิตี้หนึ่ง  เช่น
3.  ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (MANY -TO-MANY  RELATIONSHIPS) เป็นการแสดงความสัมพันธ์ของข้อมูลสองเอนทิตี้ในลักษณะกลุ่มต่อกลุ่ม

          ตัวแบบข้อมูลมี 3 ประเภทที่สำคัญ คือ
·         ตัวแบบเชิงสัมพันธ์ (Relational Model)
·         ตัวแบบเครือข่าย (Network Model)
·         ตัวแบบลำดับชั้น หรือแตกสาขา(Hierarchic Model)
1. ตัวแบบเชิงสัมพันธ์ (จะกล่าวถึงละเอียดในบทต่อไป) ผู้ใช้ทั่วไปจะมองเห็นตัวแบบเชิงสัมพันธ์ว่า คือ การเก็บข้อมูลเป็นตาราง (Table) หรือถ้าเรียกอย่างเป็นทางการตามทฤษฎีทางคณิตศาสตร์ก็คือ รีเลชั่น (Relation) นั่นเอง ลักษณะของตารางจะมี 2 มิติ คือ แถว (Row) และคอลัมน์ (Column)โดยเอ็นทิตี้ (Entity) ต่าง ๆ จะมีข้อมูลถูกนำมาจัดเก็บในลักษณะเป็นตาราง กล่าวคือ จะไม่มีแฟ้มข้อมูลแม่หรือแฟ้มข้อมูลลูก แฟ้มข้อมูลแต่ละส่วนเป็นอิสระต่อกัน ตัวอย่างผลิตภัณฑ์ระบบบริหารฐานข้อมูลเชิงสัมพันธ์เรียงตามลำดับอักษร ได้แก่
       - DB2 (มีหลายรุ่น) ของบริษัท IBM Corp.
       - Ingres II ของบริษัท Computer Associates International Inc.
        - Informix Dynamic Server ของบริษัท Informix Software Inc.        
        - Microsoft SQL Server ของบริษัท Microsoft Corp.            
        - Oracle 8i ของบริษัท Oracle Corp.และ
       -  Sybase Adaptive Server ของบริษัท Sybase Inc.
  2.  ตัวแบบเครือข่าย บางที่เรียกว่า CODASYL Systems หรือ DBTG Systems ตามชื่อคณะทำงานที่เสนอแนะ กล่าวคือ กลุ่มงานฐานข้อมูลแห่งการประชุมว่าด้วยเรื่องภาษาระบบฐานข้อมูล(the Data Base Task Group of the conference on Data Systems Languages) ตัวอย่างเช่น ระบบ IDMS ของบริษัท Computer Associates International Inc. ตัวแบบเครือข่ายนี้ไม่ได้เกี่ยวข้องกับเรื่องการสื่อสารข้อมูล (Data Communication) แต่อย่างใด โดยตัวแบบนี้ในแง่การมองของผู้ใช้จะเป็นไปในรูปของการรวบรวม ระเบียนต่าง ๆ และความสัมพันธ์ระหว่างระเบียน ความแตกต่างที่เห็นได้ชัดเจนระหว่างตัวแบบเชิงสัมพันธ์และแบบเครือข่าย คือ ในตัวแบบเชิงสัมพันธ์จะแฝง (Implicit) การแสดงความสัมพันธ์เอาไว้ (หมายความว่า ระเบียนที่มีความสัมพันธ์กันจะต้องมีค่าของข้อมูลในเขตข้อมูลใด เขตข้อมูลหนึ่งเหมือนกัน) ส่วนการแสดงความสัมพันธ์ในตัวแบบเครือข่ายจะเป็นไปอย่างโจ่งแจ้ง (Explicit) คือ แสดงได้ในโครงสร้างอย่างชัดเจน ตัวอย่างเช่น

ในรูปจะเห็นว่า กรอบสี่เหลี่ยมแสดงถึงชนิดของระเบียนในฐานข้อมูลซึ่งจะมี 1 อันต่อ 1 Entity เครื่องหมายลูกศรแสดงถึงความสัมพันธ์ ซึ่งในรูปนี้แสดงความสัมพันธ์แบบหนึ่งต่อกลุ่ม โดยที่หัวลูกศรจะออกจากส่วนของหนึ่งไปยังส่วนของ กลุ่ม
        วิธีการค้นหาข้อมูลที่ต้องการ จะใช้หัวลูกศรเป็นแนวทาง ซึ่งอาจวิ่งทวนทิศทางกับหัวลูกศรก็ได้ เช่น ถ้าต้องการแสดงรายชื่อของอาจารย์ที่ทำงานอยู่แผนกวิชาที่ 4 ก็เริ่มด้วยการออกคำสั่งแก่ระบบจัดการฐานข้อมูลไห้ค้นหาแผนกที่ 4 ก่อน จากระเบียนของแผนกวิชา จากนั้นให้วิ่งตามลูกศรซึ่งจะเชื่อม (Link) ข้อมูลของแผนกที่ 4 นี้เข้ากับข้อมูลในส่วนของอาจารย์ ซึ่งได้แก่บรรดาระเบียนของอาจารย์ที่ทำงานอยู่แผนกที่ 4 สังเกตว่า ในการค้นหานี้เราจะค้นโดยใช้ลูกศร หรือทางเชื่อมในการโยงความสัมพันธ์ ดังนั้นเราจึงไม่จำเป็นต้องเก็บเขตข้อมูลรหัสแผนกไว้ในระเบียนของอาจารย์อย่างในตัวแบบเชิงสัมพันธ์
                3.  ตัวแบบแตกสาขา หรือตัวแบบลำดับ ตัวแบบนี้พัฒนาขึ้นโดยไอบีเอ็ม เมื่อปี พ.ศ. 2511 ตัวอย่างเช่น ระบบ IMS ของ IBM มีความสัมพันธ์ระหว่างแฟ้มข้อมูลเป็นระดับชั้นหรือตามอาวุโส แฟ้มข้อมูลจะมีตำแหน่งจากบนลงล่าง โดยแฟ้มที่อยู่ในระดับที่สูงกว่าจะเป็นแม่ของแฟ้มที่อยู่ในระดับต่ำกว่า ข้อสังเกต คือ แฟ้มหนึ่งจะมีแฟ้มข้อมูลลูก (Child File) ได้หลายแฟ้ม ขณะที่แฟ้มลูกจะมีแฟ้มแม่เพียงแฟ้มเดียว เมื่อมองในลักษณะนี้จะเห็นว่าตัวแบบนี้มีโครงสร้างเหมือนต้นไม้ (Tee) ซึ่งอันที่จริงตัวแบบนี้คล้ายแบบเครือข่าย แต่ต่างกันตรงที่ ตัวแบบแตกสาขามีกฎเกณฑ์เพิ่มขึ้นมาอีก 1 ข้อ คือ ในแต่ละกรอบจะมีหัวลูกศรวิ่งเข้าหาได้ไม่เกิน 1 หัว จากตัวอย่างในภาพของตัวแบบเครือข่าย จะเห็นว่ากรอบอาจารย์มีลูกศรเข้ามา 2 ทาง ดังนั้น เราจะสร้างฐานข้อมูลเดียวกันนี้ด้วยตัวแบบแตกสาขาไม่ได้ แต่ต้องเปลี่ยนแปลงให้เหมาะสม
นอกจากนั้น ยังมีลักษณะอีกประการหนึ่งที่สองตัวแบบหลังนี้แตกต่างจากตัวแบบเชิงสัมพันธ์ ก็คือ ในตัวแบบลำกับชั้น และตัวแบบเครือข่ายนั้น จะมีการใช้ตัวชี้  (Pointers) เพื่อแทนเส้นทางขึ้นลงไปตามแผนภาพต้นไม้สำหรับตัวแบบลำดับชั้น และแทนเส้นทางเชื่อมต่อในแผนภาพเครือข่ายของตัวแบบเครือข่าย แต่ในตัวแบบเชิงสัมพันธ์จะไม่มีการเกี่ยวข้องกับตัวชี้ดังกล่าวเลย (C.J. Date, 2000, p. 26)
        นอกจากตัวแบบทั้ง 3 ดังกล่าวแล้ว เมื่อไม่นานมานี้เริ่มมีผลิตภัณฑ์ระบบบริหารฐานข้อมูลแบบใหม่ปรากฏขึ้นมาบ้าง คือ
·         ระบบบริหารฐานข้อมูลเชิงวัตถุ (Object DBMS) เช่น Gemstone ของบริษัท Gemstone Systems Inc.และ Versant ODBMS ของบริษัท Versant Object Technology
·         ระบบบริหารฐานข้อมูลแบบผสมระหว่างเชิงวัตถุและเชิงสัมพันธ์ (Object/Relational DBMS) ตัวอย่างเช่น DB2 และ Informix
ระบบฐานข้อมูล
        ระบบฐานข้อมูล (Database System) เป็นคำประสมระหว่างคำว่า ระบบ” (System) กับคำว่าฐานข้อมูล” (Database) มีความหมายและองค์ประกอบดังต่อไปนี้
                ความหมาย
                ระบบฐานข้อมูล โดยพื้นฐานเป็นระบบจัดเก็บระเบียนด้วยคอมพิวเตอร์ (A database system is basically a computerized record-keeping system.)สามารถทำงานกับข้อมูลในฐานข้อมูลในลักษณะต่าง ๆ ได้ เช่น
·         เพิ่มแฟ้มใหม่เข้าในฐานข้อมูล
·         แทรกข้อมูลลงในแฟ้ม
·         ดึงข้อมูลมาจากแฟ้ม
·         เปลี่ยนแปลงข้อมูลที่มีอยู่
·         ลบข้อมูล
·         ลบแฟ้ม
        ระบบฐานข้อมูล มีวัตถุประสงค์หลักในการจัดเก็บข้อสนเทศและให้ผู้ใช้สืบค้น ตลอดจนปรับปรุงข้อสนเทศนั้นให้เป็นปัจจุบัน
        องค์ประกอบ
        ระบบฐานข้อมูลมีองค์ประกอบหลัก 4 องค์ประกอบ ได้แก่
·         ข้อมูล (Data)
·         ฮาร์ดแวร์ (Hardware)
·         ซอฟต์แวร์ (Software)
·         ผู้ใช้ (Users)
        1. ข้อมูล
        ข้อมูลจะต้องเป็นข้อมูลรวมและแบ่งปันกันได้ (Both Integrated and Shared) ข้อมูลรวม (Integrated) ในฐานข้อมูล หมายถึง อาจมีข้อมูลซ้ำซ้อนกันระหว่างแฟ้มต่าง ๆ น้อยที่สุ หรือเท่าที่จำเป็น เช่น แฟ้มข้อมูลชื่อ EMPLOYEE กับ ENROLLMENT
        แฟ้ม ENROLLMENT ไม่ควรมีเขตข้อมูล (Field) ชื่อ Department  หรือ Salary ซ้ำอีก เพราะเราสามารถค้นหาได้จากแฟ้ม ENROLLMENT ได้อยู่แล้ว
        ส่วนคำว่า แบ่งปัน (Shared) หมายถึง ข้อมูลในแต่ละชิ้นในฐานข้อมูลอาจถูกแบ่งปันระหว่างผู้ใช้หลายคน ซึ่งแต่ละคนสามารถเข้าถึงข้อมูลชิ้นเดียวกันได้ ด้วยวัตถุประสงค์ต่างกันไป ผู้ใช้หลายคนสามารถเข้าถึงข้อมูลได้พร้อมกัน (Concurrent Access)
2. ฮาร์ดแวร์
        ฮาร์ดแวร์ของระบบฐานข้อมูลประกอบไปด้วย 2 ส่วน คือ
·         ที่เก็บข้อมูลสำรอง (Secondary Storage Volumes) เพื่อเก็บข้อมูลด้วยอุปกรณ์นำเข้า/ส่งออกข้อมูล(ดิสก์ไดร์ฟ), ตัวควบคุมอุปกรณ์, ช่องนำเข้า/ส่งออกข้อมูล
·         ตัวประมวลผลฮาร์ดแวร์หน่วยความจำหลัก ที่สนับสนุนการทำงานของระบบฐานข้อมูล
  3. ซอฟต์แวร์
        ซอฟต์แวร์ เป็นส่วนเชื่อมระหว่างผู้ใช้กับฮาร์ดแวร์
        ซอฟต์แวร์ในที่นี้คือ ระบบจัดการฐานข้อมูล หรือระบบบริหารฐานข้อมูล (Database Management System : DBMS) ซึ่งมีหน้าที่ช่วยซ่อนกับผู้ใช้ฐานข้อมูลจากรายละเอียดระดับฮาร์ดแวร์ ระบบจัดการฐานข้อมูลจะทำให้ผู้ใช้รู้จักฐานข้อมูลในระดับที่อยู่เหนือระดับฮาร์ดแวร์และช่วยสนับสนุนการปฏิบัติงานของผู้ใช้ เช่น การปฏิบัติงานด้วยภาษานอบถามเชิงโครงสร้าง (Structured Query Language : SQL)
   4. ผู้ใช้
        ผู้ใช้ (Users) มี 3 กลุ่ม ได้แก่
·         โปรแกรมเมอร์ เขียนโปรแกรมประยุกต์ใช้ฐานข้อมูลด้วยภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง
·         ผู้ใช้ปลายสุด (End Users) ติดต่อกับระบบจากสถานีงานออนไลน์ ผู้ใช้สามารถเข้าถึงฐานข้อมูลผ่านโปรแกรม หรืออาจใช้ส่วนติดต่อ (Interface) ที่ให้มาซึ่งเป็นส่วนหนึ่งของซอฟต์แวร์ฐานข้อมูล โดยเป็นส่วนที่สร้างไว้แล้วซึ่งผู้ใช้ปลายสุดไม่ต้องเขียนโปรแกรมขึ้นมาเอง ผู้ใช้ปลายสุดเพียงแต่ออกคำร้องขอ (Requests)  ต่อฐานข้อมูล ด้วยภาษา SQLเช่น คำสั่ง SELECT,INSERT
·         ผู้บริหารฐานข้อมูล (Database Administrator : DBA)
ระบบบริหารฐานข้อมูล
ระบบบริหารฐานข้อมูล (Database Management System) บางที่เรียกว่า ระบบจัดการฐานข้อมูล แท้ที่จริงคือ ซอฟต์แวร์ที่จัดการการเข้าถึงทุกอย่างที่กระทำกับฐานข้อมูล (The DBMS is the software that handles all access to the database.) ซึ่งได้แก่ขั้นตอนการกระทำต่อไปนี้
o    ผู้ใช้ออกคำร้องขอเข้าสู่ฐานข้อมูลโดยใช้ภาษาย่อยข้อมูล
o    ระบบฯ ตรวจจับคำร้องขอและวิเคราะห์วากยสัมพันธ์
o    ระบบฯ ตรวจดูวัตถุเค้าร่างภายนอก (External Schema) ของผู้ใช้ การเชื่อมระหว่างระดับภายนอกกับระดับแนวคิด เค้าร่างแนวคิด การเชื่อมระหว่างระดับแนวคิดกับระดับภายใน และนิยามโครงสร้างการจัดเก็บ (Storage Structure Definition)ในเรื่องเค้าร่าง (Schema) ต่าง ๆ นี้ จะมีอธิบายละเอียดในบทต่อไปโดยอยู่ในหัวข้อ สถาปัตยกรรมฐานข้อมูล
o    ระบบฯ ทำตามคำร้องขอโดยกระทำกับฐานข้อมูลที่จัดเก็บนั้น (The DBMS executes the operations on the stored database.)
หน้าที่ของระบบฐานข้อมูล
        ระบบบริหารฐานข้อมูล จะต้องสนับสนุนการกระทำต่อไปนี้ได้อย่างน้อย
·         การนิยามข้อมูล (Data Definition) ต้องสามารถรับการนิยามข้อมูลได้ เช่น การกำหนดเค้าร่างภายนอก เค้าร่างแนวคิด เค้าร่างภายใน และการเชื่อมทุกตัวที่เกี่ยวข้อง จากนั้นแปลงนิยามนั้นให้เป็นวัตถุ ดังนั้น ระบบจัดการฐานข้อมูลต้องมี ตัวประมวลผลภาษานิยามข้อมูล (Data Definition Language Processor/Compiler)
·         การจัดดำเนินการข้อมูล (Data Manipulation) ระบบฯ ต้องสามารถจัดการคำร้องในการสืบค้น ปรับปรุง ลบ เพิ่มข้อมูลได้ ดังนั้น ระบบฯ จึงต้องมีตัวประมวลผลภาษาจัดดำเนินการข้อมูล (Data Manipulation Language Processor/Compiler)  การร้องขอให้จัดดำเนินการข้อมูลอาจเป็น การร้องขอที่แจ้งล่วงหน้า (Planned Request) ซึ่งเตรียมไว้ล่วงหน้าก่อนการ Execute เป็นอย่างดี เช่น การรันโปรแกรมทุกเช้าซึ่งเป็นกิจวัตร หรืออาจเป็นการร้องขอที่ไม่แจ้งล่วงหน้า (Unplanned or ad Hoc request) ซึ่งต้องการข้อมูลอย่างฉับพลันหรือเป็นบางครั้งบางคราว ซึ่งมีลักษณะเป็นแบบโต้ตอบ (Interactive)
·         การแปลงคำสั่งให้เหมาะสมที่สุดและการเอ็กซีคิวคำสั่ง (Optimization and Execution)ระบบบริหารฐานข้อมูล จะมี Optimizer เป็นซอฟต์แวร์ที่รับเอาคำร้องขอ โค้ดคำสั่งวัตถุนั้นมาตรวจดูก่อนรันเพื่อดูว่าจะรันอย่างไรจึงจะดีที่สุด กล่าวคือ ให้ใช้ทรัพยากรน้อยที่สุด เช่น จะใช้วิธีใดในการเข้าถึงข้อมูล X จึงจะเหมาะสมที่สุด
·         ความปลอดภัยและความถูกต้องของข้อมูล (Data Security and Integrity) ระบบฯ จะต้องยอมให้ผู้บริหารฐานข้อมูล (DBA) สามารถเขียนคำสั่ง หรือกำหนดกฎความถูกต้อง (Integrity Constraints)ได้
·         การฟื้นฟูสภาพข้อมูลและสภาวะพร้อมกัน (Data Recovery and Concurrency) ระบบฯ ต้องสนับสนุนให้ผู้บริหารฐานข้อมูลสามารถสั่งให้ ตัวจัดการธรุกรรม (Transaction Manager or Transaction Processing Monitor)ให้ทำการฟื้นฟูสภาพ และควบคุมสภาวะการเข้าถึงฐานข้อมูลแบบพร้อมกันได้
·         พจนานุกรมข้อมูล (Data Dictionary) ระบบฯ ต้องสร้างพจนานุกรมข้อมูลของมันเองขึ้นมาได้เพื่อให้ผู้ใช้สามารถนำไปใช้ได้
หน้าที่ของระบบบริหารฐานข้อมูล
จะเห็นความแตกต่างเด่นชัดถ้าเปรียบเทียบกับ ระบบจัดการแฟ้มข้อมูล ซึ่งเป็นระบบดั้งเดิม กล่าวคือ ระบบจัดการแฟ้มข้อมูลมีหน้าที่ดังนี้
        1. ระบบจัดการแฟ้มข้อมูลไม่รับรู้โครงสร้างภายในของระเบียนที่จัดเก็บไว้ จึงไม่สามารถจัดการกับคำร้องขอที่อิงกับความรู้เรื่องโครงสร้างนั้น
        2. โดยปกติระบบจัดการแฟ้มข้อมูลจะมีน้อยหรือไม่มีการสนับสนุนเรื่องข้อกำหนดเกี่ยวกับการรักษาความปลอดภัยและความถูกต้องของข้อมูล
        3. โดยปกติระบบจัดการแฟ้มข้อมูลจะมีน้อยหรือไม่มีการสนับสนุนเรื่องการควบคุมการฟื้นฟูสภาพและสภาวะพร้อมกัน
     4. ระบบจัดการแฟ้มข้อมูลไม่มีหลักการของพจนานุกรมข้อมูลอย่างแท้จริงในระดับการจัดการแฟ้ม
        5. ระบบจัดการแฟ้มข้อมูลไม่มีเรื่องของความเป็นอิสระของข้อมูล หรือมีแต่น้อยมาก
        6. โดยปกติแฟ้มต่าง ๆ ในระบบจัดการแฟ้มข้อมูลจะไม่รวมกัน หรือไม่ปันส่าน อย่างในระบบบริหารฐานข้อมูล


ขอขอบคุณ    http://itd.htc.ac.th/st_it50/
                        http://www.thaigoodview.com/

บทความที่ได้รับความนิยม