Reational Database

การจัดเก็บฐานข้อมูลเชิงสัมพันธ์ ได้เริ่มรู้จักกัน บทความชื่อ A Relational Model of Data for Large

Shared Data Banks ของ Dr.Edgar Frank Codd หรือ Dr. E. F. Codd ซึ่งขณะนั้นเป็นนักวิจัยอยู่ที่บริษัท

IBM ได้ตีพิมพ์ในวารสาร Association of Computer Machinery (ACM) journal เมื่อเดือนมิถุนายน

ปี ค.ศ.1970 การสร้างโมเดลเชิงสัมพันธ์ได้ใช้ทฤษฎีทางคณิตศาสตร์เกี่ยวกับเซต (Set) มาอธิบายการทำงาน

แนวคิดของ Codd นี้ได้ถูกพัฒนาเป็นซอฟต์แวร์ระบบฐานข้อมูลที่ชื่อว่า Oracle จากบริษัท Relational Software

หรือ บริษัท Oracle ในปัจจุบันความหมายของศัพท์ที่เกี่ยวข้อง

คำศัพท์ ความหมาย
รีเลชั่น (Relation) ตาราง (Table) แสดงความจริง ชุดหนึ่ง ที่แทนข้อมูล
ทูเพิล ( Tuple ) ค่าของข้อมูลในแต่ละแถว ( Row ) หรือ เรคคอร์ด ( Record )
คาร์ดินาลลิตี้ ( Cardinality ) จำนวนแถวแต่ละข้อมูลในแต่ละรีเลชั่น
แอทริบิวต์ ( Attribute ) รายละเอียดของข้อมูลในแต่ละคอลัมน์ รู้จักในรูปของคอลัมน์ ( Column )
คีย์หลัก ( Primary key ) แอทริบิวต์ที่มีค่าของข้อมูลเป็นเอกลักษณ์หรือะจะเป็นค่าที่ไม่ซ้ำกันในแต่ละทูเพิล
โดเมน ( Domain ) ขอบเขตของค่าของข้อมูลที่ควรจะเป็นในแต่ละแอทริบิวต์

ความสัมพันธ์ Relation

แสดงความสัมพันธ์ระหว่างแต่ละ Attribute ไม่ใช่เป็นความสัมพันธ์ระหว่าง ตาราง โดย แต่ละ Attribute จะเป็นตัวแทนจาก Domain

คุณสมบัติของความสัมพันธ์ Relation

Relation CUSTOMER เป็น relation ที่เก็บประวัติของลูกค้าบัญชีเงินกู้ของธนาคาร และประกอบไปด้วยเลขที่บัตรประชาชน ชื่อ นามสกุล และ ที่อยู่ของลูกค้า ซึ่งจะเห็นว่าข้อมูลลูกค้ามีชื่อและนามสกุลซ้ำกันคือปรากฎลูกค้าชื่อ สมบัติ นามสกุล มิมำพันธ์ จำนวน 2 tuple แต่มี attribute เลขที่บัตรประชาขน (CITIZEN_ID) เป็นสิ่งที่บ่งบอกให้รู้ว่าลูกค้าทั้งสองคนเป็นคนละคนกัน

  1. Relation หรือ ตาราง ต้องมี Tuple ไม่ซ้ำกันและ แต่ละฟิลด์จะเก็บประเภทข้อมูลชนิดเดียว

  2. ข้อมูลในแต่ละ Tuple (row หรือ record) จะต้องไม่ซ้ำกัน อาจมีการเปลี่ยนแปลงได้

  3. ข้อมูลแต่ละ Tuple แทนความจริงความสัมพันธ์ระหว่างโดเมน (Fact)

  4. Column หรือ ฟิลด์ สามารถสลับกันได้ Attribute ไม่มีลำดับจากซ้ายไปขวา เนื่องจาก Relationในโครงสร้างข้อมูลแบบสัมพันธ์อยู่ในรูปแบบของเซตทางคณิตศาสตร์ โดยภายในเซตจะต้องประกอบไปด้วยสมาชิกที่ไม่มีลำดับ.

  5. ค่าของ attribute ทุกค่าจะต้องเป็น atomicity เนื่องจาก Domain มีเฉพาะค่าที่เป็น atomic เท่านั้นดังนั้นทุกattribute ในแต่ละตำแหน่งของ tuple ใน relation จะมีค่าเพียงค่าเดียว

