nutthapaphon sopradisth customer... · รูปที่ 2.12...

97
ระบบบริหารลูกค้าสัมพันธ์ดอดเน็ต Customer Relationship Management.NET ณัฏฐปพน โสประดิษฐ์ Nutthapaphon Sopradisth สารนิพนธ์ฉบับนี ้เป็นส่วนหนึ่งของการศึกษา ตามหลักสูตรวิทยาศาสตร์มหาบัณฑิต สาขาวิชาเทคโนโลยีสารสนเทศ บัณฑิตวิทยาลัย มหาวิทยาลัยเทคโนโลยีมหานคร ปีการศึกษา 2554

Upload: others

Post on 01-Jun-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

ระบบบรหารลกคาสมพนธดอดเนต Customer Relationship Management.NET

ณฏฐปพน โสประดษฐ Nutthapaphon Sopradisth

สารนพนธฉบบนเปนสวนหนงของการศกษา ตามหลกสตรวทยาศาสตรมหาบณฑต

สาขาวชาเทคโนโลยสารสนเทศ บณฑตวทยาลย มหาวทยาลยเทคโนโลยมหานคร

ปการศกษา 2554

Page 2: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

I

หวขอโครงงาน ระบบบรหารลกคาสมพนธดอดเนต นกศกษา นายณฏฐปพน โสประดษฐ รหสนกศกษา 5317670014 ปรญญา วทยาศาสตรมหาบณฑต สาขาวชา เทคโนโลยสารสนเทศ พ.ศ. 2554 อาจารยผควบคมโครงงาน รศ.ดร. วระศกด ครธช อาจารยทปรกษารวม อาจารยสหสวรรษ วรากลาง

บทคดยอ

โครงงานนน าเสนอเกยวกบการจดการขอมลโมดล Sales ของระบบบรหารลกคา

สมพนธ (Customer Relationship Management) ซ งประกอบไปด วยฟงกชน Lead Management, Account Management, Contact Management, Opportunity Management, Competitor Management, Partner Management และ Administration Management นอกจากนยงใหความส าคญกบการออกแบบสถาปตยกรรมซอฟทแวร (Software Architecture Design) โดยไดมการน าเทคโนโลย ADO.NET Entity Framework, AJAX และ JQuery มาใชประยกตใชงานรวมกบการออกแบบ N-Tier Architecture รวมถงไดมการวาง Design Pattern แบบ Repository Pattern เพอชวยใหการเขยนโคดในแตละเลเยอรมการท างานทเปนอสระตอกน แตในขณะเดยวกนกสามารถจดการโคดทมการใชงานรวมกนไดอยางมระเบยบอยางดเยยม ส าหรบภาษาทใชเขยนในสวนของ Server Side Script คอ ASP.NET 4.0 และ Code Behind เปน C#.NET 4.0

Page 3: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

II

กตกรรมประกาศ

การจดท าโครงงานเลมน ด าเนนการจนส าเรจไดเปนอยางดตามเปาหมายทก าหนดไว โดยไดความกรณาจาก รศ.ดร. วระศกด ครธช และอาจารยสหสวรรษ วรากลาง ซงเปนอาจารยทปรกษาในการจดท าโครงงานในครงน ขาพเจาขอกราบขอบพระคณอาจารยทปรกษาทงสองทานเปนอยางสง ททานไดใหความชวยเหลอ ขอคดเหน และค าแนะน าแนวทางในการแกปญหาอนเปนประโยชนตอการพฒนาระบบบรหารลกคาสมพนธดอดเนต นอกจากนยงชวยตรวจสอบแกไขขอบกพรองในทกๆ ขนตอนของการพฒนาระบบตงแตเรมตนจนกระทงโครงงานส าเรจลงได และขอกราบขอบพระคณครอาจารย ผประสทธ ประศาสตร วชาความร ทกทานตงแตอดตจนถงปจจบน ทท าใหขาพเจาสามารถน าความรไปตอยอดในการประกอบอาชพและจดท าโครงงานจนเปนผลส าเรจ

คณความดและกศลทพงบงเกดจากโครงงานเลมน ขอยกใหเปนเครองบชาพระคณ แด บดา มารดา และคณาจารยทกทาน ดวยความเคารพอยางยง ณฏฐปพน โสประดษฐ

Page 4: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

III

สารบญ หนา

บทคดยอ I กตตกรรมประกาศ II สารบญ III สารบญตาราง VI สารบญรป VII บทท 1 บทน า

1.1 กลาวน า 1 1.2 ปญหาและแรงจงใจ 1 1.3 แนวทางในการแกไขปญหา 2 1.4 วตถประสงคของโครงงาน 3 1.5 ขอบเขตของโครงงาน 4 1.6 ประโยชนทคาดวาจะไดรบ 4 1.7 ขนตอนในการด าเนนงาน 4 1.8 ระยะเวลาในการด าเนนงาน 5

บทท 2 แนวคดและทฤษฏทเกยวของ 2.1 กลาวน า 7 2.2 ทฤษฎทเกยวของ 7

2.2.1 การบรหารลกคาสมพนธ 7 2.2.1.1 CRM คออะไร 7 2.2.1.2 เปาหมายของการบรหารลกคาสมพนธ 8 2.2.1.3 ประโยชนของการบรหารลกคาสมพนธ 8 2.2.1.4 การจดการลกคากลมเปาหมายใหม 10 2.2.1.5 การจดการบญชลกคา 12 2.2.1.6 การจดการบคคลตดตอของลกคา 12 2.2.1.7 การจดการโอกาสทางดานการขาย 12 2.2.1.8 การจดการคแขงทางดานธรกจ 13 2.2.1.9 การจดการคคาทางดานธรกจ 13 2.2.2 เทคโนโลยทางดานฐานขอมล 13

Page 5: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

IV

สารบญ (ตอ) หนา

2.2.2.1 ระบบฐานขอมล 13 2.2.2.2 ระบบการจดการฐานขอมล 13 2.2.2.3 สวนประกอบของสภาพแวดลอมระบบการจดการฐานขอมล 13 2.2.3 สถาปตยกรรมฐานขอมล 15 2.2.3.1 ระดบภายใน (Internal Level) 15 2.2.3.2 ระดบแนวคด (Conceptual Level) 15 2.2.3.3 ระดบภายนอก (External Level) 16 2.2.4 การออกแบบฐานขอมลโดยใช E-R Diagram 17 2.2.4.1 เอนตต (Entity) 17 2.2.4.2 แอตทรบวต (Attribute) 18 2.2.4.3 ความสมพนธ (Relationship) 19 2.2.5 เวบเทคโนโลย (Web Technology) 21 2.2.5.1 สถาปตยกรรมเวบแอพพลเคชน 21 2.2.5.2 เอแจกซ (AJAX) 25 2.2.5.3 ประวตเอแจกซ (AJAX History) 26 2.2.5.4 หลกการท างานของเอแจกซ 27 2.2.5.5 เจเควยร 27 2.2.6 เทคโนโลย ADO.NET Entity Framework 28 2.2.6.1 Object กบ Relational 28 2.2.6.2 Object-Relational Mapping 29 2.2.6.3 สถาปตยกรรมของ Entity Framework 31 2.2.6.4 มมมองในการมองของขอมลของโดเมน Relational database VS โดเมน OOP 33 2.2.7 เบองตนเกยวกบ LINQ To SQL 37 2.2.7.1 LINQ To SQL 37 2.2.7.2 ประโยชนของ LINQ To SQL 38 2.2.7.3 การท า Mapping ของ LINQ To SQL 38 2.2.7.4 วงจรการท างานของ LINQ To SQL 41 2.2.8 สถาปตยกรรม N-Tier (N-Tier Architecture) 42 2.2.9 ดไซนแพตเทรน (Design Patterns) 43 2.2.10 การจดหมวดหมและแพตเทรน 43 2.2.10.1 แพตเทรนการสรางออบเจกต (creational patterns) 43

Page 6: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

V

สารบญ (ตอ) หนา

2.2.10.2 แพตเทรนโครงสราง (structural patterns) 44 2.2.10.3 แพตเทรนพฤตกรรม (behavioral patterns) 44

บทท 3 การวเคราะหและออกแบบระบบ 3.1 บทสรปปญหาจากผบรหาร 45 3.2 การออกแบบระบบงานใหม 45

3.2.1 Context Diagram of CRM.NET 46 3.2.2 DFD Level 0 47 3.2.3 DFD Level 1 Process 1.0 48 3.2.4 DFD Level 1 Process 2.0 48

3.3 Process Description 49 3.4 E-R Diagram of CRM.NET 51 3.5 Relational Mapping 52 3.6 Data Dictionary of CRM.NET 53 3.7 สรปผล 58

บทท 4 การทดลองและผลการทดลอง 4.1 ความตองการพนฐานของระบบ 59 4.2 การทดลองระบบ 59

4.2.1 ลอกอนเขาสระบบ CRM.NET 59 4.2.1 เขาสระบบ CRM.NET 60 4.2.1 การใชงานฟงกชน Leads 60 4.2.1 การใชงานฟงกชน Contacts 63 4.2.1 การใชงานฟงกชน Opportunities 65 4.2.1 การใชงานฟงกชน Competitors 67 4.2.1 การใชงานฟงกชน Partners 69 4.2.1 การใชงานฟงกชน Administration 71

บทท 5 สรปผลการด าเนนงาน 5.1 สรปผลการด าเนนงานโครงงาน 86 5.2 สรปปญหาทพบในการท าโครงงาน 86 5.3 ขอเสนอแนะและแนวทางในการพฒนาตอ 86

เอกสารอางอง 87

Page 7: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

VI

สารบญตาราง

หนา

ตารางท 1.1 ตารางการด าเนนงานโครงงาน 1 5 ตารางท 1.2 ตารางการด าเนนงานโครงงาน 2 6 ตารางท 3.1 Level 1 Process 1.0 49 ตารางท 3.2 Level 1 Process 2.0 (จดการลกคา/ลกคามงหวง) 49 ตารางท 3.3 แสดงโครงสรางตาราง AddressType 45 ตารางท 3.4 แสดงโครงสรางตาราง Address 53 ตารางท 3.5 แสดงโครงสรางตาราง Lead 53 ตารางท 3.6 แสดงโครงสรางตาราง LeadSource 54 ตารางท 3.7 แสดงโครงสรางตาราง Account 54 ตารางท 3.8 แสดงโครงสรางตาราง Opportunity 55 ตารางท 3.9 แสดงโครงสรางตาราง Competitor 56 ตารางท 3.10 แสดงโครงสรางตาราง Partner 56 ตารางท 3.11 แสดงโครงสรางตาราง Employee 56 ตารางท 3.12 แสดงโครงสรางตาราง Position 57 ตารางท 3.13 แสดงโครงสรางตาราง Department 57 ตารางท 3.14 แสดงโครงสรางตาราง AccountCategory 57 ตารางท 3.15 แสดงโครงสรางตาราง AccountType 58 ตารางท 3.16 แสดงโครงสรางตาราง Region 58

Page 8: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

VII

สารบญรป

หนา

รปท 1.1 แสดง Customer Relationship Management ของระบบงานปจบน 2 รปท 1.2 แสดง Customer Relationship Management.Net ของระบบงานใหม 3 รปท 2.1 แสดง Convert Workflow 12 รปท 2.2 แสดงสญลกษณทใชแทน Regular Entity 17 รปท 2.3 แสดงสญลกษณทใชแทน Weak Entity 17 รปท 2.4 แสดงสญลกษณทใชแทน Simple Attribute 18 รปท 2.5 แสดงสญลกษณทใชแทน Composite Attribute 18 รปท 2.6 แสดงสญลกษณทใชแทน Identify หรอ Key 19 รปท 2.7 แสดงความสมพนธแบบ One to One 19 รปท 2.8 แสดงความสมพนธแบบ One to Many 19 รปท 2.9 แสดงความสมพนธแบบ Many to Many 19 รปท 2.10 แสดงภาพ Web 2.0 Collaboration 26 รปท 2.11 แสดงภาพเปรยบเทยบการท างานระหวางเวบแอปพลเคชนแบบดงเดม กบแบบทใชเอแจกซ 27 รปท 2.12 แสดงรปภาพแสดงตารางในรปแบบฐานขอมลเชงสมพนธ 28 รปท 2.13 แสดงคลาสไดอะแกรมของออบเจกตทงสอง 28 รปท 2.14 แสดงกลไกภายในของ O/R Mapping 31 รปท 2.15 แสดง Relational database 33 รปท 2.16 แสดงการ Query ขอมล 34 รปท 2.17 แสดงพรอพเพอตทงหมดดงมาจากฐานขอมล 35 รปท 2.18 แสดงการกรองขอมลเอาเฉพาะลกคาทมาจาก London 35 รปท 2.19 แสดงการสราง Entity ใหมจาก Entity เดมดวย Inheritance 36 รปท 2.20 แสดงการเพม Linq to SQL 37 รปท 2.21 แสดงสวนประกอบของ LINQ 38 รปท 2.22 แสดงการดงขอมลจาก Table Customers มา inner join กบ Table Orders 39 รปท 2.23 แสดงการท า Mapping ของ LINQ To SQL 40 รปท 2.24 แสดงวงจรการท างานของ LINQ To SQL 41 รปท 2.25 แสดง N-Tier Architecture 43

Page 9: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

VIII

สารบญรป (ตอ)

หนา

รปท 3.1 แสดง Context Diagram of CRM.NET 46 รปท 3.2 แสดง DFD Level 0 47 รปท 3.3 แสดง DFD Level 1 Process 1.0 48 รปท 3.4 แสดง DFD Level 1 Process 2.0 48 รปท 3.5 แสดง E-R Diagram of CRM.NET 51 รปท 3.6 แสดง Relational Mapping 52 รปท 4.1 แสดงหนาจอลอกอนเขาสระบบ CRM.NET 59 รปท 4.2 แสดงหนาจอเมอลอกอนเขาสระบบ CRM.NET 60 รปท 4.3 แสดงหนาจอการคนหา Lead ของระบบ CRM.NET 60 รปท 4.4 แสดงหนาจอการเพมขอมล Lead ของระบบ CRM.NET 61 รปท 4.5 แสดงหนาจอการแกไขขอมล Lead ของระบบ CRM.NET 61 รปท 4.6 แสดงหนาจอการลบขอมล Lead ของระบบ CRM.NET 62 รปท 4.7 แสดงหนาจอการก าหนดสถานภาพ Lead ของระบบ CRM.NET 62 รปท 4.8 แสดงหนาจอการก าหนดสถานะ Lead ของระบบ CRM.NET 63 รปท 4.9 แสดงหนาจอการคนหาขอมลผตดตอ (Contact) ของแตละ Account 63 รปท 4.10 แสดงหนาจอการเพมขอมลผตดตอ (Contact) 64 รปท 4.11 แสดงหนาจอการแกไขขอมลขอมลผตดตอ (Contact) 64 รปท 4.12 แสดงหนาจอการลบขอมลขอมลผตดตอ (Contact) 65 รปท 4.13 แสดงหนาจอการคนหาขอมลโอกาสทางการขาย (Opportunity) 65 รปท 4.14 แสดงหนาจอการเพมขอมลโอกาสทางการขาย (Opportunity) 66 รปท 4.15 แสดงหนาจอการแกไขขอมลโอกาสทางการขาย (Opportunity) 66 รปท 4.16 แสดงหนาจอการลบขอมลโอกาสทางการขาย (Opportunity) 67 รปท 4.17 แสดงหนาจอการคนหาขอมลบรษทคแขง (Competitor) 67 รปท 4.18 แสดงหนาจอการเพมขอมลขอมลบรษทคแขง (Competitor) 68 รปท 4.19 แสดงหนาจอการแกไขขอมลขอมลบรษทคแขง (Competitor) 68 รปท 4.20 แสดงหนาจอการลบขอมลขอมลบรษทคแขง (Competitor) 69 รปท 4.21 แสดงหนาจอการคนหาขอมลของบรษทคคา (Partner) 69 รปท 4.22 แสดงหนาจอการเพมขอมลของบรษทคคา (Partner) 70 รปท 4.23 แสดงหนาจอการแกไขขอมลของบรษทคคา (Partner) 70 รปท 4.24 แสดงหนาจอการลบขอมลของบรษทคคา (Partner) 71

Page 10: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

IX

สารบญรป (ตอ)

หนา

รปท 4.25 แสดงหนาจอการใชงานเมน Adminsitration 71 รปท 4.26 แสดงหนาจอ Address Type Maintenance 72 รปท 4.27 แสดงหนาจอการเพมขอมล Address Type Maintenance 72 รปท 4.28 แสดงหนาจอการแกไขขอมล Address Type Maintenance 73 รปท 4.29 แสดงหนาจอการลบขอมล Address Type Maintenance 73 รปท 4.30 แสดงหนาจอ Characteristic Maintenance 74 รปท 4.31 แสดงหนาจอการเพมขอมล Characteristic Maintenance 74 รปท 4.32 แสดงหนาจอการแกไขขอมล Characteristic Maintenance 75 รปท 4.33 แสดงหนาจอการลบขอมล Characteristic Maintenance 75 รปท 4.34 แสดงหนาจอ Company Maintenance 76 รปท 4.35 แสดงหนาจอการเพมขอมล Company Maintenance 76 รปท 4.36 แสดงหนาจอการแกไขขอมล Company Maintenance 77 รปท 4.37 แสดงหนาจอการลบขอมล Company Maintenance 77 รปท 4.38 แสดงหนาจอ Employee Maintenance 78 รปท 4.39 แสดงหนาจอการเพมขอมล Employee Maintenance 78 รปท 4.40 แสดงหนาจอการแกไขขอมล Employee Maintenance 79 รปท 4.41 แสดงหนาจอการลบขอมล Employee Maintenance 79 รปท 4.42 แสดงหนาจอ Department Maintenance 80 รปท 4.43 แสดงหนาจอการเพมขอมล Department Maintenance 80 รปท 4.44 แสดงหนาจอการแกไขขอมล Department Maintenance 81 รปท 4.45 แสดงหนาจอการลบขอมล Department Maintenance 81 รปท 4.46 แสดงหนาจอการเพมขอมล Position Maintenance 82 รปท 4.47 แสดงหนาจอการแกไขขอมล Position Maintenance 82 รปท 4.48 แสดงหนาจอการลบขอมล Position Maintenance 83 รปท 4.49 แสดงหนาจอ Province Maintenance 83 รปท 4.50 แสดงหนาจอการเพมขอมล Province Maintenance 84 รปท 4.51 แสดงหนาจอการแกไขขอมล Province Maintenance 84 รปท 4.52 แสดงหนาจอการลบขอมล Province Maintenance 85

Page 11: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

1

บทท 1 บทน า

1.1 กลาวน า

