Professional Documents
Culture Documents
Acess Data
Acess Data
สาขาวิชาคอมพิวเตอร์ธรุ กิจ
มหาวิทยาลัยราชภัฏเชียงใหม่
ฐานข้อมูล
รหัสสน ิ ค ้า
รหัสลูกค ้า รหัสใบสงั่ ซอ ื้ ชอื่ สน ิ ค ้า
ื่ ลูกค ้า
ชอ ่ งั่ สน
วันทีส ิ ค ้า ราคาต่อหน่วย
ทีอ่ ยูล
่ ก
ู ค ้า วันทีส่ ง่ สนิ ค ้า รวมภาษี ด ้วยหรือไม่
แอตทริบวิ ต์ รหัสไปรษณีย ์
หมายเลขโทรศพ ั ท์
รหัสลูกค ้าทีส ่ งั่ จานวนสน ิ ค ้า
รหัสสน ิ ค ้า รหัสสน ิ ค ้า
ทัง้ หมด จานวน ชอ ื่ สนิ ค ้า
ความสัมพันธ์ (Relationships)
• คือ ความสัมพันธ์ระหว่างเอนทิตตี ่าง ๆ ในระบบ เช่น ในระบบการ
สังซื
่ ้อ สิน ค้า จะประกอบด้ว ย เอนทิตีใ บสังซื่ ้อ สิน ค้า และเอนทิตี
ลูกค้า ซึง่ มีความสัมพันธ์จากลูกค้าไปยังใบสังซื
่ อ้ สินค้าเป็ นแบบหนึ่ง
ต่อกลุ่ม (One-to-many) หมายความว่า ลูกค้าสามารถสังซื ่ ้อสินค้า
ได้หลาย ๆ ครัง้ คือมีใบสังสิ่ นค้าหลายใบนัน่ เอง แต่ใบสังซื ่ ้อแต่ละ
ใบจะมาจากลูก ค้า เพีย งรายเดีย วเท่ า นัน้ เป็ น ต้น ความสัม พัน ธ์
ระหว่างเอนทิตสี ามารถแสดงได้ดงั รูป 1 N ใบสงั่ ซอ
ื้
ลูกค ้า(Customer) (Orders)
รหัสลูกค ้า รหัสใบสงั่ ซอ ื้
ื่ ลูกค ้า
ชอ ่ งั่ สน
วันทีส ิ ค ้า
ทีอ่ ยูล
่ ก
ู ค ้า วันทีส่ ง่ สนิ ค ้า
รหัสไปรษณีย ์ รหัสลูกค ้าทีส ่ งั่
หมายเลขโทรศพ ั ท์ รหัสสน ิ ค ้า
จานวน
ชนิดของความสัมพันธ์ (Relationship)
• การออกแบบฐานข้อมูลทีม่ โี ครงสร้างเชิงสัมพันธ์ ส่วนสาคัญ
คือ การออกแบบเทเบิลเพือ่ เก็บข้อมูลกลุม่ ต่าง ๆ โดยจะต้อง
สามารถกาหนดความสัมพันธ์ระหว่างกลุ่มข้อมูลเหล่านัน้ ได้
ซึง่ จะต้องวิเคราะห์ให้ได้วา่ ข้อมูลเหล่านัน้ มีความสัมพันธ์กนั
อย่างไร
• ความสัมพันธ์ระหว่างเทเบิลมีดว้ ยกันทัง้ หมด 3 ลักษณะคือ
▫ ความสัมพันธ์แบบ 1:1 (One-to-One)
▫ ความสัมพันธ์แบบ 1:N (One-to-Many)
▫ ความสัมพันธ์แบบ M:N (Many-to-Many)
ความสัมพันธ์แบบ 1:1 (One-to-One)
• ความสัมพันธ์แบบ 1:1 (One-to-One)
เป็ นความสัมพันธ์ท่ี 1 เรคอร์ดในเทเบิลใดๆ สามารถจับคู่
กับเรคอร์ดในอีกเทเบิลได้เพียงเรคอร์ดเดียวเท่านัน้ แบบตัว
ต่อตัว รายละเอียดส่วนบุคคล
รหัส ชื่อ นามสกุล ที่อยู่ โทรศัพท์ .......
เงินเดือนของแต่ละบุคคล 1001 Michale Suyama London (77)555-9888 ……
รหัส เงิ นเดือน เลขที่บตั ร 1 1002 Laura Callahan Seattle (71)555-7654 ……
ประกันสังคม
1003 RObert King London (48)876-4324 ……
1001 25,000 324-45-9687
1004 Anne Dodsworth London (75)764-8732 ……
1002 20,000 245-37-7654 1
1003 30,000 459-87-897
1004 35,000 895-87-7545
1005 33,000 678-54-8754
ความสัมพันธ์แบบ 1:N (One-to-Many)
• ความสัมพันธ์แบบ 1:N (One-to-Many)
เป็ นความสัมพันธ์ทเ่ี รคอร์ดในเทเบิลใดๆ สามารถจับคู่กบั เร
คอร์ดในอีกเทเบิลหนึ่งได้หลายเรคอร์ด เช่น ความสัมพันธ์
ระหว่างเทเบิลลูกค้า และเทเบิลการสังซื่ อ้ ลูกค้าคนหนึ่งจะมี
ใบสังซื
่ อ้ สินค้าได้หลายใบ ในขณะทีใ่ บสังซื
่ อ้ แต่ละใบ ต้องมา
จากลูกค้าเพียงคนเดียวเท่านัน้ ลูกค้า
การสังซื
่ อ้
รหัสสังซื
่ อ้ รหัสลูกค้า รหัสสินค้า ….. รหัสลูกค้า ชื่อบริษทั ทีอ่ ยุ่ …..
12010 1001 ME-99 ….. 1001 Sony Japan …..
INDEX
ื่
ชอ นามสกุล
Anne Dodsworth
Laura Callahan
Michael Suyana
Robert King
ชนิดของคียใ์ นฐานข้อมูลเชิงสัมพันธ์
3) คียค์ ่แู ข่ง (Candidate Key)
เป็ น คียท์ ม่ี คี ุณสมบัตทิ ส่ี ามารถเป็ นแทน คียห์ ลักได้
ถ้าจากข้อมูลในตาราง พนักงานถ้ามันใจว่ ่ า ชือ่ พนักงาน ไม่ม ี
ชือ่ ซ้าสามารถ สามารถนาcolumn ชือ่ มาเป็ น Secondary คีย์
ได้
พน ักงาน
รห ัสพน ักงาน ชอื่ นามสกุล ทีอ่ ยู่ ั
เบอร์โทรศพท์
1001 Michael Suyana Conventry Hourse London 02-735-8564
1002 Laura Callahan 4726 Ave.N.E Seattle 02-856-9874
1003 Robert King Edgeham Hollow London 02-896-9632
1004 Anne Dodsworth 7 Hondstood RD. London 01-589-3658
Candidate Key
ชนิดของคียใ์ นฐานข้อมูลเชิงสัมพันธ์
4) คียร์ วม (Compound Key)
เป็ น คียท์ เ่ี กิดจากการนาคอลัมน์หลาย ๆ คอลัมน์มา
รวมกัน เพือ่ ให้คุณสมบัตเิ ป็ นคียห์ ลักคือ ไม่มขี อ้ มูลซ้ากัน และไม่
มีคา่ ว่าง (NULL) เนื่องจากการบางครัง้ การสร้างคียห์ ลักจาก
คอลัมน์เดียวเดียวอาจมีโอกาสทีจ่ ะเกิดข้อมูลซ้ากันได้
ชนิดของคียใ์ นฐานข้อมูลเชิงสัมพันธ์
คียร์ วม (Compound Key)
พน ักงาน
ชอื่ นามสกุล ทีอ่ ยู่ ั
เบอร์โทรศพท์
Michael Suyana Conventry Hourse London 02-735-8564
Laura Callahan 4726 Ave.N.E Seattle 02-856-9874
Robert King Edgeham Hollow London 02-896-9632
Anne Dodsworth 7 Hondstood RD. London 01-589-3658
N ตารางรายการสงิ่ สน
ิ ค ้า
1 ตารางใบสงั่ สน
ิ ค ้า
ื้
รห ัสการสง่ ั ซอ ิ ค้า
รห ัสสน จานวน สว่ นลด(%)
รห ัสการ รห ัสลูกค้า ่ ง่ ั
ว ันทีส ว ันทีส ่
่ ง
ื้
สง่ ั ซอ 10258 005 8 25.00%
10258 015 21/10/xx 28/10/xx 10258 0100 8 0.00%
10265 181 21/10/xx 27/10/xx
10258 0125 15 0.00%
10278 015 24/10/xx 3/11/xx
10265 0005 31 0.00%
ในการจัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์นนั ้ มี
ข้อกาหนดเพือ่ สร้างความถูกต้องสมบูรณ์ของข้อมูล (Integrity) ใน
ฐานข้อมูลดังนี้
กฎที่ใช้จดั เก็บในฐานข้อมูลเชิงสัมพันธ์
กฎข้อที่ 2
ในการสร้างความสัมพันธ์ระหว่างเทเบิล 2 เทเบิลใน
ฐานข้อมูลเชิงสัมพันธ์สามารถกาหนด (Foreign Key) ซึง่
อาจจะมีคา่ NULL (ไม่มขี อ้ มูล) หรือมีคา่ ตรงกับคียห์ ลักในอีก
เทเบิลหนึ่งทีม่ คี วามสัมพันธ์กนั ด้วย
กฎที่ใช้จดั เก็บในฐานข้อมูลเชิงสัมพันธ์
Employee
EMP_ID NAME TELEPHONE DEP_NO
1001 Anna 02-456-6985 100
1002 Laura 02-865-7456 300
1003 Michael 02-856-6321 NULL
1004 Anna 02-549-9856 200
Department
DEP_NO DEP_NAME
100 Accounting
200 Marking
300 Computer
400 Sale
การออกแบบฐานข้อมูล
วัตถุประสงค์ของการออกแบบฐานข้อมูล
• เพือ่ ลดความซ้าซ้อนในฐานข้อมูล
• ตอบสนองความจาเป็ นในการเรียกใช้ขอ้ มูลในเวลาทีส่ นั ้ ทีส่ ดุ
• ช่วยให้ตรวจสอบความถูกต้อง และจัดมาตรฐานข้อมูลได้
สะดวก
• เพือ่ กาหนดลักษณะการเข้าถึงข้อมูลสาหรับผูใ้ ช้แต่ละประเภท
• ทาให้มคี วามอิสระระหว่างข้อมูลกับแอพพลิเคชัน่
• ขัน้ ตอนการแบบฐานข้อมูล
▫ กาหนดเอนทิตี (ตาราง)ทุกตัวในระบบฐานข้อมูลนัน้
▫ กาหนดคียห์ ลัก และแอตทริบวิ ต์ (ฟิลด์)ต่าง ๆ
▫ กาหนดความสัมพันธ์ระหว่างเอนทิตี (ตาราง)ต่าง ๆ
▫ ทาการเปลีย่ นเอนทิตี ได้ไปอยูใ่ นรูปตารางทีม่ ี
ความสัมพันธ์กนั
N:M ิ ค ้า (Products)
สน
ลูกค ้า(Customer) ใบสงั่ ซอ
ื้
รหัสลูกค ้า
1:N (Orders) รหัสสน
ชอื่ สน
ิ ค ้า
ิ ค ้า
รหัสใบสงั่ ซอ ื้
ื่ ลูกค ้า
ชอ ราคาต่อหน่วย
่ งั่ สน
วันทีส ิ ค ้า
ทีอ่ ยูล
่ ก
ู ค ้า รวมภาษี ด ้วยหรือไม่
วันทีส่ ง่ สนิ ค ้า
รหัสไปรษณีย ์ จานวนสน ิ ค ้า
รหัสลูกค ้าทีส ่ งั่
หมายเลขโทรศพ ั ท์ รหัสสน ิ ค ้า
รหัสสน ิ ค ้า
ชอ ื่ สนิ ค ้า
จานวน
Microsoft Access 2007
ส่วนประกอบของ Microsoft Access 2007
• Quick Access เก็บปุม่ คาสังที
่ ใ่ ช้งานบ่อยๆ โดยเราสามารถเพิม่ หรือ
ลบปุม่ คาสังตามความเหมาะสม
่
• Ribbon เป็ นทีเ่ ก็บคาสังและปุ
่ ม่ ทีใ่ ช้ใน Access โดยแบ่งเป็ นแท็บและ
ในแต่ละแท็บยังแบ่งคาสังเอาไว้
่ เป็ นกลุ่มย่อย เพือ่ สะดวกต่อการใช้
งาน
• Navigation Pane จะแสดงชื่อฐานข้อมูล และแสดง Object ทีเ่ ป็ น
ส่วนประกอบต่างๆ ของ Access เช่น ตาราง คิวรี ฟอร์ม รายงาน
ฯลฯ
• Tabbed Documents ในกรณีทเ่ี ราเปิดตาราง ฟอร์ม คิวรี รายงาน
รวมถึง Object อื่น จะแสดง Object ทีเ่ ปิดอยูท่ งั ้ หมด
• Status bar จะแสดงข้อมูลบางอย่างและปุม่ สาหรับสลับมุมมอง
ชุดเครื่องมือของโปรแกรม Access 2007
Step 3: กาหนดว่าในแต่ละตารางจะต้องมีฟิลด์อะไรบ้าง
Step 5: ทา Normalization
Step 6: กาหนดความสัมพันธ์ระหว่างตาราง
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
ขัน้ ตอนแรกให้กาหนดวัตถุประสงค์ของฐานข้อมูลก่อน
วิธกี ารคือ “การซือ้ หนังสือแต่ละครัง้ มีอะไรเกีย่ วข้องบ้าง”
คนซือ้ สินค้าที่
คิดราคาสินค้า รับเงินมา ทอนเงิน
ต้องการ
จากนัน้ เริ่มออกแบบฐานข้อมูล
จากตัวอย่างให้พจิ ารณาว่า “เมือ่ มีลกู ค้ามาซือ้ สินค้า ผูข้ ายต้อง
สามารถเลือกรายการสินค้าจากเครือ่ งคอมพิวเตอร์ มีการแสดง
รายละเอียดของสินค้า มีการคานวณยอดเงินอัตโนมัติ คานวณเงิน
ทอน พิมพ์ใบเสร็จรับเงิน และสามารถสรุปยอดขายในแต่ละวัน
หรือในแต่ละสัปดาห์ได้
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
ตารางที่ใช้เก็บข้อมูล
เมือ่ ทราบวัตถุประสงค์ของระบบฐานข้อมูล ให้พจิ ารณาว่าเราจะ
เก็บข้อมูลอะไรบ้าง คือ การสร้างตารางเพือ่ รองรับข้อมูลทัง้ หมด
ลูกค้า
ตารางลูกค้า
การซือ้
ตารางซือ้ สินค้า ตารางรายละเอียดการซือ้
สินค้า
ตารางสินค้า
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
กาหนดฟิลด์ในตาราง
• ตารางลูกค้า เก็บข้อมูลเกีย่ วกับลูกค้าทัง้ หมด เช่น ชือ่ นามสกุล
รหัสลูกค้า ชื่อลูกค้า นามสกุลลูกค้า ที่อยู่ เบอร์โทรศัพท์
1. Blank Database
2
3
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
3
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
1. กรอกชื่อเขตข้อมูล
3. กรอกคาอธิบาย
2. กาหนดชนิดข้อมูล
4. ขนาดเขตข้อมูล
การเพิม่ ความสามารถให้ตาราง
• Field name ใช้สาหรับกาหนดชื่อฟิลด์
• Data Type ใช้สาหรับกาหนดประเภทข้อมูลของ Field ประกอบด้วย
ชนิดข้อมูล คาอธิบาย
Text ข้อมูลตัวเลข ตัวอักษร หรือผสมกันระหว่างตัวเลขและตัวอักษรทีม่ ขี นาดยาวไม่เกิน 255 ตัวอักษร
เช่น ชือ่ นามสกุล ทีอ่ ยู่ รหัสสินค้า เป็ นต้น
Memo เป็ นข้อมูลตัวเลข ตัวอักษร หรือผสมกันระหว่างตัวเลขและตัวอักษร เช่น บันทึก
Number เป็ นข้อมูลตัวเลขทีส่ ามารถนาไปใช้ในการคานวณ เช่น ราคาสินค้า
Date/Time เป็ นข้อมูลวันเดือนปีและเวลา (สามารถนาไปคานวณช่วงเวลาได้)
Currency เป็ นข้อมูลตัวเลขโดยแสดงข้อมูลในแบบสกุลเงิน
AutoNumber เป็ นข้อมูลตัวเลขทีใ่ ห้รนั อัตโนมัติ เช่น ลาดับที่
Yes/No เป็ นข้อมูลตรรกะ ซึง่ มีคา่ ได้ 2 ค่าคือ “ใช่” และ “ไม่ใช่”
OLE Object เป็ นข้อมูลอื่นๆ โดยมากมักเป็ นไฟล์มลั ติมเี ดีย เช่น ภาพ เสียง วิดโี อ
Hyperlink เป็ นข้อมูลทีส่ ามารถลิงก์ไปยังข้อมูลอืน่ ๆ ได้
Lookup Wizard เป็ นข้อมูลทีเ่ ชือ่ มกับตารางหรือแบบสอบถามในส่วนอืน่
การเพิม่ ความสามารถให้ตาราง
• คุณสมบัตเิ พิม่ เติมทีต่ ้ องกำหนด
ให้ กบั ฟิ ลด์
3
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
2. กรอข้อมูล 5 จนถึง 50
4
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
ไม่ต้องจารหัสลูกค้าโดยใช้ Lookup Wizard
สาหรับการกรอกข้อมูลลงในตาราง TransactionTbl เราต้องกรอก
รหัสลูกค้าลงในตาราง ซึง่ แน่นอนว่าไม่มใี ครจารหัสสินค้าได้
ทัง้ หมด วิธสี ะดวกคือ สังให้
่ สามารถเลือกรหัสและรายชือ่ จาก
ตารางได้เลย
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
4
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
7
6
8
9
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
10
11. ขยายคอลัมน์
12
13
14
ผลลัพธ์ทไ่ี ด้คอื จะมีการแสดงเฉพาะรหัสลูกค้า พร้อมทัง้ ชื่อและนามสกุล สาเหตุคอื ต้องใช้
รหัสลูกค้าเป็ นหลัก เพราะเวลากรอกมักเป็ นตัวเลข สะดวกกว่ากรอกชื่อนามสกุล และ
รองรับการใช้บาร์โค้ดจากบัตรสมาชิกของลูกค้าได้อกี ด้วย
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
ไม่ต้องจารหัสสินค้าโดยใช้ Lookup Wizard
ในตาราง TransactionDatailTbl จะต้องมีการกรอกรหัสสินค้า ซึง่
ไม่มที างจะจารหัสสินค้าได้ ดังนัน้ ควรแสดงชือ่ สินค้า
ประกอบด้วย วิธนี ้จี ะช่วยให้สามารถเลือกรายการสินค้าจาก
รายการทีก่ าหนดไว้ทนั ที
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
3
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
5
7
8
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
9
10. ขยายคอลัมน์
11
12
13
ผลลัพธ์ทไ่ี ด้คอื จะมีการแสดงเฉพาะรหัสลูกค้า พร้อมทัง้ ชื่อและนามสกุล สาเหตุคอื ต้องใช้
รหัสลูกค้าเป็ นหลัก เพราะเวลากรอกมักเป็ นตัวเลข สะดวกกว่ากรอกชื่อนามสกุล และ
รองรับการใช้บาร์โค้ดจากบัตรสมาชิกของลูกค้าได้อกี ด้วย
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
ความสัมพันธ์ของแต่ละตาราง
3. คลิกขวาเลือก Delete
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
ความสัมพันธ์ของแต่ละตาราง 7. เมือ่ ลาก TransactionID มา
4. เมือ่ ลาก CustomerID มา วางทีต่ าราง
วางทีต่ าราง TransactionTbl TransactionDetailTbl
6
13
11
12
13
ตัวอย่างฐานข้อมูลสาหรับร้านขายหนังสือ
สรุปความสัมพันธ์ของแต่ละตาราง
• ฟิลด์ CustomerID ของตาราง CustomerTbl เชือ่ มกับฟิลด์
CustomerID ของตาราง TransactionTbl ในแบบ One-To-Many
(ลูกค้าหนึ่งคนสามารถซือ้ สินค้าได้หลายครัง้ )
• ฟิลด์ TransactionID ของตาราง TransactionTbl เชือ่ มกับฟิลด์
TransactionID ของตาราง TransactionDetailTbl ในแบบ One-
To-Many (การซือ้ สินค้าแต่ละครัง้ สามารถซือ้ สินค้าได้หลายๆ ชิน้ )
• ฟิลด์ ProductID ของตาราง TransactionDetailTbl เชือ่ มกับฟิลด์
ProductID ของตาราง ProductTbl ในแบบ One-To-Many (ในการ
ซือ้ สินค้าแต่ละครัง้ สามารถเลือกสินค้าตัวเดิมได้)