รายละเอียดเสริมเพิ่มเติมเกี่ยวกับ
This presentation is the property of its rightful owner.
Sponsored Links
1 / 67

รายละเอียดเสริมเพิ่มเติมเกี่ยวกับ การออกแบบฐานข้อมูล PowerPoint PPT Presentation


  • 114 Views
  • Uploaded on
  • Presentation posted in: General

รายละเอียดเสริมเพิ่มเติมเกี่ยวกับ การออกแบบฐานข้อมูล. Database Life Cycle : DBLC ทบทวน Entity-Relationship Model การแปลง Entity เป็น Relation Entity แบบของความสัมพันธ์ของ Entity Relational Model จาก ER-Model.

Download Presentation

รายละเอียดเสริมเพิ่มเติมเกี่ยวกับ การออกแบบฐานข้อมูล

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


3715102

รายละเอียดเสริมเพิ่มเติมเกี่ยวกับ การออกแบบฐานข้อมูล

Database Life Cycle :DBLC

ทบทวน Entity-Relationship Model

การแปลง Entity เป็น Relation

Entity

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

Relational Model จาก ER-Model


Object database life cycle dblc

บทเสริมเพิ่มเติมเรื่องObject ก่อนศึกษา Database Life Cycle :DBLC

  • Object คือ สิ่งใด ๆ ที่เราสนใจ อาจเป็นสิ่งที่จับต้องได้ เช่น สินค้า ลูกค้า พนักงาน หรือสิ่งที่จับต้องไม่ได้ เช่น บริษัท ฝ่ายต่าง ๆ

  • ลักษณะของ Object

    • State คือ สถานะของ Object ซึ่งจะมีคุณสมบัติเฉพาะบอกให้รู้ว่าเป็น Object อะไร โดยคุณสมบัติจะขึ้นอยู่กับมุมมองแต่ละคน เช่น ค้อน มี หัว กับด้าม

    • Behavior คือ พฤติกรรมของ Object ที่กระทำเพื่อให้สถานะของ Object เปลี่ยนไป เช่น ส่ง massage หรือ รับ massage

    • Identity คือ คุณลักษณะที่ทำให้ Object แต่ละ Object แตกต่างกัน เช่น ค้อน 1ปอนด์


3715102

ลักษณะของวิธีการเชิงวัตถุ

  • วิธีการเชิงวัตถุจะสมบูรณ์ได้ต้องประกอบไปด้วยองค์ประกอบ 4 อย่าง คือ

    • มุมมองของออบเจ็กต์ (Abstraction)

    • คุณค่าภายในออบเจ็กต์ (Encapsulation)

    • ลำดับชั้นของออบเจ็กต์ (Hierarchy)

    • การตอบสนองต่อเมสเสจ (Polymorphism)


Abstraction

มุมมองของออบเจ็กต์ (Abstraction)

  • Abstraction : กระบวนการทางความคิดในการอธิบายสิ่งหนึ่งสิ่งใดที่สนใจ เช่น Abstraction ของจักรยาน ประกอบด้วย ล้อ อาน เบรก บันไดถีบ ฯลฯ


Encapsulation

คุณค่าภายในออบเจ็กต์ (Encapsulation)

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

น้ำหนัก

วัสดุที่ใช้

ประวัติ


3715102

ลำดับชั้นของออบเจ็กต์

  • Hierarchy เป็นการนำออปเจ็กต์มาจัดกลุ่มและสร้างความสัมพันธ์

ยานพาหนะ


Polymorphism

การตอบสนองต่อเมสเสจ (Polymorphism)

  • Polymorphism เป็นพฤติกรรมที่ออบเจ็กต์ที่ต่างกันตอบสนองต่อเมสเสจเดียวกันได้ต่างกัน เช่น ออบเจ็กที่เป็นตัวเลข กับออบเจ็กที่เป็นตัวอักษร ตอบสนองต่อสัญลักษณ์(เมสเสจ) + ต่างกัน

    ตัวเลข 25,2 เมื่อมี เมสเสจ + จะตอบสนองได้ค่า 27

    ตัวอักษร 25,2 เมื่อมี เมสเสจ + จะตอบสนองได้ค่า 252


Abstraction data model