CRM (Customer Relationship Management) ถกนามาใชเปนแนวทางในการบรหารจดการองคกร เนองจากวา ในปจจบนเปนยคทตองฝาฟนวกฤตเศรษฐกจไปใหได เพราะ CRM จะเปนเครองมอทจะชวยมงเนนการเพมคณคาใหแกลกคา และสรางความพงพอใจใหแกลกคา ซงเปนบคคลสาคญทจะทาใหธรกจประสบความสาเรจได

CRM (Customer Relationship Management) จะมงเนนการใหคณคาสงสดแกลกคา เพอสรางความพงพอใจใหกบลกคา โดยการปฏบตภายใตแนวความคดใหม ในชองทางการจดจาหนายและสอทหลากหลาย ซบซอน ตลอดจนเงอนไข ตางๆ ของลกคา แนวคดการทา CRM (Customer Relationship Management) อาจไมใชเรองใหม สาหรบองคกรทใหความสาคญกบลกคาอยแลว แตการทา CRM (Customer Relationship Management) โดยตงใจปฏบตในขอบเขตทกวางขนพรอมกบยดหลกตอบสนองความตองการของลกคาอาจเปนเรองใหมสาหรบองคกรทยงไมไดใหความสาคญกบลกคาเปนหลก 1.2 ปญหาและแรงจงใจ (Problem/Motivation)

CRM (Customer Relationship Management) กลายเปนทนยมอยางแพรหลายในแวดวงธรกจปจจบน ดวยเหตผลหลายประการ แตเหตผลทเดนชดกคอ ความตองการสรางความแตกตางเพอใหสามารถแขงขนในตลาดได และจากตามความคาดหวงทสงขนของลกคา รวมถงความกาวหนาทางเทคโนโลย CRM (Customer Relationship Management) ชวยสรางความแตกตางในการแขงขนได เพราะทกวนนการใชกลยทธดวยตวสนคา, ราคา, การสงเสรมการขาย หรอชองทางการจดจาหนาย ซงเปนสวนผสมทางการตลาด หรอ 4Ps ไมสามารถสรางความแตกตางไดเหมอนแตกอนแลว ตวอยางทเหนไดชดวาการตลาดยคเกาไมสามารถสรางความแตกตางจากคแขงขนได เชน สนคา (Product) หลายองคกรพบวา การแขงขนโดยอาศยตวสนคาเปนเรองยาก เนองจากความกาวหนาทางดานเทคโนโลยทาใหสามารถผลตสนคาเลยนแบบไดทงรปลกษณและวธการใชงานไดไมแตกตางกน ในปจจบนประเทศจนเปนตวอยางทดท มความสามารถลอกเลยนแบบสนคาทกชนดในโลกได สวนราคา (Price) แตกอนเปนอกวธหนงทใชสรางความแตกตางไดดวยการตดราคา องคกรทใหญกวาสามารถลดตนทนไดมากกวา กอาจจะกาหนดราคา ทตากวาคแขงได แตปจจบนคแขงอกมากมายและแขงแกรงพอๆ กน เมอเราลดราคา คแขงของเรากอาจจะกลบมาลดไดมากกวา

สาหรบการสงเสรมการขาย (Promotion) กเชนกน ทกวนนแตละองคกรกพยายามออก

Campaign สงเสรมการขายตางๆ ลดแลกแจกแถมกนออกมาอยางตอเนอง แตเพยงไมกว น

Page 12: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

2

คแขงกสามารถออกมาทาตามได สวน P สดทาย กคอ สถานทจ ดจาหนาย (Place) กเชนเดยวกน ไมวาคณจะพยายามหาชองทางการขายใหมๆ ไมวาจะเปนทางอนเทอรเนต ทางโทรศพท หรอการขายตรงโดยทมขายอสระ ทกคายกสามารถเขามาแขงขนไดเชนกน จากเหตผลขางตนทาใหเราจงตองทาการพฒนาระบบ CRM เพอเปนการสรางความแตกตางในการแขงขน ประการทสอง เพราะความคาดหวงของลกคาทสงขน เปนเรองทมอาจจะละเลยได ผทตองการชนะในการแขงขนกตองขยบมาตรฐานของตนใหสงขน ใครกตามทยาอยกบทจะทาใหลกคาผดหวง และไมสามารถดงดดลกคารายใหมได สวนเหตผลประการสดทาย คอความกาวหนาทางเทคโนโลย มเครองมอททนสมยในการเกบรวบรวมขอมลตางๆ ของลกคา ชวยทาใหการทา CRM มความเปนไปไดมากขน ระบบ CRM จงนามาใชในองคกรเพอบรหารลกคากนอยางแพรหลาย องคกรใดกตามทไมทา CRM ประสทธภาพในการขาย, การใหบรการ และการตลาด กจะลาหลงคแขงและไมสามารถตอบสนองความคาดหวงของลกคาได และนอกจากนในปจจบนความกาวหนาของเทคโนโลยในการสอสารทมเรวเพมขนเปนอยางมาก และความนยมการใชงาน Smartphone เชน iPhone, BlackBerry และ Windows Phone 7 หรอ Tablet เชน iPad, Samsung galaxy tab และ Blackberry Paybook เปนตน จากเหตผลขางตนทาใหรปแบบการใชงานและการทางานเปลยนไปจากเดมทเราใชงานผาน PC หรอ Notebook เปลยนมาเปน Smartphone หรอ Tablet แทน

Database ServerApplication ServerClient

รปท 1.1 แสดง Customer Relationship Management ของระบบงานปจบน

1.3 แนวทางในการแกไขปญหา จากรปท 1.1 แสดงระบบงานปจจบน ซงเปนระบบ CRM (Customer Relationship Management) ทพฒนาแบบ Window Application ปญหาทพบกคอ

1.3.1 การ Installation หรอ Maintenance คอนขางเสยเวลาเปนอยางมากเมอเทยบกบการพฒนาแบบ Web Application

1.3.2 การพฒนา Application สวนใหญปจจบนเปนแบบ Web Application หรอ Web Base Application

CRM.NET (Customer Relationship Management.NET) คอ ระบบงานทชวยใหองคกรสามารถจดการขอมลทเกยวกบลกคา (Customers) และกลมเปาหมาย (Prospects) นอกจากนยงชวยในกระบวนการทเกยวของกบงานขายภาคสนาม (Field Sales) เชน การ

Page 13: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

3

บรหารโอกาสทางการขาย (Opportunities) การบรหารกจกรรมการขายของพนกงานขาย (Activities) และการพยากรณการขาย (Sales Forecast) เปนตน โดยระบบ CRM.Net ถกออกแบบมาเพอใชงานบนไอแพดดวย Safari และพฒนาโดยใชเครองมอ Microsoft Visual Studio 2010 (ASP.NET 4.0) และใชฐานขอมลของ Microsoft SQL Server 2008 R2 นอกจากนยงใช เทคโนโลย AJAX (Asynchronous JavaScript and XML), JQuery (JavaScript Query), MVC (Model - View - Controller) และ SOA (Service Oriented Architecture) เปนตน

Web Client

Web Client

Web Client

Database ServerWeb Server

รปท 1.2 แสดง Customer Relationship Management.Net ของระบบงานใหม

1.4 วตถประสงคของโครงงาน (Project Objectives)

1.4.1 เพอชวยใหผจดการฝายขายและพนกงานขายสามารถตดตามสถานะและสามารถจดการขอมลลกคากลมเปาหมายใหมได

1.4.2 เพอชวยใหผจดการฝายขายและพนกงานขายสามารถจดการขอมลบญชลกคาได 1.4.3 เพอชวยใหผจดการฝายขายและพนกงานขายสามารถจดการขอมลบคคลตดตอของ

ลกคาได 1.4.4 เพอชวยใหผจดการฝายขายและพนกงานขายสามารถจดการขอมลโอกาสทางดาน

การขายได 1.4.5 เพอชวยใหผจ ดการฝายขายและพนกงานขายสามารถจดการขอมลบรษทคแขง

ทางดานธรกจได 1.4.6 เพอชวยใหผจดการฝายขายและพนกงานขายสามารถจดการขอมลบรษทคคา

ทางดานธรกจได

Page 14: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

4

1.5 ขอบเขตของโครงงาน (Project Scope) 1.5.1 ความตองการระดบหนาทของระบบ (Function Requirement)

1.5.1.1 ฟงกชนการจดการขอมลลกคากลมเปาหมายใหม 1.5.1.2 ฟงกชนการจดการขอมลบญชลกคา 1.5.1.3 ฟงกชนการจดการขอมลบคคลตดตอของลกคา 1.5.1.4 ฟงกชนการจดการขอมลโอกาสทางดานการขาย 1.5.1.5 ฟงกชนการจดการขอมลบรษทคแขงทางดานธรกจ 1.5.1.6 ฟงกชนการจดการขอมลบรษทคคาทางดานธรกจ 1.5.1.7 ฟงกชนการจดการขอมลเพอบารงรกษาระบบ CRM.NET

1.5.2 ความตองการนอกเหนอระดบหนาทของระบบ (Non-Function Requirement) 1.5.2.1 ระบบจะตองสามารถรองรบการขยายธรกจในอนาคตได 1.5.2.2 ระบบจะตองบารงรกษาไดงาย 1.5.2.3 ระบบจะตองมการแสดงผลทรวดเรว

1.6 ประโยชนทคาดวาจะไดรบ

1.6.1 ผจดการฝายขายและพนกงานขายสามารถตดตามสถานะและสามารถจดการขอมลลกคากลมเปาหมายใหมได

1.6.2 ผจดการฝายขายและพนกงานขายสามารถจดการขอมลบญชลกคาได 1.6.3 ผจดการฝายขายและพนกงานขายสามารถจดการขอมลบคคลตดตอของลกคาได 1.6.4 ผจดการฝายขายและพนกงานขายสามารถจดการขอมลโอกาสทางดานการขายได 1.6.5 ผจดการฝายขายและพนกงานขายสามารถจดการขอมลบรษทคแขงทางดานธรกจ

ได 1.6.6 ผจดการฝายขายและพนกงานขายสามารถจดการขอมลบรษทคคาทางดานธรกจได

1.7 ขนตอนในการด าเนนงาน

1.7.1 ขนตอนการสารวจขอมลของระบบและทฤษฎทเกยวของ 1.7.1.1 ศกษาทฤษฎทเกยวของกบโครงงาน 1.7.1.2 วเคราะหแนวทางการแกปญหา 1.7.1.3 ศกษาความเปนไปไดของโครงงาน 1.7.1.4 กาหนดขอบเขตของโครงงาน

1.7.2 ขนตอนการวเคราะหระบบ (System Analysis) 1.7.2.1 ศกษาขนตอนการทางานของระบบเดม 1.7.2.2 วเคราะหความตองการของระบบใหมจากผใชงาน 1.7.2.3 จาลองแบบขนตอนการทางาน

Page 15: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

5

1.7.2.4 อธบายขนตอนการทางานของระบบ 1.7.2.5 จาลองแบบขอมล

1.7.3 ขนตอนการออกแบบระบบ (System Design) 1.7.3.1 ออกแบบฟอรมขอมลและรายงาน 1.7.3.2 ออกแบบ User Interface 1.7.3.3 ออกแบบฐานขอมลในระดบตรรกะ 1.7.3.4 ออกแบบฐานขอมลในระดบกายภาพ 1.7.3.5 ออกแบบ Application

1.7.4 ขนตอนการพฒนาและตดตงระบบ (System Implementation) 1.7.4.1 เขยนโปรแกรม (Coding) 1.7.4.2 ทดสอบโปรแกรม (Testing) 1.7.4.3 ตดตงระบบ (Installation)

1.7.5 จดทาคมอการใชงานโปรแกรม 1.7.6 สรปการทางานของโครงงาน

1.8 ระยะเวลาในการด าเนนงาน

ตารางท 1.1 ตารางการดาเนนงานโครงงาน 1

แผนการท างานแตละสปดาห

ระยะเวลาในการด าเนนงานแตละสปดาห (ม.ย. 2554 – ก.ย. 2554)

มถนายน กรกฎาคม สงหาคม กนยายน

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

1. ขนตอนการเสนอหวขอโครงงาน (Project Proposal) 2. ขนตอนการวเคราะหระบบ (System Analysis)

2.1 ศกษาขนตอนการทางานของระบบเดม 2.2 วเคราะหความตองการของระบบใหม 2.3 จาลองแบบขนตอนการทางาน 2.4 อธบายขนตอนการทางานของระบบ 2.5 จาลองแบบขอมล

3. ขนตอนการออกแบบระบบ (System Design) 3.1 ออกแบบฟอรมขอมลและรายงาน 3.2 ออกแบบ User Interface 3.3 ออกแบบฐานขอมลในระดบตรรกะ 3.4 ออกแบบฐานขอมลในระดบกายภาพ 3.5 ออกแบบ Application

4. ขนตอนการจดทาเอกสารและแกไขขอผดพลาด

Page 16: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

6

ตารางท 1.2 ตารางการดาเนนงานโครงงาน 2

แผนการท างานแตละสปดาห

ระยะเวลาในการด าเนนงานแตละสปดาห (พ.ย. 2554 – ก.พ. 2555)

พฤศจกายน ธนวาคม มกราคม กมภาพนธ

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

5. ข นตอนการพฒนาและตดตงระบบ (System Implementation)

5.1 เขยนโปรแกรม (Coding) 5.2 ทดสอบโปรแกรม (Testing) 5.3 ตดตงระบบ (Installation)

6. จดทาคมอการใชงานโปรแกรม 7. สรปการทางานของโครงงาน

Page 17: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

7

บทท 2 แนวคดและทฤษฏทเกยวของ

2.1. กลาวน า

ในบทนจะไดกลาวถงทฤษฎและหลกการตางๆ ทใชในการแกปญหา ทไดกลาวไวในบทท 1 โดยใชเครองมอ Microsoft Visual Studio 2010 (ASP.NET 4.0) และใชฐานขอมลของ Microsoft SQL Server 2008 R2 นอกจากนยงใช เทคโนโลย AJAX (Asynchronous JavaScript and XML), JQuery (JavaScript Query), ADO.NET Entity Framework 2.2. ทฤษฎทเกยวของ

2.2.1 การบรหารลกคาสมพนธ (Customer Relationship Management : CRM) การสรางความสมพนธกบลกคา โดยการใชเทคโนโลยและการใชบคลากรอยางม

หลกการจะชวยใหเกดการบรการลกคาทดข น การเกบและวเคราะหขอมลพฤตกรรมในการใชจายและความตองการของลกคา ทาใหเกดประโยชนในการพฒนาผลตภณฑหรอการบรการรวมไปถงนโยบายในดานการจดการ ซงมเปาหมายสดทายในการเปลยนจากผบรโภคไปสการเปนลกคาตลอดไป CRM เขากบเทคโนโลยทจะนามาใชงานไดงาย อกทงยงลดความสลบซบซอนทอาจจะยงไมทราบไดวาจะเรมแกจากตรงจดไหน หนาทงานของระบบ CRM มกจะรวมถง ระบบการบรหารการขาย ระบบการตลาดแบบอตโนมต ระบบรองรบการบรการลกคา และระบบลกคาสมพนธ (Call Center)

เนองจากระบบ CRM เปนกลยทธหนงในการดาเนนธรกจทนาเอาเทคโนโลยตาง ๆ มาปรบใช ดงนนการดแลระบบใหทางานอยางมประสทธภาพจะตองอาศยความรวมมอจากหลายฝาย เชน ฝายสารสนเทศ หรอผออกแบบและผจดทาเวบไซตขององคกร นอกจากนนการเชอมระบบ ERP กบ CRM เขาดวยกน แตกไมใชเรองทงายนก และอาจจะตองเสยเวลาและคาใชจายสง แตกจะชวยใหประสบความสาเรจในการขายและบางทอาจจะนาเสนอบรการในรปแบบอนใหกบลกคาได

2.2.1.1 CRM คออะไร

CRM ยอมาจาก Customer Relationship Management หรอเรยกวา การบรหารลกคาสมพนธ ซงกคอการสรางความสมพนธกบลกคา โดยการใชเทคโนโลยและการใชบคลากรอยางมหลกการ CRM ไดถกนามาใชมากยงข นเรอย ๆ เนองมาจากจานวนคแขงของธรกจแตละประเภทเพมขนสงมาก การแขงขนรนแรงขนในขณะทจานวนลกคายงคงเทาเดม ธรกจจงตองพยายามสรรหาวธท จะสรางความพอใจใหแกลกคาอนจะนาไปสความจงรกภกดในทสด

Page 18: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

8

2.2.1.2 เปาหมายของการบรหารลกคาสมพนธ เปาหมายของการบรหารลกคาสมพนธนนไมไดเนนเพยงแคการบรการลกคาเทานน แต

ยงรวมถงการเกบขอมลพฤตกรรมในการใชจายและความตองการของลกคา จากนนจะนาขอมลเหลานนมาวเคราะหและใชใหเกดประโยชนในการพฒนาผลตภณฑ หรอการบรการรวมไปถงนโยบายในดานการจดการ ซงเปาหมายสดทายของการพฒนา CRM กคอ การเปลยนจากผบรโภคไปสการเปนลกคาตลอดไป

2.2.1.3 ประโยชนของการบรหารลกคาสมพนธ

การเพมรายไดจากการขาย (Sale Revenue Increase) : การมงเนนการสราง ความสมพนธอนดกบลกคา เพอทาใหลกคาเกดความภกดการใชสนคาหรอบรการ (Customer Loyalty) การนาหลกการบรหารลกคาสมพนธ (CRM) มรายไดทเพมขน ปรบปรงกระบวนการทางานใน บรษทลดรายจายในการดาเนนงาน และตนทนการหาลกคา ใหมๆหรอดงลกคากลบมาใชสนคาหรอบรการอกครง

ความสมพนธอนดกบลกคา : เพอทาใหลกคาเกดความภกดการใชสนคาหรอ บรการ (Customerการบรหารของวงจรการทาธรกจของลกคา (Customer Life Cycle Management)

1) การหาลกคาใหมเขาองคกร (Customer Acquisition) โดยการสรางความ เดน (Differentiation) ของสนคาหรอบรการทใหม ( Innovation) และเสนอความความสะดวกสบาย (Convenience) ใหกบลกคา

2) การเพมความพงพอใจใหกบลกคาเพอทาการซอสนคาและบรการ โดยผานขนตอนการทางาน ทกระชบเพอการสนองตอบความตองการของลกคาไดรวดเรวและถก ตอง และการทางานทสนอง ตอบสงทลกคาตองการหรอเสนอสงทลกคาตองการ โดยผานหนวยงาน ลกคาสมพนธ (Customer Service)

3) การรกษาลกคา (Customer Retention) ใหอยกบองคการนานทสด และการดงลกคาใหกลบมา ใชสนคาหรอบรการ โดยฟงความคดเหนจากลกคาและพนกงานในองคกร (Listening) รวมถงการเสนอสนคาและบรการใหม (New Product)