โมเดลฐานข้อมูลเชิงสัมพันธ์ ผู้ริเริ่มคือ Dr.E.F.Codd โดยกำหนดส่วนประกอบของโมเดลเชิงสัมพันธ์แบ่งเป็น 3 ส่วนได้แก่

  1. ส่วนที่เกี่ยวข้องกับโครงสร้างของข้อมูล (Relational Data Structure)

  2. ส่วนที่เกี่ยวกับการควบคุมความถูกต้องให้กับข้อมูล (Data integrity)

  3. ส่วนในการจัดการกับข้อมูล (Data manipulation)

1. โครงสร้างของข้อมูลเชิงสัมพันธ์ (Relational Data Structure)

กุญแจ (key)

กุญแจ หรือ คีย์ (Key) สิ่งที่ใช้กำหนดความเป็นเอกลักษณ์ในความสัมพันธ์

  1. คีย์หลัก (PK: Primary Key) หรือ กุญแจหลัก (PK เป็นคีย์คู่แข่ง candidate key ตัวหนึ่งที่ถูกเลือกขึ้นมาเป็นคีย์หลัก)

คุณสมบัติของคีย์หลัก คือ มีความเป็นหนึ่งเดียว ค่าของคีย์หลักต้องไม่ซ้ำกันเลย ประกอบด้วยจำนวนแอททริบิวต์น้อยที่สุด

ที่สามารถเจาะจงทัพเพิลหนึ่งในรีเลชันได้ (PK ห้ามซ้ำ)

  1. คีย์รอง ( Alternate Key หรือ Secondary Key) กุญแจที่ไม่ถูกเลือกให้เป็นกุญแจหลัก

  2. คีย์นอก (FK: Foreign Key) ใช้ในการเชื่อมโยงข้อมูลระหว่างความสัมพันธ์เข้าด้วยกัน FK เป็น primary key

ใน relation อื่น

  1. คีย์อย่างง่าย (Simple key) ประกอบด้วย attribute เดียว

  2. คีย์ประกอบ (Combine key หรือ Composite key) กุญแจที่ประกอบขึ้นจากแอททริบิวท์มากกว่า 1 แอททริบิวท์

เมื่อนำแอททริบิวต์ทั้งหมดมาผสมกัน ทำให้ได้ค่าที่ไม่ซ้ำกันเลย

  1. คีย์คู่แข่ง (Candidate Key) สามารถจะเป็นคู่แข่งซึ่งจะถูกเลือกให้เป็นคีย์หลัก

  2. ซุปเปอร์คีย์ (Super key) กลุ่มของแอททริบิวต์ของรีเลชันที่สามารถเจาะจง (identify) ความเป็นหนึ่งเดียวของ tuple

ที่แตกต่างจากทัพเพิลอื่นได้ หมายถึง attribute หรือ เซ็ทของ attribute ที่สามารถบ่งบอกว่าแต่ละแถว (Tuple)

แตกต่างกัน ในทุก ๆ ความสัมพันธ์ จะต้องมีอย่างน้อย หนึ่ง Super key ในเซ็ทของ attributes

แอททริบิวต์ (Attribute)

แอททริบิวต์ (Attribute) หมายถึง แต่ละคอลัมน์ที่อยู่ในรีเลชัน แต่ละแอททริบิวต์จะมีชื่อกำกับแต่ละแอททริบิวต์ในต่ละรีเลชัน

ดีกรี (Degree)

