รวมคำศัพท์ที่ใช้ในการออกแบบฐานข้อมูล

Relational Database เป็นรูปแบบฐานข้อมูลที่ได้รับความนิยมมากที่สุดในปัจจุบัน ในการออกแบบ มีคำศัพท์มากมายที่ควรรู้จักไว้ ก่อนเริ่มการออกแบบ


ภาพที่ 1 ถูกใช้เพื่ออธิบายคำศัทพ์ด้านล่าง

Capture100

Relation

รีเลชัน (Relation) คือ ชุดของทูเปิล (a set of tuple)  ถ้าไม่ใช่ในวงวิชาการก็ใช้คำว่าเทเบิล (Table)

Attribute

แอตตริบิวต์ (Attribute) คือ สิ่งที่ใช้ระบุลักษณะของข้อมูลรวมถึงบอกด้วยว่าข้อมูลคืออะไร ตัวอย่างเช่น ข้อมูลคือ “Uaychai” ผู้ใช้จะไม่รู้เลยว่าข้อมูลนี้คืออะไร แต่ถ้าบอกว่า “Uaychai” คือ “FirstName” คำว่า”FirstName” ก็คือแอตตริบิวต์ของข้อมูล ถ้าไม่ใช่ในวงวิชาการก็ใช้คำว่าคอลัมน์ (Column)

Tuple

ทูเปิล (Tuple) คือ ข้อมูลที่อยู่ภายใต้ชุดแอตตริบิวต์เดียวกัน แต่ข้อมูลในแอตตริบิวต์อาจเหมือนหรือต่างกัน ตัวอย่างเช่น

ข้อมูล A = {FirstName:Uaychai, LastName:Chotjaratwanich}

ข้อมูล B = {FirstName:Anakin, LastName:Skywalker}

ข้อมูล C = {FirstName:Wookies, Age:25}

ข้อมูล A และ ข้อมูล B ถือเป็นสองทูเปิล เพราะมีแอตตริบิวต์เดียวกันคือ FirstName กับ LastName ในขณะที่ C ไม่ใช่ทูเปิลเดียวกับ A และ B เพราะมีชุดแอตตริบิวต์ต่างกัน

ถ้าไม่ใช่ในวงวิชาการ จะใช้คำว่า แถว (Row) หรือ เรคคอร์ด (Record)


รีเลชัน1 ถูกใช้เพื่อเป็นตัวอย่างคำศัพท์ด้านล้าง

Class Product Period Lecturer
SQLS SQL Server Mon Uaychai
SQLS SQL Server Sat Uaychai
MyS MySQL Mon Yoda
MyS MySQL Sat Uaychai

รีเลชัน2 ถูกใช้เพื่อเป็นตัวอย่างคำศัพท์ด้านล่าง

Lecturer Age
Uaychai 36
Yoda 200

Super Key

ซุปเปอร์คีย์ (Super Key) คือ ชุดของแอตตริบิวต์ ที่ข้อมูลในแต่ละทูเปิลของชุดแอตตริบิวต์นั้นมีค่าไม่ซ้ำกัน

ซุปเปอร์คีย์ของรีเลชันนี้1 ได้แก่ {Class, Period}, {Product, Period}, {Class, Period, Lecturer}, {Product, Period, Lecturer} และ {Class, Product, Period, Lecturer}

Candidate Key

แคนดิเดทคีย์ (Candidate Key) คือ ซุปเปอร์คีย์ที่มีจำนวนแอตตริบิวต์น้อยที่สุด

แคนดิเดทคีย์ของรีเลชัน1 ได้แก่ {Class, Period} และ {Product, Period}  เพราะเป็นซุปเปอร์คีย์ที่จำนวนแอตตริบิวต์น้อยที่สุดคือ 2 ตัว

Prime Attribute

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

ไพร์มแอตตริบิวต์ของรีเลชัน 1 ได้แก่ Class, Product, Period

นอนไพร์มแอตตริบิวต์ของรีเลชัน 1 ได้แก่ Lecturer

Primary Key

ไพรมารีคีย์ (Primary Key) คือ แคนดิเดทคีย์หนึ่งตัวที่ถูกเลือกมา เพื่อให้ข้อมูลในแคนดิเดทคีย์นั้นเป็นตัวแทนของแต่ละทูเปิลในรีเลชัน

ไพรมารีคีย์ของรีเลชัน 1 อาจเป็น {Class, Period} หรือ {Product, Period} อย่างใดอย่างหนึ่ง

Alternate Key

อัลเทอเนทคีย์ (Alternate Key) คือ แคนดิเดทคีย์ที่ไม่ได้ถูกเลือกมาเป็นไพรมารีคีย์

