วันอังคารที่ 27 ธันวาคม พ.ศ. 2565

ผลการเรียนรู้ครั้งที่ 5 (Function Dependency (FDs))

  Function Dependency (FDs)


💛 FD : Determinant (ตัวกำหนดค่า) - attribute 👉 Dependency - Attribute

 ถ้าหากเราใส่ รหัสบัตรประชาชนใน   Determinant มันจะแสดง ชื่อ,ชั้นปี,เอกหรือสาขา (Dependency)

* Fully Function Dependency 

* Multi - Value Dependency (MVDs) : สามารถบอกค่าได้ 2 Attribute [➡➡]

💛 รูปแบบบรรทัดฐานระดับที่ 2 (2NF)

นิยาม Relation นั้นจะต้องอยู่ในรูปแบบ 1 NF และ Non-Attribute ทุกตัวต้องขึ้นกับคีย์หลักอย่างแท้จริง

รูปแบบบรรทัดฐานระดับที่ 3 (3NF) คีย์คู่แข่ง เช่น รหัสสมัคร ⇿ เลขประจำตัวผู้เสียภาษี

วันพุธที่ 21 ธันวาคม พ.ศ. 2565

ผลการเรียนรู้ครั้งที่ 4 (รูปแบบบรรทัดฐานที่ 3 (3NF)" Function Dependency (FDs))

ผลการเรียนรู้ครั้งที่ 4

 "รูปแบบบรรทัดฐานที่ 3 (3NF)" Function Dependency (FDs)


"รูปแบบบรรทัดฐานที่ 3 (3NF)" Function Dependency (FDs)

ฟังก์ชั่นการขึ้นต่อกัน (Functional Dependency : FD) ฟังก์ชั่นการขึ้นต่อกัน เป็นการอธิบายถึงความสัมพันธ์ระหว่างค่าของ แอตทริบิวต์ ที่อยู่ใน รีเลชั่นเดียวกัน โดยแอตทริบิวต์หรือกลุ่มแอตทริบิวต์ที่สามารถระบุค่าของแอตทริบิวต์อื่น ๆ ในทูเพิล เดียวกันได้ จะเรียกว่า "ดีเทอร์มิแนนท์" (Determinant) และแอตทริบิวต์ ที่ถูกระบุ ค่าถึงเรียกว่า "ดีเพนเดนซี่" (Dependency) ตัวอย่างเช่น รีเลชั่นนักศึกษาที่มี รหัสนักศึกษา เป็นค่าคีย์จะ สามารถระบุค่าอื่น ๆ ได้เช่น เมื่อระบุรหัสนักศึกษา จะได้ค่าในแอตทริบิวต์ ชื่อ, สาขา, ห้อง และชั้นปี ออกมา เป็นต้น การเขียนฟังก์ชั่นการขึ้นต่อกัน สามารถเขียนโดยใช้ สัญลักษณ์

👉ตัวอย่างเช่น Determinant --> Dependency รหัสนักศึกษา --> ชื่อ, สาขา, ห้อง, ชั้นปีจากตัวอย่างด้านบน รหัสนักศึกษา คือ ดีเทอร์ มิแนนท์ และส่วน ชื่อ, สาขา, ห้อง, ชั้นปี คือ ดีเพนเดนซี่ ในการพิจารณาว่ารีเลชั่นว่าอยู่ใน รูปแบบนอร์มอลระดับใดนั้น จะพิจารณาจากฟังก์ชั่นการ ขึ้นต่อกัน

📋ประเภทของฟังก์ชั่นการขึ้นต่อกัน แบ่งออกเป็น 4 ประเภท คือ

1) ฟังก์ชั่นการขึ้นต่อกัน ที่เกิดจาก ความสัมพันธ์ระหว่างดีเทอร์มิแนนท์ และดีเพนเดนซี่ อย่าง ละ 1 ค่า เช่น ความสัมพันธ์ ระหว่าง รหัสนักศึกษา และชื่อนักศึกษา ดังนี้

👉รหัสนักศึกษา --> ชื่อนักศึกษา Std_ID --> Std_Name 