การเพมประสทธภาพในกระบวนการตดสนใจ (Improving Integration of Decision Making Process) : การเพมการประสานงานในฝายตางๆของบรษท โดยเฉพาะการใชระบบฐานขอมลของลกคารวมกน และผบรหารสามารถดงขอมลจากระบบตางๆมาประกอบการตดสนใจ เชน รายละเอยดของลกคาทตดตอเขามาในฝายลกคาสมพนธ (Call Center), รายละเอยดของการจายเงนของลกคาจากฝายขาย (Sales),กจกรรมทางการตลาดทเสนอใหลกคาแตละกลมหรอแตละบคคลจากฝายการตลาด(Marketing) และ การควบคมปรมาณของสนคาในแตละชวงจากฝายสนคาคงคลง (Inventory Control) เปนตน

Page 19: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

9

การเพมประสทธภาพในการด าเนนงาน (Enhanced Operational Effiency) : การบรหารลกคาสมพนธ (CRM) จะชวยเพมประสทธภาพการทางานของฝายตางๆของบรษท โดยขอมลตางนนไดมาจากชองทางการสอสาร เชน Fax, โทรศพท และ อเมล (Email) เปนตน

เพมความรวดเรวในการใหบรการ (Speed of Service) : การใชหลกการบรหาร ลกคาสมพนธ (CRM) สามารถปรบปรงกระบวนการทางานโดยมงเนนทการตอบสนองความตองการของลกคาจะตองรวดเรวและถกตอง โดยเฉพาะการตอบสนองแบบใหบรการ หรอตอบสนองกบลกคาทนท (Real Time) เชน ระบบการสงสนคามการเชอมโยงระบบตางๆ ทงในฝายรบการสงซอ (Order Fulfillment), ฝายขาย (Sales Department), ฝายบญช (Acoounting Department), ฝายสนคาคงคลง (Inventory) และ ฝายทเกยวของกบการใหเครดตกบลกคา (Credit Authorization)

การรวบรวมรายละเอยดตางของลกคา (Gathering More Comprehensive Customer Profiles) : การบรหารลกคาสมพนธ (CRM) ไดชวยใหเพมประสทธภาพการทางานของฝายตางๆในบรษท ไดมาก ขน เพราะวาการบรหารลกคาสมพนธ (CRM) ชวย การจดการเกยวกบขอมลของ ลกคาทมอย ไดมากขนทาใหขอมลเกบอยางเปนระบบอยางเชอมโยงขน บรษทสามารถนาฐานขอมล นมาใชใน ระบบตางๆ ได

การลดตนทนในดานการขายและการจดการ (Decrease General Sales and Marketing Administration Costs) : การลดลงของตนทนการดาเนนงานนนมาจากใชหลกการบรหารลกคาสมพนธ เนองจาก บรษท มระบบการจดการทเนนในเรองการสรางความสมพนธอนดกบลกคา เขาใจความตองการของลกคาและ ตอบสนองความตองการของลกคาไดมากขน ทาให บรษท ไมสญเสยตนทนในการดงลกคากลบเปนลกคา ขององคกรอก และตดกระบวนการทไมจาเปนและกจกรรมทไมกอใหเกดรายไดแกบรษท

การสรางมลคาเพม ( Value Added) : ใหกบลกคาในปจจบนลกคานนพยายาม แสวงหาความพงพอใจสงสดจากสนคาและบรการ สงทลกคาตองการจง ไมใชแคคณคา (Value) อกตอไป แตตองการคณคาเพมททาใหลกคามความรสกมากกวาความพอใจ ซงผประกอบการควรสรางคณคาเพมใหกบสนคาและบรการ โดยผาน Value Chain ทงในสวนของคคา (Supply Chain) และในสวนของความตองการของลกคา (Demand Chain) เพอทาใหเกดการบรณาการททาใหเกดมลคาเพมใหกบลกคา อยางครบวงจรทงระบบ จากหลายหนวย งานเขามาเกยวของทง ภายในองคกร และภายนอกองคกร ( Internal and External Organization) นบตงแตผจาหนายวตถดบ (Raw Materials Suppliers) , กระบวนการ ทเกยวของกบวตถดบ (Material Procurement), การออกแบบผลตภณฑ (Product Designers), การจดหาอปกรณชนสวน (Spare Parts Suppliers) ,การขาย (Sales) และการตลาด (Marketing), ผททาการจดจาหนาย (Distributors) และ หนวยงานลกคาสมพนธ (Contact Center) เปนตน

Page 20: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

10

2.2.1.4 การจดการลกคากลมเปาหมายใหม (Lead Management) การจดการกลมลกคาเปาหมายใหมทหามาจากแหลงขอมลตางๆ เพอสราง Potential

ใหมใหกบธรกจ โดยผานเทคนคตางๆ ของการตลาด เชน ตดตอทางโทรศพท นดพบ สงขาวสารประชาสมพนธ ตดตามลกคากลมเปาหมายหรอบคคลทคาดวาจะเกดโอกาสทางการขาย จนกระทงเปลยนเปนลกคา

1) Lead หมายถงลกคากลมเปาหมายหรอบคคลทคาดวาจะเกดโอกาสทางการ ขายในอนาคต

2) Lead Stage คอการกาหนดสถานภาพของ Lead ประกอบดวย 3 ประเภท ไดแก Qualifying : หมายถงสถานภาพของ Lead อยระหวางการตรวจสอบขอมลเบองตน ซ งทกครงทมการ Create Lead จะถกกาหนดใหมสถานภาพเทากบ Qualifying เสมอ Convert : หมายถงสภานภาพของ Lead ทพนกงานขายได ทาการตรวจสอบขอมลเบองตนและมโอกาสทางการขาย ซงพนกงานขายเจาของ ขอมล (Owner) จะทาการ Convert Lead นนเพอสรางโอกาสทางการขาย โดยการคลกทในหนาจอ Lead View Unqualified : หมายถง สถานภาพของ Lead ทพนกงานขายไดทาการตรวจสอบขอมลเบองตนแลว พบวายงไมเกดโอกาสทางการขาย ซงพนกงานขายผเปนเจาของขอมล (Owner) จะทาการกาหนด Stage ใหเปน Unqualified โดยการ คลกทในหนาจอ Lead View

3) Lead Status คอการกาหนดสถานะของ Lead ซงประกอบดวย 3 สถานะ ไดแก New : หมายถง Lead ใหม(New Lead) โดยจะถกกาหนดเปนสถานะ New เสมอเมอม การ Create Lead Submited : หมายถง พนกงานขายไดทาการสงขอมลไปยงผบงคบบญชาเพอ Assign Lead สาหรบดาเนนการขายตอไปได Approved : หมายถงสถานะของ Lead ทไดรบการ Assign Lead ใหกบพนกงานขาย เพอดาเนนการตรวจสอบขอมลเบองตน (Qualify Lead) ได Reject : หมายถงยกเลก Lead ทไดทาการ Submit มาสาหรบรอการอนมต แตผอนมตไมอนญาตใหดาเนนการขายกบ Lead นน

Page 21: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

11

4) ความสมพนธระหวาง Lead Status และ Lead Stage Event Lead Status Lead Stage

1. เมอพนกงานขายบนทกขอมล Lead New Qualifying

New Qualifying

2. เมอพนกงานขายสงขอมลไปเพอรอการอนมต Submited Qualifying

Submited Qualifying

3. เมอ Lead นนถก Reject จากผอนมต Reject Qualifying

Reject Qualifying

4. เมอ Lead นนไดรบการอนมต จากผอนมตแลว Approved Qualifying

Approved Qualifying

5. เมอพนกงานขายไดตรวจสอบขอมลเบองตนของ Lead วามโอกาสทางการขายและทาการ Convert Lead

Approved Convert

6. เมอพนกงานขายไดตรวจสอบขอมลเบองตนของ Lead แลววาไมมโอกาส

Approved Unqualified

Page 22: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

12

5) Convert Workflow

รปท 2.1 แสดง Convert Workflow

2.2.1.5 การจดการบญชลกคา (Customer Account Management)

การจดการขอมลบญชลกคา ไมวาจะเปนขอมลลกคาทมาจากกลมเปาหมายในระบบ หรอเปนการบนทกขอมลใหมจากแหลงตางๆ

2.2.1.6 การจดการบคคลตดตอของลกคา (Contact Management)

การจดการขอมลบคคลทตดตอกบลกคา สามารถเกบทกประเภท Contact ทเกยวของกบลกคา บนทกขอมล Contact ตางๆ ทเกยวของกบบรษท

2.2.1.7 การจดการโอกาสทางดานการขาย (Opportunity Management)

การจดการขอมลและกจกรรมการตลาดเพอดโอกาสในการขายสนคากบลกคา

Page 23: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

13

2.2.1.8 การจดการคแขงทางดานธรกจ (Competitor Management) การจดการขอมลของคแขงทางดานธรกจ

2.2.1.9 การจดการคคาทางดานธรกจ (Partner Management) การจดการขอมลของคคาทางดานธรกจ

2.2.2 เทคโนโลยทางดานฐานขอมล (Database Technology)

ในชวตประจาวนในปจจบน ไมวาจะดาเนนงานใดๆ มนษยจะตองเกยวของกบขอมล อยางใดอยางหนงเสมอ เชน การตดตอราชการทจะตองใชขอมลจากบตรประชาชนหรอสามะโนประชาการ การตดตอกบธนาคารทจะตองใชขอมลจากสมดเงนฝาก เปนตน โดยเฉพาะอยางยงเมอเทคโนโลยโลกไดพฒนาขน จนกระทงปจจบนมการใชคอมพวเตอรกนอยางกวางขวาง ขอมลในดานตางๆ ซงในอดตเปนการจดเกบขอมลจะอยบนกระดาษ แตในปจจบนไดถกนามาจดเกบในคอมพวเตอรแทน

2.2.2.1 ระบบฐานขอมล (Database System) เมอระบบแฟมขอมลไดมการใชงานจนถงระดบหนง ทาใหทราบถงปญหาตางๆ

ตามมามากมายในดานของความยดหยนและความไมคลองตวในหลายๆ ดาน ววฒนาการของเทคโนโลยการจดระบบขอมลกไดเกดขนใหม โดยมแนวความคดทจะจดการขอมลแบบใหมทม ประสทธภาพโดยรวมทดกวา รวมทงมความยดหยนและความคลองตวสงขน นนคอ แนวคดของระบบฐานขอมล

ปกตแลวขอมลหรอแฟมขอมลจะเปนแฟมขอมลทถกจดเกบแบบกระจายไปตามหนวยงานหรอแผนกตางๆ ทวไป และแตละแผนกตางกมกระบวนการจดเกบแฟมขอมลเปนของตนเอง แตแนวคดของฐานขอมลจะตรงกนขามกบวธแฟมขอมล โดยฐานขอมลจะเปนแหลงหรอศนยรวมของขอมลทมความสมพนธกน มกระบวนการจดหมวดหมของขอมลทมแบบแผน ซงกอใหเกดฐานขอมลทเปนแหลงรวมของขอมลจากแผนกตางๆ และถกจดเกบไวอยางเปนระบบภายในฐานขอมลชดเดยว ผใชงานตางๆ ในแตละแผนกสามารถใชขอมลสวนกลางน เพอนาไปประมวลผลรวมกนได และสนบสนนการใชฐานขอมลรวมกนทาใหไมเกดความซาซอนในขอมล ดงเชนระบบแฟมขอมล และแนวคดของฐานขอมลนนสามารถชวยแกไขปญหาตางๆ ทเกดขนจากการประมวลผลดวยวธแฟมขอมล

2.2.2.2 ระบบการจดการฐานขอมล (Database Management System)

ระบบการจดการฐานขอมล หรอมกเรยกยอๆ วา DBMS คอ โปรแกรมทใชเปนเครองมอในการจดการฐานขอมล ซงประกอบดวยฟงกชนหนาทตางๆ ในการจดการฐานขอมล รวมทงภาษาทใชทางานกบขอมล โดยมกจะใชภาษา SQL (Structure Query Language) ในการโตตอบระหวางกนกบผใช เพอใหสามารถทาการกาหนด การสราง การ

Page 24: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

14

เรยกด การบารงรกษาฐานขอมล รวมทงการจดการควบคมการเขาถงฐานขอมล ซงถอเปนการปองกนความปลอดภยในฐานขอมล เพอปองกนมใหผทไมมสทธการใชงานเขามาละเมดขอมลในฐานขอมล ทเปนศนยกลางได นอกจากน DBMS ยงมหนาทในการรกษาความมนคงและความปลอดภยของขอมล การสารองขอมล และการเรยกคนขอมลในกรณทขอมลเกดความเสยหาย

2.2.2.3 สวนประกอบของสภาพแวดลอมระบบการจดการฐานขอมล (Component of the DBMS Environment)

1) ฮารดแวร (Hardware) ฮารดแวรในทนหมายถง คอมพวเตอรและอปกรณรอบขาง (Peripherals) โดย DBMS และแอพพลเคชนจะเกยวของกบฮารดแวรทใชงาน ดวยฮารดแวรทจะนามาใชงานกบ DBMS นน สามารถเปนไดทงเครองคอมพวเตอรสวนบคคลทใชงานคนเดยว เมนเฟรมคอมพวเตอร มนคอมพวเตอร รวมทงเครองคอมพวเตอรทเชอมตอกนเปน เครอขาย ซงฮารดแวรดงกลาวจะเปนรปแบบใดกข นอยกบความตองการขององคการหรอหนวยงานเปนหลก

2) ซอฟตแวร (Software) ซอฟตแวรในทนหมายถง ระบบปฏบตการ (Operating System) ซอฟตแวรการจดการฐานขอมลรวมทงแอพพลเคชนโปรแกรมและโปรแกรมยทลตต างๆ ซงอาจมสวนเพมในเรองของระบบเครอขายในกรณตองการ DBMS ททางานบนระบบเครอขาย ตามปกตแลวโปรแกรมประยกตอาจจะเขยนดวยภาษายคท 3 เชน C , COBOL , FORTRAN , ADA หรอ Pascal และภาษายคท 4 เชน SQL โดย DBMS นจะเปนเครองมอในภาษายคท 4 ทใชชดคาสง SQL ในการเรยกใชงานในรปแบบของชดคาสงแบบ non-procedural โดยทาการสรางรายงาน (Report Generators) การสรางฟอรม (Forms Generators) การสรางภาพ (Graphics Generators) และการสรางแอพพลเคชน (Application Generators)

3) บคลากร (People) บคลากรจาเปนตองของเกยวกบระบบอยตลอดเวลา โดยบคลากรทของ

เกยวกบระบบนนจะประกอบดวยบคลากรทมหนาทในการจดการฐานขอมลตางๆ กน เชน ผบรหารขอมลและฐานขอมล (Data and Database Administrators) นกออกแบบฐานขอมล (Database Designers) นกเขยนโปรแกรมประยกต (Application Programmers) และผใชงาน (End User)

4) โพรซเยอร (Procedure) คอขนตอนการปฏบตงานทเกยวของกบชดคาสง (Instruction) กฎเกณฑใน

Page 25: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

15

การออกแบบและการใชงานฐานขอมล ผใชงานจะจดการกบฐานขอมลตามขนตอนการปฏบตงานทไดกาหนดไวในคมอหรอเอกสาร วาจะใชงานหรอสงใหระบบทางานไดอยางไร ซงอาจจะประกอบดวยชดคาสงและขนตอนทใชในการปฏบตงานดงตอไปน

การเขาหรอการลอกอนเขาสระบบ DBMS การใชงาน DBMS หรอใชแอพพลเคชนโปรแกรม การเรมตนทางานหรอจบการทางานของ DBMS การสารองฐานขอมล การกคนฐานขอมลในกรณเกดความเสยหายในขอมล การเปลยนแปลงโครงสรางตาราง การเปลยนอปกรณจดเกบขอมล การ

ปรบปรงประสทธภาพ หรอการจดเกบขอมลไปยงแหลงจดเกบขอมลสารอง

5) ขอมล (Data) ในบางครงอาจกลาวไดวาสงทสาคญทสดของสภาพแวดลอมใน DBMS โดย

พจารณาจากผใชงานทตองการแสดงในสงทตองการ นนกคอ “ขอมล”

2.2.3 สถาปตยกรรมฐานขอมล (Database Architecture) 2.2.3.1 ระดบภายใน (Internal Level)

ระดบภายในเปนระดบทเกยวของกบ การจดเกบขอมลในระดบฟสคอล (Physical) วามรปแบบโครงสรางขอมลจดเกบอยางไร (How) ในฐานขอมล เชน โครงสรางขอมลเปนแบบเรยงลาดบดชน (Index) บทร (B-Tree) หรอพอยเตอร (Pointer) โครงสรางขอมลในแตละรปแบบ จะมผลตอประสทธภาพของความเรวในการเขาถง (Access) ขอมลดวย นอกจากนแลวระดบภายในยงเกยวของกบการบบอดขอมลภายใน (Data Compression) รวมทงเทคนคการเขารหสขอมล (Data Encryption) ดวย สาหรบโครงสรางขอมลระดบภายในในมมมองของผใชฐานขอมล จะไมสามารถเหนรายละเอยดทางฟสคอล (Physical) ในระดบนไดเลย เพราะรายละเอยดของระดบนจะถกซอนไวหมดนอกจากผบรหารฐานขอมล (Database Administrators) ซงเปนผทสามารถเปลยนแปลงโครงสรางขอมลเหลานได จดประสงคหลกของการจดโครงสรางขอมลในระดบนเพอใหการปฏบตการกบขอมลเปนไปอยางมประสทธภาพ ดงนนระดบภายในหรอระดบฟสคอล (Physical) นจะเปนสวนทพจารณาถงความเรวในการปฏบตกบขอมล

2.2.3.2 ระดบแนวคด (Conceptual Level) ระดบแนวคดนอาจเรยกอกชอหนงวาเปน โครงสรางขอมลระดบลอจคล

(Logical) จดเปนโครงสรางหลกของระบบโดยรวม สาหรบโครงสรางขอมลในระดบนมงเนนความสมพนธ (Relationship) ระหวางขอมลเปนสาคญ หรอเรยกวาแบบจาลองขอมล (Data

Page 26: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

16

Model) ดงน น การกระทาหรอการปฏบตการใดๆ ในโปรแกรมจากผใชงานจะปฏบตบนโครงสรางขอมลในระดบนเทานน โดยโครงสรางในระดบลอจคอลนเปนระดบทอธบายถงวา ขอมลอะไร (What) ทจะจดเกบลงในฐานขอมลและมความสมพนธระหวางกนอยางไร บคคลทสามารถเขาไปแกไขโครงสรางขอมลในระดบนไดกคอ ผบรหารจดการฐานขอมล (Database Administrators หรอ DBA) หรอโปรแกรมเมอร (Programmer) โดยระดบลอจคลนจะมความเกยวของกบสงตอไปน

