วันเสาร์ที่ 21 กรกฎาคม พ.ศ. 2550

Entity-Relation Model and Enhanced Entity-Relation Model : Part III

The Enhanced Entity-Relationship Model

แนวคิดพื้นฐานของ E-R model เพียงพอสำหรับการนำไปใช้ในการสร้างโครงสร้างฐานข้อมูลในโปรแกรมประยุกต์ในฐานข้อมูลธุรกิจทั่วๆไป แต่ยังไม่เพียงพอในการนำเสนอข้อมูลความต้องการในงานที่ใหม่กว่า เช่น งานด้านวิศวกรรม (CAD/CAM Database) ฐานข้อมูลภาพ (Image and Graphic DB) ฐานความรู้ในงานด้านปัญญาประดิษฐ์ (Knowledge base for AI) การทำให้ครอบคลุมส่วนเพิ่มขึ้นจำเป็นที่จะต้องพัฒนา แนวคิดในการออกแบบตัวแทนที่มีความเชื่อมโยงกับความหมายของคำ (Semantic modeling Concept)
E-R model ที่สนับสนุน Semantic Modeling Concept นี้ก็คือ Enhanced E-R Model
Enhanced Entity Relationship model มี E-R model เป็นพื้นฐานรวมกับส่วนที่เพิ่มเติมคือแนวคิดของ specialization/generalization และ categorization.

Semantic : adj : Connected with the meanings of words

The Concepts of Specialization/Generalization

แนวคิดของ Specialization/Generalization นั้นเกี่ยวข้องกับ Subclass และ SuperClass และ
the process of attribute inheritance.


SuperClass และ SubClass
Superclass: An entity set that includes distinct subclasses that require to be
represented in a data model.
Subclass: A subclass is also an entity set that has a distinct role and is
also a member of a superclass.

Attribute Inheritance
คุณสมบัติที่จำเป็นของ Entity ไม่ว่ามีระดับสูงกว่าหรือต่ำกว่า สร้างโดย Specailization/Gernalization นั้นคือ Attribute Inheritance (การสืบทอด Attribute)

Specialization(Top-down Approach)

หาและระบุความแตกต่างระหว่าง Object ที่อยู่ใน Class เดียวกันซึ่งสามารถถูกแบ่งได้มากกว่า 1 หรือมากกว่า
Generalization(Bottom-up Approach)
ลดความแตกต่าง Object แต่ละตัวโดยระบุ Common feature

Contraints on Specialization and Generalization
มีข้อกำหนดอยู่ 2 ประเภท ที่พบบนความสัมพันธ์ระหว่าง Superclass และ Subclass ไม่ว่าจะเป็นการทำ Specialization หรือ Generalization คือ Disjointness Constrain และ Completeness Constrain

Disjointness Constrain
เป็นข้อกำหนดเกี่ยวกับ subclass ว่า Entity ใดๆ จะเป็นสมาชิกอยู่ได้ใน Entity Subclass เดียวเท่านั้น

  • Disjoint ต้องการให้ Entity ที่ไปอยู่ในระดับต่ำกว่านั้น อยู่ได้แค่ Entity Set เดียว
  • Overlapping ต้องการให้ Entity ที่ไปอยู่ในระดับต่ำกว่านั้นอาจอยู่ได้มากกว่า 1 Entity Set

Completeness Constrain

  • Total generalization or specialization : Each higher-level entity must belong
    to a lower-level entity set. (แต่ละ Entity ที่อยู่ระดับสูงกว่าต้องไปอยู่ใน Entity ที่ต่ำกว่า)
  • Partial generalization or specialization : Some higher-level entities may not
    belong to any lower-level entity set. (Entity ที่อยู่ระดับสูงกว่าอาจจะไม่ไปอยู่ใน Entity ระดับต่ำกว่า)

Example


Total Disjoint (Complete)

จาก E-R Diagram แสดงว่า บังคับให้นิสิตทำงานอย่างใดอย่างหนึ่ง เมื่อแปลงเป็น Schema จะได้ 2 แบบ

Schema แบบที่ 1

  1. Student (SID,SName,GPA)
  2. Consultant(SID,SubCode,RatePerHour)
  3. LabAssistant(SID,LabName,Salary,Function)