ดีกรี (Degree) หมายถึง จำนวนแอททิริบิวท์ของแต่ละตาราง(รีเลชัน) หรือ จำนวนแอททิริบิวท์ที่มีอยู่ในแต่ละตาราง(รีเลชัน)

คาร์ดินัลลิตี้ (Cardinality)

คาร์ดินัลลิตี้ (Cardinality) หมายถึง การอ้างถึงลักษณะความสัมพันธ์ของข้อมูลของตารางกับอีกตารางหนึ่ง Cardinality หมายถึง จำนวนที่มากที่สุดในความสัมพันธ์ อย่างน้อยมีได้ 1 หรือมีได้ไม่จำกัด many

โมเดลลิตี้(Modality)

โมเดลลิตี้(Modality) หมายถึงจำนวนที่น้อยที่สุดในความสัมพันธ์ มีได้แค่สอง option เท่านั้น คืออย่างน้อยที่สุดเป็น 0 และ อย่างน้อยที่สุดเป็น 1

Entity-Relationship Diagram

ในแต่ละความสัมพันธ์ จะต้องระบุจำนวน Cardinality และ Modality คู่กันเพื่อกำหนดจำนวนที่น้อยที่สุดและมากที่สุด

ทั้งสองค่าสร้างความเป็นไปได้ดังนี้

สัญญลักษณ์

ลองดูตัวอย่าง ผู้ถือบัตรเครดิต และ บัตรเครดิต ถ้ากำหนดให้ผู้ถือบัตร ถือบัตรได้แค่ ใบเดียว ก็จะเป็น one-to-one แต่หาก กำหนดให้ผู้ถือบัตรถือได้มากกว่า 1 ใบ ก็จะแทนด้วย one-to-many

เมื่อแสดงกับ class Model (one-to-one)

เมื่อแสดงกับ class Model (one-to-many)

ตัวอย่าง

  • ความสัมพันธ์ ระหว่างแผนกและพนักงาน

  • วิเคราะห์ฐานข้อมูลโรงพยาบาล

2. ส่วนที่เกี่ยวกับการควบคุมความถูกต้องให้กับข้อมูล

2.1 กฎความคงสภาพของเอนทิตี (Entity Integrity Rule)

  • คีย์หลักของรีเลชั่น จะต้องมีค่าข้อมูลที่ไม่ซ้ำกัน (unique) เนื่องจากคุณสมบัติของคีย์หลัก จะเป็นแอททริบิวท์ที่ใช้ในการเจาะจงแถวข้อมูลใดแถวข้อมูลหนึ่งในรีเลชัน ดังนั้นจึงจะให้ค่าข้อมูลที่ซ้ำกันไม่ได้

  • ค่าข้อมูลของคีย์หลักจะต้องไม่เป็นค่าว่าง (Null Value) จะต้องไม่มีแอททริบิวท์ใดที่เป็นส่วนประกอบของคีย์หลักของรีเลชันนั้นเป็นค่าว่าง เพราะค่าของข้อมูลในคีย์หลัก จะถูกใช้เจาะจงถึงข้อมูลแถวใด ๆ ในรีเลชัน

2.2 กฎความคงสภาพของการอ้างอิง (Referential Integrity Rule)

ถ้ารีเลชันใดมีแอททริบิวท์ที่เป็นคีย์นอกอยู่ ข้อมูลที่เป็นคีย์นอกนั้นจะต้องไปปรากฏเป็นข้อมูลของคีย์หลักของอีกรีเลชัน
ที่มีความสัมพันธ์กัน หรืออาจให้ข้อมูลที่เป็นคีย์นอกนั้นจะต้องมีค่าเป็นค่าว่าง

3. การจัดการกับข้อมูล (Data manipulation)