Abstraction ที่ใช้ใน Data Model

  • Classification Abstraction : เป็นการจัดกลุ่มของสิ่งที่สนใจตามคุณสมบัติที่มีร่วมกัน ซึ่งกลุ่มที่จัดเรียกว่า Class เช่น Class ชื่อพนักงานประกอบด้วย สมบัติ จำลอง ลาวัลย์ …..ธาราทิพย์

ชื่อพนักงาน

ธาราทิพย์

สมบัติ

จำลอง

ลาวัลย์


3715102

Abstraction ที่ใช้ใน Data Model

  • Aggregation Abstraction : เป็นการจัด Class ขึ้นมาใหม่จาก Class เดิม โดย Class เดิมจะถูกใช้เป็นส่วนประกอบของ Class ใหม่ เช่น Class พนักงานบริษัท ประกอบด้วย Class ชื่อพนักงาน Class เพศ และ Class ตำแหน่ง ฯลฯ

พนักงานบริษัท

Aggregation

ชื่อพนักงาน

เพศ

ตำแหน่ง

สมบัติ

จำลอง

สาวัลย์

ชาย

หญิง

ผู้จัดการ

การตลาด

พัสดุ


3715102

Abstraction ที่ใช้ใน Data Model

  • Generalization Abstraction : เป็นการนำ Class ที่มีความสัมพันธ์กันมาจัดเป็นกลุ่มของ Class ใหม่ ซึ่งเรียก Class ที่จัดขึ้นมาใหม่ว่า Superset ส่วน Class เดิมเรียกว่า Subset

Superset

แผนกคลัง

รถยนต์

Subset

การเงิน

บัญชี

บรรทุก

เก๋ง

แทรกเตอร์


3715102

ประเภทความสัมพันธ์ภายใต้ Aggregation Abstraction

D1

D2

D3

D1

D2

D3

B1

B2

F1

F2

F3

F4

C1

C2

D1

D2

D3

One to One

One to Many

C1

C2

C3

F1

F2

F3

Many to One

Many to Many


3715102

Database Life Cycle :DBLC

  • Database Initial Study :วิเคราะห์ความต้องการของผู้ใช้

  • Data Design :ออกแบบฐานข้อมูล (Data Driven, Joint Data and Function-driven)

  • Implementation and Loading :สร้างเป็นฐานข้อมูล

  • Testing and Evaluation :ทดสอบฐานข้อมูลที่สร้าง

  • Operation :ใช้งานฐานข้อมูล

  • Maintenance and Evaluation :บำรุงรักษาฐานข้อมูล


3715102

วงจรชีวิตการพัฒนาฐานข้อมูล Database Life Cycle : DBLC

วิเคราะห์ความต้องการ

Initial Study

ออกแบบฐานข้อมูล

Database Design

บำรุงรักษา

Maintenance

สร้างฐานข้อมูล

Implement and Loading

ใช้งานจริง

Operation

ทดสอบระบบฐานข้อมูล

Testing and Evaluation


3715102

Data Driven Approach ( Database Design )

  • Conceptual Design :อธิบายโครงสร้างหลักของฐานข้อมูล โดยไม่สนใจว่าจะใช้โครงสร้างข้อมูล หน่วยสำรองข้อมูล และ DBMS (Conceptual Schema)

  • Logical Design :นำ Conceptual schema มาดัดแปลงให้อยู่ในรูปแบบที่กำหนดโดย Database Model (Hierarchical ,Relational , Object-oriented หรือ Network) = Logical Schema

  • Physical Design : เปลี่ยน Logical Schema ให้อยู่ในรูปแบบที่กำหนดโดย DBMS =Physical Schema


3715102

Data Requirements

Conceptual Design

Conceptual Schema

Logical Design

Logical Schema

Physical Design

Physical Schema


3715102

Entity-Relationship Model

  • Data Model ที่นิยมใช้นำเสนอรายละเอียดต่าง ๆที่เกี่ยวข้องกับฐานข้อมูลที่ออกแบบ

  • แบบจำลองที่มีรูปภาพ แทนโครงสร้างทางด้าน Abstraction

  • Entity :รูปภาพที่ใช้แทน Class ของสิ่งของต่าง ๆ ที่สามารถระบุได้ในความเป็นจริง


3715102

Order Detail