Schema แบบที่ 2

  1. Consultant(SID,SName,GPA,Subcode,RatePerHour)
  2. LabAssistant(SID,SName,GPA,LabName,Salary,Function)

Partial Disjoint


นิสิตเลือกทำงานหรือไม่ทำก็ได้ ถ้าทำจะทำได้อย่างเดียว ใช้ Schema แบบที่ 1 เท่านั้น


Total Overlap



นิสิตทุกคนต้องทำงานโดย ทำทั้งสองอย่างก็ได้ ใช้ Schema แบบที่ 1 ถ้าใช้ Schema แบบที่ 2 จะเกิดข้อมูลซ้ำซ้อน ถ้านิสิตคนนั้นทำงาน 2 อย่างเป็นทั้ง Consultant และ LabAssistance



Partial Overlap


นิสิตทำงานหรือไม่ก็ได้ ถ้าทำอาจจะทำสองอย่างก็ได้ ใช้ Schema แบบที่ 1

วันศุกร์ที่ 20 กรกฎาคม พ.ศ. 2550

Conversion Problems

Exercise Converting ERD to Relation Tables

1.


Office(OfficeID,MgrName,Phone,Address);

Agent(AgentID,Name,Phone,OfficeID)
foreignkey (OfficeID) references Office

Owner(SSN,Name,SpouseName,Profession,SpouseProfession)

Home(HomeID,Street,City,State,Zip,NoBedrms,NoBaths,SqFt,OwnOccupied,Commission,SalesPrice,SSN,AgentID)
foreignkey (AgentID) references Agent
foreignkey (SSN) references Owner



2.


Part(PartNo,PartName);

Supplier
(SuppNo,SuppName);

Project
(ProjNo,ProjName);

Uses
(PartNo,SuppNo,ProjNo);
foreignkey (PartNo) references Part
foreignkey (SuppNo) references Supplier

foreignkey (ProjNo) references Project




3.

Statement(StmtNo,Date,AcctNo);

StmtLine(StmtNo,LineNo,MerName,Amt,TransDate);
foreignkey (StmtNo) references Statement

6.

Agent(AgentID,Name)

Home(HomeNo,Address)

Lists(HomeNo,Agent,Commission)
foreignkey (AgentID) references Agent
foreignkey (HomeNo) references Home

7.

Project(ProjNo,ProjName)

Specialty(SpecNo,SpecName)

ProjectNeeds(ProjNo,SpecNo)
foreignkey (ProjNo) references Project
foreignkey (SpecNo) references Specialty

Contractor(ContrNo,ContrName,SpecNo)
foreignkey (SpecNo) references Specialty

ProvidedBy(ProjNo,SpecNo,ContrName)
foreignkey (ProjNo,SpecNo) references ProjectNeeds
foreignkey (ContrName) references Contractor

8.



แบบที่ 1

Customer(Customer,.....)

Employee(Empno,.......,SupEmpNo)
foreignkey (SupEmpNo) references Employee

Product(ProdNo,.....)

Contains(ProdNo,OrdNo,Qty)
foreignkey (ProdNo) references Product
foreignkey (OrdNo) references Order


Order(OrdNo,........,CustNo,EmpNo)
foreignkey (CustNo) references Customer
foreignkey (EmpNo) references Employee

แบบที่ 2


Employee(EmpNo,.....)
Manager(EmpNo,SupEmpNo)
foreignkey (EmpNo) references Employee
foreignkey (SupEmpNo) references Employee





9.


Provider(ProvNo,....)

Physician(ProvNo,.....)
foreignkey (ProvNo) references Provider


Nurse(ProvNo,....)
foreignkey (ProvNo) references Provider


Patient(PatNo,....)
Item(ItemNo,...)


Visit(VisitNo,PatNo,ProvNo)
foreignkey (PatNo) references Patient
foreignkey (ProvNo) references Physician


Visitdetail(VisitNo,VisitDetailNo,ProvNo,ItemNo,...)
foreignkey (VisitNo) references Visit
foreignkey (ProvNo) references Nurse
foreignkey (ItemNo) references Item