Dr. E.F. Codd ได้นำทฤษฎีของเซท (set) ซึ่งเป็นทฤษฎีทางคณิตศาสตร์มาใช้ในการจัดการกับข้อมูลของฐาน เชิงสัมพันธ์ โดยเซท หมายถึง คำที่ใช้บ่งบอกถึงกลุ่มของสิ่งต่างๆ และเมื่อกล่าวถึงกลุ่มใดแน่นอนว่าสิ่งใดอยู่ใน กลุ่มสิ่งใดไม่อยู่ในกลุ่ม ตัวอย่าง

ให้ A เป็นเซตของผลไม้, A = {สับปะรด, ทุเรียน, มังคุด, ลำไย, ลิ้นจี่} จำนวนสมาชิกของ A, n(A)=5 และ

ให้ B เป็นเซตสีของรุ้ง จะได้ B = {สีม่วง, สีคราม, สีน้ำเงิน, สีเขียว, สีเหลือง, สีแสด, สีแดง} และ n(B)=7

การจัดการกับข้อมูล (Data manipulation) ได้แก่

  • ยูเนียน (Union) ใช้สัญลักษณ์ (∪) เชื่อมความสัมพันธ์เข้าด้วยกัน คือ การแสดงข้อมูลตามลักษณะทฤษฎีการUnionของเซต กล่าวได้ว่ายูเนียนของ A และ B คือเซตที่เกิดจากการรวบรวมสมาชิกของ A และ B เข้าไว้ด้วยกัน

  • อินเตอร์เซกชัน (Intersection) คือ โอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลที่มีอยู่ในทั้งสองรีเลชั่นหรือมากกว่า โดยรีเลชั่นที่จะมา Intersection กันจะเป็นรีเลชั่นที่ไปกันได้ กล่าวได้ว่า อินเตอร์เซกชันของ A และ B คือเซตที่ประกอบด้วยสมาชิกที่เหมือนกันของ A และ B

  • ผลต่างระหว่างเซต (Difference Set) (Minus) ใช้สัญลักษณ์ (-) หาความแตกต่างระหว่างความสัมพันธ์คือ การแสดงข้อมูลทูเพิลของรีเลชัน ซึ่งไม่มีอยู่ในอีกรีเลชันหนึ่ง ตามทฤษฎีการ Difference ของเซตกล่าวได้ว่า ผลต่างระหว่างเซต A และเซต B คือสมาชิกอยู่ในเซต B โดย“ ผลต่างระหว่างเซต A และเซต Bเขียนแทนด้วย A – B ”

  • Join Operator คือ การกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมดที่เกิดจากการเชื่อมโยงข้อมูลของ 2 รีเลชั่น

  • Division คือ การแสดงข้อมูลจากสองรีเลชั่น โดยที่รีเลชั่นทั้งสองมีแอททริบิวต์อย่างน้อยหนึ่งแอททริบิวต์ที่เหมือนกันผลลัพธ์ที่ได้ จะเป็นค่าของแอททริบิวต์จากรีเลชั่นที่มีจำนวนแอททริบิวต์มากกว่า

  • แบบมีข้อจำกัด (Restrict) คือ การแสดงข้อมูลในทูเพิล ซึ่งมีข้อมูลตรงตามเงื่อนไขที่ระบุ หากมีการปรับปรุง (Update)หรือลบ(Delete) ข้อมูลในกุญแจหลักของรีเลชันหลัก(Parent relation) ที่มีข้อมูลที่เป็นกุญแจนอกอ้างอิงอยู่ในขณะนั้น จะไม่สามารถปรับปรุงหรือลบข้อมูลดังกล่าวได้ ตัวอย่างเช่น หากต้องการแก้ไข “รหัสสาขา” ในรีเลชัน “สาขา” จาก “B005” เป็น B050” (หรือต้องการลบ สาขาที่มีรหัส “B005” ออกจากรีเลชัน “สาขา”) จะไม่สามารถทำได้หากมีการอ้างถึงข้อมูล “B005” ในแอททริบิวท์ “รหัสสาขา” ในรีเลชัน “พนักงาน” (ซึ่งทำหน้าที่เป็นกุญแจนอก) จะแก้ไขได้ก็ต่อเมื่อ ไม่มีการอ้างถึงข้อมูลดังกล่าวในกุญแจนอกของรีเลชัน “พนักงาน” แล้ว