Entity

  • Regular Entity :มีสมาชิกที่มีคุณสมบัติ บ่งบอกเอกลักษณ์ของ Entity

  • Weak Entity : ลำพังสมาชิกของ Entity จะไม่สามารถบ่งบอกคุณสมบัติ Entity ได้ ต้องอาศัยสมาชิกจาก Entity อื่น

POPULAR


3715102

Attribute

  • ได้แก่ Class ของคุณสมบัติต่าง ๆ ที่นำมารวมกันแบบ Aggregation Abstraction เพื่อเป็น Entity หรือ Relationship

  • - Simple Attribute :เป็น Attribute ที่ไม่สามารถแยกย่อยได้อีก

Name

Sex

EmpID

Salary

Attribute

EMPLOYEE

Entity


3715102

Attribute

  • - Composite Attribute :เป็น Attribute ที่ค่าภายใน Attribute สามารถแยกย่อยได้อีก

F_Name

Sex

Name

Salary

S_Name

EMPLOYEE

EmpID


3715102

Attribute

  • - Identifier Attribute :เป็น Attribute ที่มีค่าในสมาชิกของ Entity ไม่ซ้ำกันเลย

Sex

F_Name

Name

Salary

S_Name

EMPLOYEE

EmpID


3715102

Attribute

  • - Multi-Valued Attribute :เป็น Attribute ที่ค่าของข้อมูลได้หลายค่าภายใต้ Attribute ใด Attribute หนึ่ง

Sex

F_Name

Name

Salary

S_Name

Degree

EMPLOYEE

EmpID


3715102

Attribute

  • - Derive Attribute :เป็น Attribute ที่ค่าของข้อมูลได้มาจากการนำค่าของ Attribute อื่นมาคำนวณ

Sex

F_Name

Name

Salary

S_Name

Tot_sal

EMPLOYEE

EmpID


3715102

Relationship

  • เป็นการนำ Entity มารวมกันแบบ Aggregate Abstraction

Work_In

EMPLOYEE

DEPARTMENT


3715102

One-to-One Relationship

  • เป็น Relationship ที่ Participant ของ Entity หนึ่งจะมีความสัมพันธ์กับอีก Participant ของอีก Entity เพียง Participant เดียว

  • CUSTOMER= {C1, C2, C3}

  • ACCOUNT = {A1,A2, A3}

  • BELONG_TO = {(C1,A1),(C2,A2),(C3,A3)}

Belong to

(1)

(1)

CUSTOMER

ACCOUNT


3715102

One-to-Many Relationship

  • เป็น Relationship ที่ Participant ของ Entity หนึ่งจะมีความสัมพันธ์กับ Participant ของอีก Entity หนึ่งมากกว่า 1 Participant

  • CUSTOMER= {C1, C2, C3}

  • ACCOUNT = {A1,A2, A3,A4}

  • BELONG_TO = {(C1,A1),(C2,A3),(C1,A4),(C3,A2)}

Belong to

(1)

(n)

CUSTOMER

ACCOUNT


3715102

Many-to-Many Relationship

  • เป็น Relationship ที่ Participant มากกว่า 1 Participant ของ Entity หนึ่งจะมีความสัมพันธ์กับ Participant ของอีก Entity มากกว่า 1 Participant

  • CUSTOMER= {C1, C2, C3}

  • ACCOUNT = {A1,A2, A3}

  • BELONG_TO = {(C1,A1),(C2,A2),(C1,A3),(C3,A1)}

Belong to

(m)

(n)

CUSTOMER

ACCOUNT


3715102

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

  • Binary Relationship : เป็นความสัมพันธ์ระหว่าง 2 Entity

  • N-ary Relationship : เป็นความสัมพันธ์ระหว่าง 2 Entity ขึ้นไป

  • Recursive Relationship : เป็นความสัมพันธ์ทที่เกิดกับ Entity เดียว

Employee

Schedual

Room

Course

ROOM ={R1,R2,R3}

Manage of

TIME ={T1,T2,T3}

Time

EMPLOYEE ={E1,E2,E3,E4}

COURSE ={C1,C2,C3}

SCHEDULE ={(R1,T1,C1),(R2,T2,C2),R3,T3,C3)}

Manage of ={(E1,E4),(E2,E4),(E3,E4),(E4,-)}