วันจันทร์ที่ 16 กรกฎาคม พ.ศ. 2550

Entity-Relation Model and Enhanced Entity-Relation Model : Part I

Oultine

  • Understanding Relationships
  • Notation basics
  • Generalization/Specialization hierarchies

Data Models
Data model เป็นแบบจำลองข้อมูลเพื่อนำเสนอรายละเอียดเกี่ยวกับโครงสร้างและความสัมพันธ์ระหว่างข้อมูลอยู่ในรูปของแนวคิดหรือตรรกะ ที่ยากแก่การเข้าใจให้อยู่ในรูปแบบมาตราฐาน
Data Model : a collection of conceptual tools for describing data,
data relationships, data semantics, and consistency constraints.

notation : a system of written symbols used especially in mathematics.
semantic : adjective = connected with meanings of words.

การจะออกแบบฐานข้อมูลนั้นจะต้องมีกระบวนการทำ User Requirement (อาจารย์บอก 6-8 เดือน) เก็บความต้องการของผู้ใช้และกฎเกณฑ์ของธุรกรรมต่างในองค์กร (Business Rules) จากนั้นก็นำ User Requirement มาออกแบบ E-R Model แล้วจึงส่งเจ้าของงาน



User Requrement ----> E-R Models ----> Customer



เมื่อได้ E-R Model มาแล้วเราจะมาออกแบบเป็น Relational Model (ตาราง 2 มิติ) ซึ่งจะมีกฏเกณฑ์ตายตัว E-R Model เป็น Real world ขององค์กร ซึ่งใช้ออกแบบในระดับหลักการ



E-R Model



อี-อาร์โมเดล เป็นแบบจำลองข้อมูลซึ่งแสดงถึงโครงสร้างของฐานข้อมูลที่เป็นอิสระจากซอฟต์แวร์ที่จะใช้ในการพัฒนาฐานข้อมูล รวมทั้งรายละเอียดและความสัมพันธ์ระหว่างข้อมูลในระบบในลักษณะที่เป็นภาพรวม ทำให้เป็นประโยชน์อย่างมากต่อการรวบรวมและวิเคราะห์รายละเอียด ตลอดจนความสัมพันธ์ของข้อมูลต่าง ๆ โดยอี-อาร์โมเดลมีการใช้สัญลักษณ์ต่างๆ ที่เรียกว่า Entity Relationship Diagram หรือ อี-อาร์ไดอะแกรม แทนรูปแบบของข้อมูลเชิงตรรกะขององค์กร จึงทำให้บุคลากรที่เกี่ยวข้องกับระบบฐานข้อมูลสามารถเข้าใจลักษณะของข้อมูลและความสัมพันธ์ระหว่างข้อมูลได้ง่ายและถูกต้องตรงกัน ระบบที่ได้รับ การออกแบบจึงมีความถูกต้องและสอดคล้องกับวัตถุประสงค์ขององค์กร

องค์ประกอบของ E-R Model

  1. Entity set เป็นกลุ่มของ Entities ที่มีชนิดเดียวกันใช้ Attributes ร่วมกัน
    Entity คือ สิ่งของหรือวัตถุที่เกี่ยวข้องใน Real World ขององค์กร ซึ่งสามารถบอกถึงความแตกต่างจากสิ่งอื่นทั้งหมด เช่น นักศึกษา 1 คน , เหตุการณ์ 1 เหตุการณ์

  2. Realtionship set เป็นกลุ่มของความสัมพันธ์ประเภทเดียวกัน ซึ่งเกิดจากความสัมพันธ์ของ Entity
    แต่ละความสัมพันธ์ (Relationship)คือแถวซึ่งเป็นตัวแทนของความสัมพันธ์ระหว่างหลาย Entity จาก n Entity (n>=2)
    เช่น มี Entity Set นักศึกษา(รหัสนักศึกษา,ชื่อและสกุล, เกรดเฉลี่ย)
    และ มี Entity Set วิชาเรียน(รหัสวิชา,ชื่อวิชา,หน่วยกิต)
    Relationship แทนได้ว่า นักศึกษาคนไหนเรียนวิชาอะไร ตัวอย่าง 5 Relationship ดังนี้



    สมปองลงทะเบียนเรียนวิชา คณิต 1
    สมปองลงทะเบียนเรียนวิชา คณิต 2
    สมหมายลงทะเบียนเรียนวิชา ฐานข้อมูล 1
    สมใจลงทะเบียนเรียนวิชา คณิต 1
    สมใจลงทะเบียนเรียนวิชา Java