จานวนเอนตตทงหมดซงประกอบดวยแอตทรบวต และความสมพนธระหวางแตละเอนตต

กฎเกณฑในขอมล (Constraints on the data) ความปลอดภย (Security) และความคงสภาพ (Integrity) ในขอมล

นอกจากโครงสรางระดบลอจคลทแสดงถงความสมพนธระหวางขอมลแลว ยงม

จดประสงคเพอใหเกดความเปนอสระในโครงสรางขอมลกบระดบภายในดวย และในสวนของแบบจาลองขอมล ซงอยในระดบน จะมงเนนเพยงเพอแสดงถงความสมพนธระหวางขอมลเทานน

ดงนนไมวาจะใชแบบจาลองเครอขายทมพอยเตอร (Pointer) การใชอนเดกซ (Index) หรอการใชแบบจาลองเชงสมพนธจะไมไดของเกยวกบความรวดเรวในการเขาถงขอมลเลย สงเหลานใชเพยงเพอแสดงถงความสมพนธระหวางขอมลเทานน

2.2.3.3 ระดบภายนอก (External Level) ระดบภายนอกเปนระดบสงสดทเกยวของกบผใชงานมากทสด โดยความเปน

จรงแลวโครงสรางขอมลในระดบภายนอกน กคอบางสวนของขอมลในฐานขอมลของระดบลอจคลหรอระดบแนวคดนนเอง กลาวคอ ในระดบแนวคดหรอลอจคลนนเปนโครงสรา งหลกของระดบโดยรวมทงหมด แตผใชกไมมความจาเปนทจะตองเหนโครงสรางทงหมด เพยงแตตองการขอมลบางสวนเทานนกเพยงพอแลว เชน หากมความตองการจะทราบวานกศกษาคนนอยสาขาใด กไมมความจาเปนทจะตองเหนโครงสรางขอมลทงหมดของนกศกษารวมทงโครงสรางขอมลทงหมดของสาขา แตตองการเพยงรหสนกศกษา ชอ - สกล รหสสาขาและชอสาขาเทาน น เปนตน ซงจะเหนไดวามการรเลชนระหวางโครงสรางขอมลนกศกษากบโครงสรางขอมลสาขา ซงเปนสวนของระดบลอจคล ดงนนระดบภายนอกจงนาขอมลเพยงบางสวนของระดบลอจคลหรอระดบแนวคดมา เพอแสดงขอมลแกผใชงานบางสวนหรอเทาทจาเปนเทานน ในอกกรณหนงกลาวคอในมมมองทแตกตางกนกจะกอใหเกดการนาเสนอทแตกตางกนบนขอมลชดเดยวกน เชน คาของวนทท จดเกบในฐานขอมล เมอนามาใชงานผใชคนหนงอาจนาวนทดงกลาวมาใชงานไดทนท เชน 01/01/2011 แตผใชอกคนอาจจาเปนตองนาเสนอขอมลวนทในอกรปแบบหนง เชน 01-Jan-2011 หรอ 1 มกราคม 2554 เปนตน โดย

Page 27: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

17

ระดบภายนอกนผใชงานจะสามารถเรยกใชงานฐานขอมลไดจากระดบนและการกระทากบขอมลของผใชงานในระดบภายนอกน จะไมสงผลกระทบกบโครงสรางในระดบกอนหนานใดๆ เลยทงสน

2.2.4 การออกแบบฐานขอมลโดยใช E-R Diagram ในการออกแบบฐานขอมลขนมาใชงานในระบบสารสนเทศใดๆจะตองอาศยแบบจาลอง

ของขอมล เพอนาเสนอรายละเอยดตางๆ ทเกยวของกบขอมลในฐานขอมลทออกแบบ เนองจากแบบจาลองของขอมลจะมรปแบบในการนาเสนอรายละเอยดตางๆทเกยวของกบฐานขอมลทเปนมาตรฐาน จงทาใหสามารถนาเสนอตอผใชในแตละระดบทมมมมองทแตกตางกนไดเปนอยางด สาหรบแบบจาลองของขอมลทนยมใชไดแก Entity Relationship Model

2.2.4.1 เอนตต (Entity) เปนรปภาพทใชแทนคลาส ทสามารถระบไดในความเปนจรงซง อาจเปนสงทจบตองได เชน พนกงาน หรออาจเปนเพยงสงทอยในรปนามธรรมทไมสามารถจบตองได เชน วนหยดของพนกงาน แบงออกเปน 2 ประเภทดงน

Regular Entity ไดแกเอนตตทประกอบดวยสมาชกทมคณสมบตซงบงบอกถงเอก ลกษณของแตละสมาชกนน สาหรบรปภาพทใชแทนเอนตตประเภทนไดแกรปสเหลยมผนผา โดยมชอของเอนตตนนอยภายใน ดงรปท 2.2

รปท 2.2 แสดงสญลกษณทใชแทน Regular Entity

Weak Entity เปนเอนตตทมลกษณะตรงกนขามกบ Regular Entity กลาวคอ สมาชกของเอนตต ประเภทนจะสามารถมคณสมบตทบงบอกถงเอกลกษณของแตละสมาชกไดนนจะตองอาศยคณสมบตใดคณสมบตหนงของ Regular Entity มาประกอบกบคณสมบตของตวมนเอง สาหรบรปภาพทใชแทนเอนตตประเภทน ไดแกรปสเหลยมผนผา 2 รปซอนกน โดยมชอของเอนตตนนอย ดงรปท 2.3

รปท 2.3 แสดงสญลกษณทใชแทน Weak Entity

ARTICLE

Page 28: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

18

2.2.4.2 แอตทรบวต (Attribute) ไดแก คลาสของคณสมบตตางๆ ทนามารวมกบแบบ Aggregation Abstraction เพอเปนเอนตต หรอ Relationship เชน หมายเลขบตรประชาชน ชอสกล วนเดอนปเกด ภมลาเนา วนทออกบตร วนทบตรหมดอาย ทรวมกนเปนเอนตต “บตรประชาชน” เปนตน สาหรบ แอตทรบวต ใน E-R Model สามารถแบงออกได 6 ประเภทดงน

Simple Attribute ไดแก แอตทรบวต ทคาภายใน แอตทรบวต นนไมสามารถแบง ยอยไดอก เชน เพศ เงนเดอน อาย จงหวด ฯลฯ เปนตนสาหรบรปทใชแทน แอตทรบวต ประเภทน

รปท 2.4 แสดงสญลกษณทใชแทน Simple Attribute

Composite Attribute เปน แอตทรบวต ทมลกษณะตรงขามกบ Simple Attribute

กลาวคอ จะเปน แอตทรบวต ทคาภายใน แอตทรบวต นนสามารถแยกเปน แอตทรบวต ยอยไดอกเชน ชอ ทสามารถแบงยอยออกเปน “คานาหนาชอ” “ชอ” “นามสกล” สาหรบรปภาพทใชแทนแอตทรบวตประเภทน จะใชวงรเชนเดยวกบ Simple Attribute แตจะเปนวงรทเชอมตอกบวงรของ Simple Attribute ทเปนเจาของ Composite Attribute

รปท 2.5 แสดงสญลกษณทใชแทน Composite Attribute

Identifier หรอ Key ไดแกแอตทรบวตหรอกลมของแอตทรบวตทมคาในแตละ สมาชกของเอนตตไมซากนเลย ซงถกนามาใชกาหนดความเปนเอกลกษณใหกบแตละสมาชกในเอนตต สาหรบรปภาพทใชแทนคยของเอนตตจะใชรป วงรเชนเดยวกบแอตทรบวตแตจะมเสนขดอย ใตแอตทรบวตทเปนคย

Page 29: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

19

รปท 2.6 แสดงสญลกษณทใชแทน Identify หรอ Key

Single Valued Attribute เปนแอตทรบวตทมคาของขอมลภายใตคาของแอตทรบวต ใด แอตทรบวตหนงเพยงคาเดยว เชน แอตทรบวต “SALARY” ซงทใชเกบเงนเดอนของพนกงาน โดยพนกงานแตละคนจะมเงนเดอนคาเดยว สาหรบรปภาพทใชแทนแอตทรบวตประเภทนจะใชรปภาพเชนเดยวกบ Simple Attribute

Multi Valued Attribute เปนแอตทรบวตทมลกษณะตรงขามกบแอตทรบวตแบบ Single valued กลาวคอ เปนแอตทรบวตทมคาของขอมลไดหลายคาภายใตคาของแอตทรบวตใดแอตทรบวตหนง เชน แอตทรบวต “DEGREE “ ทใชระบระดบการศกษาของพนกงานแตละคน ซงพนกงานแตละคนจะมระดบการศกษาไดหลายระดบ สาหรบรปภาพทใชแทนแอตทรบวตประเภทนจะใชรปภาพเดยวกบ Simple Attribute แตเสนทใชเชอมระหวางรปภาพของแอตทรบวตประเภทนกบรปภาพของเอนตต หรอ Relationship จะใชเสน 2 เสนแทน

Derived Attribute เปนแอตทรบวตทคาของขอมลไดมาจากการนาเอาคาของ แอตทรบวตอน มาทาการคานวณ ซงคาของแอตทรบวตประเภทนจะตองเปลยนแปลงทกครงเมอมการเปลยนแปลงคาของแอตทรบวตทถกนาคามาคานวณ เชน แอตทรบวต “TOT_SAL“ ของเอนตต “EMPLOYEE” ทใชเกบเงนเดอนสะสมของพนกงานแตละคนเพอนาไปคานวณภาษ ซงไดมาจากผลรวมของคาในแอตทรบวต “INCOME” ของเอนตต “MTHLY_SALARY” ซงเปนเงนเดอนทพนกงานแตละคนไดรบในแตละเดอน สาหรบรปภาพทใชแทนแอตทรบวตประเภทนจะใชรปภาพเดยวกบ Simple Attribute แตเสนเชอมระหวางรปภาพของแอตทรบวตประเภทนกบรปภาพของเอนตต หรอ Relationship จะใชเสนปะแทน

2.2.4.3 ความสมพนธ (Relationship) ไดแก การนาเอาเอนตตมารวมกนแบบ Aggregation Abstraction ดงนน สมาชกของ

Relationship จงเกดจากการจบคกนระหวางสมาชกของเอนตตทมารวมกนภายใต Relationshipนน Relationship ทสรางขนน จะใชแทนความสมพนธใดความสมพนธหนงระหวางสมาชกของเอนตตทมารวมกนภายใต Relationship นน Relationship ระหวางเอนตตใดๆ ไมจาเปนทจะตองมเพยง Relationship เดยว ถาความสมพนธระหวางสมาชกในเอนตตเหลานน มมากกวา 1 ความสมพนธ

Page 30: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

20

One to One Relationship เปน Relationship ทแตละ Participant ของเอนตตหนง จะ

มความสมพนธกบอก Participant ของอกเอนตตหนงเพยง Participant เดยว

รปท 2.7 แสดงความสมพนธแบบ One to One

One to Many Relationship

เปน Relationship ทแตละ Participant ของเอนตตหนงมความสมพนธกบ Participant ของอกเอนตตหนงมากกวา 1 Participant เชน กรณลกคาสามารถมบญชเงนฝากไดมากกวา 1 บญช และแตละบญชเงนฝากจะตองมเจาของบญชเพยงคนเดยว

รปท 2.8 แสดงความสมพนธแบบ One to Many

Many to Many Relationship เปน Relationship ท Participant มากกวา 1 Participant ของเอนตตหนง มความ

สมพนธกบ Participant ของอกเอนตตหนงมากกวา 1 Participant เชน กรณลกคาสามารถมบญชเงนฝากไดมากกวา 1 บญช และแตละบญชเงนฝากสามารถมเจาของบญชไดมากกวา 1 คน

รปท 2.9 แสดงความสมพนธแบบ Many to Many

นอกเหนอจาการใชจานวนของ Participant ในการจดประเภทของ Relationship แลว

ยงสามารถใชจานวนของเอนตตทมความสมพนธกบแตละ Relationship มากาหนดประเภทของ Relationship ไดดงน

Binary Relationship เปน Relationship ทพบมากทสดใน E-R Diagram โดยเปน Relationship ทเกดขนระหวาง 2 เอนตต ใดๆ เชน E-R Diagram ทแสดงความสมพนธระหวางลกคากบบญชเงนฝาก เปนตน

1 1

Page 31: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

21

N-ary Relationship เปน Relationship ทเกดขนระหวางเอนตต มากกวา 2เอนตต ขนไป เชน Relationship “SCHEDULE” ซงใชแสดงตารางเรยนของวชาตางๆ

Recursive Relationship เปน Relationship ทเกดขนกบ เอนตต เดยว ในกรณท แอตทรบวต ของเอนตตนน สามารถสรางความสมพนธกบอกแอตทรบวตหนงภายในเอนตตเดยวกน

2.2.5 เวบเทคโนโลย (Web Technology)

2.2.5.1 สถาปตยกรรมเวบแอพพลเคชน (Web Application Architecture) 1) แนวโนมของการพฒนาแอพพลเคชน

แนวโนมของการใชงานอนเทอรเนตในทกวนนม อตราเพมสงขนอยางรวดเรวมาก เพราะเปนชองทางททาใหองคกรสามารถลดคาใชจายตางๆ และอานวยความสะดวกสบายในการทางานไดมากขนดวยเหตนแอพพลเคชนตางๆ จงมแนวโนมทจะกลายเปนเวบแอพพลเคชน คอเปนแอพพลเคชนททางานบนเวบมากขนตามไปดวยลกษณะของเวบแอพพลเคชนไดเปลยนโฉมหนาของการทาธรกรรมไปมากมาย ตวอยางทเราพบเหนไดบอย เชน การซอขายแบบออนไลน , ระบบหองสมดอเลกทรอนกสบนเครอขายอนเทอรเนต เปนตน ในองคกรทวไปเองกพยายามเปลยนแอพพลเคชนทใชอยเดมใหกลายมาเปนเวบแอพพลเคชน โดยพยายามใหผใชยงคงรสกเหมอนกาลงใชแอพพลเคชนเดมอย แตเบองหลงเปนการทางานบนเวบ ดงนน ภาระหนาทดงกลาวจงทาใหนกวเคราะหและออกแบบระบบจะตองวางแผนการพฒนาระบบใหรดกมกวาการพฒนาระบบแบบเดมๆ ในการวเคราะหและออกแบบระบบงานเวบแอพพลเคชน สงสาคญทเราตองคานงถงคอการแบงแยกงานในสวนของตรรกะการทางานจรงๆ กบสวนทตดตอกบผใชงานระบบ ใหแยกออกจากกนอยางเดดขาด ทงนเพอความสะดวกในการพฒนา การบารงรกษา รวมทงการแกไขระบบในอนาคต ตรรกะการทางานหรอ Business Logic เปนสวนของระบบทมการทางานจรงๆ มกฎเกณฑและกระบวนการทางานวามงานอะไรบางและแตละงานจะตองทาอยางไรจงจะไดผลลพธตามทตองการในสวนของการตดตอกบผใชงานหรอยสเซอรอนเทอรเฟซ (User Interface) กจะรบภาระเฉพาะในการสอสารกบผใชงานเทานน จะไมไปยงเกยวกบการประมวลผลของระบบงาน ตวอยางหนงของการพฒนาระบบงานโดยแยกสวนทเปนตรรกะกบ สวนทตดตอกบผใชระบบงานนน ไดแก ภาษาจาวาทมการแยกการทางานออกเปนสวนๆ ตามหลกการของการออกแบบเชงวตถ เหนไดชด ในภาษาจาวานนจะมเทคโนโลยเขามาเกยวของอยหลายอยาง โดยหลกๆ ไดแก เซรฟเลต (Servlets), จาวาเซรฟเวอรเพจ (Java Server Pages, JSP) จาวาบนส (Java Beans) เปนตน ซงเทคโนโลยตางๆ เหลานเราอาจจะใชเซรฟเลตเปนทงสวนทควบคมการทางานเปนทงสวนทตดตอกบผใชงาน หรอเปนทงสวนประมวลผลลพธ แตการออกแบบและใชงานเทคโนโลยในลกษณะดงกลาวยอมเปนวธการทไมมประสทธภาพอยางแนนอน ผพฒนาระบบเวบแอพพลเคชนดวยภาษาจาวาจงนยมทจะแยกงานตางๆ ออกจากกน โดยใหเซรฟเลต

Page 32: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

22

รบภาระในการควบคมโฟลวของการทางาน, JSP เปนสวนทตดตอกบผใชระบบ และใหจาวาบนสรบหนาทในการประมวลผลของงานยอยๆ การแยกการทางานออกอยางชดเจนจะทาใหทางานไดงายรวดเรว และเพมความสะดวกสบายแกทมพฒนาระบบมากยงข น นกออกแบบเวบเพจกไมจาเปนตองเชยวชาญในการเขยนโคดภาษาจาวาจงสามารถทมเทกบการออกแบบหนาจอใหไดอยางเตมท สวนโปรแกรมเมอรเองซงมกจะถนดเฉพาะการเขยนโคดโปรแกรมเพอใหไดผลลพธเทานน กไมตองเปนกงวลถงหนาตาของยสเซอรอนเทอรเฟซทจะใชตดตอกบผใชระบบงาน และเมอเราออกแบบงานตางๆ ดวยแนวความคดเชงวตถแลวเรากจะสามารถสรางสงทเรยกวา “ บนส (Beans)” แทนงานตางๆ และนามาประกอบรวมกนเปนระบบงานตามทเราตองการได

2) รปแบบสถาปตยกรรมของเวบแอพพลเคชน เวบแอพพลเคชนถอกาเนดมาจากการทเรามเวบไซต และโดยพนฐานแลวเวบ

แอพพลเคชนกคอการนาเวบไซตมาใสตรรกะการทางานเพมเตมเพอใหสามารถใช แอพพลชนโดยมเวบเพจเปนสอในการตดตอระหวางผใชกบระบบ การทแอพพลเคชนหนงๆ จะเรยกวาเปนเวบแอพพลเคชนไดนน จะตองมองคประกอบอยางนอย 3 อยางไดแก

เวบบราวเซอรทางฝ งของไคลเอนต เวบเซรฟเวอร แอพพลเคชนเซรฟเวอร

เวบแอพพลเคชนเปนระบบทมการทางานในลกษณะของไคลเอนต-เซรฟเวอร โดยมเวบบราวเซอรทางฝ งของไคลเอนตเพอใหไคลเอนตสามารถตดตอกบเวบเซรฟเวอรผานทางเวบเพจ และใชแอพพลเคชนเซรฟเวอรในการจดการสวนของตรรกะการทางาน ซงเวบเซรฟเวอรกบแอพพลเคชนเซรฟเวอรอาจจอยบนเครองเดยวกนหรออยกนคนละเครองกได แลวแตความเหมาะสมของระบบงาน