3715102

สัญญลักษณ์ที่ใช้ใน ER Model


3715102

การออกแบบฐานข้อมูลในระดับ Conceptual

  • เป็นการออกแบบฐานข้อมูลที่อยู่ในรูปนามธรรม ยังไม่เกี่ยวข้องกับตัว DBMS

  • แบบของการออกแบบอยู่ในรูป Conceptual Schema or Conceptual Data Schema (รายละเอียดของข้อมูลทั้งหมดที่เกี่ยวข้องกับความต้องการ)


3715102

ขั้นตอนการออกแบบในระดับ Conceptual

  • Requirement Analysis : ศึกษาความต้องการอย่างละเอียด

  • Initial Conceptualization : สร้าง Conceptual Schema ที่มีโครงสร้างรูปแบบ Abstraction ประกอบด้วย Entity, Relation และ Generalization

  • Integration : นำเเอา Initial Conceptualization มารวมกัน (Merging) เป็นโครงสร้างที่สมบูรณ์ (จัดรูปแบบ และกำจัดโครงสร้างที่ขัดแย้ง)

  • Restructuring:เป้นการปรับ Conceptual Schema ให้มีคุณภาพ เช่น การทำ (Normalization)


3715102

Refinement

  • การออกแบบ Conceptual Design ด้วย E-R Model จะอาศัยกระบวนการทำซ้ำ ที่เริ่มจากการร่าง แล้วค่อยปรับเปลี่ยนให้มีความระเอียดและสมบูรณ์มากยิ่งขึ้น

  • หลักการ

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

    • Primitive ที่ใช้ในการแปลงมี 2 แบบ คือ Top-down และ Bottom-up


3715102

Primitive แบบ Top-down

  • เป็นกฎที่ใช้ขยาย Concept เดิมเป็น Concept ใหม่ที่มีความระเอียดมากขึ้น

    • Concept เดิม ถูกขยายเป็น Concept ย่อย

    • ชื่อของ Concept เดิมถูกเปลี่ยน เพื่ออ้างถึง Concept ในระดับย่อย

    • Concept ย่อยจะต้องสืบทอดความสัมพันธ์ของ Concept เดิมไว้


3715102

Primitive แบบ Top-down

  • T1: Entity Related Entities

  • T2: Entity Subset

งาน

คน

สถานที่

คน

คน

ชาย

หญิง


Primitive top down

Primitive แบบ Top-down

  • T3: Entity Unrelated Entities

  • T4 : RelationshipParallel Relationship

NOBEL

OSCAR

AWORD

นักศึกษา

นักศึกษา

ลงทะเบียน

สอบ

วิชา

วิชา


Primitive top down1

Primitive แบบ Top-down

  • T5: Relationship Entity with Relationship

EMPLOYEE

EMPLOYEE

WORK WITH

WORK IN

MANAGER

DEPARTMENT

HEAD OF

DEPARTMENT


Primitive top down2

Primitive แบบ Top-down

  • T6 : Attribute Development


Relational model er model

Relational Model จาก ER-Model


E r model

สิ่งที่ต้องทำในการปรับ E-R Model(เพิ่มเติม)

  • 1.กำจัด Composite Attribute

    • แยก Composite Attribute ออกเป็น Attribute ย่อย

F Name

F Name

S Name

Person

Person

Sex

S Name

Amp

Sex

Chw

Amp

Address

Chw

  • ยุบ Composite Attribute ให้เหลือ Attribute เดียว

F Name

F Name

Person

Person

S Name

S Name

Sex

Sex

Address

Address


E r model1

สิ่งที่ต้องทำในการปรับ E-R Model

  • 2. กำจัด Multivalue Attribute

    • แปลง Multivalue Attribute เป็น Entity ใหม่ โดยเพิ่ม Identifier ของ Entity เดิม

Product_code

Product

Description

Price

Product_code

Product

Description

Price

Product_code

Material

Material_code

Material_code


E r model2

สิ่งที่ต้องทำในการปรับ E-R Model

  • แยก Multivalue Attribute ของ Relation ออกเป็น Entity แล้วรวมทุก Identifierของ Entity ที่เกี่ยวข้อง

Instructor_Id

Instructor

Department

Phone_no