Attribute


An entity is represent by a set of (attributes,datavalue) pairs

Attributes : คือข้อมูลที่แสดงลักษณะ และคุณสมบัติของ Entity
เช่น attribute ของบุคคล อาจได้แก่ เลขประจำตัว ชื่อ ส่วนสูง
วันเดือนปีเกิด …. เป็นต้น

Attribute จะมีกรอบของค่าที่เป็นไปได้ที่เราเรียกว่า Domain (a set of permitted values)
เช่น Attribute blood กำหนดให้มีค่าที่เป็นไปได้ เช่น A,B,O,AB เท่านั้น
Attribute salary กำหนดให้มีค่าที่เป็นไปได้ เป็นตัวเลขชนิด double มีค่าไม่น้อยกว่า 10,000 เป็นต้น

ประเภทของ Key ใน Database

  • Superkey
  • Primary key
  • Candidate key
  • Foreign key

ในระบบฐานข้อมูล มีความจำเป็นต้องระบุให้ได้ถึงความแตก ต่างกันระหว่าง Entities ใน Entity Set และ ระหว่าง Relationship ใน Relationship Set
คีย์หลัก คือฟิลด์ (Attribute) ที่ได้รับเลือกให้เป็นตัวที่บอกความ แตกต่างของแต่ละเรคอร์ด
ดังนั้นค่าในฟิลด์นี้ของแต่ละเรคอร์ด ภายในตาราง ต้องไม่ซ้ำกัน
คีย์หลักอาจถูกกำหนดมาจาก attribute เดียว หรือใช้ตั้งแต่ 2 attributes ขึ้นไปร่วมกันกำหนดความแตกต่างของแต่ละเรคอร์ดได้

Superkey คือ กลุ่มของ attribute ตั้งแต่ 1 attribute ที่ระบุความแตกต่างของข้อมูลในตาราง เช่น รหัสนักเรียน SID เป็น 1 ใน Attribute ของ Entity Set Student ที่สามารถระบุความแตกต่างว่า Entity Student แตกต่างจาก Entity Student อื่น SID จึงเป็น Superkey เหมือนกันกับการรวมระหว่าง รหัสนักเรียน SID กับชื่อนักเรียน SName ก็สามารถระบุความแตกต่างของนักเรียนได้เช่นกัน SID,SName จึงเป็น Superkey เช่นเดียวกัน

Candidate Key คือ Superkey ที่ตัด attribute ที่ไม่จำเป็นสำหรับการเป็น Superkey ออก ในกรณี Entity Set Student มี SID เป็น Candidate key แต่ถ้า มี Attribute CitizenID (รหัสประชาชน) เพิ่มขึ้นมา CitizenID จะทำให้เกิด Superkey มากมายและ CitizenID ก็เป็น Candidate key เช่นเดียวกัน

Primary Key คือ Candidate key ที่ถูกเลือกขึ้นมา

Primary key