2) ฟังก์ชั่นการขึ้นต่อกัน ที่เกิดจากความสัมพันธ์ระหว่างดีเทอร์มิแนนท์ 1 ค่า กับดีเพนเดนซี่ หลายค่า เช่น ความสัมพันธ์ระหว่าง รหัสนักศึกษา และข้อมูลของนักศึกษา (เช่น ชื่อ, นามสกุล, วันเดือนปีเกิด เป็นต้น) ดังนี้ 👉รหัสนักศึกษา --> ชื่อ, นามสกุล, วันเดือนปีเกิด Std_ID --> FirstName, LastName, BirthDate 

3) ฟังก์ชั่นการขึ้นต่อกัน ที่มีความสัมพันธ์ 2 ทาง โดยที่ทั้งดีเทอร์มิแนนท์และ ดีเพนเดนซี่ ต่างก็สามารถทำหน้าที่ของแต่ละฝ่ายได้ เช่น ความสัมพันธ์ระหว่าง รหัสนักศึกษา และ เลขบัตรประชาชน ที่ต่างก็ไม่มีข้อมูลซ้ำกันเลย และสามารถทำหน้าที่เป็นดีเทอร์มิแนนท์ เช่นเดียวกัน ดังนี้ 

👉รหัสนักศึกษา --> เลขบัตรประชาชน Std_ID --> Std_Pin เลขบัตรประชาชน --> รหัสนักศึกษา Std_Pin --> Std_ID รหัสนักศึกษา <--> เลขบัตรประชาชน Std_ID <--> Std_Pin 


4) ฟังก์ชั่นการขึ้นต่อกัน ที่ต้องใช้ดีเทอร์มิแนนท์ มากกว่า 1 ค่าเพื่อระบุถึงดีเพนเดนซี่ เช่น ความสัมพันธ์ระหว่าง รหัสนักศึกษา, รหัสวิชา และ ห้องเรียน ดังนี้

 👉รหัสนักศึกษา, รหัสวิชา --> ห้องเรียน Std_ID, Course_ID --> Room 

วันเสาร์ที่ 10 ธันวาคม พ.ศ. 2565

ผลการเรียนรู้ครั้งที่ 3 ( การออกแบบฐานข้อมูลเชิงสัมพันธ์)

     สรุปผลการเรียนรู้ที่ 3

 การออกแบบฐานข้อมูลเชิงสัมพันธ์

คำศัพท์

Relation = ตาราง (Table)

 Attribute = ชื่อของคอลัมน์

 Tuple = แถวของ relation 1 แถว 

Determinant = ตัวกําหนดค่า

Dependency = ค่าที่ขึ้นอยู่กับ  Determinant

 Candidate key = คีย์คู่แข่ง  

Redundancy = ความซํ้าซ้อนของข้อมูล

 Composition key = คีย์ร่วม

 Repeating groups = กลุ่มข้อมูลซํ้า

ฐานข้อมูลเชิงสัมพันธ์

คือ การจัดเก็บข้อมูลในลักษณะที่เป็นกลุ่มของข้อมูลที่มีความสัมพันธ์กัน ในฐานข้อมูลหนึ่งๆ สามารถที่จะมีตารางตั้งแต่ 1 ตารางเป็นต้นไป และในแต่ละตารางนั้นก็สามารถมีได้หลายคอลัมน์ (Column) หลายแถว (Row) 

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

                         

Normalisation คือ การปรับข้อมูลให้เป็นรูปแบบบรรทัดฐานเพื่อลดความซํ้าซ้อนในการเก็บข้อมูล ช่วยให้เกิดประสิทธิภาพในการจัดเก็บข้อมูลในฐานข้อมูล รวมทั้งเพิ่มความถูกต้องและลดปัญหาต่างๆที่จะเกิดขึ้นในภายหลัง
การทําให้เป็นบรรทัดฐาน (Normal Form) เป็นกระบวนการวิเคราะห์ ภาวการณ์พึ่งพิงซึ่งกันและกันของคอลัมน์หรือ แอตทริบิวต์(Attribute Interdependency) ในแต่ละตารางสัมพันธ์ (Relation) โดยทดสอบเปรียบเทียบกับ เกณฑ์ของการเป็นรูปแบบบรรทัดฐาน (Normal for m criteria) ซึ่งที่ใช้งานกันทั่วไป
 มีทั้งหมด 6 ระดับ หรือ 6รูปแบบบรรทัดฐาน ได้แก่ 