อัลเทอเนทคีย์ของรีเลชัน 1 อาจเป็น {Class, Period} หรือ {Product, Period} อย่างใดอย่างหนึ่ง แต่ต้องไม่ถูกเลือกเป็นไพรมารีคีย์ก่อนแล้ว

Foreign Key

ฟอร์เรนคีย์ (Foreign Key) คือ แอตตริบิวต์หรือชุดของแอตตริบิวต์ที่ข้อมูลในแอตตริบิวต์ต้องอ้างอิงข้อมูลในแอตตริบิวต์ตัวอื่นซึ่งอยู่ในรีเลชันเดียวกันหรือต่างรีเลชัน

ฟอร์เรนคีย์ของรีเลชัน 1 อาจเป็น Lecturer เพราะข้อมูลในแอตตริบิวต์ Lecturer อ้างอิงกับแอตตริบิวต์ Lecturer ในรีเลชัน 2

Functional Dependency

นำไปสู่ (Functional Dependency : สัญลักษณ์ → )  ถ้าให้ X และ Y เป็นแอตตริบิวต์หรือชุดแอตตริบิวต์ X นำไปสู่ Y (X→Y) ก็ต่อเมื่อหยิบข้อมูลใดๆใน X มาหนึ่งตัว จะต้องได้ข้อมูลใน Y หนึ่งตัว

ในรีเลชัน 1

Class → Product เพราะเมื่อข้อมูลClass คือ SQLS ไม่ว่าจะหยิบจากทูเปิลไหน  ผลลัพท์ข้อมูลใน Product จะเป็น SQL Server และ เมื่อข้อมูลClass คือ MyS ไม่ว่าจะหยิบจากทูเปิลไหน  ผลลัพท์ข้อมูลใน Product จะเป็น MySQL

Product → Class เพราะเมื่อข้อมูล Product คือ SQL Server ไม่ว่าจะหยิบจากทูเปิลไหน ผลลัพท์ข้อมูลใน Class จะเป็น SQLS และ เมื่อข้อมูล Product คือ MySQL ไม่ว่าจะหยิบจากทูเปิลไหน ผลลัพท์ข้อมูลใน Class จะเป็น MyS

Class ไม่นำไปสู่ Period  เพราะเมื่อข้อมูลใน Class เป็น SQLS ไม่ว่าจะหยิบจากทูเปิลไหน ข้อมูลใน Period เป็นได้ทั้ง Mon และ Sat

{Product, Period} → Lecturer เพราะเมื่อข้อมูล {Product, Period} เป็น (SQL Server, Mon) ไม่ว่าจะหยิบจากทูเปิลไหน จะได้ Lecturer เป็น Uaychai และ เมื่อข้อมูล {Product, Period} เป็น (SQL Server, Sat) ไม่ว่าจะหยิบจากทูเปิลไหน จะได้ Lecturer เป็น Uaychai

Lecturer ไม่นำไปสู่  {Product, Period} เพราะเมื่อข้อมูล Lecturer เป็น Uaychai ไมว่าจะหยิบจากทูเปิลไหน {Product, Period} อาจเป็นได้ทั้ง (SQL Server, Mon), (SQL Server, Sat) และ (MySQL, Sat)


รีเลชัน 3 ถูกใช้เป็นตัวอย่างสำหรับคำศัพท์ด้านล่าง

ID Name Address DisableWhen
1 Uaychai Bangkok 1/1/2015
2 Uaychai Chiangmai
3 Yoda Khonkan

รีเลชัน 4 ถูกใช้เป็นตัวอย่างสำหรับคำศัพท์ด้านล่าง

OrderID OrderDate CustomerID
Q001 5/5/2014 1
Q002 7/7/2014 1
Q003 2/3/2015 2
Q004 3/5/2015 2

Surrogate Key

เซอโรเกทคีย์ (Surrogate Key) คือ แอตตริบิวต์หรือชุดของแอตตริบิวต์ที่เป็นแคนดิเดทคีย์ และถูกใช้เพื่อเชื่อมข้อมูลกับรีเลชันอื่น

ในรีเลชัน 3 เซอโรเกทคีย์ คือ ID ซึ่งถูกใช้เพื่อเชื่อมข้อมูลกับรีเลชัน 4 ผ่านแอตตริบิวต์ CustomerID

Natural Key (Business Key)

เนเชอรัลคีย์ (Natural Key) คือ แอตตริบิวต์หรือชุดของแอตตริบิวต์ที่ถูกใช้เป็นตัวแทนของวัตถุในโลกจริง

ในรีเลชัน 3 เนเชอรัลคีย์ คือ Name ไม่ว่าจะเป็นข้อมูลในทูเปิล (แถว) 1 หรือ ทูเปิล 2 ต่างก็พูดถึงคนๆเดียวกัน แค่เปลี่ยนที่อยู่เท่านั้น

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s