Chapter 6 Information System Development การวิเคราะห์และออกแบบระบบทางธุรกิจ (Business System analysis and Design) Chapter 6 Information System Development By Thanapon Thiradathapattaradecha
Data Flow Diagram Data Flow Diagram: DFD - List of External Entities or Boundary - Context diagram or DFD level 0 - Process Decomposition Diagram - DFD Fragment of Process 1…2..3..4..5 - DFD level 1 Or Combine of DFD Fragment - DFD level 2...Until activity complete Or suitable
เครื่องมือ 3 ชนิดที่ใช้ในการออกแบบ Analysis Phase Process Modeling คือเทคนิคในการวิเคราะห์และออกแบบที่ใช้อธิบายการแปลง input เป็น output หรือ structured analysis and design เครื่องมือ 3 ชนิดที่ใช้ในการออกแบบ Project dictionary Data modeling (Entity-relationship diagrams) Data flow diagrams
Analysis Phase – Process Modeling Project Dictionary เก็บเอกสารและรายการต่างๆภายใน project เพื่อช่วยให้เราสามารถติดตามการเปลี่ยนแปลงต่างๆที่เกิดขึ้นกับการออกแบบระบบ โดยมีวิธีการต่างๆ ที่ใช้ในการจัดทำ project dictionary ดังนี้ Structured English Decision tables Decision trees Data dictionary
พจนานุกรมข้อมูล (Data Dictionary : DD)
พจนานุกรมข้อมูล พจนานุกรมข้อมูลจะเป็นตัวบอกคุณลักษณะของข้อมูลที่ใช้ในองค์กร และเป็นตัวสำคัญสำหรับนักวิเคราะห์ระบบ ในการพัฒนาระบบ เพราะจะเป็นตัวช่วยให้ทีมงาน และผู้ใช้ระบบทุกคนพูดถึงข้อมูลตัวเดียวกัน เมื่อข้อมูลนั้นอยู่ในสถานการณ์ที่ต่างกัน เช่นอยู่คนละแผนกแต่ใช้ข้อมูลตัวเดียวกัน เป็นต้น การเขียน พจนานุกรมข้อมูลนั้น เขียนขึ้นเพื่อใช้ตรวจสอบและอธิบายรายละเอียดของข้อมูล การเขียน พจนานุกรมข้อมูล เพื่ออธิบาย data flow และ data store ควรจะอธิบายถึงโครงสร้างของข้อมูล (data structure) และสมาชิกของข้อมูล (data elements)
ความสำคัญของพจนานุกรมข้อมูล 1. ในระบบที่ใหญ่จะมีปริมาณข้อมูลที่ไหลไปมา ระหว่างระบบงาน มากมาย และทุกระบบจะทำงานตลอดเวลา เป็นไปไม่ได้ที่ผู้ใช้จะจดจำรายละเอียดเกี่ยวกับระบบได้ทั้งหมด บางครั้งอาจจะลืมสมาชิกตัวสำคัญไป ดังนั้นพจนานุกรมข้อมูลจะช่วยจัดการเกี่ยวกับรายละเอียดเหล่านี้ได้ 2. พจนานุกรมจะช่วยให้ผู้ใช้ระบบทุกคน เข้าใจสมาชิกของข้อมูล และกิจกรรมของระบบในความหมายเดียวกัน 3.ใช้เป็นคู่มือที่อำนวยความสะดวก ในการวิเคราะห์ลักษณะต่างๆ ของระบบ
องค์ประกอบของ Data Dictionary ชื่อข้อมูล (Name) รายละเอียดของข้อมูล (Data description) ลักษณะของข้อมูล (Data type) ความยาวของข้อมูล (Data length) รายละเอียดเพิ่มเติม (Additional information) ค่าที่เป็นไปได้ (Permissible value)
การเขียนอธิบายโครงสร้างข้อมูล (data structures) คำอธิบายโครงสร้างข้อมูล มักจะใช้สัญลักษณ์ต่าง ๆ เข้าช่วย มีดังนี้ + แทน และ [ ] แทน เลือกเพียงหนึ่งอย่างใน { } แทน การทำซ้ำ ( ) แทน มีหรือไม่มีก็ได้ *..* แทน หมายเหตุ = แทน การสมมูลกับ min { } max แทน ทำซ้ำจากจำนวนต่ำสุดถึงสูงสุด
การอธิบายโครงสร้างข้อมูล ตัวอย่าง ใบสั่งซื้อ = หมายเลขใบสั่งซื้อ + วันเดือนปีที่สั่งซื้อ + ชื่อลูกค้า + { รหัสสินค้า + ชื่อสินค้า + จำนวนที่สั่งซื้อ + ราคาต่อหน่วย} ข้อมูลของนักศึกษา STUDENTS = { Student record } Student record = Name + Address + Student code + Advisor
การอธิบายโครงสร้างข้อมูล (data structures) (ต่อ) ตัวอย่าง ใบทวงหนี้_ผู้ขาย = เลขที่ใบสั่งซื้อ + ชื่อผู้ขาย + จำนวนเงินรวม + วันชำระเงิน + (วันที่_ส่งของ) + * ได้รับสำเนาใบทวงหนี้แต่ละใบอย่างน้อย 2 ฉบับ * {รายละเอียดสินค้าแต่ละอย่าง } 20 1
การเขียนพจนานุกรมของ data flow เครื่องหมายลูกศรหรือ data flow มักจะเป็นตัวแรกที่ถูกนำมาเขียนในพจนานุกรมข้อมูล เพราะเป็นตัวกำหนด input/output จากการวิเคราะห์ระบบ ในพจนานุกรมข้อมูลดังกล่าวควรจะประกอบด้วย สิ่งต่างๆ ดังนี้ 1.ชื่อข้อมูล (data names) ที่ตั้งขึ้นจะใช้ในการอ้างอิงถึงสมาชิกตัว นั้น ๆ ได้ตลอดระบบงานที่พัฒนา ดังนั้นควรจะเลือกชื่อที่มีความหมายและเข้าใจง่าย เช่น วันที่ออกใบเสร็จ (data_of_invoice) เป็นต้น 2. คำอธิบายย่อ ๆ เกี่ยวกับข้อมูลตัวนั้น (data descriptions) ว่าสำคัญอย่างไรกับระบบงาน เช่น data_of_invoice คือวันที่ที่ใบเสร็จนั้น ๆ ถูกจัดทำขึ้นมา เป็นต้น
การเขียนพจนานุกรมของ data flow (ต่อ) 3. ชื่ออีกชื่อหนึ่ง (aliases) ของข้อมูล เนื่องจากข้อมูลตัวเดียวกัน สามารถนำไปใช้ในหลาย ๆ แผนกได้ ซึ่งอาจจะใช้ชื่อที่แตกต่างกันไป ขึ้นกับแผนกที่นำไปใช้ เช่น ชื่อ invoice บางแผนกอาจจะใช้ชื่อว่า statement, bill หรือ price_document เป็นต้น 4. แหล่งของ data flow เพื่ออธิบายว่าข้อมูลนั้นมาจากไหน จะไปไหน ซึ่งอาจจะเป็น external entity, process หรือ data store 5. ชื่อของ data structure และ data elements ที่ใช้ใน data flow นั้น ๆ 6. ปริมาณของข้อมูลในช่วงเวลาที่สนใจ
รูป ตัวอย่างการเขียนพจนานุกรมข้อมูลของ data flow หมายเลข ชื่อ ………………………………………………………………………………….. ……………………………………………………………………………………… คำอธิบาย………………………………………………………………………….. ต้นกำเนิด (source) …………………………. ปลายทาง (destination) ……….. ชนิดของ data flow file screen report form internal โครงสร้างข้อมูลที่เคลื่อนไหวใน flow……. ………………………….. ปริมาณ/เวลา...................................... ……………………………………. ข้อเสนอแนะ……………………………………………………………………… รูป ตัวอย่างการเขียนพจนานุกรมข้อมูลของ data flow
Data Flow (data dictionary)
การเขียนอธิบายสมาชิกข้อมูล (data elements) เป็นการอธิบายรายละเอียดสมาชิกของข้อมูลในโครงสร้างข้อมูล 1. ชื่อข้อมูล ควรจะ unique ซึ่งจะเป็นชื่อที่ใช้ในการผลิตโปรแกรมด้วย 2. ชื่อเล่น หรือชื่ออื่น ๆ ของข้อมูล (aliases) 3. คำอธิบายเกี่ยวกับข้อมูลนั้น 4. ความยาวของข้อมูลนั้น 5. ชนิดของข้อมูล 6. ขอบเขตหรือค่าที่เป็นไปได้ของข้อมูล 7. คำแนะนำหรือข้อเสนอแนะ
รูป ตัวอย่างแบบฟอร์มพจนานุกรมข้อมูลของสมาชิกข้อมูล (data elements) หมายเลข ……………………….. ชื่อ ……………………….. ชื่ออื่น ๆ (alias) ………………………. คำอธิบาย ………………………. คุณลักษณะของสมาชิกข้อมูล ความยาว ……………………. alphabetic input format ……………………. alphanumeric output format ……………………. date default value ……………………. numeric continuous or discrete base or derived Validation eriteria Continuous Upper Limit ………………. Lower Limit ……………… Discrete Value meaning ……….. ……….. ข้อเสนอแนะ …………………………………………………………
การเขียนอธิบายพจนานุกรมของ data store ข้อมูลพื้นฐานของทุกตัวจะถูกจัดเก็บลงใน data store การเขียนอธิบายในพจนานุกรมของ data store จะประกอบด้วย 1. ชื่อ data store ต้อง unique 2. ชื่อเล่น (Aliases) 3. คำอธิบาย 4. ชนิดของแฟ้มข้อมูลเป็น manual หรือใช้คอมพิวเตอร์ 5. ความสัมพันธ์ระหว่างแฟ้มข้อมูล เช่น key หลัก key รองที่ใช้ 6. จำนวน record ที่สูงสุดของแฟ้มข้อมูล อัตราการเจริญเติบโตต่อปี 7. ชื่อ data structures
แบบฟอร์มคำอธิบาย data store หมายเลข ……………………….. ชื่อ ……………………….. ชื่ออื่น ๆ (alias) ………………………. คำอธิบาย ………………………. ลักษณะของ data store ชนิดของแฟ้มข้อมูล คอมพิวเตอร์ Manual File format ฐานข้อมูล Indexed Sequential Direct ขนาดของ record (ตัวอักษร) : …………………………Block size : …………………. จำนวนของ record : Maximum ……………………….. Average……………………. อัตราการเจริญเติบโต/ปี ร้อยละ ………………………... Data set name ……………………………… Copy member ……………………………… ชื่อโครงสร้างข้อมูล ………………………… key หลัก …………………………………... key รอง …………………………………… ข้อเสนอแนะ …………………………………………………………
พจนานุกรมข้อมูล (data dictionary)
โครงสร้างแฟ้มข้อมูล การจัดทำพจนานุกรมข้อมูลเพื่อเป็นตัวอธิบายโครงสร้างแฟ้มข้อมูลโดยหลักการก็คล้ายๆกับการทำคำอธิบาย Data flow และคำอธิบายของ Data store ตามตัวอย่างขั้นต้นเพียงแต่โครงสร้างแฟ้มข้อมูลจะมีความละเอียดและสามารถนำไปใช้ได้ต่อในขั้นของการออกแบบได้ต่อไปการทำแบบโครงสร้างแฟ้มข้อมูลจะประกอบด้วย Relation name Attribute domain, Index, Primary key, Foreign key, Data type, เป็นต้น
รหัสลูกค้า ชื่อ-สกุล เพศ ที่อยู่ เลขบัตรประจำตัว เลขพาสปอร์ต Entities/Table Attribute Description Attribute domain Type PK FK Refer Custom Cus_no รหัสลูกค้า Text (6) Yes Name ชื่อ-สกุล Text (40) Sex เพศ M/F Text (1) Address ที่อยู่ Per_Id เลขบัตรประจำตัว Text (13) Psp_Id เลขพาสปอร์ต Car_Id เลขใบขับขี่ National สัญชาติ Text (15) Date_con วันที่ติดต่อ
Data modeling (Entity-relationship diagrams) ในขั้นการวิเคราะห์นักออกแบบระบบจำเป็นต้องสร้างแบบจำลองกระบวนการเพื่อนำเสนอให้ทราบว่ามีกระบวนอะไรบ้างในระบบและในแต่ละกระบวนการมีความเกี่ยวข้องสัมพันธ์กันอย่างไรแบบจำลองข้อมูล Data Model จึงใช้อธิบายเกี่ยวกับข้อมูลต่างๆในระบบว่าข้อมูลเหล่านั้นมีการจัดเก็บในฐานข้อมูลอย่างไรและมีความสัมพันธ์กันอย่างไรโดยไม่ได้สนใจในรายละเอียดของข้อมูลทางกระบวนเท่าใดซึ่งรูปแบบการนำเสนอความสัมพันธ์นี้อยู่ในรูปแบบของ แผนภาพอีอาร์ไดอะแกรม (Entity relationship diagram ER-D)
Entity relationship diagram ER-D 1. Entities - Personal,Place, Object,Event,Concepts 2. Relationships - 1 to 1, 1 to m, m to n 3. Attribute คุณสมบัติของเอนติตี้
Entity relationship diagram ER-D องค์ประกอบ กลุ่มของสิ่งที่เราสนใจ (Entity type) เช่น คน, สัตว์, สิ่งของ, สถานที่ หรือเหตุการณ์ กลุ่มของความสัมพันธ์ (Relationship type) ประกอบด้วยความสัมพันธ์ระหว่างสิ่งที่เราสนใจ แต่ละ ความสัมพันธ์จะมีคุณสมบัติเฉพาะตัวที่บ่งบอกกฎเกณฑ์ ข้อกำหนด ความหมาย และรายละเอียดที่เกิดจาก ความสัมพันธ์นั้น ๆ
สัญลักษณ์ที่ใช้ในแผนภาพ อี-อาร์
สัญลักษณ์ที่ใช้ในแผนภาพ อี-อาร์
ตัวอย่าง - E-R Diagram
ตัวอย่าง - E-R Diagram
ลูกค้า ER-D ระบบเช่ารถ รายการ เช่ารถ ข้อมูล สัญญาเช่า ข้อมูล รถ ใบส่งซ่อม ประเภทรถ รายการ ซ่อมรถ
ความสมดุลระหว่าง DFD กับ ER-D ทั้งนี้ทั้งนั้นทั้งสองแผนภาพมีความเกี่ยวพันธ์กันโดยแผนภาพ DFD level 0 มี Data store หนึ่งปรากฏอยู่ ก็จะต้องมีData store นี้ปรากฏอยู่บนแผนภาพ ER-D ด้วย ถ้าไม่ได้ปรากฏแสดงว่ามีข้อผิดพลาดทำให้ทราบว่าในระบบได้บรรจุข้อมูลที่ไม่จำเป็นเกิดขึ้นนั่นเอง
DFD level 0 ระบบรถเช่า
ลูกค้า ER-D ระบบเช่ารถ รายการ เช่ารถ ข้อมูล สัญญาเช่า ข้อมูล รถ ใบส่งซ่อม ประเภทรถ รายการ ซ่อมรถ
การนอร์มัลไลเซชัน(Normalization) Normalization เป็นกระบวนการนำโครงร่างรีเลชั่น Relation มาแตกเป็นรีเลชันหรือตารางต่างๆให้อยู่ในรูปแบบที่เรียกว่า รูปแบบบรรทัดฐานหรือ Normal form เป้าหมายสำคัญก็คือ ลดเนื้อที่ในการจัดเก็บข้อมูล ลดปัญหาความไม่ถูกต้องของข้อมูล
Relation Data Analysis :RDA UNF Level 1NF 2NF 3NF Tables โครงร่างแบบแผนความสัมพันธ์ของข้อมูล RDA Layout
Normalization technique Relation Data Analysis :RDA Document Form Screen Identify data items UNF (Un-normalized form) Normalization technique Remove repeating groups 1NF (First –normalized form) Remove part key dependencies 2NF (Second- normalized form) Remove other attribute dependencies 3NF (Third-normalized form)
UNF จัดกลุ่มรายการที่เหมือนกัน กำจัดกลุ่มรายการที่ซ้ำกันออกเพื่อเข้าสู่การนอร์มัลฟอร์ม
1NF จับกลุ่มข้อมูลระดับเดียวกันเข้าด้วยกัน กำหนดคีย์หลักให้กับแต่ละรีเลชันโดยการขีดเส้นแอตตริบิวนั้นไว้
2NF ทุกๆแอตตริบิวที่เป็น non-key ต้องขึ้นตรงกันอย่างสมบูรณ์บนคีย์หลัก กำจัดแอตตริบิวที่เป็น Part-key ออกไปเป็นตารางใหม่