รูปแบบบรรทัดฐานที่ 1 (1NF) 
รูปแบบบรรทัดฐานที่ 2 (2NF) 
รูปแบบบรรทัดฐานที่ 3 (3NF)
รูปแบบบรรทัดฐาน BCNF 
รูปแบบบรรทัดฐานที่ 4 (4NF) 
รูปแบบบรรทัดฐานที่ 5 (5NF)
เป็นขั้นตอนการวิเคราะห์ และออกแบบตาราง ในฐานข้อมูลให้ลดความซํ ้าซ้อนของข้อมูลในตาราง ความขัดแย้งของ และง่ายต่อการจัดการตาราง และ ข้อมูลในตาราง เช่น ลบ แก้ไข ตามหลักการของ RDB (Relational Database)

ความจำเป็นในการกระทำ Normalization

                                  
เกิดปัญหาในการทีจะค้นหรือสรุปข้อมูล เช่น เราจะค้นว่าใครบ้างทีจะค้นข้อมูลทำให้เราค้นไม่ได้หรือจะสรุปว่ามีครูสอนวิชาคอมพิวเตอร์กี่คนก็จะสรุปไม่ได้เช่นกันเราไม่สามารถสรุปหรือค้นข้อมูลได้ถ้าเราจัดเก็บข้อมูลในลักษณะนี้

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

ระดับของNormalization
การทำ Normalization จะแบ่งเป็น 5 ระดับ แต่โดยทั่วไปมักกระทำเพียง 3 ระดับหรือ 4 ระดับ ก็จัดว่าเพียงพอคือ เริ่มจาก
•ระดับที่ 1 กำจัดกลุ่มข้อมูลที่ซ้ำกัน (Repeating Group)
•ระดับที่ 2 กำจัดการขึ้นต่อกันเพียงบางส่วน (partial Dependency)
•ระดับที่ 3 กำจัดการจึ้นต่อกันแบบสืบทอด (Transitive Dependency)
•ระดับที่ 4 กำจัดการจึ้นต่อกันแบบหลายค่า (Multi values Dependency)
ความเข้าใจเกี่ยวกับการกระทำ Normalization 
มันไม่ใช่ขั้นตอนทีจะต้องทำมันเป็นการตรวจสอบการออกแบบโครงสร้างการจัดเก็บข้อมูลมากกว่าเมื่อออกแบบโครงสร้างจัดเก็บข้อมูลมาแล้วก็จะมาดูด้วยการ Normalization เพื่อตรวจสอบให้เกิดความมั่นใจว่าโครงสร้างข้อมูลทีออกแบบข้อมูลมีความถูกต้องสมบูรณ์หรือไม่
เนื่องจาก Normalization เป็นการตรวจสอบการออกแบบโครงสร้างการจัดเก็บข้อมูล เพื่อให้เกิดความมั่นใจว่าโครงสร้างข้อมูลที่ออกแบบข้อมูลมีความถูกต้องสมบูรณ์
เพราะฉะนั้นการทำนอร์มอลไลส์ จึงไม่จำเป็นทำที่ละขั้นหรือที่ละระดับโดยถ้าผู้ออกแบบมีความเชี่ยวชาญ ตารางข้อมูลที่ออกแบบมาอาจเป็น Normal Form ระดับที่ 3 โดยไม่ต้องผ่านระดับที่ 1 หรือ ระดับที่ 2 มาก่อนก็ได้ 




วันจันทร์ที่ 5 ธันวาคม พ.ศ. 2565

ผลการเรียนรู้ครั้งที่ 2 ( สถาปัตยกรรมระบบฐานข้อมูล)

สรุปผลการเรียนรู้ที่ 2

     สถาปัตยกรรมระบบฐานข้อมูล

                         


สถาปัตยกรรมฐานข้อมูลนี้จะถูก แบ่งออกเป็น 3 ระดับ

1. ระดับความคิด (Conceptual Level) เป็นระดับการกำหนดรูปแบบข้อมูล ขนาดของข้อมูล และความสัมพันธ์ระหว่างข้อมูลใช้วิเคราะห์ความต้องการสารสนเทศเป็นระดับกาออกแบบฐานข้อมูล