ในสวนรปแบบเชงสถาปตยกรรมของเวบแอพพลเคชนทมการใชงานในปจจบน เรา สามารถจาแนกออกเปน 3 อยางไดแก

Thin Web Client สวนมากเปนแอพพลเคชนททางานบนเครอขายอนเทอรเนต ตรรกะการ

ทางานทงหมดจะทางานอยทางฝ งของเซรฟเวอร มการควบคมคอนฟกเรชน (Configuration) ของไคลเอนตเพยงเลกนอย และไคลเอนตจะใชงานแอพพลเคชนในรปของฟอรมผานเวบบราวเซอร

Thick Web Client เปนแอพพลเคชนทมสวนของตรรกะการทางานอยบนเครองฝ งไคลเอนตเปน

จานวนคอนขางมาก โดยทวไปไคลเอนตจะมการใช dynamic HTML, จาวาแอพเพลตหรอ ActiveX ในการควบคมตรรกะตางๆ และมการตดตอกบเซรฟเวอรผานโพรโตคอล HTTP

Web Delivery

Page 33: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

23

คอนอกจากทจะใชโพรโตคอล HTTP ในการตดตอระหวางไคลเอนตกบเซรฟเวอรแลว ยงอาจมการใชโพรโตคอลอนๆ อาท IIOP และ DCOM เพอใชสาหรบระบบเชงวตถแบบกระจาย (Distributed Object) โดยเวบบราวเซอรจะทาหนาทเปนสวนทเกบและสงออบเจกตของระบบ

3) ลดภาระใหไคลเอนตดวย Thin Web Client สถาปตยกรรมแบบ Thin Web Client เปนแอพพลเคชนททางานบนเครอขาย

อนเทอรเนตโดยจะมคอนฟกกเรชนทางฝ งไคลเอนตเพยงเลกนอย และมสวนของตรรกะทงหมดทางานอยทางฝ งเซรฟเวอร ดวยคณสมบตดงกลาว สถาปตยกรรมแบบนจงเหมาะกบระบบทเครองทางฝ งไคลเอนตมประสทธภาพในการทางานไมสงนก และเหมาะกบงานทไมตองการควบคมทางฝ งของไคลเอนตมากนกดวย สถาปตยกรรมแบบนจงนยมใชในระบบอคอมเมรช บนเครอขายอนเทอรเนตเพราะสามารถเขาถงลกคาไดเปนจานวนมาก องคประกอบหลกๆ ของสถาปตยกรรมแบบ Thin Web Client จะอยทางฝ งเซรฟเวอรอนไดแก

ไคลเอนตบราวเซอร (Client Browser) เปนเวบบราวเซอรทใชงานกนทวไป ทาหนาทเปนยสเซอรอนเทอรเฟซ

สาหรบตดตอสอสารกนระหวางไคลเอนตกบเซรฟเวอร ทางฝ งไคลเอนตจะมเพยงการกาหนดการเกบขอมลคกกเทานนวามการเกบขอมลคกกทเครองของไคลเอนตหรอไม ผใชแอพพลเคชนสามารถใชเวบบราวเซอรในการรองขอขอมลจากเซรฟเวอรและเซรฟเวอรกจะตอบกลบไปยงผใชในรปของเวบเพจ

เวบเซรฟเวอร (Web Server) เปนองคประกอบหลกสาหรบรบการรองขอขอมลจากบราวเซอรของไคลเอนต

โดยการประมวลผลทสาคญตางๆ มกทาทางฝ งของเซรฟเวอรแลวสงผลลพธกลบไปยงไคลเอนต

โพรโตคอล HTTP เปนโพรโตคอลทนยมใชในการตดตอกนระหวางเวบบราวเซอรทางฝ งไคลเอนต

กบเวบเซรฟเวอร โดยทในแตละครงทไคลเอนตหรอเซรฟเวอรทมการสงขอมลถงกนจะสงผลใหเกดการสรางการตดตอ (Connection) ขนใหมทกครง และเราสามารถเลอกใชโพรโตคอล HTTP ในรปแบบทเพมความปลอดภยใหมากขนคอ มการสรางการตดตอผาน SSL (Secure Socket Layer) ซงการสรางการตดตอประเภทนจะมการเขารหสขอมล (Encoding) กอนทจะสงออกไป

HTML Page เปนเอกสารทแสดงผลผานเวบบราวเซอร โดยทาหนาทเปนยสเซอร

อนเทอรเฟซแสดงขอมลตางๆ สงการรองขอขอมลในรปของฟอรมและแสดงผลของการตอบรบของเซรฟเวอรทสงกลบมายงไคลเอนต

เซรฟเวอรเพจ (Server Page)

Page 34: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

24

เปนเวบเพจททางานอยทางฝ งของเซรฟเวอร โดยทวไปจะอยในรปของเพจ ทเขยนจากภาษาสครปต เชน ASP.NET (Active Server Pages .NET), JSP (JavaServer Page), Cold Fusion Pages เปนตน โดยเพจเหลานจะใชเปนชองทางในการเขาถงรสอรซตางๆ ตรรกะการทางาน, ฐานขอมล และองคประกอบอนๆ ทอยทางฝ งเซรฟเวอร

แอพพลเคชนเซรฟเวอร (Application Server) เปนสวนทเซรฟเวอรนาตรรกะการทางานมาประมวลผล โดยรบผดชอบใน

การรนโคดทอยในเซรฟเวอรเพจ ซงแอพพลเคชนเซรฟเวอรอาจจะอยบนเครองเดยวกนหรออยคนละเครองกบเวบเซรฟเวอรกได

4) ยกระดบไคลเอนตดวย Thick Web Client สถาปตยกรรมแบบ Thick Web Client เปนรปแบบทเพมเตมจาก Thin Web

Client โดยเพมการใชภาษาสครปตทางฝ งของไคลเอนตและออบเจกตอนๆ อาท ActiveX และจาวาแอพเพลตสถาปตยกรรมแบบนเหมาะกบเวบแอพพลเคชนทมลกษณะดงตอไปน

คอนฟกเรชน (Configuration) ของไคลเอนตมความชดเจนวากาหนดเอาไวอยางไร

รวาไคลเอนตใชบราวเซอรของคายไหนและเวอรชนอะไร มยสเซอรอนเทอรเฟซทมความซบซอน มความชดเจนวามตรรกะการทางานอะไรบางและเปนจานวนเทาไรท

ทางานทางฝ งไคลเอนต ขอแตกตางทเหนไดชดเจนระหวาง Thin Web Client กบ Thick Web Client กคอ

บทบาทในการใชเวบบราวเซอรในสวนของตรรกะการทางาน โดยสถาปตยกรรม Thick Web Client จะเนนไปทยสเซอรอนเทอรเฟซทมความซบซอนและความสามารถในการประมวลผลตรรกะการทางานทางฝ งไคลเอนต แต Thin Web Client จะไมไมความซบซอนทางฝ งของไคลเอนตมากนก สถาปตยกรรม Thick Web Client มกจะมการใชภาษาสครปต เชน จาวาสครปต ทางฝ งของไคลเอนต, มการใชแอพเพลตและปลกอนตางๆ เรามกใชภาษาสครปตในการจดการกบส, รปภาพ, ปม หรอเมนในเพจ HTML ในขณะทแอพเพลตและ ActiveX จะใชในการควบคมงานทมความซบซอน เชน เรองเสยง, การคานวณสนๆ เปนตน นอกจากเทคโนโลยทไดกลาวไปแลว กยงอาจมการใชเทคโนโลยอนๆ อก เชน XML, Shockwave, Flash เปนตน

สงทเราตองคานงถงอยางมากเมอเราไดใชสถาปตยกรรม Thick Web Client คอเรา ตองพจารณาบราวเซอรของไคลเอนตดวยวาสามารถรองรบกบเทคโนโลยตางๆ ไดหรอไม เพราะถาไคลเอนตแตละคนใชบราวเซอรแตกตางกน บราวเซอรของบางคนอาจไมรองรบการใชงานจาวาสครปต หรอ ActiveX กจะใชไดเฉพาะไคลเอนตทใชระบบปฏบตการวนโดวสเทานน

Page 35: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

25

5) คมเขมระบบงานดวย Web Delivery หลกการในภาพรวมของสถาปตยกรรม Web Delivery คอการใชเวบเพอสง

วตถแบบกระจายไปยงสวนตางๆ ของระบบไคลเอนต / เซรฟเวอร ซงสถาปตยกรรมแบบนกคงใชเวบบราวเซอรกบเวบเซรฟเวอรเปนองคประกอบหลกเชนเดยวกบ Thin Web Client และ Thick Web Client

Web Delivery จะเหมาะสมกบระบบทมงานหลกในการควบคมคอนฟกเรชน ของทงไคลเอนตและเซรฟเวอรผานเครอขาย แตไมเหมาะสมกบแอพพลเคชนททางานบนอนเทอรเนตเพราะแอพพลเคชนได โดยไคลเอนตและเซรฟเวอรจะมการสรางการตดตอแบบถาวรไมใชเปนครงคราวเหมอนสองสถาปตยกรรมทกลาวไปแลว

ขอแตกตางทเหนไดชดทสดระหวางสถาปตยกรรมแบบ Web Delivery กบ Thin Web Client และ Thick Web Client คอวธการตดตอสอสารระหวางไคลเอนตกบเซรฟเวอร โดย Thin Web Client และ Thick Web Client จะใชโพรโตคอล HTTP ในขณะท Web Delivery กใช HTTP เชนกน และใชโพรโตคอลอนๆ มาเสรมดวย เชน DCOM, IIOP, RMI เปนตน

สถาปตยกรรมทงสามแบบทนยมใชกนมากในปจจบน ซงโดยทวไปจะใช ลกษณะผสมผสาน ไมใชอยางใดอยางหนงเสยทเดยว เชน ใช Thin Web Client หรอ Thick Web Client ในการขายสนคาบนอนเทอรเนต และใช Web Delivery ในการบารงรกษาระบบ เปนตน

2.2.5.2 เอแจกซ (Asynchronous JavaScript and XML:AJAX) เปนกลมของเทคนคในการพฒนาเวบแอปพลเคชนเพอใหความสามารถโตตอบกบ

ผใชไดดข น โดยการรบสงขอมลในฉากหลง ทาใหทงหนาไมตองโหลดใหมทกครงทมการเปลยนแปลง ซงชวยทาใหเพมการตอบสนอง ความรวดเรว และการใชงานโดยรวมเอแจกซนนไมใชเทคโนโลยใหม แตเปนเทคนคทไดใชเทคโนโลยหลายอยางทมอยแลวรวมกนดงตอไปน

XHTML (หรอ HTML) และ CSS ใชในการแสดงผลลพธและรปแบบขอมล ECMAScript เชนจาวาสครปต ในการเขาถง Document Object Model

(DOM) เพอใชในการแสดงขอมลทมการเปลยนแปลงหรอโตตอบกบผใช XMLHttpRequest ใชในการแลกเปลยนขอมล asynchronously กบเวบ

เซรฟเวอร XML ใชเปนรปแบบขอมลในการแลกเปลยน ซงรปแบบอนกสามารถใชได

เชนกนไมวาจะเปน HTML, JSON, EBML, หรอ เพลนเทกซ

Page 36: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

26

2.2.5.3 ประวตเอแจกซ (AJAX History) Jeese Jams Garett นนเปนผทไดบญญตคาวา เอแจกซ ข นเมอปพ.ศ. 2548

ซงนกขนไดระหวางทเขากาลงอาบนา เพอหาคาสนๆ สาหรบอธบายใหลกคาของ เขาทราบเกยวกบเทคโนโลยตางๆ ทตองการจะนาเสนอเอแจกซโดยตวมนเองแลวไมไดเปนเทคโนโลยหรอภาษาโปรแกรมชนดใหม แตเปนการรวมกลมของเทคโนโลยทมใชอยแลวดงทกลาวขางตน โดยวว ฒนาการของเอแจกซ เรมตนเมอป ค.ศ. 2002 ไมโครซอฟทไดทาการคดคน XMLHttpRequest ขนมาเพอเปนทางเลอกในการเขยนโปรแกรมบนเวบเพจ เพอใชตดตอกบ เวบเซรฟเวอร ในการแลกเปลยนขอมล ซงในขณะนนมแตเพยง อนเทอรเนตเอกซพลอเรอร เทานนทมความสามารถน ตอมาเวบเบราวเซอรอนๆ เชนจาก มอซลลา ไฟรฟอกซ ไดนาแนวคดของ XMLHttpRequest ไปใสในเบราวเซอรของตนดวย จงเรมทาใหมการใชอยางกวางขวางขน จนปจจบนไดกลายเปนมาตรฐานททกเวบเบราวเซอรตองม ในตอนแรกนนไมโครซอฟทเปนผทไดนา XMLHttpRequest โดยใชใน Outlook Web Access ทมาพรอมกบ Microsoft Exchange Server 2000 ตอมาเวบไซตอยางกเกล ไดเปดบรการใหมชอจเมล ซงใช XMLHttpRequest เปนหวใจหลกในการดงขอมลจากเวบเซรฟเวอร จงทาใหแนวคดและเทคนคการพฒนาเวบแอปพลเคชนดวย เอแจกซ เรมเปนทรจกกนกวางขวางขน จนปจจบนถอวาเปนหนงในหวใจหลกของแนวคดเรอง Web 2.0

รปท 2.10 แสดงภาพ Web 2.0 Collaboration

Page 37: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

27

2.2.5.4 หลกการท างานของเอแจกซ วธการทางานของเวบแอปพลเคชนแบบดงเดมนน โดยปกตแลวเมอผใชทาการรองขอ

ขอมลจากเซรฟเวอร ตวเวบเบราวเซอรจะทาการสงขอมลการรองขอโดยใชโพรโทคอล HTTP เพอตดตอกบเวบเซรฟเวอร และทเวบเซรฟเวอรจะทาการประมวลผลจากการรองขอทไดรบ และสงผลลพธเปนหนา HTML กลบไปใหผใช วธการขางตนเปนวธการแบบการรองขอและการตอบรบ (Request and Response) ซงผใชจะตองรอระหวางทเซรฟเวอรประมวลผลอย ซงเปนหลกการทางานแบบ Synchronous แตการทางานของเวบแอปพลเคชนทใชเทคนคเอแจกซจะเปนการทางานแบบ Asynchronous หรอการตดตอสอสารแบบไมตอเนอง โดยเซรฟเวอรจะทาการสงผลลพธเปนเวบเพจใหผใชทนทโดยไมตองรอใหประมวลผลเสรจกอน หลงจากนนเวบเพจทผใชไดรบจะทาการดงขอมลในสวนตางๆทหลง หรอจะดงขอมลกตอเมอผใชตองการเทานน (ทางานอยเบองหลง)

รปท 2.11 แสดงภาพเปรยบเทยบการทางานระหวางเวบแอปพลเคชนแบบดงเดม กบแบบทใชเอแจกซ

2.2.5.5 เจเควยร (JQuery)

คอไลบรารของโคดจาวาสครปต ทใชเปนสวนหนงในการสรางเวบไซตชวยในการ เรยกใชงานจาวาสครปตใหงายขน เปดตวครงแรกในงานบารแคมปนวยอรก โดย จอหน เรซก (John Resig) เมอ 14 มกราคม พ.ศ. 2549 ตวโคดของเจเควยรมลขสทธและสญญาอนญาตแบบโอเพนซอรซ โดยใชสญญาอนญาตของ GFDL และ MIT License ทางไมโครซอฟทและโนเกยไดมการประกาศตววาจะมการนาเจเควยร[1] มาใชในสวนของแพลตฟอรม โดยเฉพาะ วชวลสตดโอ[2] และเฟรมเวรก เอเอสพดอตเนต เอแจกซ และ เอเอสพดอตเนต เอมวซ

Page 38: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

28

2.2.6 เทคโนโลย ADO.NET Entity Framework (ADO.NET Entity Framework Technology)

2.2.6.1 Object กบ Relational เราเรมจากการทาความเขาใจในความแตกตางระหวางขอมลในฐานขอมลกบออบเจกตของเราเสยกอน ถาใครรจกระบบฐานขอมลอยาง Microsoft Access, Microsoft SQL หรอ Oracle คงพอจะรวา ฐานขอมลเหลานถกเรยกชอวา Relational Database (หรอภาษาไทยเรยกวาฐานขอมลเชงสมพนธ) ซงรปแบบเฉพาะตวของฐานขอมลเชงสมพนธ คอการเกบขอมลในรปแบบตาราง โดยทแตละตารางมความสมพนธกน (เรยกวา Relation) ยกตวอยางการเกบขอมลลกคาราน Pet Store ผมตองการเกบขอมลลกคา พรอมกบสตวเลยงของเขา ซงสามารถออกแบบฐานขอมล

รปท 2.12 แสดงรปภาพแสดงตารางในรปแบบฐานขอมลเชงสมพนธ

ตความจากในภาพ จะสรปไดวาลกคา 1 คนจะมสตวเลยงไดหลายตว เรยกความสมพนธแบบนวาความสมพนธแบบ one to many (1-M)

รปท 2.13 แสดงคลาสไดอะแกรมของออบเจกตทงสอง

จากรปภาพขางตนแสดงใหเหนถงคลาสสองคลาสทมความสมพนธในรปแบบ one to many (1:M) จะเหนไดวาหนาตาของคลาสไดอะแกรมน ชางคลายกบตารางฐานขอมลเชงสมพนธ

Page 39: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

29

แมจะดวา Relational กบ Object มความคลายคลงกน แตแททจรงแลว ทง Relational และ Object มความแตกตางกนมากมาย จนทาใหคยกนภาษาเดยวกนไมรเร อง

ความแตกตางทสาคญของ Relational แตกตางกบคลาสตรงทไมมคณสมบตใน การสบทอดใดๆ ทงสน

ตารางในฐานขอมล Relational มเฉพาะแตฟลดขอมล โดยไมมองคประกอบอนๆ อยางเมธอดหรอพรอเพอรตส

ตารางในฐานขอมล Relational มหนาทเกบขอมลเพยงอยางเดยว ไมมการ ทางานอน (หากมจะอยในสวนอนของฐานขอมล เชน stored procedure หรอ function)

ตารางในฐานขอมล Relational กาหนดสทธการใชงานดวยวธแตกตางกบการ Encapsulation ของคลาส

2.2.6.2 Object-Relational Mapping (O/R Mapping) กาลครงหนงนานมาแลว เมอถงยคทม database ใชกน ในยคนนกมฐานขอมล