Max_of_Std

Semester(1,n)

Course_no

Course

Offer

Offer

Instructor_Id

Semester(1,n)

Course_no

Course


E r model3

สิ่งที่ต้องทำในการปรับ E-R Model

  • 3.กำจัด External Identifier

    • แปลง External Identifier เป็น Attribute ของ Week Entity

University-Code

University

Name

Chw

University-Code

Student

Student-No

Enroll

Last-name

Age

Student_no

Student

Last_name

Age


Entity relation

การแปลง Entity เป็น Relation

University-Code

Student-No

Last-name

Age

University-Code

Student

Student-No

Last-name

Age

Student (University-Code, Student-No, Last-name, Age)


One to one relation

One to One Relation

  • กรณี Relationship ไม่มี Attribute

(1)

(1)

Cus_No

Cus_No

Customer

with

Shipping Info

Shipping-Address

Cus_name

Cust-Shipping

Cus-No

Cus_name

Ship-Address

Cus_Shipping(Cus-No,Cus_Name,Shipping_Address)

-ให้แปลง Relationship กับ Entity เป็น Relation เดียว แล้วเลือก Identified attribute ข้างใดข้างหนึ่งเป็น Primary key


One to one relation1

One to One Relation(เพิ่มเติมส่วนที่ขาดไป ที่ถามถึง)

  • กรณี Relationship มี Attribute

Duration

Date

(1)

(1)

Female_No

Male_No

Male

Marriage

Female

Female_Name

Name

Male (Male-No,Name)

Female (Female-No,Name)

Marriage (Male-No,Female_No,Date,Duration)


One to many relation

One to Many Relation

Date

Belong To

(N)

State Name

(1)

City Name

City

State

Government

Population

Population

City (City_name , State_name ,Population)

State (State_name ,Government,Population,Date)

หลักการ: ให้ย้ายสมาชิกของ Relationship ไปด้าน One แล้วสำเนา Identifier Attribute ด้าน One ไปไว้ที่ด้าน Many


Many to many relation

Many to Many Relation

Semester

Grade

M

Course_No

Student_Name

N

Student

Enroll in

Course

Last_name

Course_Name

GPA

Student (Student_name , Last_name ,GPA)

Course (Course_No , Course_name)

Enroll In ( State_name , Course_No , Semester, Grade)

หลักการ:ให้แปลง Relationship เป็น Relation ที่มี Identifier Attribute ของ Entity ทั้ง 2 ด้านเป็น Key


N ary relationship

N-Ary Relationship

Product_code

Product

Name

Description

(1,N)

(1,N)

(1,N)

Supplier_Code

Part

Supply

Supplier

Name

Address

Tel

Part_No

Description

Product (Product_Code , name ,Description)

Part (Part_No , Description)

Supplier ( Supplier_Code , Name, Address, Tel)

Supply ( Product_Code , Part_No, Supplier_Code, Quality)


Recursive relationship

Recursive Relationship

Date of birth

Employee

Name

Manager of

Employee (Name,Date of birth)

Manage of (Name of manager, Name of Employee)


Eer enhanced er model

แบบจำลอง EER (Enhanced ER Model)


3715102

แบบจำลอง EER (Enhanced ER Model)- เป็น Model ที่นำแนวคิดของ ER Model มาเพิ่มเติมในเรื่อง1. ความสัมพันธ์แบบ Superclass/Subclassหรือ Supertype/Subtype2. แนวคิดของ Generalization/Specialization ซึ่งเป็นแนวคิดที่ใช้ในการสร้างความสัมพันธ์ของ Entity ที่เป็น Superclass/Subclass รวมทั้งการถ่ายทอดคุณสมบัติ (Attribute Inheritance)

- เหมาะที่จะนำมาใช้กับระบบงานทางธุรกิจที่มีความสลับซับซ้อน ซึ่งจะช่วยลดความซับซ้อนของข้อมูล การเขียน Model ทำได้ง่าย


3715102

