การวิเคราะห์ระบบ (System Analysis) คือ การศึกษาแยกแยะงานออกเป็นส่วนย่อย/ระบบย่อย เพื่อทำความเข้าใจปัญหาที่เกิดขึ้นในระบบงานที่ใช้อยู่ แล้วออกแบบส่วนย่อยที่มีปัญหาขึ้นมาใหม่ หรือปรับปรุงแต่ละส่วนให้มีประสิทธิภาพยิ่งขึ้น
จากนั้นนำส่วนย่อยทั้งหมดมารวมกันเป็นระบบใหม่ (New System) ถ้าระบบใหม่ยังไม่ถูกนำไปติดตั้งใช้งานก็จะเรียกระบบที่ใช้อยู่ว่า ระบบปัจจุบัน (Current System) แต่ถ้าระบบใหม่ได้ถูกติดตั้งและใช้งาน จะเรียกระบบปัจจุบันที่เคยใช้ว่า ระบบเก่า (Old System)
การออกแบบระบบ (System Design) คือ การทำความเข้าใจส่วนย่อยที่ได้รับจากการวิเคราะห์ระบบมาพัฒนาเปลี่ยนแปลงอย่างเป็นรูปธรรม เพื่อแก้ปัญหาเดิมหรือปรับปรุงให้ดีขึ้น แล้วนำส่วนย่อยมารวมกัน โดยคำนึงถึงองค์ประกอบการออกแบบระบบที่เกี่ยวข้องเชิงบูรณาการ ทั้งส่วนนำเข้า (Input) ส่วนประมวลผล (Process) ส่วนแสดงผล (Output) และส่วนจัดเก็บข้อมูล (Storage) รวมถึงรูปแบบทางกายภาพ (Physical Model) ได้แก่ ฮาร์ดแวร์ (Hardoware) ซอฟต์แวร์ (Software) ผู้คนที่เกี่ยวข้อง (Peopleware)
การวิเคราะห์และออกแบบระบบ (System Analysis and Design) คือ การศึกษาแยกแยะงานออกเป็นส่วนย่อย เพื่อทำความเข้าใจปัญหาที่เกิดขึ้นในระบบงานที่ใช้อยู่ แล้วออกแบบพัฒนาส่วนย่อยใหม่ เพื่อนำมาประกอบขึ้นเป็นระบบใหม่ที่มีความสมบูรณ์ โดยคำนึงถึงการออกแบบฮาร์ดแวร์ ซอฟต์แวร์ กระบวนการทำงาน เครือข่าย โครงสร้างข้อมูล อัลกอริทึม การทดสอบ เวลาในการประมวลผล การจัดทำรายงาน และหน้าจอในส่วนติดต่อกับผู้ใช้ระบบ
Invoice No.: A0001 Date: 24/10/2004 Sold to: ABC company Item Quantity UnitPrice Amount Pen 50 3 150 Book 100 5 500 Ruler 20 2 40 Total 690 Invoice No.: A0002 Date: 24/10/2004 Sold to: XYZ company Item Quantity UnitPrice Amount Pen 100 3 300 Book 120 5 600 Ruler 50 2 100 Total 1000
การเริ่มต้นทำ normalization ต้องนำข้อมูลมาสร้าง ตารางเริ่มต้น ซึ่งเป็นขั้นตอนก่อนการทำ 1NF โดยไม่เขียน amount และ total เพราะเป็นค่าที่เกิดจากการคำนวณเท่านั้น ตาราง temp A0001,24/10/2004,ABC company,Pen,50,3 A0001,24/10/2004,ABC company,Book,100,5 A0001,24/10/2004,ABC company,Ruler,20,2 A0002,24/10/2004,XYZ company,Pen,100,3 A0002,24/10/2004,XYZ company,Book,120,5 A0002,24/10/2004,XYZ company,Ruler,50,2
การทำ 1NF ของ ตัวอย่าง 5.3นำตารางเริ่มต้นมาจัดการเรื่อง multivalue เช่น คนชอบกินหลายอย่าง หรือการเพิ่ม key ประกอบข้อมูลที่อาจซ้ำ ตัวอย่างนี้เพิ่มรหัสลูกค้า และรหัสสินค้า เป็น key เพราะคิดว่า ชื่อลูกค้า และชื่อสินค้า อาจมีโอกาสซ้ำกันได้ และไม่เหมาะที่จะเป็น key ตาราง tempoforder A0001,24/10/2004,101,ABC company,201,Pen,50,3 A0001,24/10/2004,101,ABC company,202,Book,100,5 A0001,24/10/2004,101,ABC company,203,Ruler,20,2 A0002,24/10/2004,102,XYZ company,201,Pen,100,3 A0002,24/10/2004,102,XYZ company,202,Book,120,5 A0002,24/10/2004,102,XYZ company,203,Ruler,50,2
การทำ 2NF ของ ตัวอย่าง 5.3แยกตาราง tempoforder เป็นหลายตาราง และทุกตารางมี primary key ที่มีการตรวจสอบการขึ้นตรงอย่างถูกต้อง primay key คือ รหัสใบสั่งซื้อ ตาราง invoid_1 A0001,24/10/2004,101,ABC company A0002,24/10/2004,102,XYZ company primay key คือ รหัสใบสั่งซื้อ และรหัสสินค้า ตาราง invoid_2 A0001,201,50,3 A0001,202,100,5 A0001,203,20,2 A0002,201,100,3 A0002,202,120,5 A0002,203,50,2 ตาราง product เพราะราคาขึ้นกับรหัสสินค้า primary key คือ รหัสสินค้า ตาราง product 201,Pen,3 202,Book,5 203,Ruler,2
การทำ 3NF ของ ตัวอย่าง 5.3 ตาราง invoid_1 เพราะชื่อลูกค้าไม่ขึ้นกับรหัสใบสั่งซื้อ จึงต้องแยกไปทำตาราง customer primay key คือ รหัสใบสั่งซื้อ ตาราง invoid_1 A0001,24/10/2004,101 A0002,24/10/2004,102 ตาราง customer เพราะชื่อลูกค้าไม่ขึ้นกับ รหัสใบสั่งซื้อ แต่ขึ้นกับรหัสลูกค้า primay key คือ รหัสลูกค้า ตาราง customer 101,ABC company 102,XYZ company primay key คือ รหัสใบสั่งซื้อ และรหัสสินค้า เพราะ ปริมาณ และราคาต้องขึ้นกับ key 2 ตัวนี้ ตาราง invoid_2 A0001,201,50,3 A0001,202,100,5 A0001,203,20,2 A0002,201,100,3 A0002,202,120,5 A0002,203,50,2 ตาราง product เพราะราคาขึ้นกับรหัสสินค้า primary key คือ รหัสสินค้า ตาราง product 201,Pen,3 202,Book,5 203,Ruler,2