สองแบบใหญๆ ทเปนทนยมใชกน คอ Relational database และ Object-oriented database (จรงๆ แลวกยงมแบบท 3 ทเปนลกผสมแบบ Hybrid เกดมาดวย แตไมขอพดถงนะครบ เดยวจะยาวไป) แตละแบบกมขอดขอเสยตางกนไป เจาแบบแรก relational database ทางานไดรวดเรวกวา ในขณะทแบบทสอง Object-oriented นนถงแมวาจะชากวา แตกสามารถทางานกบโปรแกรมทถกเขยนขนแบบ OOP ไดอยางลงตวเปนอยางด เพราะดวยความทมนถกออกแบบมาใหเปน OO เหมอนกน หลงจากนนกมการถกเถยง และเลอกขางกนอยพกหนงวาสดทายใครจะดกวากจะไดครองตลาดสวนใหญไป และเสยงสวนมากกเทไปทาง Relational database ครบทเปน The Winner อยตงแตวนนนจนถงวนน ซงวดจากจานวนคนทใช หรอความนยมได ทนเมอตลาดเลอกวาสวนใหญจะมาทาง Relational database กจะเกดปญหากบเราชาวโปรแกรมเมอรข นส เพราะวาแตตอนทเราเขยนโปรแกรมนน เราเขยนอยในโลกของ OOP เพราะพอเราจะทาอะไรกบฐานเรากตองแปลงสงทเคยอยในโลกของ OOP ใหกลายเปนโลกของ Relational database ผานทางภาษา SQL ซะทกทไป เชน ถาเราจะสราง Object ของคนทม Property พวกชอ อาย สวนสงขนมาในโลกของ OOP เรากเพยงทาการ instantiate ดวยคยเวรด New ขนมา แลวกกาหนด Property ทเราตองการใหครบ แตถาเราตองการนา Object นไปเกบในฐานขอมลทเปน Relational แลว เราตองทาการแปลง Object ใหอยในรปของภาษา SQL ซะกอนกอนทจะ insert ลงในฐานขอมลได ในทางกลบกนหากตองการดงขอมลจากฐานขอมลกลบคนมาเปน Object เรากจะเจอปญหาในทานองเดยวกนอก

แตพอชาวโปรแกรมเมอรเจอปญหานบอยๆ กเรมมคนคดวาจะทายงงยใหแกปญหาความไมเขากบระหวางโลก (ตอไปขอเรยกคาวาโลกนวา โดเมน ตามทฝรงเคานยมใช

Page 40: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

30

กนนะครบ) ของ OOP กบ Relational database ไดนะ? กเลยมไอเดยทจะสรางสวนของโปรแกรมทเปนคนกลาง (Layer) ทคนอยระหวางทงสองโดเมน และใหมนทาหนาทเปนลามใหกบทงสองโดเมน ดวยไอเดยนเลยทาใหทงโดเมน OOP กบโดเมน Relational database สามารถคยกนดวยภาษาของตนผานลามทแสนดนไดเลย ไมตองกลววาจะไมเขาใจกนแลวคราวน J สาหรบลามคนกลางนเปนทรจกกนโดยทวไปในชอของ O/R Mapping นนเอง

ปจจบน O/R Mapping มอยหลายเจามาก แตทนยม และผมรจกกคอ NHibernate อนนคณนาย GF เอาไปขายใหหลายคนฟงแลวนะครบ ผมฟงมาประมาณ 10 รอบแลว แตไมเหนคณนายเอามา demo ซกท ออ J อกตวหนงทเคาวาดคอ LLBLGen Pro ทเคาบอกวาเจงเพราะมนม GUI ทด และใชงายทเดยว สาหรบตวอนๆ กมพสพจนจาก twoguru เคาแนะนาไวห ล า ย ต ว ค รบ ใ ค รสน ใ จแว ะ ไ ป อ า น บ ทคว า ม เ ร อ ง O/R Mapping ไ ด ท http://www.twoguru.com/playground/cs_tutorial/oop/gentle1/gentle1.htm นะ ทนมาถง O/R Mapping พระเอกของเราชาว .NET กนบาง จรงๆ แลวไมโครซอฟทเคยปดขาวโครงการทช อ Object Space ทจะเปน O/R Mapping มาตงแตกอนท Visual Studio 2005 จะออกแลวมงครบ ตอมากเปลยนชอเปน ADO.NET Entity Framework นหละ แลวเมอชวงตนปทกลวกคยๆ วาจะเอามาใสรวมกบ VS 2008 ใหเลย ผมกตงตารอ แตจนแลวจนรอดกเลอนอก สรปสดทายวาจะออกเปน extension แทน และคาดวาจะเสรจใน H1 หรอเดอน 6 ของปนครบ แตไมโครซอฟทกไมไดทาใหผลเซงมากนกเมอเคาสง O/R Mapping ตวนองทช อ LINQ (LINQ to SQL) ทเปนพระเอกของ .NET Framework 3.5 มาวงเลนกอน ซงมฟเจอรทพอแกขดไดบาง แตกขอบนซกนดกบ LINQ ครบ เพราะตอนนมนมแค LINQ to SQL ซงจะรองรบกบฐานขอมล SQL Server ของไมโครซอฟทเทานน ถาเปนฐานขอมลอนมนจะขน Error ในหนาออกแบบ แลวกบอกวาฐานขอมลอนไมรองรบซะงน สวนตวพเบมหรอ ADO.NET Entity Framework จะมาในอก 3 เดอนครบ แถมยงทางานกบตวนองผาน LINQ to Entity ไดอยางลงตว ซงเดยวผมจะ demo ในตอนหลงครบ และขาวดอกอยางคอผรหลายทานบอกวาเจาพเบมนนาจะทางานกบฐานขอมลอน เชน Oracle, MySQL, DB2, … และฐานขอมลอนไดดวย ไมไดผขาดกบ SQL Server อยางเดยว ดวยความเขากบไดของ LINQ กบ ADO.NET Entity Framework อยางดนหละครบทจะเปนหมดฮกทนากลวหมดนงของไมโครซอฟททจะเอาไวสกบ O/R Mapping จากคายอนๆ

ไมวาจะเปน O/R Mapping ของคายไหนๆ ตางกมกลไกภายในเพอรองรบการ mapping จากโดเมนหนงไปยงอกโดเมนหนงทเหมอนๆ กนดงภาพครบ

Page 41: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

31

รปท 2.14 แสดงกลไกภายในของ O/R Mapping กลไกภายในของ O/R Mapping จะประกอบไปดวยไฟลสาคญอย 3 ตวดงรปท

2.15 ดานบน 3 ไฟลไลจากซายไปขวาคอ ไฟลแรกเปนไฟลทระบ schema ของทางโดเมน Relational database โดยมนจะบอกวารปรางหนาตาของสงทอยในฐานขอมลพวก Table, View และ Stored Procedure วามรายละเอยดอยางไรบาง ในขณะทไฟลทางดานขวาสดจะบอกรปรางหนาตาของทางฝ งโดเมน OOP วามโครงสรางของคลาสเปนอยางไร มพรอพเพอตอะไรบาง และไฟลสดทายทอยตรงกลางจะทาหนาทเปนลามทใชบอกถงการ mapping กนระหวางโดเมนทงสองวาจะมการผกสวนใดจากโดเมนหนงไปยงสวนใดของอกโดเมนหนง

2.2.6.3 สถาปตยกรรมของ Entity Framework (Entity Framework Architecture)

ADO.NET Entity Framework เปนสวนของ Layer ทค นระหวางฐานขอมลกบสวนโคดของ Layer ทเปน UI หรอ BAL ใน .NET ทเราเขยน

ภายในตวมน เราจะมองเหน schema ทอยในฐานขอมลทเปนแบบ abstract ซงเราสามารถจดการกบมนไดผานไฟล EDMX ใน Visual Studio 2008 และสามารถออกแบบ Object ทเราตองการขนมาใหมจากขอมล abstract จากฐานขอมลทม

Page 42: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

32

สวนประกอบสาคญใน ADO.NET Entity Framework ไลจากฐานขอมลดานลางสดไป LINQ to Entities และ Entity SQL ดานบนสดมดงนครบ

สวนประกอบ รายละเอยด

Data Source ฐานขอมลทเปน Relational database อาจจะมาจากฐานขอมลเดยว หรอหลายฐานขอมลกได

Data Provider ขอมลทจะดงจากฐานขอมลจะดงผาน ADO.NET Data Provider ตางๆ กน ในขณะนมเฉพาะ Provider ของ SQL Server คาดวาในชวงทมนออกจรงนาจะม Provider ของฐานขอมลเจาอนดวย เชน Oracle, MySQL, DB2, Firebird, Sybase, VistaDB, SQLite, …

Entity Data Model จะเปนไอเดยเดยวกบเรอง “มอะไรอยในกลไกของ O/R Mapping นะ?” ทผานมาครบ ในสวนนจะใชบรรจ schema 3 ตวดงนครบ

- Conceptual schema definition language (CSDL) เปนไฟล schema ทระบ entities, association, inheritance ซงรายละเอยดเหลานจะถกนามาใชสรางคลาสในโดเมน OOP หรอเปนคลาสทใหเราสามารถเรยกใชงานไดผานการเขยนโคดใน Visual Studio

- Store schema definition language (SSDL) เปนไฟล schema ทบอกถงรายละเอยดทางฝ งของ Relational database

- Mapping specification language (MSL) เปนไฟลทใชสาหรบการ mapping ขอมลจากโดเมน OOP (CSDL) ไปยงโดเมน Relational database (SSDL)

Entity Client เปน provider ของ ADO.NET ชนดใหมทใชสาหรบตดตอกบ Entity Data Model (EDM) โดยเฉพาะ จะคลายกบ SqlClient (SqlConnection, SqlCommand, SqlReader, …) ทเราใชกบฐานขอมล SQL Server แต Entity Client จะไมไดตดตอกบฐานขอมลโดยตรง แตละตดตอกบ EDM แทน

Object Services เปนสวนทใหเราสงคาสง Entity SQL (เปนคาสงคลายกบภาษา SQL แตใชจดการกบ Entity ทอยบนโดเมน OOP แทน) เพอจดการกบ Entity ซงถกสรางขนบนออปเจกตทเปน strong-type ใน CLR ดวย Entity SQL เราสามารถจดการกบ Entity ไดงายๆ

Page 43: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

33

คลายกบภาษา SQL ทใชกบฐานขอมล คอคาสง insert, update, delete หรอ select

Entity SQL (ESQL) เปนภาษาทคลายกบ Transact-SQL ทถกออกแบบมาเพอคนหา และจดการกบ Entity ภาษานรองรบคณสมบต Inheritance และ association ในโดเมน OOP ดวย

LINQ to Entity เปนภาษาของ LINQ ทเราเคยใชกนใน .NET 3.5 แตนามาใชกบการคนหาขอมลทอยใน Entity แทน ขอดของ LINQ to Entity เมอเทยบกบการใช Entity SQL คอมนจะตรวจสอบความถกตองของคาสงไดในตอนทเราคอมไพล (Compile time) ทนท ไมตองรอใหรน (Runtime) กอนแลวคอยเหน error

2.2.6.4 มมมองในการมองของขอมลของโดเมน Relational database VS โดเมน

OOP

หากใครเคยออกแบบฐานขอมล สรางตาราง และสรางความสมพนธระหวางตาราง (Table relation) มาซกระยะหนง จะพบวาตารางในฐานขอมลมกจะถก normalize มามากบางนอยบาง เนองดวยเหตผลของการประหยดเนอท และความเรวในการดงขอมล และจดการกบขอมล ลองดตวอยางกลมของตาราง และความสมพนธระหวางตารางดงภาพดานลางครบ

รปท 2.15 แสดง Relational database

Page 44: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

34

จากภาพ หากเราตองการดงขอมลของลกคา 1 คนพรอมกบขอมลในการรบ

อเมลแจงขาวสารเกยวกบผลตภณฑ ขาวสารเกยวกบบรษท รวมถงความถในการสงอเมล วาจะเปน daily หรอ weekly ปกตแลวเราไมสามารถดงขอมลจากเพยงตารางใดตารางหนงได แตเราตองเขยน SQL เพอทาการ join ทงสองตารางเขาดวยกน หรอไมตองตองสราง View ขนมาในฐานขอมล ซงเบองหลงของทงสองวธกจะตองมการเขยนภาษา SQL ทคอนขางซบซอนดงภาพดานลางท แสดง SQL ทสวนบน และผลลพธจากการรน SQL ทสวนลางครบ

รปท 2.16 แสดงการ Query ขอมล

สาหรบการมองขอมลในโดเมน OOP นน เราจะมอง Relation ของโดเมน

Relational database เปนความสมพนธแบบ Inherit หรอ Associate แทน อม… ตอนนอาจจะยงมองไมเหนภาพวาจากตารางทเกดจาก SQL ทดานบนจะนามาออกแบบหรอ model ใหอยในโลกของ OOP ผาน ADO.NET Entity ไดอยางไร ผมกเลยมตวอยางทดงขอมลจากดานบนไดดงนตวอยางท 1 ครบ

Page 45: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

35

ตวอยางท 1 Entity 1 ตวทมพรอพเพอตทงหมดดงมาจากฐานขอมล

รปท 2.17 แสดงพรอพเพอตทงหมดดงมาจากฐานขอมล

จากภาพดานบน เราม Entity อยดานซายทช อ CustomerNews ซงมนจะถก mapping เขากบตาราง 2 ตารางคอ Customers และ CustomerNews ในฐานขอมล สาหรบวธการสราง Entity และ Mapping จะกลาวถงในบทความถดไปครบ

ตวอยางท 2 Entity 1 ตวทมการกรองขอมลเอาเฉพาะลกคาทมาจาก London

รปท 2.18 แสดงการกรองขอมลเอาเฉพาะลกคาทมาจาก London

Page 46: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

36

จากตวอยางท 1 นนเปนดงขอมลจาก 2 ตารางมารวมใน 1 Entity สาหรบในตวอยางนจะใช 1 Entity เพอดงขอมลจากเฉพาะตาราง Customer แตเลอกเอามาเฉพาะลกคาทอยในเมอง London (City = London)

ตวอยางท 3 การสราง Entity ใหมจาก Entity เดมดวย Inheritance

รปท 2.19 แสดงการสราง Entity ใหมจาก Entity เดมดวย Inheritance

จากภาพจะเรมตนดวยการสราง Entity ทชอ Customers ทดงเอาเฉพาะขอมล CustomerID, CompanyName และ ContactName หลงจากนนเราสามารถสราง Entity ขนมาใหมดวยการ Inherit จาก Entity เดม แลวสรางเปน Entity ใหมชอ CustomerWithAddress ซงจะมขอมลของ Address, Region, PostalCode และ Country เพมเขามา

ถงตรงนกคงจะพอเหนนะครบวาพฤตกรรมของ Entity แตละตวจะคลายกบ View ทเรา

สรางขนในฐานขอมลนนเอง ดงนนบางครงเราอาจจะเรยก Entity นวา Client View ของ .NET application ได เนองจาก Entity นไดถกสรางขนในโดเมนของ OOP ดงนนผทดแลรบผดชอบในการสราง Entity นจะเปน programmer แทน DBA แลวนะครบ ซงตรงนอาจจะทาใหการทางานบางอยางคลองตวขนครบ โดยงานบางงานเราอาจจะสราง Entity ขนมาแทน View ใน

Page 47: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

37

ฐานขอมลได แตสาหรบงานบางงานทจาเปนตองใช View ในฐานขอมลซงถกใชงานอยบอยๆ กรณนเราอาจจะเลอกสราง View ขนมาในฐานขอมลแทน

2.2.7 เบองตนเกยวกบ LINQ To SQL 2.2.7.1 LINQ To SQL (.NET Language-Integrated Query for Relational Data

เปลยนชอมาจาก DLINQ และเปน O/RM (Object-relational mapping) ทจะ Implement ลงใน Visual Studio Orcas (VS2008) O/RM - (Object-relational mapping) เปนเทคนคในการเขยนโปรแกรมเพอทาการแปลงโครงสรางจาก Database ใหมาอยในรปของ OO และในการทา Mapping ออกมาจะตองทาให Type ทางฝ ง Database และทางฝ งของ OO มความ Compatible กน

โดยสราง "virtual object database" ขนมาซงจะตองใชเครองมอทเปน ORM Tools ในการสรางสงเหลานออกมา นอกจากนนตว ORM Tools กจะสราง Class ออกมาแทน Object ตางๆ ใน Database เชน Table, View และสราง Function, Method ตางๆ เพอใชในการ Select, Insert, Delete, Update ขอมลตางๆ เพอจดการกบขอมลใน Database ใน LINQ To SQL สงทเปน "virtual object database" กคอ Linq to SQL File (.dbml) และการ Select ขอมลกจะใช Query Syntax ของ LINQ เขามาทาในสวนน

รปท 2.20 แสดงการเพม Linq to SQL

Page 48: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

38

สวนเรองของการทา Data Manipulation คงจะใช Method SubmitChanges ตวเดยวในการสงคาตางๆ คนลงใน Database LINQ To SQL เปน Subset หนงใน LINQ ซงทงหมดประกอบดวยสวนตางๆ ดงน

รปท 2.21 แสดงสวนประกอบของ LINQ

ซง LINQ กจะแบงออกเปน 5 สวนประกอบหลกๆ คอ

LINQ to Objects เพอใช LINQ ตดตอกบ Object อนๆ อยางเชนทคณ Nine ได Demo ใหดใน GF Vtalk 4 คอใช LINQ ตดตอกบ Process ตางๆ ของ Windows

LINQ to Datasets, LINQ to SQL, LINQ to Entities กใชในการตดตอกบ Relational Database

LINQ to XML ใชในการตดตอกบ XML Document โดยเฉพาะ

2.2.7.2 ประโยชนของ LINQ To SQL

เน องจากในการเขยนโปรแกรมเพ อตดตอกบ Database ตางๆ ในปจจบน เราจะตองสรางคาสงการสาหรบการ Query ขอมลใหเปนคาสง SQL ทอยในตวแปรทเปนชนด String เพอทนาตวแปรนนไป Execute ใน Database อกทแลวคอยรบคาท Return กลบมาใสใน Result Set ตางๆ เชน DataTable หรอ DataReader อยางเชน

Page 49: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

39

รปท 2.22 แสดงการดงขอมลจาก Table Customers มา inner join กบ Table Orders ตวอยางท 1.0 การดงขอมลจาก Table Customers มา inner join กบ Table Orders ท CustomerID เปน "ALFKI" ซงชดคาสง SQL อยในรปแบบทยากตอการตรวจสอบความผดพลาดและไมม IntelliSense มาชวยในการเขยนเราจะรวาการเขยนคาสงสาหรบการ Query ขอมลนนผดพลาดกตอเมอมนไดถก Execute ลงใน Database แลวและมการ Throw Database Exception นนกลบขนมา

จากปญหาเหลานตว LINQ จะชวยใหเราสามารถตรวจสอบขอผดพลาดของการเขยน Query ในระดบ Compile time และทาใหคาสงการ Query ขอมลม Intellisence มาชวยในการเขยนโปรแกรมของเรา

2.2.7.3 การท า Mapping ของ LINQ To SQL

จะมลกษณะดงภาพดานลางโดยทฝ งซายจะแทนโครงสรางของ Database และ ทางฝ งขวาคอ OO

Page 50: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

40

รปท 2.23 แสดงการทา Mapping ของ LINQ To SQL

การทา Mapping จาก Database จะมสวนทเพมเตมพเศษขนมาคอ DataContext ตว

DataContext เปนเหมอนทอสงหลกทใชในการดงขอมลจาก Database และทาการสงขอมลทม การเปลยนแปลงกลบลงไปยง Database เราสามารถทจะใชตว DataContext ไดเหมอนกบ ADO.NET Connection ทวไป (เชน SqlConnection โดยทมนสามารถระบ Connection String ไดหรอจะใชจาก app.config กได) หนาทหลกของ DataContext คอ

1) การสราง Connection ไปยง Database 2) ทาการแปลง Query Syntax ใหเปนคาสง SQL เพอ Execute ไปยง Table 3) ทาการแปลง Object ทตางๆ ทถก Query ขนมา ใหกลบลงไปยง Database ในรปแบบ