แบบจำลอง EER (Enhanced ER Model)Superclassคือรูปแบบของ Entity ที่เป็นต้นแบบของ Entity อื่นๆ โดย Superclass จะประกอบไปด้วย Subclass ต่างๆSubclass คือ Entity ที่มีคุณสมบัติบางอย่างที่แตกต่างจากสมาชิกของSubclass ด้วยกัน แต่จะมีคุณสมบัติพื้นฐานตาม Superclass ตัวอย่าง:Entity พนักงาน เป็น Superclass ประกอบด้วยข้อมูล รหัสพนักงาน,ชื่อ ,วันที่เริ่มทำงาน Entity นี้ประกอบด้วย Subclass คือ- ผู้บริหาร จะมีข้อมูลเฉพาะ คือ รถและเงินเดือนประจำตำแหน่ง- ผู้เชี่ยวชาญ จะมีข้อมูลเฉพาะเกี่ยวกับความชำนาญและค่าตอบแทน- พนักงานแรงงาน จะมีข้อมูลเฉพาะ คืออัตราค่าจ้างรายวันและ ข้อมูลของ Entity ที่เป็น Subclass จะต้องมีข้อมูลทั้งหมดจากSuperclass


3715102

Employee

-รหัสพนักงาน

-ชื่อพนักงาน

-วันที่เริ่มทำงาน

Manager

Specialist

Labor

-ค่าจ้างรายวัน

-รถประจำตำแหน่ง -เงินเดือนประจำตำแหน่ง

-ความชำนาญ - ค่าตอบแทนผู้เชี่ยวชาญ

Superclass/Subclass


3715102

การถ่ายทอดคุณสมบัติ (Attribute Inheritance)- Subclass จะรับถ่ายทอดคุณสมบัติทุกๆอย่างจาก Superclass- ทำให้ไม่ต้องกำหนด Attribute ซ้ำซ้อนใน Subclass ตัวอย่าง :Subclass ผู้บริหาร,ผู้เชี่ยวชาญและพนักงานแรงงาน จะได้รับถ่ายทอดคุณสมบัติทุกๆอย่างจาก Superclass Employee Generalization/Specialization- Generalizationเป็นกระบวนการจัดการกับ Entity ที่ป็นแม่แบบ เพื่อใช้กำหนดลักษณะที่เหมือนกันหรือร่วมกัน วิธีการนี้เป็นวิธีแบบล่างขึ้นบน (Bottom-Up Approach) ด้วยการมองหาสิ่งที่เหมือนกันใน Subclassเช่น การพิจารณา Entity ที่เป็น Subclass คือ ผู้บริหาร, ผู้เชี่ยวชาญและพนักงานแรงงาน ว่ามีลักษณะอะไรที่เหมือนกัน เพื่อออกแบบ Entity ที่เป็น Superclassคือ Employee ซึ่งมีข้อมูลร่วมกัน คือ รหัสพนักงาน ชื่อและวันที่เริ่มทำงาน


3715102

Generalization/SpecializationSpecialization เป็นกระบวนการจัดการกับ Entity ที่มีความแตกต่างกันในกลุ่มของสมาชิกซึ่งขึ้นกับ Superclass วิธีนี้เป็นวิธีแบบบนลงล่าง (Top-Down Approach)ด้วยการมองจุดที่แตกต่างกันระหว่าง Subclass เช่น Superclass Employee ประกอบด้วยพนักงานที่เป็นผู้บริหาร ผู้เชี่ยวชาญและพนักงานแรงงาน ซึ่งมีรายละเอียดเฉพาะตามประเภทพนักงานเครื่องหมายที่ใช้แสดงความสัมพันธ์ของ Superclass/Subclass - เครื่องหมาย U แสดงว่า Subclass เป็น Subset ของ Superclass- จุดเชื่อมต่อ คือ วงกลม- เส้นที่ลากจาก Superclass มายัง Subclass คือ เส้นที่ถ่ายทอดคุณสมบัติ


3715102

ตัวอย่าง ธุรกิจมีการว่าจ้างพนักงาน โดยมีพนักงานที่แตกต่างกัน 3 ประเภท คือ1. Hourly Employees – พนักงานรายชั่วโมง2. Salary Employees – พนักงานประจำ ได้รับเงินเดือน3. Consultants – ที่ปรึกษา ได้รับเงินพิเศษ โดย Attribute ที่สำคัญของพนักงานแต่ละประเภท ประกอบด้วย Hourly Employee (Emp_no, Emp_name, Address, Date_hired, Hourly_Rate) Salary Employee (Emp_no, Emp_name, Address, Date_hired, Annual_Salary) Consultant ( Emp_no, Emp_name, Address, Date_hired, Contract_No, Billing_Rate)