การอ่าน ความสัมพันธ์

อ่านจาก ซ้ายไปขวา และ อ่านจากขวามาช้าย และนำมารวมกัน

Conclusion

  • Cardinality ค่าสูงสุด.
  • Cardinality ค่าเริ่มจาก 1 ถึง many.
  • 1 แทนด้วย เส้นแนวตั้ง vertical.
  • Many แทนด้วย crow’s foot.
  • Modality ค่าที่น้อยที่สุด.
  • Modality มีค่าได้ 0 หรือ 1.
  • 0 แทนด้วย วงกลม circle
  • 1 แทนด้วย vertical line.
  • Modality อยู่ด้านใน ของเส้น ในขณะที่ cardinality อยู่ด้านนอก

Database ER diagram

การออกแบบฐานข้อมูล จำเป็นจะต้องออกแบบ ER diagram ปัจจุบันมีเครื่องมือ Online สำหรับการออกแบบ ทำให้สะดวกในการออกแบบ ได้แก่

สามารถเลือกรูปแบบจำนวน

สามารถ export เป็น sql

นอกจากรูปแบบ Crow's Foot แล้วยังมีรูปแบบ อีกหลายอย่างที่นิยมใช้ในปัจจุบัน

  • เราใช้ uml datamodel สำหรับ application

UML Data Modeling concept

  1. Classes
  2. Association
  3. Association Classes
  4. Subclasses
  5. Composition & Aggregation

1. Classes

class ประกอบด้วย Name, attribute, methods โดยการออกแบบ data model ก็เพิ่มระบุค่าของ PK หรือ FK และ ไม่ต้องแสดง methods (สนใจเฉพาะที่เป็น data)

2. Association แสดงความสัมพันธ์ ระหว่าง Student และ College แทนด้วยการลากเส้น และระบุชนิดของความสัมพันธ์ applied

เมื่อมีความสัมพันธ์ ระหว่าง class ก็จะมีการระบุจำนวนของความสัมพันธ์ เรียกว่า Multiplicity of Association

  • One-to-One
  • Many-to-one
  • Many-to-Many

จำนวนของความสัมพันธ์จะเป็นเท่าไหรก็ได้ อยู่ที่การเก็บข้อมูล

3. Association Classes บางครั้งเราต้องการเก็บข้อมูล มากกว่าแค่ความสัมพันธ์ จากตัวอย่าง ต้องการเก็บวันที่สมัครเรียน date

บางครั้งในการออกแบบ มีการใช้ความสัมพันธ์ภายในระหว่าง class มีความสัมพันธ์กันเอง เรียกว่า self Association

4. Subclass บางครั้งใน application มีการใช้งาน subclass หรือ class ย่อยเพื่อเก็บข้อมูล ย่อยลงไป เช่น นักเรียนไทย และ นักเรียน inter เป็นต้น โดยจะเรียก student superclass คำเรียกที่ใช้เรียกในการออกแบบ class diagram

  • superclass หรือเรียกว่า Generalization
  • subclass หรือเรียกว่า Specialization

5. Composition & Aggregation

  • composition คือ datamodel ที่ออกแบบ เป็นของ (belong to) datamodel มีตัวหนึ่ง แยกจากกันไม่ได้ ถ้าแยกจากกันแล้วก็จะไม่สามารถรักษา ความเป็น datamodel เป็นความสัมพันธ์ที่เป็นแบบ strong lifecycle dependency สัญญลักษณ์ที่ใช้แทนเป็น รูป diamond ทึบ
  • Aggregation คือ datamodel ที่ออกแบบ เป็นองค์ประกอบ สามารถที่จะแยกกันได้ ัสัญญลักษณ์ที่ใช้แทนเป็น รูป diamond โปร่ง

results matching ""

    No results matching ""