ท Database Modeling(.dbml) ไดทาการ Mapping เขามาเชนการแปลง Object เหลานนกลบไปเปน Table, Stored Procedure ตางๆ เปนตน

Page 51: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

41

2.2.7.4 วงจรการท างานของ LINQ To SQL 1) เรมจากการทเราเขยนโปรแกรมดวย Query Syntax ของ LINQ แลวทา

การ Select ขอมลจาก Entity Object 2) ตว LINQ to SQL กจะทาการแปลง Query Syntax เปนคาสง SQL และทา

การ Execute ขอมลขนมา เมอทาง SQL Server ทาการสง Row ขนมาใหทาง LINQ to SQL กจะแปลง Row นนกลบมาเปน Object ใหทาง Application เรา

3) ถาทางฝ ง Application กจะมการปรบเปลยน Property หรอเพม Entity Object ตางๆ เขาไปท DataContext เสรจแลวทาการเรยก Method SubmitChanges()

4) ตว LINQ to SQL กจะทาการแปลงกลม Entity เหลานนเปนคาสง SQL ทเปน DML หรอ Stored Procedure กลบไปยง SQL Server

รปท 2.24 แสดงวงจรการทางานของ LINQ To SQL

Page 52: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

42

2.2.8 สถาปตยกรรม N-Tier (N-Tier Architecture) ระบบ three-tier หรอ web-based ถกพฒนาไปใชในธกจทแตกตางกนไป จงอาจ

เปลยนแปลงหรอเพมเตมบางสวน เชน ในระบบขององคกรทใหญมากๆ business logic อาจถกแบงเปนหลายๆ ระบบ ขนกบหนาท เพอสะดวกในการดแลดวยบคคลทเชยวชาญในดานนน เราเรยกระบบท business logic ถกแบงออกเปนระบบใหญหลาย ๆ ระบบวา “ระบบ n-tier” ตวอยางหนงของระบบ n-tier คออาจแบงออกเปน

- User Interface ทาหนาทแสดงขอมลใหแกผใชดและรบขอมลจากผใช อาจเปนโปรแกรมทสรางขนสาหรบหนาทนโดย เฉพาะ หรอ browser หรอแมแต wireless devices

- Presentation Logic ทาหนาทควาบคมการแสดงและรบขอมลของ user interface โดยปกตระบบ n-tier หนงจะมหลายๆ presentation logic สาหรบ user interface แตละประเภท และสามารถเพมไดเมอม user interface ชนดใหมทาให business logic ไมจากดอยกบ user interface ชนดใดชนดหนง

- business logic กาหนดหนาทของ application - Services เปนระบบทใหบรกาแก business logic เชน name and directory

service, message service, transaction service และ mail service เปนตน - Data layer คอระบบ database อาจเปนขอมลทางธกจ หรอเอกสารอยางเชน

HTML และ XML ระบบ n-tier มกถกสรางขนโดยใข Model-View-Controller (MVC) pattern คอ

ม model เปนสวนทเกบขอมล ม view นาคาของขอมลขนแสดงใหแกผใชดและระบขอมลหรอคาสงจากผใช และม controller ทรบคาสงจากผใชมาทางานตาม business logic ของ application นนซงอจจะสงผลใหเกดการเปลยนแปลงคาใน model และ view จะนาผลการเปลยนแปลงนนมาแสดงตอผใชหมนเวยนเชนนไปเรอยๆ

Page 53: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

43

รปท 2.25 แสดง N-Tier Architecture

2.2.9 ดไซนแพตเทรน (Design Patterns) คอแบบแผนหรอแนวทางทใชในการแกไขปญหาทเกดขนเสมอๆ ในการออกแบบคอมพวเตอรซอฟตแวร แบบแผนและแนวทางเหลานไมใชรปแบบตายตวทจะถกนาไปใชโดยตรง แตเปนการอธบายแนวทางหรอโครงทจะถกนาไปประยกตใชในสถานการณตางๆ กลาวเฉพาะในทางการเขยนโปรแกรมเชงวตถ ดไซนแพตเทรนจะแสดงความสมพนธตอกนระหวางคลาสหรอออบเจกตตางๆ โดยไมจาเพาะเจาะจงการนาไปใชงานในขนสดทาย อลกอรทมไมจดเปนดไซนแพตเทรนเพราะเปนการแกปญหาในทางการประมวลผลมากกวาในทางการออกแบบ

2.2.10 การจดหมวดหมและแพตเทรน การจดหมวดหมดไซนแพตเทรนตามหนงสอ Design Patterns แบงตามวตถประสงคการใชงาน ดงน

2.2.10.1 แพตเทรนการสรางออบเจกต (creational patterns)

Abstract Factory Builder Factory Method Prototype Singleton

Page 54: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

44

2.2.10.2 แพตเทรนโครงสราง (structural patterns)

Adapter Bridge Composite Decorator Façade Flyweight Proxy

2.2.10.3 แพตเทรนพฤตกรรม (behavioral patterns)

Chain of responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template method Visitor

Page 55: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

45

บทท 3 การวเคราะหและออกแบบระบบ

3.1. บทสรปปญหาจากผบรหาร ในสภาวะการณปจจบน บรษท ไวเปอร จากด ภายในมหนวยงานขายทเปนอสระตอกน นอกจากนยงมการแยกตามกลมของสนคา และประเภทของลกคา เปนตน แตอยางไรกตาม บรษท ไวเปอร จากด กยงประสบปญหาในการจดการและบรหารงานขาย คอ

- ไมสามารถบรหารโอกาสทางการขาย และ ตดตามกลมลกคามงหวง - ไมสามารถพยากรณตวเลขทางการขายใหสอดคลองกบขอมลความเปนจรง - การกาหนดเปาหมายการขายมเปอรเซนตความคลาดเคลอนจากความเปนจรงสง - ขาดฐานขอมลสวนกลางในการจดเกบประวตและรายละเอยดของลกคา - เกดความซาซอนและสบสนทงกบทางลกคาและบรษทเอง ในกรณพนกงานขายม

การเขาไปนาเสนอผลตภณฑใหกบลกคารายเดยวกน จากวสยทศนของทางบรษท ไวเปอร จากด คอ “จะใหบรการทม คณภาพมาตรฐาน รวดเรว เปนทพงพอใจและตรงตามคามนสญญาทใหตอลกคา ” อกทง บรษทฯ กาลงจะจดกจกรรมอบรมใหแกพนกงานขายเพอเพมประสทธภาพงานขาย ดงนน เพอใหบรรลถงการแกปญหา รวมถงสอดคลอง กบ วสยทศน และกจกรรมททางบรษทฯ ไดวางไว จงจาเปนอยางยงทบรษทฯ จะตองม “ระบบบรหารลกคาสมพนธ ” (Customer Relationship Management : CRM) 3.2. การออกแบบระบบงานใหม

Page 56: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

46

3.2.1 Context Diagram of CRM.NET

0

/

*

รปท 3.1 แสดง Context Diagram of CRM.NET

Page 57: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

47

3.2.2 DFD Level 0

/

2.0

3.0

5.0

6.0

1.0

/ LeadD1

4.0

LeadD1

/

� �

AppointmentD7

*

7.0

LeadSourceD2

AccountD3

ContactD4

EmployeeD5

ProductD6

OpportunityD8

CompetitorD9

PartnerD10

SalesStageD11

ProductD6

OpportunityD8

LeadD1

AccountD3

LeadSourceD2

/

รปท 3.2 แสดง DFD Level 0

Page 58: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

48

3.2.3 DFD Level 1 Process 1.0

1.1

1.2

/

LeadD1

AppointmentD7

LeadD1

3.2.4 DFD Level 1 Process 2.0

2.2

2.1

AccountD3

LeadD1

รปท 3.3 แสดง DFD Level 1 Process 1.0

รปท 3.4 แสดง DFD Level 1 Process 2.0

Page 59: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

49

3.3. Process Description ตารางท 3.1 Level 1 Process 1.0 (จดการบคคลทคาดวาจะเกดโอกาสการขาย) DFD Number : 1.1 Process name: บนทกบคคลทคาดวาจะเกดโอกาสการขาย Input data flows: รายละเอยดขอมลบคคล Output data flows: บคคลทคาดวาจะเกดโอกาสการขาย, รายการบคคลทตองตรวจสอบขอมล Data stored used: Lead Description: เปนโปรเซสทพนกงานขายทาการบนทกขอมลบคคลทคาดวาจะเกดโอกาส

การขาย ซงไดมาจากแหลงตาง เชน Web Site, Walk In, Agent และการจด Campaign ตางๆ

Process Logic: DO WHILE new data Lead ADD new data Lead END DO

DFD Number : 1.2 Process name: ตดตามบคคลทคาดวาจะเกดโอกาสการขาย Input data flows: บคคลทขออนมตการตดตาม, ผลการอนมตการตดตามบคคล Output data flows: รายการบคคลทขออนมตการตดตาม, รายการบคคลทตองตดตาม,

สถานะขนตอนการขาย, การนดหมาย Data stored used: Lead, Appointment Description: เปนโปรเซสทพนกงานขายทาการบนทกขอมลการตดตามบคคลทคาดวาจะ

เกดโอกาสการขายทไดจากขนตอนการขาย Process Logic: IF OpportunityValue More than Zero THEN

Send Lead to Process Number 1.3 END IF

ตารางท 3.2 Level 1 Process 2.0 (จดการลกคา/ลกคามงหวง) DFD Number : 2.1 Process name: คดเลอกบคคลทตองการแปลงเปนลกคามงหวง Input data flows: บคคลทขออนมตแปลงเปนลกคามงหวง, บคคลทคาดวาจะเกดโอกาสการ

ขาย

Output data flows: รายการบคคลทขอแปลงเปนลกคามงหวง

Data stored used: Lead Description: เปนโปรเซสในการคดเลอกบคคลทตองการแปลงเปนลกคามงหวงทผาน

Page 60: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

50

การอนมตจากผจดการฝายขายแลว เพอแปลงบคคลเปนลกคามงหวง Process Logic: IF Lead Qualify is True THEN

Send Lead to Process Number 1.4 END IF

DFD Number : 2.2 Process name: แปลงเปนลกคามงหวง Input data flows: ผลการอนมตการแปลงเปนลกคามงหวง, บคคลทคาดวาจะเกดโอกาสการ

ขาย

Output data flows: บคคลทผานการแปลงเปนลกคามงหวง Data stored used: Account, Lead Description: เปนโปรเซสในการแปลงบคคลทคาดวาจะเกดโอกาสการขายเปนลกคา/

ลกคามงหวง Process Logic: DO WHILE Lead Qualify is True

Convert Lead to Account END DO

Page 61: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

51

3.4. E-R Diagram of CRM.NET

Opportunityhas

Competitor

has

Lead PartnerEmployee has

Address

has

AddressType

has

has

Position

has

Department

Work_for

manage

Supervision

LeadID

FirstName

LastName

NickName

MobilePhone

WorkPhone

Email

1M

M

1

1M

M

1

M1

M

1

M

1 supervisor

supervisee

M

11 1

M

1

PositionID PositionName

AddressTypeID AddressTypeName

DepartmentID

DepartmentName

NumOfEmployee

StartDate

AddressID

District

City

ProvinceZipCode

Address1

Address2

CompetitorID

CompetitorName

WorkPhone

WebSite

FirstName

LastName

MobilePhone

Workphone

EmailEmployeeID

BirthDate

OpportunityID

OpportunityName

OpportunityDate

OpportunityValue

CloseDate

DescriptionPartnerID

PartnerName

Description

WorkPhone

WebSite

AnnualRevenue

LeadSource

has1

M

LeadSourceID LeadSourceName

Account

has1

M

Regionhas1M

AccountCategory

hasM

1

AccountType

hasM

1

AccountCategoryID AccountCategoryName

AccountCategoryID

AccountCategoryName

RegionID

RegionName

AnnualRevenue

NumberOfEmployee

Description

AsOf

NumberOfEmployee

AsOf

AccountID

AccountName

FullNameTH

FullNameEN

AnnualITBudget

AnnualRevenue

FaxDescription

WorkPhone

WebSite

LeadStatus

JobPosition

Department

Description

รปท 3.5 แสดง E-R Diagram of CRM.NET

Page 62: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

52

3.5. Relational Mapping

Account

OpportunityID OpportunityName OpportunityDate OpportunityValue Description CloseDateOpportunity

PartnerID PartnerName Description WorkPhone WebSite AnnualRevenuePartner NumberOfEmployee

Competitor

EmployeeID FirstName LastName BirthDate WorkPhone MobilePhone EmailEmployee

LeadID FirstName LastName NickName WorkPhone MobilePhone EmailLead

AddressID Distinct City Province PostalCode AddressTypeIDAddress

AddressTypeID AddressTypeNameAddressType

Address1 Address2 LeadID

SupervisorID

SalespersonID

Position PositionID PositionName

PositionID

DepartmentID DepartmentName ManagerID

DepartmentID

StartDateDepartment

LeadStatus

AsOf

AccountID

JobPosition Department

LeadSourceID LeadSourceNameLeadSource

AccountID AccountName FullNameTH FullNameEN AnnualRevenue AnnualITBudget Description WorkPhone Fax WebSite

CompetitorID CompetitorName Description WorkPhone WebSite AnnualRevenue NumberOfEmployee AsOf

AccountCategoryID AccountCategoryName

AccountTypeID AccountTypeName

RegionID RegionName

AccountCategory

AccountType

Region

LeadSourceID

OpportunityID

OpportunityID

PartnerID CompetitorID

AccountCategoryID AccountTypeID RegionID

รปท 3.6 แสดง Relational Mapping

Page 63: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

53

3.6. Data Dictionary of CRM.NET ตารางท 3.3 แสดงโครงสรางตาราง AddressType

ตารางท 3.4 แสดงโครงสรางตาราง Address

ตารางท 3.5 แสดงโครงสรางตาราง Lead

No Attribute Description Data Type PK FK Reference

1. AddressTypeID รหสประเภททอย Nvarchar(2) Yes 2. AddressTypeName ชอประเภททอย Nvarchar(50)

No Attribute Description Data Type PK FK Reference

1. AddressID รหสทอย Int Yes 2. AddressLine1 บรรทดทอย 1 Nvarchar(100) 3. AddressLine2 บรรทดทอย 2 Nvarchar(100) 4. City อาเภอ Nvarchar(30) 5. ProvinceID รหสจงหวด Nvarchar(30) Yes Province 6. PostalCode รหสไปรษณย Nvarchar(5) 7. AddressTypeID รหสประเภททอย Nvarchar(2) Yes AddressType 8. LeadID รหสบคคลทคาดวาจะ

เกดโอกาสทางการขาย

Nvarchar(10) Yes Lead

No Attribute Description Data Type PK FK Reference

1. LeadID รหสบคคลทคาดวาจะเกดโอกาสทางการขาย

Nvarchar(10) Yes

2. TitleID รหสคานาหนา Int Yes Title 3. FirstName ชอบคคลทคาดวาจะ

เกดโอกาสทางการขาย

Nvarchar(30)

4. LastName นามสกลบคคลทคาดวาจะเกดโอกาสทางการขาย

Nvarchar(30)

5. NickName ชอเลนบคคลทคาดวา Nvarchar(10)

Page 64: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

54

ตารางท 3.6 แสดงโครงสรางตาราง LeadSource

ตารางท 3.7 แสดงโครงสรางตาราง Account

จะเกดโอกาสทางการขาย

6. MobilePhone โทรศพทมอถอ Nvarchar(15) 7. WorkPhone โทรศพทททางาน Nvarchar(15) 8. OpportunityID รหสโอกาสการขาย Nvarchar(10) Yes Opportunity 9. SalespersonID รหสพนกงานขาย Nvarchar(5) Yes Employee 10. LeadSourceID รหสแหลงทมาของ

Lead Int Yes LeadSource

11. LeadStatus สถานะของบคคลทคาดวาจะเกดโอกาสทางการขาย

Nvarchar(20)

12. JobPosition ตาแหนงงาน Nvarchar(50) 13. Department แผนกทสงกด Nvarchar(50)

No Attribute Description Data Type PK FK Reference

1. LeadSourceID รหสแหลงทมาของ Lead

Int Yes

2. IndustryName ชอประเภทธรกจ Nvarchar(50)

No Attribute Description Data Type PK FK Reference

1. AccountID รหสลกคา/ลกคามงหวง

Nvarchar(10) Yes

2. AccountName ชอลกคา/ลกคามงหวง

Nvarchar(30)

3. FullNameTH ชอเตมทเปนทางการของลกคาทจะใชในการออกเอกสาร (ภาษาไทย)

Nvarchar(50)

4. FullNameEN ชอเตมทเปนทางการของลกคาทจะใชในการออกเอกสาร

Nvarchar(50)

Page 65: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

55

ตารางท 3.8 แสดงโครงสรางตาราง Opportunity

(ภาษาองกฤษ) 5. AccountTypeID รหสประเภทลกคา Int Yes AccountType 6. AccountCategoryID รหสหมวดหมลกคา Int Yes AccountCate

goryID 7. RegionID รหสภมภาค Int Yes Region 8. AnnualRevenue รายไดตอไป Decimal(18,2) 9. AnnualITBudget งบประมาณ IT ตอป Decimal(18,2) 10. NumberOfEmployee จานวนพนกงาน Int 11. Description รายละเอยดทวไป Nvarchar(500) 12. WorkPhone เบอรโทรศพท Nvarchar(15) 13. Fax เบอรแฟกซ Nvarchar(15) 14. WebSite เวบไซต Nvarchar(50)