3715102

Emp_name

Address

Emp_no

Date_hired

Employee

U

U

U

Hourly

Employee

Consultant

Salary

Employee

Billing_Rate

Hourly_rate

Annual_Salary

Contact_no


3715102

Emp_name

Address

Emp_no

Date_hired

Employee

U

U

U

Hourly

Employee

Consultant

Salary

Employee

Billing_Rate

Hourly_rate

Annual_Salary

Contact_no


3715102

  • โดยพนักงานรายเดือน (Salaried Employee) พนักงานรายชั่วโมง (Hourly Employee)ในแต่ละเดือนบริษัทต้องคำนวณการจ่ายเงินให้พนักงานโดยมีวิธีคิดแตกต่างกัน

  • แต่อย่างไรก็ตามพนักงานทุกประเภทมีลักษณะร่วมกัน ได้แก่ หมายเลขประจำตัว ชื่อ แผนก

  • หากต้องการสร้างเมธอด pay() ชื่อเดียว แต่สามารถใช้ได้กับพนักงานทุกประเภท อันนี้ถือว่าเป็นการนำเอาความสามารถด้านโพลีมอร์ฟิซึมมาใช้


3715102

Employee

SalariedEmployee

HourlyEmployee

Consultant


3715102

ตัวอย่างเบื้องต้นหากต้องการประยุกต์ใช้ด้วย Java

Employee.java

public class Employee

{

protected String firstName;

protected String lastName;

protected String pid; // personal id

public Employee() { firstName =""; lastName=""; pid="";}

public Employee(String newFirstName, String newLastName,

String newPid)

{

firstName = newFirstName;

lastName = newLastName;

pid = newPid;

} //end

Continue


3715102

Employee.java

public void setName(String newFirstName, String newLastName){

firstName = newFirstName;

lastName = newLastName;

}

public void setPid(String newPid){

pid = newPid;

}

public String getName(){

return firstName + " " + lastName;

}

public String getPid(){

return pid;

}

public double pay(){ return 0;}

public String toString(){

return "PID:" + pid + " Name:" + getName();

}

}//end Employee


3715102

SalariedEmployee.java

public class SalariedEmployee extends Employee

{

protected double salary;

public SalariedEmployee() { }

public SalariedEmployee(String fName, String lName,

String newPid,double newSalary)

{

super(fName,lName,newPid);

salary = newSalary;

} //end

public void setSalary(double newSalary){

salary = newSalary;

}

public double pay(){ return salary;}

public String toString(){

return super.toString() + " Salary : " + salary;

}

}//end SalariedEmployee


3715102

HourlyEmployee.java

public class HourlyEmployee extends Employee {

protected double hour;

protected double rate;

public HourlyEmployee() { hour =0;}

public HourlyEmployee(String fName, String lName,

String newPid, double h,double r)

{

super(fName,lName,newPid);

hour = h; rate = r;

} //end

public void setHour(double newHour){

hour = newHour;

}

public void setRate(double newRate){

rate = newRate;

}

public double pay(){ return hour * rate;}

public String toString() {

return super.toString() + "\n\t\t Hour: " + hour +

" Rate: " + rate + " Total: " + this.pay();

}

}//end HourlyEmployee


3715102

EmployeeTest.java

public class EmployeeTest

{

public static void main(String[] args)

{

System.out.println("Polymorphism Testing!");

Employee e= new Employee("Chery","Meesuk","36001");

System.out.println("Employee: " + e.toString());

SalariedEmployee s= new SalariedEmployee("Vipa","Thongdee",

"36002",25000);

System.out.println("Salaried Employee: " + s.toString());

HourlyEmployee h= new HourlyEmployee("Anun","Kam",

"346003",30, 150);

System.out.println("Hourly Employee:" + h.toString());

System.out.println("\nThe reference of Parent class can refer to

an instance of its subclass");

Employee emp[] = new Employee[2];

emp[0] = s;

emp[1] = h;

System.out.println(emp[0].pay());

System.out.println(emp[1].pay());

} //end main method}

} //end EmployeeTest


  • Login