1 / 22

Normalization การทำบรรทัดฐานข้อมูล ตรวจสอบตารางว่ายังมีความซับซ้อนอยู่หรือไม่ ?

Normalization การทำบรรทัดฐานข้อมูล ตรวจสอบตารางว่ายังมีความซับซ้อนอยู่หรือไม่ ?. จากตารางจะเห็นได้ว่ายังมีกลุ่มของข้อมูลในแถว OrderNo 0123 อยู่. 1 Normal Form : ไม่มี Repeating Group ไม่มีกลุ่มของข้อมูลในแถวเดียวกัน. ก่อนจะทำ 1 NF ต้องมองให้ออกก่อนว่ามีข้อมูลกี่ตัว ระบุ FD ของตาราง.

caelan
Télécharger la présentation

Normalization การทำบรรทัดฐานข้อมูล ตรวจสอบตารางว่ายังมีความซับซ้อนอยู่หรือไม่ ?

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Normalizationการทำบรรทัดฐานข้อมูลตรวจสอบตารางว่ายังมีความซับซ้อนอยู่หรือไม่?Normalizationการทำบรรทัดฐานข้อมูลตรวจสอบตารางว่ายังมีความซับซ้อนอยู่หรือไม่?

  2. จากตารางจะเห็นได้ว่ายังมีกลุ่มของข้อมูลในแถว OrderNo 0123 อยู่ 1 Normal Form : ไม่มี Repeating Group ไม่มีกลุ่มของข้อมูลในแถวเดียวกัน

  3. ก่อนจะทำ 1 NF ต้องมองให้ออกก่อนว่ามีข้อมูลกี่ตัว ระบุ FD ของตาราง ระบุ Functional Dependency (FD)1. Pno Pname , Price (ถ้าเรารู้ Pnoเราก็จะรู้ ชื่อกับราคา ของสินค้า Pname ,Price)2. OrderNo  OrdDate 3.OrderNo,Pno  Qtyและรู้ทั้งหมดด้วยจบ 1 NF ไม่มี Repeating Group

  4. 2 NF : อยู่ใน 1 NF แล้ว และ nonkeyทุกตัวขึ้นอยู่กับ Key และไม่ขึ้นกับบางส่วนของ Key 1 NF FD1. Pno Pname , Price (ถ้าเรารู้ Pnoเราก็จะรู้ ชื่อกับราคา ของสินค้า Pname ,Price)2. OrderNo  OrdDate3.OrderNo,Pno  Qtyและรู้ทั้งหมดด้วยทำให้เห็นว่า Qtyขึ้นอยู่กับบางส่วนของ Key เพราะว่า ต้องพึ่ง OrderNoและ Pnoถึงจะรู้ Qtyได้เพราะฉะนั้นยังไม่เป็น 2 NF

  5. ทำให้เป็น 2 NF ตามนิยามจะได้ออกเป็น 3 ตาราง

  6. 3 NFนิยาม เอนติตี้จะอยู่ในรูป NF 3 เมื่อเอนติตี้ดังกล่าวอยู่ในรูป NF 2 และไม่มี Transitive Dependensyทุกค่าของแอตตริบิวที่ไม่ใช่คีย์ ต้องไม่ขึ้นกับค่าของแอตตริบิวอื่นที่ไม่ใช่ Primary key จะเห็นได้ว่า เป็น 3 NF แล้ว

  7. BCNF : Boyce Codd Normal FormBCNF เป็นรูปแบบหนึ่งของ 3NF ที่มีเงื่อนไข หรือคุณสมบัติเพิ่มเติม ยกตัวอย่างมีข้อมูล A B C D FD A,B  C,D C  B ถ้า C เป็น E01 B ก็ต้องเป็น S01

  8. BCNF : All Determinan can be Candidate Key ตัวทางซ้าย แอนทิบิ้วที่สามารถใช้เป็นคีย์ของตารางได้ X  Y ตัวอย่าง Sid  Sname,rating,agesid,rating  เป็นคีย์แล้วได้อะไรหรือเปล่าsid,bid  day

  9. 4 NF: เป็น BCNF แล้ว สัมพันธ์กัน มีความสัมพันธ์แบบ Many to Many ทำให้เก็บข้อมูลไม่ได้ ต้องมีตารางใหม่เพิ่มขึ้นมา Sid Bid Sid Bid Day 4NF จะต้องไม่มี Muti Valued Dependensy (MVD) คือ X 1 ค่าได้ y หลายค่าC ->> T|B Couse 1 Couse มี Techerสอนหลายคน Couse 1 Couse ใช้หนังสือหลายเล่ม ข้อมูล T กับ Bไม่ขึ้นต่อกันแต่จับมาร่วมกันในตารางเดียวหากไม่เข้าใจให้อ่านเพิ่มเติมได้ที่ http://203.130.141.199/NewDBMS/DBMS/cs2t5.htm

  10. 5 NF : เป็น 4 NF ไม่มีคุณสมบัติ Join Dependencyตารางนั้นแตกได้อีกไหม แตกไม่ได้แล้วก็จบ ลองแตกคู่นี้ แล้ว Join กลับได้ค่าที่ถูกต้อง แต่ถ้าไม่ได้ก็หยุดแค่นั้นเป็น 5 NF ไม่มีอะไรเลยเป็นการแตกตารางดูเฉย ๆ

  11. Transaction One unit of work คือ 1 งานมีได้หลายคำสั่ง แต่ละคำสั่งทำงานได้อย่างถูกต้อง Daily operations คือ วัน ๆ ทำอะไร เช่น ห้องสมุด มี ยืม คืน ชำระค่าปรับ เช็คหนังสือ สั่งหนังสือ เป็นต้น องค์ประกอบ Transaction Atomicity -ความเป็นอันหนึ่งอันเดียวกัน โดยทุกคำสั่งใน Transaction หนึ่ง จะต้องทำงานได้สำเร็จทั้งหมด ถ้าไม่อย่างนั้นก็จะต้องมีการคืนสภาพกลับไปยังจุดเริ่มต้น Consistency –มีความถูกต้องของข้อมูลเสมอ ถ้าคำสั่งใน Transaction เกิด ความผิดพลาดขึ้น ก็จะมีการคืนสภาพกลับไปยังจุดเริ่มต้น Isolated - มีความเป็นส่วนตัว Transaction อื่นมาแซกไม่ได้ แต่ละ Transaction จะไม่กวนกัน Durability – ยืนยันว่ามีข้อมูลแน่นอน ข้อมูลไม่หาย

  12. ทำงานสลับกัน ปัญหาอาจเกิดขึ้นเมื่อทำงานพร้อมกัน Transaction 1----------- Transaction 2 -- -- -- -- -- -- เรียกว่า interleave เรียกว่า Transaction Schedule ดังนั้นจึงต้องมีวิธีป้องกัน - Share – lock- Exclusive – lock - Unlock

  13. T1อ่านข้อมูลเลข 5 โดยเป็น Share-lock เมื่อ T2เข้ามาก็จะอ่านได้อย่างเดียวไม่สามารถ อัพเดทได้ จนกว่า T1 จะปลดล็อค จากนั้น T2ExClusive-lock T3 จะเข้ามาอ่านไม่ได้ เมื่อT2 Update เป็น 6 เสร็จ ปลดล็อค T3 ก็ Share-lock ก็จะอ่านค่าได้เป็น 6 T1 T2 Select Share - lock 5 T3

  14. Locking Granularity คือ Lock ทั้ง DataBase ทั้งหมดเลย สำหรับการปรับปรุง DataBaseจะปิดเลยไม่มีใครสามารถเข้าได้ Indexเป็นตัวชี้ว่า Page อยู่ที่ไหน Index ชี้ตำแหน่ง Table ทำให้หาข้อมูลได้เร็วขึ้น แต่ก็ต้องแลกกับเนื้อที่เก็บ Index Optimistic Approaches คือ ไม่ล็อค แต่ใช้วิธีตรวจสอบก่อนเขียนลง DataBase แบบ Time Stamp – ไม่ล็อค แต่ใช้เวลา T 1 เวลา 10.00 Read(X) 10.02 T 2 เวลา 10.01 Read(X) 10.03Write(X) 10.04 เขียนไม่ได้เพราะ T1 มาก่อนจะไปเขียนทับ T1 ไม่ได้

  15. Volatile – มีไฟเลี้ยงข้อมูลไม่หายUnVolatile – ไม่มีไฟเลี้ยงข้อมูลยังอยู่ เช่น แฟลชไดร์Log File – เก็บประวัติการเปลี่ยนแปลงของข้อมูล LSN – Log Sequence Number Fail CheckPoint CheckPoint T1 T2 T3 T4 ตัวอย่าง Code Transaction Begin Delete from dept where deptno = 50 ; เลือก rollback ยกเลิก หรือ Commit ตกลง

  16. Immediata Update ไม่ต้องรอ commit เขียนลงทันที เมื่อ Rollback ข้อมูลเปลี่ยนกลับDeffered Update ต้องรอ CommitViewคือ นิยามคำสั่ง Select ทำให้โปรแกรมเป็นอิสระจากโครงสร้างฐานข้อมูล และทำให้เขียน Select สั้นลงStored Procedure – เป็นฟังก์ชั่น โปรแกรมย่อย ต้องเรียกใช้เองอ่านเพิ่มเติมได้ที่ http://www.narisa.com/forums/index.php?app=blog&module=display&section=blog&blogid=6&showentry=6Triggerโปรแกรมย่อยทำงานเองอัตโนมัติ

  17. ตัวอย่างการสร้าง ViewCREATE view Ca_Customers AsSELECT *FROM CustomersWHERE Custstate = ‘CA’----------------------------------------------------------เวลาเรียกใช้ SELECT * FROM Ca_Customers Domainคือการกำหนดขอบเขต Create Domain StudentClass As Char(2) Check (Value in (‘FR’,’So’,’JR’,’SR’)) คือ DB จะเก็บเฉพาะ 4 ตัวนี้เท่านั้น FR,So,JR,SR

  18. ในเรื่องความปลอดภัยกำจัดสิทธิให้ user เป็นข้อมูลไม่เท่ากัน มีข้อมูลอยู่ 1 ตาราง มีใช้ข้อมูลนี้ อยู่ 3 คน DBA จำกัดสิทธิให้ คนที่ 1 เห็นแค่ ข้อมูล Aคนที่ 2 เห็นแค่ ข้อมูล A,B และคนที่ 3 เห็น ข้อมูลทั้งหมด เป็นการกำจัดสิทธิ Data Control Language GRANTเป็นคำสั่งที่ใช้กำหนดสิทธิให้กับผู้ใช้คนอื่นเพื่อให้สามารถใช้งาน REVOKE     เป็นคำสั่งที่ใช้ยกเลิกหรือเรียกคืนสิทธิที่เคยให้ไว้ ทำให้ผู้ใช้ที่ถูกยกเลิกสิทธิ   ไม่สามารถใช้งานทรัพยากรเดิมได้อีกต่อไป privileges คือ สิทธิที่ต้องการอนุญาตให้ใช้งานซึ่งแบ่งออกเป็นหลายระดับ GRANT ALL PRIVILEGES on order * To Smith (กำหนดให้ Smith มีทุกสิทธิกับตาราง Order)

  19. Operational DataBaseคือ ฐานข้อมูลที่มีการเก็บข้อมูลทุกวันDBAมีหน้าที่ ทำให้ข้อมูลปลอดภัย มีประสิทธิภาพ ดูแลแก้ไขฐานข้อมูล เป็นคนสร้าง DB File รับผิดชอบ Table User Denormalization – ยอมให้ข้อมูลซ้ำบ้างเพื่อให้เร็วขึ้นquery optimization – การเขียน query ให้เรียกใช้ได้เร็ว วิธีสั้นที่สุดTrade off - ได้อย่างเสียอย่าง

  20. Assertion เป็นการตรวจสอบ เมื่อข้อมูลเปลี่ยนแปลงใน DB ตรวจสอบความสัมพันธ์ทั้งหมด Catalog Table ข้อมูลโครงสร้างนิยามของ Table ที่เราสร้าง DB จะเรียกดูจาก Catalog Table Logical Concept ข้อมูลที่เราเห็น เช่น ฐานข้อมูล order, ตาราง customer, product เป็นต้น Physicalคือ ข้อมูลที่อยู่ในแต่ละ sector DBMS Logical แสดงข้อมูลให้เราเห็น Physical Memory ถูกใช้บ่อยก็อยู่ Memory Disk ความเร็ว 10 กำลัง -9 Disk ความเร็ว 10 กำลัง -3 Logical record สามารถอยู่ได้ หลาย Physical record แต่เป็นข้อมูลตารางเดียวกัน สนใจในเรื่องของการอ่านข้อมูลออกมาประสิทธิภาพอยู่ที่หาข้อมูลแล้วเจอ Physical ส่งข้อมูลไปใน memory memmoryก็แสดงเป็น Logical ให้เราเห็นข้อมูล

  21. โครงสร้างแฟ้มSequential File แต่ละบล็อคต่อไปเรื่อย ๆ ข้อมูลบล็อคนี้เต็มก็ไปอีกบล็อคถ้าเป็น Order เก็บข้อมูลเรียงไปเรื่อย ๆ UnOrderไม่เรียง ถ้าลบออกไปก็จะเป็นที่ว่าง ๆ สามารถนำจับข้อมูลข้างล่างใส่ได้เลย Fragmentคือ จัดเรียงที่ว่าง ๆ ที่ไม่ถูกใช้ นาน ๆ ทำที Order UnOrder 1 8 2 9 3 6 4 4 5 2 6 7

  22. Hash Filesเอาข้อมูลมาสามารถรู้ได้เลยว่าอยู่ตรงไหน ข้อมูลต้องมาผ่าน H(x) ฟังก์ชั่น Hashถ้าเต็มก็สร้างต่อ ข้อมูลกระจายกันอยู่ ข้อมูลจะค้นหาได้เร็วมากเมื่อผ่าน H(x) จะรู้ Address ทันทีเมื่อได้ Physical record ก็เข้า Memory แล้วไปวนลูปหาอีกทีข้อเสีย อาจจะจองเนื้อที่ไปเยอะ เพราะจองทั้งบล็อค H(x) เต็มก็สร้างต่อ

More Related