No Attribute Description Data Type PK FK Reference

1. OpportunityID รหสโอกาสการขาย Nvarchar(10) Yes 2. OpportunityName ชอโอกาสการขาย Nvarchar(50) 3. OpportunityDate วนทเกดโอกาสการ

ขาย Datetime

4. OpportunityValue มลคาโอกาสการขาย Decimal(18,2) 5. CloseDate วนทคาดวาจะปดการ

ขาย Datetime

6. AccountID รหสลกคา/ลกคามงหวง

Nvarchar(10) Yes Account

7. CompetitorID รหสคแขงทางดานธรกจ

Nvarchar(10) Yes Competitor

8. PartnerID รหสคคาทางดานธรกจ

Nvarchar(10) Yes Partner

9. Description รายละเอยดทวไป Nvarchar(max)

Page 66: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

56

ตารางท 3.9 แสดงโครงสรางตาราง Competitor

ตารางท 3.10 แสดงโครงสรางตาราง Partner

ตารางท 3.11 แสดงโครงสรางตาราง Employee

No Attribute Description Data Type PK FK Reference

1. CompetitorID รหสคแขง Nvarchar(2) Yes 2. CompetitorName ชอคแขง Nvarchar(50) 3. WorkPhone โทรศพทททางาน Nvarchar(15) 4. Fax หมายเลขแฟกซ Nvarchar(15) 5. WebSite เวบไซตคแขง Nvarchar(50) 6. AnnualRevenue ระบรายไดตอป Decimal(18,2) 7. NumberOfEmployee จานวนพนกงาน Int 8. Description รายละเอยดทวไป Nvarchar(500) 9. AsOf ระบวนท As Of ของ

รายไดตอป DateTime

No Attribute Description Data Type PK FK Reference

1. PartnerID รหสคคา Nvarchar(6) Yes 2. PartnerName ชอคคา Nvarchar(50) 3. WorkPhone โทรศพทททางาน Nvarchar(15) 4. Fax หมายเลขแฟกซ Nvarchar(15) 5. WebSite เวบไซตคแขง Nvarchar(50) 6. AnnualRevenue ระบรายไดตอป Decimal(18,2) 7. NumberOfEmployee จานวนพนกงาน Int 8. Description รายละเอยดทวไป Nvarchar(500) 9. AsOf ระบวนท As Of ของ

รายไดตอป DateTime

No Attribute Description Data Type PK FK Reference

1. EmployeeID รหสพนกงาน Nvarchar(5) Yes 2. TitleID คานาหนา int Yes Title 3. FirstName ชอพนกงาน Nvarchar(30) 4. LastName นามสกลพนกงาน Nvarchar(30)

Page 67: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

57

ตารางท 3.12 แสดงโครงสรางตาราง Position

ตารางท 3.13 แสดงโครงสรางตาราง Department

ตารางท 3.14 แสดงโครงสรางตาราง AccountCategory

5. FullName ชอเตมพนกงาน Nvarchar(50) 6. BirthDate วนเกดพนกงาน Datetime 7. MobilePhone โทรศพทมอถอ Nvarchar(15) 8. WorkPhone โทรศพทททางาน Nvarchar(15) 9. Ext หมายเลขตอ Nvarchar(5) 10. Email อเมล Nvarchar(30) 11. StartWorkDate วนทเร มทางาน DateTime 12. Username ชอผใชงานระบบ Nvarchar(10) 13. Password รหสผานใชงานระบบ Nvarchar(30) 14. SupervisorID รหสหวหนา Nvarchar(5) Yes Employee 15. PositionID รหสตาแหนง Nvarchar(2) Yes Position 16. DepartmentID รหสแผนก Nvarchar(2) Yes Department

No Attribute Description Data Type PK FK Reference

1. PositionID รหสตาแหนง Nvarchar(2) Yes 2. PositionName ชอตาแหนง Nvarchar(50)

No Attribute Description Data Type PK FK Reference

1. DepartmentID รหสแผนก Nvarchar(2) Yes 2. DepartmentName ชอแผนก Nvarchar(50) 3. ManagerID รหสผจดการแผนก Nvarchar(5) Yes Employee 4. StartDate วนทเร มตนเปน

ผจดการแผนก DateTime

No Attribute Description Data Type PK FK Reference

1. AccountCategoryID รหสหมวดหมลกคา int Yes 2. AccountCategory

Name ชอหมวดหมลกคา Nvarchar(50)

Page 68: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

58

ตารางท 3.15 แสดงโครงสรางตาราง AccountType

ตารางท 3.16 แสดงโครงสรางตาราง Region

3.7. สรปผล จากการวเคราะหบทสรปปญหาจากผบรหาร จงทาใหผจดทาทราบถงปญหาทแทจรง หลงจากน นจงไดทาการออกแบบระบบบรหารลกคาสมพนธดอดเนตขนใหม เพอแกปญหาดงกลาว โดยในบทนผจดทาไดทาการออกแบบ Data Flow Diagram, Process Description, E-R Diagram, Relational Mapping และ Data Dictionary และในบทตอไป จะเปนการ Implement ระบบบรหารลกคาสมพนธดอดเนตทไดออกแบบไวในบทน โดยใชเทคโนโลย .NET

No Attribute Description Data Type PK FK Reference

1. AccountTypeID รหสประเภทลกคา int Yes 2. AccountType

Name ชอประเภทลกคาประเภททอย

Nvarchar(50)

No Attribute Description Data Type PK FK Reference

1. RegionID รหสภมภาค int Yes 2. RegionName ชอภมภาค Nvarchar(50)

Page 69: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

59

บทท 4 การทดลองและผลการทดลอง

4.1 ความตองการพนฐานของระบบ คณลกษณะของเครองคอมพวเตอรทสามารถใชงานโปรแกรมโครงงานได

4.1.1 ระบบปฏบตการ - Windows XP - Windows Vista - Windows 7

4.1.2 CPU - Intel(R) Core(TM) i3 ขนไป

4.1.3 RAM - 1 GB ขนไป

4.1.4 Hard disk - 320 GB ขนไป

4.1.5 Software - Internet Explorer 8, Google Chrome, Safari - Microsoft.NET Framework 4.0 - Internet Information Service 7

4.2 การทดลองระบบ

4.2.1 ลอกอนเขาสระบบ CRM.NET

รปท 4.1 แสดงหนาจอลอกอนเขาสระบบ CRM.NET

Page 70: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

60

4.2.2 เขาสระบบ CRM.NET

4.2.3 การใชงานฟงกชน Leads

ผใชงานสามารถคนหา, เพม, แกไข และลบขอมลของบคคลทคาดวาจะเกดโอกาสทางการขายในอนาคต (Lead)

4.2.3.1 การคนหาขอมล Lead

รปท 4.2 แสดงหนาจอเมอลอกอนเขาสระบบ CRM.NET

รปท 4.3 แสดงหนาจอการคนหา Lead ของระบบ CRM.NET

Page 71: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

61

4.2.3.2 การเพมขอมล Lead

4.2.3.3 การแกไขขอมล Lead

รปท 4.4 แสดงหนาจอการเพมขอมล Lead ของระบบ CRM.NET

รปท 4.5 แสดงหนาจอการแกไขขอมล Lead ของระบบ CRM.NET

Page 72: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

62

4.2.3.4 การลบขอมล Lead

4.2.3.5 การกาหนดสถานภาพของ Lead

รปท 4.6 แสดงหนาจอการลบขอมล Lead ของระบบ CRM.NET

รปท 4.7 แสดงหนาจอการกาหนดสถานภาพ Lead ของระบบ CRM.NET

Page 73: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

63

4.2.3.6 การกาหนดสถานะของ Lead

4.2.4 การใชงานฟงกชน Contacts ผใชงานสามารถคนหา, เพม, แกไข และลบขอมลของรายละเอยดของผตดตอของแตละ Account

4.2.4.1 การคนหาขอมลผตดตอ (Contact) ของแตละ Account

รปท 4.8 แสดงหนาจอการกาหนดสถานะ Lead ของระบบ CRM.NET

รปท 4.9 แสดงหนาจอการคนหาขอมลผตดตอ (Contact) ของแตละ Account

Page 74: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

64

4.2.4.2 การเพมขอมลผตดตอ (Contact)

4.2.4.3 การแกไขขอมลขอมลผตดตอ (Contact)

รปท 4.10 แสดงหนาจอการเพมขอมลผตดตอ (Contact)

รปท 4.11 แสดงหนาจอการแกไขขอมลขอมลผตดตอ (Contact)

Page 75: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

65

4.2.4.4 การแกไขขอมลขอมลผตดตอ (Contact)

4.2.5 การใชงานฟงกชน Opportunities ผใชงานสามารถคนหา, เพม, แกไข และลบขอมลรายละเอยดของโอกาสทางการขาย (Opportunity)

4.2.5.1 การคนหาขอมลโอกาสทางการขาย (Opportunity)

รปท 4.12 แสดงหนาจอการลบขอมลขอมลผตดตอ (Contact)

รปท 4.13 แสดงหนาจอการคนหาขอมลโอกาสทางการขาย (Opportunity)

Page 76: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

66

4.2.5.2 การเพมขอมลโอกาสทางการขาย (Opportunity)

4.2.5.3 การแกไขขอมลโอกาสทางการขาย (Opportunity)

รปท 4.14 แสดงหนาจอการเพมขอมลโอกาสทางการขาย (Opportunity)

รปท 4.15 แสดงหนาจอการแกไขขอมลโอกาสทางการขาย (Opportunity)

Page 77: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

67

4.2.5.4 การลบขอมลโอกาสทางการขาย (Opportunity)

4.2.6 การใชงานฟงกชน Competitors ผใชงานสามารถคนหา, เพม, แกไข และลบขอมลรายละเอยดของบรษทคแขง (Competitor)

4.2.6.1 การคนหาขอมลบรษทคแขง (Competitor)

รปท 4.16 แสดงหนาจอการลบขอมลโอกาสทางการขาย (Opportunity)

รปท 4.17 แสดงหนาจอการคนหาขอมลบรษทคแขง (Competitor)

Page 78: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

68

4.2.6.2 การเพมขอมลขอมลบรษทคแขง (Competitor)

4.2.6.3 การแกไขขอมลขอมลบรษทคแขง (Competitor)

รปท 4.18 แสดงหนาจอการเพมขอมลขอมลบรษทคแขง (Competitor)

รปท 4.19 แสดงหนาจอการแกไขขอมลขอมลบรษทคแขง (Competitor)

Page 79: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

69

4.2.6.4 การลบขอมลขอมลบรษทคแขง (Competitor)

4.2.7 การใชงานฟงกชน Partners ผใชงานสามารถคนหา, เพม, แกไข และลบขอมลของบรษทคคา (Partner)

4.2.7.1 การคนหาขอมลของบรษทคคา (Partner)

รปท 4.20 แสดงหนาจอการลบขอมลขอมลบรษทคแขง (Competitor)

รปท 4.21 แสดงหนาจอการคนหาขอมลของบรษทคคา (Partner)

Page 80: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

70

4.2.7.2 การเพมขอมลของบรษทคคา (Partner)

4.2.7.3 การแกไขขอมลของบรษทคคา (Partner)

รปท 4.22 แสดงหนาจอการเพมขอมลของบรษทคคา (Partner)

รปท 4.23 แสดงหนาจอการแกไขขอมลของบรษทคคา (Partner)

Page 81: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

71

4.2.7.4 การลบขอมลของบรษทคคา (Partner)

4.2.8 การใชงานฟงกชน Administration ผดแลระบบสามารถดาเนนการ Setup Master Data หรอ Maintenance ระบบ

CRM.NET ได 4.2.8.1 การใชงานเมน Adminsitration

รปท 4.24 แสดงหนาจอการลบขอมลของบรษทคคา (Partner)

รปท 4.25 แสดงหนาจอการใชงานเมน Adminsitration

Page 82: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

72

4.2.8.2 การใชงานเมน Address Type Maintenance

รปท 4.27 แสดงหนาจอการเพมขอมล Address Type Maintenance

รปท 4.26 แสดงหนาจอ Address Type Maintenance

Page 83: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

73

รปท 4.28 แสดงหนาจอการแกไขขอมล Address Type Maintenance

รปท 4.29 แสดงหนาจอการลบขอมล Address Type Maintenance

Page 84: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

74

4.2.8.3 การใชงานเมน Characteristic Maintenance

รปท 4.31 แสดงหนาจอการเพมขอมล Characteristic Maintenance

รปท 4.30 แสดงหนาจอ Characteristic Maintenance

Page 85: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

75

รปท 4.32 แสดงหนาจอการแกไขขอมล Characteristic Maintenance

รปท 4.33 แสดงหนาจอการลบขอมล Characteristic Maintenance

Page 86: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

76

4.2.8.4 การใชงานเมน Company Maintenance

รปท 4.34 แสดงหนาจอ Company Maintenance

รปท 4.35 แสดงหนาจอการเพมขอมล Company Maintenance

Page 87: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

77

รปท 4.36 แสดงหนาจอการแกไขขอมล Company Maintenance

รปท 4.37 แสดงหนาจอการลบขอมล Company Maintenance

Page 88: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

78

4.2.8.4 การใชงานเมน Employee Maintenance

รปท 4.38 แสดงหนาจอ Employee Maintenance

รปท 4.39 แสดงหนาจอการเพมขอมล Employee Maintenance

Page 89: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

79

รปท 4.40 แสดงหนาจอการแกไขขอมล Employee Maintenance

รปท 4.41 แสดงหนาจอการลบขอมล Employee Maintenance

Page 90: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

80

4.2.8.5 การใชงานเมน Department Maintenance

รปท 4.42 แสดงหนาจอ Department Maintenance

รปท 4.43 แสดงหนาจอการเพมขอมล Department Maintenance

Page 91: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

81

รปท 4.44 แสดงหนาจอการแกไขขอมล Department Maintenance

รปท 4.45 แสดงหนาจอการลบขอมล Department Maintenance

Page 92: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

82

4.2.8.6 การใชงานเมน Position Maintenance

รปท 4.46 แสดงหนาจอการเพมขอมล Position Maintenance

รปท 4.47 แสดงหนาจอการแกไขขอมล Position Maintenance

Page 93: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

83

4.2.8.7 การใชงานเมน Province Maintenance

รปท 4.48 แสดงหนาจอการลบขอมล Position Maintenance

รปท 4.49 แสดงหนาจอ Province Maintenance

Page 94: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

84

รปท 4.51 แสดงหนาจอการแกไขขอมล Province Maintenance

รปท 4.50 แสดงหนาจอการเพมขอมล Province Maintenance

Page 95: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

85

รปท 4.52 แสดงหนาจอการลบขอมล Province Maintenance

Page 96: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

86

บทท 5 สรปผลการด าเนนงาน

5.1 สรปผลการด าเนนงานโครงงาน

โครงงาน 1 เปนการวเคราะหและออกแบบระบบ CRM.NET รวมถงการออกแบบ สถาปตยกรรมซอฟทแวร ดงนนการดาเนนงานของโครงงานจงเปนการวเคราะหและออกแบบระบบ CRM.NET และการดาเนนงานไดเปนไปตามเวลาทกาหนดไว

โครงงาน 2 เปนการพฒนาระบบ CRM.NET ตามทไดมการวเคราะหและออกแบบไว ในโครงการ 1 ซงผลการทดลองของโครงงาน 2 ทเปนระบบ CRM.NET ทถกสรางขนเพอใชงานจรงแลวนน สามารถใชงานไดตามทไดก าหนดไวในแผนการดาเนนงาน 5.2 สรปปญหาทพบในการท าโครงงาน

จากการทาโครงงาน 1 และ 2 ปญหาทไดพบกคอขนาดของระบบ CRM.NET มขนาดใหญมาก ทาใหตองใชระยะเวลาในการวเคราะหและออกแบบ รวมไปถงการพฒนาระบบ CRM.NET ขนในโครงงาน 2 นนมระยะพฒนาเวลาทนอยมากและจานวนของผพฒนานนมเพยงคนเดยว ทาใหการพฒนาระบบ CRM.NET นนยงไมคลอบคลมในทกสวนของระบบ CRM.NET 5.3 ขอเสนอแนะและแนวทางในการพฒนาตอ

เนองจากระยะพฒนาในการพฒนาระบบ CRM.NET มระยะเวลาทนอยทาใหไมสามารถพฒนาระบบ CRM.NET ไดครบทงหมด ดงนนแนวทางในการพฒนาตอสามารถทจะพฒนา Activity Management, Campaign Management, Service Management, Solution Management, Sale Forecast และ Analytical Reports ได

Page 97: Nutthapaphon Sopradisth Customer... · รูปที่ 2.12 แสดงรูปภาพแสดงตารางในรูปแบบฐานข้อมูลเชิงสัมพันธ์

87

เอกสารอางอง

[1] Jeffrey A. Hoffer, Joey F. George, Joseph S. Valacich “Modern System Analysis & Design” Bangkok: Pearson Education Indochina, 2004 [2] Ramez Elmasri, Shamkant B. Navathe, “Fundamentals of Database Systems” Amarica: Pearson Education, 2007 [3] Gamma, Helm, John and Vlissides, “Design Patterns” Amarica: Addison-Wesley, 1995 [4] กตต ภกดวฒนะกล, “คมภรการวเคราะหและออกแบบระบบ” เคทพ: กรงเทพฯ, 2546 [5] โอภาส เอยมสรวงศ, “การวเคราะหและออกแบบระบบ” ซเอดยเคชน: กรงเทพฯ, 2548 [6] โอภาส เอยมสรวงศ, “ระบบฐานขอมล” ซเอดยเคชน: กรงเทพฯ, 2551 [7] อาไพ สนลขตกล, “การประยกตและออกแบบฐานขอมลดวย Oracle และ SQL Server” ซเอดยเคชน: กรงเทพฯ, 2546 [8] นรนดร ประวทยธนา “เกง C# ใหครบสตร ฉบบ OOP” วตตกรป: กรงเทพฯ, 2553 [9] ศภชย สมพานช “พฒนา Web App แบบมออาชพดวย ASP.NET & AJAX + JQUERY” ไอดซฯ: นนทบร, 2555 [10] http://greatfriends.biz/webboards/msg.asp?id=78491 สบคนขอมลหวขอ “ADO.NET Entity Framework” [11] http://greatfriends.biz/webboards/msg.asp?id=50209 สบคนขอมลหวขอ “เบองตนเกยวกบ LINQ To SQL” [12] http://th.wikipedia.org/wiki/ สบคนขอมลหวขอ “AJAX, MVC, JQuery”