ประเภทของ Attribute

  • Simple and Composite
    Simple :
    ไม่สามารถแบ่งแยกได้อีก เช่น ชื่อ,สกุล,เพศ,คำนำหน้าชื่อ เป็นต้น
    Composite : สามารถแบ่งแยกได้อีกเช่น ชื่อและสกุล สามารถแบ่งเป็น ชื่อ,สกุล ได้
  • Single-Valued Attribute ที่มีค่าของข้อมูลในแต่ละสมาชิกของเอนทิตีได้เพียง ค่าเดียว เช่น บุคคลหนึ่งคนมีเพศเดียว Attribute เพศจึงเป็น Single-Valued หรือพนักงานหนึ่งคนมีเงินเดือนเพียงค่าเดียว Attribute เงินเดือนจึงเป็น Single-Valued เป็นต้น
  • Multi-valued Attribute เป็น Attribute ที่มีหลายค่า เช่น วุฒิการศึกษา หลายค่า เช่น บุคคลหนึ่งคนอาจมีวุฒิการศึกษาได้หลายระดับ
  • Derive เป็น Attribute ที่ค่าของข้อมูลในแต่ละสมาชิกของเอนทิตีได้มาจากการนำ ค่าของข้อมูลใน Attribute อื่นที่มีอยู่ในแต่ละสมาชิกของเอนทิตีมาทำการคำนวณ ซึ่งโดยทั่วไปไม่จำเป็นต้องจัดเก็บ Attribute ประเภทนี้ไว้ในระบบฐานข้อมูล เนื่องจาก Attribute ประเภทนี้มีการเปลี่ยนแปลงค่าของ ข้อมูลในแต่ละสมาชิกของเอนทิตีทุกครั้ง เมื่อมีการเปลี่ยนแปลงค่าของข้อมูลใน Attribute ที่ถูกนำมาคำนวณของแต่ละสมาชิกในเอนทิตี้ เช่น Attribute อายุปัจจุบันสามารถคำนวณได้จาก Attribute วัน/เดือน/ปี

ความสัมพันธ์ของ Entity

  • Binary : A relationship of degree two. 1 ความสัมพันธ์ของ 2 Entity
  • Ternary : A relationship of degree three. 1 ความสัมพันธ์ของ 3 Entity
  • Quarternary : A relationship of degree four. 1 ความสัมพันธ์ของ 4 Entity

Mapping Cardinalities (Type Of Relationship)

  • 1 : 1 หมายถึง ความสัมพันธ์ที่แต่ละสมาชิกในเอนทิตีหนึ่งมี ความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีเพียงสมาชิกเดียว หรือกล่าวได้ว่า ความสัมพันธ์ดังกล่าวเป็นแบบหนึ่งต่อหนึ่ง เช่น เอนทิตีอาจารย์และเอนทิตีคณะ มีความสัมพันธ์กันแบบหนึ่งต่อหนึ่ง กล่าวคือ แต่ละคณะมีคณบดีเพียงหนึ่งคนเท่านั้น และมีอาจารย์เพียงหนึ่งคนเท่านั้นที่เป็นคณบดี เป็นต้น
  • 1 : M , M : 1 หมายถึง ความสัมพันธ์ที่แต่ละสมาชิกในเอนทิตีหนึ่งมี ความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีมากกว่าหนึ่งสมาชิก หรือกล่าวได้ว่า ความสัมพันธ์ดังกล่าวเป็นแบบหนึ่งต่อกลุ่ม เช่น เอนทิตีคณะและเอนทิตีนักศึกษามีความสัมพันธ์กันแบบหนึ่งต่อกลุ่ม กล่าวคือ นักศึกษาแต่ละคนมีสังกัดเพียงคณะเดียว และหนึ่งคณะอาจมีนักศึกษาในสังกัดได้
  • M : M หมายถึง ความสัมพันธ์ที่สมาชิกมากกว่าหนึ่งสมาชิกใน เอนทิตีหนึ่งมีความสัมพันธ์กับสมาชิกในอีกหนึ่งเอนทิตีมากกว่าหนึ่งสมาชิก หรือกล่าวได้ว่า ความสัมพันธ์ ดังกล่าวเป็นแบบกลุ่มต่อกลุ่ม เช่น เอนทิตีนักศึกษาและเอนทิตีชุดวิชามีความสัมพันธ์กันแบบกลุ่มต่อกลุ่ม กล่าวคือ นักศึกษาแต่ละคนสามารถลงทะเบียนเรียนได้หลายชุดวิชา และแต่ละชุดวิชาสามารถมีนักศึกษาลงทะเบียนได้หลายคน

ดูตัวอย่างของความสัมพันธ์ ของนักเรียนกับอาจารย์ วิชาเรียน และ โปรเจค