2. ระดับภายนอก (External Level) เป็นระดับการกำหนดโครวสร้างข้อมูลสำหรับผู้ใช้ใช้เก็บข้อมูลจริงกล่าวถึงมุมมอง ที่มีต่อข้อมูลของผู้ใช้แต่ละคน 

3.ระดับภายใน (Internal Level) เป็นระดับของการจัดเก็บข้อมูลในหน่วยเก็บข้อมูลจริง ๆ ซึ่งเกี่ยวข้องกับโครงสร้างทางกายภาพของข้อมูล ผู้ใช้แต่ละคนมีการมองภาพของข้อมูลที่แตกจ่างกัน




แบบจำลองฐานข้อมูลมี 3 แบบ

1. แบบจำลองลำดับชั้น มาจากโครงสร้างต้นไม้ (Hierarchical Model) แบบลำดับ

    โครงสร้างฐานข้อมูลแบบลำดับขั้น 

จะมีลักษณะคล้ายต้นไม้ทีว่ำหัวลง

ลักษณะคล้ายๆโครงสร้างต้นไม้ (Tree Structure) มีการสืบทอดเป็นลำดับชั้น โหนดสูงสุดจะเรียกว่าราก (Root) โหนดระดับล่างลงมาจะเรียกว่า (Leaves) เรียกฐานข้อมูลในระดับนี้อีกชื่อหนึ่งว่าซิกเมนต์ (Segment) เปรียบได้กับเรคอร์ดในระบบแฟ้มข้อมูล เซกเมนต์ที่อยู่ระดับล่างลงไปก็คือเซกเมนต์ก่อนหน้า ความสัมพันธ์เป็นแบบ 1:M กล่าวคือ โหนดบนจะแตกโหนดลูกได้หลายๆโหนด ในขณะที่โหนดลูกจะมีโหนดบนเพียงโหนดเดียวเท่านั้น

โดยลักษณะของฐานข้อมูลจะประกอบไปด้วย

1. แบบหนึ่งต่อหนึ่ง : นักศึกษาหนึ่งคนจะมีสูติบัตรเพียงใบเดียวเท่านั้น และสูติบัตรหนึ่งใบก็เป็นของนักศึกษาได้เพียงหนึ่งคนเท่านั้นเช่นกัน 

2.แบบหนึ่งต่อกลุ่ม : นักษา 1 คนสามารถลงทะเบียนได้หลายวิชา หรือ 1 หลักสูตรมีนักศึกษาลงทะเบียนได้หลายคน

3.ไม่มีแบบกลุ่มต่อกลุ่ม 

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

3. แบบจำลองเชิงสัมพันธ์มาจากพีชคณิตเชิงสัมพันธ์ (Relational Model) แบบเชิงสัมพันธ์
รูปแบบเชิงสัมพันธ์เป็นรูปแบบที่คนมักนิยมใช้
    พัฒนาการของบันทึกจัดเก็บข้อมูลเริ่มต้นจากจัดเก็บแบบแฟ้มลำดับ (Sequential file) ก่อนจะมีการพัฒนาแบบจำลองฐานข้อมูล (Database) แบบต่าง ๆ

ข้อดีและข้อเสียของแฟ้มลำดับ

ข้อดี : เรียบร้อย

ข้อเสีย : การเรียกค้นหาทำได้ยาก , ข้อมูลซับซ้อน

แบบจำลองลำดับชั้น (Hierarchical models) 

ข้อดี : ลดความซับซ้อนได้บางส่วน

ข้อเสีย : แอพลิเคชั่นไม่เป็นอิสระจากข้อมูล


แบบจำลองเครือข่าย (Network models) 

ข้อดี : สามารถแก้ไขปัญหาความซับซ้อนได้

ข้อเสีย : แอพลิเคชั่นไม่เป็นอิสระจากข้อมูล


แบบจำลองเชิงสัมพันธ์ (Relational models)

ข้อดี : โครงสร้างเรียบร้อย , มีภาษา SQL เป็นเครื่องมือ

ข้อเสีย : เกิดความซับซ้อนในฟิลด์ที่เป็นคีย์