พิจารณาที่ ความสัมพันธ์ 1 : 1 ระหว่าง Student กับ Project
แสดงให้เห็นว่านักเรียน 1 คนมี 1 โปรเจค และ 1 โปรเจคนั้นมีนักเรียนทำได้คนเดียว ไม่มีการทำซ้ำของโปรเจค เราสามารถเก็บ Schema ของ Table ในความสัมพันธ์ลักษณะนี้ได้ 2 แบบ
Schema แบบที่ 1 คือ Student(SID,SName,GPA,ProjID,ProjName,Budget,Lab);
Schema แบบที่ 2 คือ
Student(SID,SNAME,GPA,ProjID);
foreign key (ProjID) references Project
Project(ProjID,ProjName,Budget,Lab);



พิจารณาที่ ความสัมพันธ์ 1:M ระหว่าง Lecturer กับ Student แบบไม่มี Descriptive Attribute
แสดงให้เห็นว่าผู้สอนแต่ละคนจะเป็นอาจารย์ที่ปรึกษากับกับนักเรียนหลายคน
และนักเรียนแต่ละคนจะมีอาจารย์ที่ปรึกษาได้เพียง 1 คน จะได้ Schema ดังนี้
Lecturer(LecID,LecName,Dept);
Student(SID,SNAME,GPA,ProjID,LecID);
foreign key (ProjID) references Project
foreign key (LecID) references Lecturer



พิจารณาที่ ความสัมพันธ์ M:M ระหว่าง Lecturer กับ Subject
แสดงให้เห็นว่าผู้สอนนั้นสามารถสอนได้หลายวิชาและแต่ละวิชาอาจจะมีผู้สอนได้หลายคน
Lecturer(LecID,LecName,Dept);
Subject(SubID,SubName);
Teach(LecID,SubID)
foreign key (SubID) references Subject
foreign key (LecID) references Lecturer



ความสัมพันธ์ 1 : m แบบมี Descriptive Attribute


รูปนี้ผิดนะกำลังแก้ไขอยู่

  • ลูกค้าแต่ละคนอาจจะมีหลายการเช่า
  • การเช่าแต่ละครั้งต้องมีลูกค้าหนึ่งคน
  • วิดีโอเทปอาจจะมีการยืมหนึ่งรายการ
  • รายการยืมต้องมีหนึ่งรายการ

ปัญหาการออกแบบ E-R

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

วันอาทิตย์ที่ 15 กรกฎาคม พ.ศ. 2550

Entity-Relation Model and Enhanced Entity-Relation Model : Part II

Weak Entity and Strong Entity
Entity Set อาจจะมี attribute ไม่เพียงพอที่จะทำเป็น Primary key เราเรียก Entity Set นั้นว่า Weak Entity คือไม่สามารถจะมี Primary Key เป็นของตนเอง
Entity Set ที่มี attribute เป็น Primary key ของตนเองเป็น Strong Entity
สำหรับ Weak Entity นั้นจะใช้ประโยชน์ได้มันต้องมีความเกี่ยวข้องกับ Entity Set อื่นที่เราเรียกว่า identifying หรือ owner entity set
ทุก weak entity จะต้องมีความเกี่ยวข้องกับ identifying entity นั่นคือ weak entity นั้นขึ้นกับ (existence dependency) identifying Entity Set และ Identifying Entity Set เป็นเจ้าของ ของ weak entity ที่ถูกบ่งชี้หรือระบุ (identify)
ความสัมพันธ์ที่เกี่ยวข้องกันระหว่าง Weak Entity Set กับ Identifying Entity Set นั้นเรียกว่า Identifying Relationship
Identifying Relationship นั้นมีลักษณะ Many to One จาก Weak Entity ไปยัง Identifying Entity Set และ participation ของ Weak Entity จะเป็นความสัมพันธ์แบบ Total

ปัญหาการออกแบบ E-R
  • Fan Trap เกิดจากลำดับความสัมพันธ์ไม่ถูกต้อง มักพบในกรณีที่เอนทิตีหนึ่งมีความสัมพันธ์แบบหนึ่งต่อกลุ่มกับเอนทิตีอื่นตั้งแต่สองเอนทิตีขึ้นไป
  • Chasm Trap เกิดความขาดช่วงของข้อมูลไม่สามารถบอกรายละเอียดของความสัมพันธ์ได้