• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
 

บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล

on

  • 8,324 views

 

Statistics

Views

Total Views
8,324
Views on SlideShare
8,311
Embed Views
13

Actions

Likes
0
Downloads
116
Comments
0

1 Embed 13

http://niwatsarabun.wordpress.com 13

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล Document Transcript

    • หน่ วยที่ 1 ความร้ ูพนฐานเกียวกับฐานข้ อมล และหลักการออกแบบฐานข้ อมล ื้ ่ ู ูหัวข้ อเรื่องและงาน ี่ ั ่ ความรู ้พ้ืนฐานเกยวกบข้อมูล ฐานข้อมูล ระบบฐานข้อมูลใน Access 2007 สวนประกอบของฐานข้อมูล Access 2007 และหลักการออกแบบฐานข้อมูลที่ดีสาระสํ าคัญ ี่ ั ่ ่ ็ ข้อมูล หมายถึง ข้อเท็จจริ งที่เกยวข้องกบสิ่ งตาง ๆ ทัวไป ฐานข้อมูล หมายถึง แหลงเกบ ่รวบรวมข้อมูลกลุ่มหนึ่ งที่เกยวข้องกบหัวข้อหรื อจุดประสงค์อยางใดอยางหนึ่ง มีโครงการและการ ี่ ั ่ ่ ่ ่ ่ ี่จัดการอยางเป็ นระบบ ระบบฐานข้อมูล หมายถึง สวนประกอบตาง ๆ ที่เกยวข้องกบการใช้งานัฐานข้อมูล สวนประกอบของฐานข้อมูล Access 2007 ได้แก่ ตาราง ฟอร์ม รายงาน แบบสอบถาม ่ ํแมโคร และโมดูล มีหลักการออกแบบฐานข้อมูลที่ดี มีกระบวนการ คือ กาหนดวัตถุประสงค์ของ ่ ่ฐานข้อมูล ค้นหาและจัดระเบียบข้อมูลที่ตองการ แบงข้อมูลลงในตารางตาง ๆ เปลี่ยนรายการของ ้ข้อมูลให้เป็ นคอลัมน์ต่าง ๆ ระบุ คียแตละตาราง กาหนดความสัมพันธ์ของตาราง การปรั บการ ์ ่ ํออกแบบให้ดียงขึ้ น และการใช้กฎ Normalization ิ่จดประสงค์ การสอน ุ จดประสงค์ ทั่วไป ุ ี่ ั 1. เพื่อให้มีความรู ้ ความเข้าใจเกยวกบความหมายของข้อมูล ฐานข้อมูล และระบบฐานข้อมูล ี่ ั ่ 2. เพื่ อ ให้ มี ค วามรู ้ ค วามเข้า ใจเกยวกบ ระบบฐานข้อ มู ล และสวนประกอบ ของฐานข้อมูลใน Access 2007 3. เพื่อให้มีความรู ้ความเข้าใจ และมีทกษะในการหลักการออกแบบฐานข้อมูลที่ดี ั จดประสงค์ เชิงพฤติกรรม ุ 1. สามารถอธิบายความหมายของข้อมูล ฐานข้อมูล และระบบฐานข้อมูลได้ ่ 2. สามารถอธิ บายและจําแนกระบบฐานข้อมูลและสวนประกอบของฐานข้อมูลในAccess 2007 ได้ 3. สามารถออกแบบฐานข้อมูลที่ดีได้
    • 1-2 เนือหา ้ 1. ข้ อมลและฐานข้ อมล ู ู ี่ ั ่ ่ ข้อมูล (Data) หมายถึง ข้อเท็จจริ งที่เกยวข้องกบสิ่ งตาง ๆ ทัวไป เชน ราคาสิ นค้า คะแนน ่ ่ ่ ั ่ ่ ของนักเรี ยนแตละคน ซึ่งปกติถือวาเป็ น ข้อมูลดิบ (Raw Data) ที่ยงไมได้ผานการประมวลผล ข้อมูลที่ผ่านการประมวลผลแล้วเรี ยกวา สารสนเทศ (Information) เชน เมื่อนําคะแนน ่ ่ ็ ของนักเรี ยนทั้ งหมดมาประมวลผลกจะได้คะแนนสูงสุ ด คะแนนตํ่าสุ ดของนักเรี ยนทั้ งหมด ข้อมูลที่ นามาจัดเกบในฐานข้อมูลอาจอยู่ในรู ปของตัวเลข ตัวอักษร ข้อความ รู ปภาพ ํ ็ เสี ยง หรื อภาพและเสี ยง ฐานข้อมูล (Database) หมายถึง แหลงเกบรวบรวมข้อมูลกลุ่มหนึ่งที่เกยวข้องกบหัวข้อ ่ ็ ี่ ั ่ ่ ่ หรื อจุดประสงค์อยางใดอยางหนึ่ง มีโครงการและการจัดการอยางเป็ นระบบ ข้อมูลที่บนทึกเกบไว้ ั ็ ้ สามารถปรับปรุ งแกไข สื บค้น และนํามาใช้ในการจัดการสารสนเทศได้อยางรวดเร็วและมี ่ ประสิ ทธิภาพ ่ ฐานข้อมูลในที่น้ ี หมายถึงฐานข้อมูลที่ใช้ระบบคอมพิวเตอร์ สวนอุปกรณ์ที่เกบข้อมูลกคือ ็ ็ จานแมเหล็กหรื อฮาร์ ดดิ สกนันเอง ตัวอยางฐานข้อมูลที่ใช้กนทัวไป ได้แก่ ฐานข้อมูลบุคลากร ่ ์ ่ ่ ั ่ ฐานข้อมูลนักศึกษา ฐานข้อมูลสิ นค้า ฯลฯ ปกติ ฐานข้อมูลจะถูกจัดเกบไว้ที่ส่ วนกลางของหนวยงานหรื อองค์กร เพื่อให้ผูใช้งาน ็ ่ ้ สามารถเรี ยกใช้ขอมูลรวมกนได้ โดยอาจใช้ขอมูลได้บางสวนหรื อทั้ งหมดขึ้ นอยู่กบการกาหนด ้ ่ ั ้ ่ ั ํ สิ ทธิ์ ในการใช้งาน ็ ั ็ ฐานข้อมูลอาจเกบข้อมูลไว้ในแฟ้ มเดียวกนหรื อแยกเกบหลาย ๆ แฟ้ มที่มีความสัมพันธ์กน ั ่ ่ โดยแตละแฟ้ มเรี ยกวา ตาราง (Table) ซึ่งมีลกษณะโครงสร้าง ดังรู ป ั ชื่อตาราง (Table)ตารางทั้ งหมด ระเบียน (Record) ฟิ ลด์ (Field) ่ รู ปที่ 1-1 สวนประกอบของฐานข้อมูลในโปรแกรม Microsoft Access 2007
    • 1-3 โครงสร้างของตารางประกอบด้วย 1. ชื่อตารางหรื อชื่อฐานข้อมูล (Database Name) 2. เขตข้อมูลในแนวตั้ ง (Column) หรื อฟิ ลด์ (Field) หลายฟิ ลด์ 3. รายการข้อมูลหรื อระเบียน (Record) หลายรายการในแนวนอน (Row) ตัวอยาง ตารางฐานข้อมูลชื่อ ข้อมูลนักศึกษา มีฟิลด์ต่าง ๆ ที่ไมซํ้ ากน เชน รหัสนักศึกษ ่ ่ ั ่ (StudentID) ชื่ อ นามสกุล ที่ อยู่ เมือง จังหวัด ฯลฯ ซึ่ งข้อมูลของนักศึ กษาแตละคนจัดเกบใน ่ ็ ระเบียนที่ไมซํ้ ากนตามฟิ ลด์ต่าง ๆ ่ ั ี่ ั ศัพท์สาคัญเกยวกบระบบฐานข้อมูล และการออกแบบระบบฐานข้อมูล คือ ํ ่ ่ 1. เอนทิต้ ี (Entity) เป็ นคําที่อางอิงถึงบุคคล สถานที่ และสิ่ งของตาง ๆ เชน สิ นค้า ้ หรื อวิชา ใบสั่งซื้ อหรื อบัตรลงทะเบียน และลูกค้าหรื อนักศึกษา เป็ นต้น ถ้าเราสนใจในการสร้าง ระบบฐานข้อมูลการสั่งซื้ อสิ นค้า เอนทิต้ ี ของระบบนี้ จะประกอบด้วย เอนทิต้ ีลูกค้า ใบสั่งซื้ อ ั สิ นค้า กบสิ นค้า ดังรู ป 2. แอตทริ บิวต์ (Attribute) เป็ นข้อมูลที่แสดงลักษณะของเอนทิต้ ี เชน แอตทิบิวต์่ ของเอนทิต้ ีลูกค้าหรื อนักศึกษา จะมีชื่อ ที่อยู่ และรหัสไปรษณี ย ์ สวนแอตทริ บิวต์ของเอนทิต้ ี ่ ใบสั่งซื้ อสิ นค้า จะมีรหัสใบสั่งซื้ อ วันที่ส่ังซื้ อ ชื่อสิ นค้า จํานวนสิ นค้าที่ส่ัง และราคาสิ นค้า เป็ น ต้น ซึ่งเราสามารถแสดงเอนทิต้ ี รวมทั้ งแอตทิบิวต์ได้ 3. ความสัมพันธ์ (Relationships) หมายถึง ความสัมพันธ์ระหวางเอนทิต้ ีต่าง ๆ ใน ่ ่ ระบบ เชน ในระบบการสั่งซื้ อสิ นค้า จะประกอบด้วยเอนทิต้ ีใบสั่งซื้ อสิ นค้า และเอนทิต้ ีลูกค้า ซึ่งมีความสัมพันธ์จากลูกค้าไปยังใบสังซื้ อสิ นค้าเป็ นแบบหนึ่งตอกลุ่ม (One – to - Many) เป็ นต้น ่ ่ ลูกค้า ใบสังซื้ อ ่ชื่อเอนทิต้ ี รหัสลูกค้า รหัสใบสังซื้ อ ่ แอตทริ บิวต์ ชื่อลูกค้า วันที่สงซื้ อ ั่ ทั้ งหมด ่ ที่อยูลูกค้า วันที่ส่ งสิ นค้า รหัสไปรษณี ย ์ รหัสลูกค้า หมายเลขโทรศัพท์ รหัสสิ นค้า จํานวนที่สง ั่ ่ รู ปที่ 1-2 สวนประกอบของเอนทิต้ ี แอตทริ บิวต์ และความสัมพันธ์ในระบบฐานข้อมูล
    • 1-4 ในระบบฐานข้อ มู ล เชิ ง สั ม พัน ธ์ น้ ั น เราจะต้อ งกาหนดชนิ ด ของคี ย ์ต่ าง ๆ เพื่ อ เป็ น ํ ่ ่แอตทริ บิวต์พิเศษที่ทาหน้าที่บางอยาง เชน เป็ นตัวแทนของตาราง ฯลฯ ซึ่งมีชนิดคีย ์ ดังนี้ ํ 1. Primary Key (คียหลัก) จะเป็ นฟิ ลด์ที่มีค่าไมซํ้ ากนเลยในแตละเรคอร์ดในตารา ์ ่ ั ่นั้ น เราสามารถใช้ฟิลด์ที่เป็ น Primary Key นี้ เป็ นตัวแทนของตารางนั้ นได้ทนที ั 2. Candidate Key (คียคู่แขง) เป็ นฟิ ลด์หนึ่ งหรื อหลายฟิ ลด์ที่พอเอามารวมกนแล้วมี ์ ่ ั ่ ่ ่คุณสมบัติเป็ น Primary Key (ไมซํ้ า) และไมได้ถูกใช้เป็ นคียหลัก เชน รหัสจังหวัดเป็ นคียหลัก ์ ์ ่ ็ ่ ่ ั ่ ่ ์่ ่สวนชื่อจังหวัดกไมซํ้ าเชนกน แตไมได้เป็ นคียหลักจึงเป็ นคียคูแขงแทน ์ ่ ่ 3. Composite Key บางตารางหาฟิ ลด์ไมซํ้ าไมได้เลย จึงต้องใช้หลาย ๆ ฟิ ลด์มา ั ั ่รวมกนเป็ น Primary Key ฟิ ลด์ที่ใช้รวมกนนี้ เราเรี ยกวา Composite Key 4. Foreign Key เป็ นฟิ ลด์ใดๆ ในตารางหนึ่ง (ฝั่ง Many) ที่มีความสัมพันธ์กบฟิ ลด์ัที่เป็ น Primary Key ในอีกตารางหนึ่ ง (ฝั่ง One) โดยที่ตารางทั้ งสองมีความสัมพันธ์แบบ One –to – Many ตอกน่ ั ่ ั ฐานข้อมูลมี หลายแบบแตที่ นิยมใช้กนมากที่สุดในปั จจุบน คือ ฐานข้อมูลแบบสัมพันธ์ ั ั(Relational Database) ซึ่ งมีโครงสร้างเป็ นตารางหลายตารางที่มีความสัมพันธ์กนโดยใช้ฟิลด์ที่ ั ่เหมือนกน เชน รหัสนักศึกษา (StudentID) ่ รู ปที่ 1-3 สวนประกอบของฐานข้อมูลในโปรแกรม Microsoft Access 2007 ลักษณะของฐานข้อมูลแบบสัมพันธ์ ่ ่ ่ ่ 1. คาของข้อมูลต้องเป็ นคาที่ไมสามารถแบงแยกออกไปได้อีก เชน ชื่อ ่ ่ ั ่ 2. คาในแนวตั้ ง (Column)หรื อฟิ ลด์ตองเป็ นแบบเดี ยวกน เชน ถ้าเป็ นฟิ ลด์สําหรั บ ้ ็ ็ ่ ่ ็เกบชื่อกต้องเป็ นชื่อจริ งทั้ งหมด ไมมีชื่อเลนมาเกบด้วย ่ ั ่ ่ ็ 3. ลําดับของฟิ ลด์ไมจําเป็ นต้องเรี ยงกน เชน อาจใช้ฟิลด์นามสกุลกอนฟิ ลด์ชื่อกได้ ั 4. ชื่อฟิ ลด์ในตารางเดียวกนจะต้องไมซํ้ ากน่ ั
    • 1-5 ํ ่ 5. ต้องกาหนดฟิ ลด์ใดฟิ ลด์หนึ่ งเป็ นดัชนี (Index)หรื อเรี ยกวา กุญแจหลัก (PrimaryKey) ่ ่ ั ั 6. ข้อมูลในแตละแถวหรื อระเบียนต้องไมซํ้ ากนกบแถวอื่น ่ ่ 7. ไมจําเป็ นต้องเรี ยงลําดับของข้อมูลแตละแถวหรื อระเบียน ัตารางที่ 1-1 การเปรี ยบเทียบศัพท์ทวไปกบศัพท์เทคนิคในระบบฐานข้อมูล ั่ ศัพท์ ทวไป ั่ ศัพท์ เทคนิคในระบบ ศัพท์ เทคนิคในฐานข้ อมลเชิง ู แฟมข้ อมล ้ ู สั มพันธ์ตาราง (Table) แฟ้ มข้อมูล (File) รี เลชัน (Relation)แถว (Row) ระเบียน (Record) ทูเพิล (Tuple)คอลัมน์ (Column) เขตข้อมูล (Field) แอตทริ บิวต์ (Attibute)จํานวนแถว จํานวนระเบียน คาร์ดินาลลิตี (Cardinality)จํานวนคอลัมน์ จํานวนเขตข้อมูล ดีกรี (Degree)ค่ า เ อ ก ลั ก ษ ณ์ (Unique คียหลัก ์ คียหลัก (Primary Key) ์Identifier)ขอบเขตของค่ าของข้ อมล ู ่ ขอบเขตของคาของข้อมูล โดเมน (Domain)2. ระบบฐานข้ อมล (Database System) ู ่ ่ ี่ ระบบฐานข้อมูล (Database System) หมายถึง สวนประกอบตาง ๆ ที่เกยวข้องกบการใช้ ั ่งานฐานข้อมูล อาจแบงเป็ นฮาร์ ดแวร์ (Hardware) ซอฟต์แวร์ (Software) และบุคลากร (Personnel)เหมือนระบบคอมพิวเตอร์ ดังนี้ ฮาร์ ดแวร์ (Hardware) หมายถึง เครื่ องคอมพิวเตอร์ และอุปกรณ์ประกอบ เชน ฮาร์ดดิสก์ ที่ ่ ็ ่ใช้เกบฐานข้อมูล อุปกรณ์นาเข้าข้อมูลแบบตางๆและโปรแกรมใช้งาน ํ ซอฟต์แวร์ (Software) หมายถึง โปรแกรมใช้งานและระบบการจัดการฐานข้อมูล ี่ ั บุคลากร (Personnel) หมายถึง บุคลากรที่เกยวข้องกบระบบหรื อผูใช้งานฐานข้อมูล ้ เพื่อให้เข้าใจได้ง่ายขึ้ นอาจดูผงลักษณะการใช้งานระบบฐานข้อมูล ดังนี้ ั
    • 1-6 ผ้ ูใช้ ผ้ ูเขียนโปรแกรมใช้ งาน ผู้บริหารฐานข้ อมล ู (User) (Application Programmer) (Database Administrator) โปรแกรมใช้ งาน โปรแกรมใช้ งาน (Application Program) (Application Program) ระบบการจัดการฐานข้ อมล ู (Database Management System) ฐานข้ อมล ู (Database) รู ปที่ 1-4 ผังลักษณะการใช้งานระบบฐานข้อมูล ้ ี่ ั ่ ผูใช้งานฐานข้อมูล หรื อผูที่เกยวข้องกบฐานข้อมูลแบงได้เป็ น ้ 1. ผูใช้ (User) หมายถึง ผูที่ตองการใช้ฐานข้อมูลทัวไป การใช้งานอาจทําได้โดย ้ ้ ้ ่ ่ ่ ี่ ัผานโปรแกรมใช้งานหรื อผานระบบการจัดการฐานข้อมูลถ้ามีความรู ้เกยวกบระบบเพียงพอ 2. ผูเ้ ขียนโปรแกรมใช้งาน (Application Programmer) หมายถึง ผูที่สร้างฐานข้อมูล ้และพัฒ นาโปรแกรมใช้ง านสํา หรั บให้ผูใ ช้ส ามารถใช้ง านฐานข้อ มู ล ได้ง่ า ย และให้ผูบ ริ ห าร ้ ้ฐานข้อมูลสามารถจัดการฐานข้อมูลได้สะดวกขึ้ น 3. ผูบริ หารฐานข้อมูล (Database Administrator) หมายถึง ผูที่ออกแบบฐานข้อมูล ้ ้ดูแลรักษาและจัดการฐานข้อมูลให้ปลอดภัย ทันสมัย และถูกต้องอยูเ่ สมอ โปรแกรมใช้งานฐานข้อมูล อาจทําขึ้ นโดยใช้ภาษาคอมพิวเตอร์ ภาษาใดภาษาหนึ่ ง เชน ่วิชวลเบสิ ก (Visual Basic) หรื อใช้ภาษาสําหรับฐานข้อมูล คือ SQL (Structured Query Language)หรื อใช้ระบบการจัดการฐานข้อมูล (DBMS: Database Management System) โดยตรงกได้ ็
    • 1-7 การใช้งานระบบฐานข้อมูล อาจเป็ นแบบใช้งานคนเดียว (Single User) หรื อระบบใช้งาน ่ ั ่ ่หลายคน (Multi - User) ที่ เชื่ อมตอกนเป็ นเครื อขาย (Network) ภายในหนวยงานที่เรี ยกวา ่ ่ ํ ัอินทราเน็ต (Intranet) หรื อใช้งานผานระบบอินเทอร์เน็ตที่กาลังเป็ นที่นิยมกนในปั จจุบน ั ระบบการจัดการฐานข้อมูล หมายถึง ชุดโปรแกรมที่ใช้ในการจัดการฐานข้อมูล เช่น การ ้สร้างฐานข้อมูล การบันทึกข้อมูล การปรับปรุ งแกไขข้อมูล การสื บค้นข้อมูล การวิเคราะห์ขอมูล ้การจัดทํารายงาน และอื่น ๆ ตัวอยางของโปรแกรมที่ใช้จดการฐานข้อมูล ได้แก่ Microsoft Access, Microsoft SQL ่ ัServer, MySQL, Oracle เป็ นต้น3. ประโยชน์ ของระบบฐานข้ อมล ู ็ ั การจัดเกบข้อมูลไว้ในฐานข้อมูลที่เดียวกนด้วยระบบการจัดการฐานข้อมูล มีประโยชน์ดังนี้ ่ ั ่ 1. สามารถใช้ข ้อ มู ล รวมกนได้ ผู ้ใ ช้แ ตละคนสามารถที่ จ ะใช้ข ้อ มู ล ในระบบฐานข้อมูลได้และโปรแกรมใช้งานหลายโปรแกรมอาจใช้ฐานข้อมูลรวมกนได้ ่ ั ํ 2. สามารถกาหนดมาตรฐานของข้อมูลได้ ผูบริ หารฐานข้อมูลอาจกาหนดมาตรฐาน ้ ํ ่ ็ ั ่ตางๆ ในการจัดเกบข้อมูลให้เป็ นลักษณะเดียวกน เชน โครงสร้างข้อมูล ประเภทของข้อมูล เป็ นต้น ็ 3. ลดความซํ้ าซ้อนของข้อมูลได้ ผูใช้ทุกคนที่ตองการจัดเกบข้อมูลจะใช้โดยผา ้ ้ ่ ่ ั ่ระบบการจัดการฐานข้อมูล ทําให้ขอมูลไมซํ้ ากนและไมเปลืองเนื้ อที่ในการเกบข้อมูล ้ ็ 4. ลดความขัด แย้ง ของข้อ มู ล ได้ ข้อ มู ล ชุ ด เดี ย วกนที่ ป รากฏอยู่ ห ลายแหงใน ั ่ ั ้ฐานข้อมูลจะต้องตรงกน ถ้ามีการแกไขข้อมูลนี้ ระบบการจัดการฐานข้อมูลจะต้องแกไขให้ถกต้อง ้ ู ัตามกนหมดโดยอัตโนมัติ 5. ป้ องกนและรักษาความปลอดภัยของข้อมูลได้ โดยกาหนดสิ ทธิ์ ของผูใช้แตละคน ั ํ ้ ่ตามระดับการใช้งาน เชน ผูใช้ทวไปอาจใช้ขอมูลบางสวน ผูใช้ที่มีหน้าที่บนทึกและแกไขข้อมูลก็ ่ ้ ่ั ้ ่ ้ ั ้มีสิทธิ์ ใช้ขอมูลได้อีกระดับหนึ่ง เป็ นต้น ้ ่ ่ 6. ดูแลรักษาฐานข้อมูลไดงาย เชน การทําสําเนาฐานข้อมูล การบูรณะฐานข้อมูลให้กลับสู่ สภาพปกติ4. ระบบฐานข้ อมลใน Access 2007 ู ็ ฐานข้อมูลเป็ นเครื่ องมือสําหรับการเกบรวบรวมและจัดระเบียบข้อมูล ฐานข้อมูลสามารถ ็ ี่ ั ็เกบข้อมูลเกยวกบบุคคล ผลิตภัณฑ์ ใบสั่งซื้ อ หรื อสิ่ งอื่นใดกได้ ฐานข้อมูลจํานวนมากเริ่ มมาจากรายการในโปรแกรมประมวลผลคําหรื อโปรแกรมกระดาษคํานวณ เมื่อรายการมีขนาดใหญขึ้ น ่ ่ ัความซํ้ าซ้อนและความไมสอดคล้องกนของข้อมูลจะเริ่ มปรากฏขึ้ น การดูขอมูลในฟอร์ มรายการ ้
    • 1-8 ่ ้ ั ่เริ่ มไมเข้าใจ และมีขอจํากดในการค้นหาหรื อดึงเซตยอยของข้อมูลมาตรวจทาน เมื่อปั ญหาดังกลาว ่ ิ ่เกดขึ้ นแล้ว จึ งเป็ นการดี ที่จะโอนถายข้อมูลไปยังฐานข้อมูลที่สร้ างขึ้ นด้วยระบบการจัดการ ่ฐานข้อมูล (DBMS) เชน MS Access 2007 ฐานข้อมูลในระบบคอมพิวเตอร์เป็ นคอนเทนเนอร์ของวัตถุ โดยฐานข้อมูลหนึ่งชุดสามารถ ่ ่ ่มีตารางได้มากกวาหนึ่ งตาราง ตัวอยางเชน ระบบติดตามสิ นค้าคงคลังหนึ่ งระบบจะใช้ขอมูลจาก ้ ่ ่ ่ตารางสามตารางไมใชจากฐานข้อมูลสามชุด แตฐานข้อมูลหนึ่งชุดนั้ นสามารถมีตารางได้สามตาราง ่่ ่เว้นแตวาฐานข้อมูลนั้ นจะถูกออกแบบพิเศษให้ใช้ขอมูลหรื อโค้ดจากแหลงข้อมูลอื่นได้ ฐานข้อมูล ้ ็ ั ่Access จะเกบตารางไว้ในแฟ้ มข้อมูลเดียว พร้อมกบวัตถุอื่นด้วย เชน ฟอร์ม รายงาน แมโคร และโมดูล โดยฐานข้อมูลที่สร้างในรู ปแบบ Access 2007 จะมีนามสกุลเป็ น .accdb และฐานข้อมูลที่ ่สร้างในรู ปแบบของ Access รุ่ นกอนหน้าจะมีนามสกุลแฟ้ มเป็ น .mdb คุณสามารถใช้ Access 2007 ่ ่ ่สร้างแฟ้ มข้อมูลในรู ปแบบแฟ้ มของรุ่ นกอนหน้าได้ (ตัวอยางเชน Access 2000 และ Access 2002-2003) ความจําเป็ นในการใช้ Access 2007 คือ ่ ่ ่ 1. เพิ่มข้อมูลใหมลงในฐานข้อมูล เชน รายการใหมในสิ นค้าคงคลัง ้ ่ ่ ่ ั 2. แกไขข้อมูลที่มีอยูในฐานข้อมูล เชน การเปลี่ยนตําแหนงที่ต้ งปั จจุบนของรายการ ั 3. ลบข้อมูล ถ้ารายการถูกขายออกหรื อละทิ้งแล้ว 4. จัดระเบียบและดูขอมูลด้วยวิธีต่างๆ ้ ่ ั ั ้ ่ 5. ใช้ขอมูลรวมกนกบผูอื่นผานทางรายงาน ข้อความอี เมล อิ นทราเน็ ต หรื อ ้อินเทอร์เน็ต5. ส่ วนประกอบของฐานข้ อมล Access 2007 ู ่ สวนประกอบของฐานข้อมูล Access 2007 มีดงตอไปนี้ ั ่ 5.1 ตาราง (Table) ั ตารางฐานข้อมูลจะมีลกษณะคล้ายกบกระดาษคํานวณ นันคือข้อมูลจะถูกเกบไว้ใน ั ่ ็ ่ ่แถวและคอลัมน์ ดังนั้ น จึงเป็ นเรื่ องคอนข้างงายในการนําเข้าข้อมูลจากกระดาษคํานวณไปยังตาราง ่ ่ ็ฐานข้อมูล โดยข้อแตกตางที่สําคัญระหวางการเกบข้อมูลในกระดาษคํานวณและการเกบใน ็ ่ฐานข้อมูลจะอยูที่วิธีการจัดระเบียบข้อมูล
    • 1-9 รู ปที่ 1-5 ตารางฐานข้อมูลในโปรแกรม Microsoft Access 2007 ่ เมื่อต้องการความยืดหยุนสําหรับฐานข้อมูลให้มากที่สุด ข้อมูลต้องมีการจัดระเบียบลง ่ ิ ่ ่ ็ ี่ ัในตารางเพื่อไมให้เกดความซํ้ าซ้อน ตัวอยางเชน ถ้าคุณจะเกบข้อมูลเกยวกบนักศึกษาหรื อพนักงาน ่ ็ควรป้ อนข้อมูลของนักศึกษาหรื อพนักงานแตละคนเข้าไปในตารางที่ใช้เกบข้อมูลนักศึกษาหรื อ ี่ ั ็พนักงานเพียงครั้ งเดียว ข้อมูลเกยวกบผลิตภัณฑ์จะเกบในตารางของวิชาหรื อผลิตภัณฑ์ และข้อมูล ี่ ั ่ ็ ่เกยวกบที่อยูของสาขาจะเกบในตารางอื่น กระบวนการนี้ เรี ยกวา การทํา Normalization ่ ็ แตละแถวในตารางจะถูกอ้างอิงเป็ นหนึ่ งระเบียน ระเบียนคือที่ที่ใช้เกบข้อมูลแตละ ่ ่ ่ ่สวน แตละระเบียนจะประกอบด้วยเขตข้อมูลอยางน้อยหนึ่งเขตข้อมูล เขตข้อมูลจะสอดคล้องกบ ั ่ ่ ่คอลัมน์ในตาราง ตัวอยางเชน ถ้ามีตารางหนึ่ งที่ชื่อ “ข้อมูลนักศึกษา” ซึ่งแตละระเบียน (แถว) จะมีข้อมูล เกยวกบนักศึกษาหนึ่ งคน และแตละเขตข้อมูล (คอลัมน์) จะมีชนิ ดข้อมูลที่ต่างกน เชน ชื่อ ี่ ั ่ ั ่นามสกุล ที่อยู่ และอื่น ๆ เขตข้อมูลนั้ นต้องได้รับการออกแบบให้มีชนิ ดข้อมูลที่แนนอน ไมวาจะ ่ ่่เป็ นข้อความ วันที่หรื อเวลา ตัวเลข หรื อชนิดข้อมูลอื่น ๆ ็ อีกวิธีหนึ่ งที่จะอธิ บายให้เห็ นภาพของระเบียนและเขตข้อมูลกคือให้นึกถึงชุ ดบัตร ่ ่ ่ ้ ัข้อมูลรุ่ นเกาของห้องสมุด โดยบัตรข้อมูลแตละใบที่อยูในตูบตรรายการจะเทียบเทากบระเบียนใน ่ ั ่ ่ ่ ่ ้ ่ฐานข้อมูล สวนข้อมูลแตละสวนบนบัตรแตละใบ (ชื่อผูแตง ชื่อเรื่ อง และอื่น ๆ) จะเทียบเทากบเขต ่ ัข้อมูลในฐานข้อมูล
    • 1-10 5.2 ฟอร์ ม (Form) ่ ่ ในบางครั้ งฟอร์มจะถูกอ้างอิงเป็ น “หน้าจอสําหรับป้ อนข้อมูล” ซึ่งเป็ นสวนติดตอที่ใช้ ัทํางานกบข้อมูล และฟอร์ มมักมีปุ่มคําสั่งที่ใช้ดาเนิ นการคําสั่งได้หลากหลาย สามารถสร้าง ํ ่ ้ ่ ่ ่ฐานข้อมูลโดยไมต้องใช้ฟอร์ มด้วยการแกไขข้อมูลอยางงาย ๆ ในแผนข้อมูลตาราง อยางไรกตาม ่ ็ ่ ่ ้ผูใช้ฐานข้อมูลสวนใหญต้องการที่จะใช้ฟอร์มเพื่อดู ป้ อนข้อมูล และแกไขข้อมูลในตารางมากกวา ้ ่ รู ปที่ 1-6 ฟอร์มของฐานข้อมูลในโปรแกรม Microsoft Access 2007 ฟอร์ มจะให้รูปแบบที่ ง่ ายตอการใช้สําหรั บทํางานกบข้อมูล และสามารถเพิ่ม ่ ั ่ ัองค์ประกอบการใช้งาน เชน ปุ่ มคําสั่ง ลงในฟอร์มได้ดวย คุณอาจเขียนโปรแกรมให้กบปุ่ มตาง ๆ ้ ่ ํ ่เพื่อใช้กาหนดวาจะให้ขอมูลใดบ้างปรากฏบนฟอร์ม เปิ ดฟอร์มหรื อรายงานอื่น ๆ หรื อดําเนิ นงาน ้ ่ ่อื่นหลากหลายประเภท ตัวอยางเชน อาจมี ฟอร์ มชื่ อ “ข้อมูลนักศึกษา” ที่ ใช้ทางานกบข้อมูล ํ ันักศึกษา ฟอร์มนักศึกษา อาจมีปุ่มที่ใช้เปิ ดฟอร์มบัตรลงทะเบียนที่สามารถป้ อนรายการลงทะเบียน ่ใหมสําหรับนักศึกษาคนนั้ นได้ นอกจากนี้ ฟอร์มยังอนุญาตให้เราสามารถควบคุมวิธีที่ผใช้รายอื่นจะโต้ตอบกบข้อมูล ู้ ั ่ ่ในฐานข้อมูลด้วย ตัวอยางเชน สามารถสร้างฟอร์มที่แสดงเฉพาะบางเขตข้อมูลและอนุญาตให้มีการ ่ ่ ่ ั ่ ่ดําเนินการได้เพียงบางอยางเทานั้ น สิ่ งนี้ จะชวยป้ องกนข้อมูลและทําให้แนใจได้วาข้อมูลจะถูกป้ อนอย่างถูกต้อง 5.3 รายงาน (Report) ่ รายงานเป็ นสิ่ งที่ต้องใช้เพื่อสรุ ปและนําเสนอข้อมูลในตาราง บอยครั้ งที่รายงานจะตอบคําถามตามที่ระบุไว้ เชน “เรารับเงินจากนักศึกษาแตละคนเป็ นจํานวนเทาไรในรุ่ นนี้ ” หรื อ ่ ่ ่
    • 1-11 ่ ่ ํ“นักศึกษาของเราอยูที่ไหนบ้าง” แตละรายงานสามารถกาหนดรู ปแบบให้นาเสนอข้อมูลในรู ปแบบ ํที่อ่านงายที่สุดได้ ่ รู ปที่ 1-7 รายงานของฐานข้อมูลในโปรแกรม Microsoft Access 2007 ็ รายงานสามารถถูกเรี ยกใช้เวลาใดกได้ และจะแสดงข้อมูลปั จจุบนในฐานข้อมูลเสมอ ั ่ ็โดยทัวไปรายงานจะถูกจัดรู ปแบบให้สามารถพิมพ์ออกมาได้ แตกยังสามารถดูรายงานบนหน้าจอ ่ ่ ่ ่ ัสงออกไปยังโปรแกรมอื่น หรื อสงเป็ นข้อความอีเมลได้เชนกน 5.4 แบบสอบถาม (Query) แบบสอบถามเป็ นสวนสําคัญในฐานข้อมูลและสามารถดําเนินการฟังกชันที่ต่างกนได้ ่ ์ ั ์ ่ ่ ่จํานวนมาก ฟั งกชันทัวไปสวนใหญของแบบสอบถาม คือ การดึ งข้อมูลที่ระบุจากตารางตาง ๆ ่ ่ ็ออกมา โดยข้อมูลที่คุณต้องการดูอาจจะกระจายอยูในหลาย ๆ ตารางกได้ และแบบสอบถามจะทํา ่ ่ให้สามารถดูขอมูลที่ตองการได้ในรู ปของแผนข้อมูลเดียว นอกจากนี้ ถ้าเราไมต้องการดูระเบียน ้ ้ ัทั้ งหมดพร้อมกน แบบสอบถามจะให้เพิ่มเงื่อนไขเพื่อ “กรอง” ข้อมูลเอาเฉพาะระเบียนที่ตองการ ้ ่ ่ ่ออกมา บอยครั้ งที่แบบสอบถามทําหน้าที่เป็ นแหลงระเบียนสําหรับฟอร์มและรายงานตาง ๆ
    • 1-12 รู ปที่ 1-8 แบบสอบถามของฐานข้อมูลในโปรแกรม Microsoft Access 2007 ่ แบบสอบถามบางชุด “สามารถปรับปรุ งได้” นันหมายความวา สามารถแกไขข้อมูล ่ ้ ่ ่ในตารางต้นแบบผานแผนข้อมูลแบบสอบถามได้ ถ้าทํางานในแบบสอบถามที่สามารถปรับปรุ งได้ ่ ั ่ ่ ่ ่โปรดจําไว้วาการเปลี่ยนแปลงจะมีผลกบตารางตาง ๆ ด้วย ไมใชเฉพาะในแผนข้อมูลแบบสอบถาม ่เทานั้ น แบบสอบถามมีรูปแบบพื้นฐานสองรู ปแบบ ได้แก่ แบบสอบถามแบบใช้เลือกข้อมูลและแบบสอบถามแอคชัน แบบสอบถามแบบใช้เลือกข้อมูล จะเรี ยกใช้ขอมูลและทําให้ขอมูลพร้อม ้ ้ ่ ่ใช้งานได้อยางงายดาย สามารถดูผลลัพธ์ของแบบสอบถามบนหน้าจอ พิมพ์แบบสอบถาม หรื อ ่คัดลอกไปยังคลิปบอร์ ด หรื อยังสามารถใช้ผลลัพธ์ของแบบสอบถามเป็ นแหลงระเบียนสําหรับ ่ ัฟอร์มหรื อรายงานได้ สวนแบบสอบถามแอคชัน จะดําเนิ นงานกบข้อมูล โดยแบบสอบถามแอคชันสามารถใช้สร้างตารางใหม่ เพิ่มข้อมูลลงในตารางที่มีอยู่ ปรับปรุ งข้อมูล หรื อลบข้อมูลได้ 5.5 แมโคร (Macros) ั แมโครใน Access 2007 นั้ นจะเหมือนกบภาษาที่ใช้ในการเขียนโปรแกรมอยางงายที่ ่ ่ ั ่ ่สามารถใช้เพื่อเพิ่มหน้าที่การใช้งานให้กบฐานข้อมูล ตัวอยางเชน สามารถแนบแมโครลงในปุ่ ม ็คําสั่งบนฟอร์ ม เพื่อให้แมโครนั้ นทํางานเมื่อใดกตามที่มีการกดปุ่ ม แมโครจะมีแอคชันที่ใช้ ่ ่ดําเนินงานหลายอยาง เชน การเปิ ดรายงาน การเรี ยกใช้แบบสอบถาม หรื อการปิ ดฐานข้อมูล โดย ั ่ ่ ํการดําเนิ นการกบฐานข้อมูลสวนใหญที่ทาด้วยตนเองนั้ นสามารถทําได้อตโนมัติโดยใช้แมโคร ัดังนั้ นแมโครจึงเป็ นเครื่ องมือที่ช่วยประหยัดเวลาที่อยางมาก ่
    • 1-13 รู ปที่ 1-9 ปุ่ มเครื่ องมือแมโครในโปรแกรม Microsoft Access 2007 5.6 โมดล (Modules) ู ั โมดูล (คล้ายแมโคร) เป็ นวัตถุที่สามารถใช้เพื่อเพิ่มหน้าที่การใช้งานให้กบฐานข้อมูลได้ ขณะที่สร้างแมโครใน Access 2007 ด้วยการเลือกจากรายการแอคชันของแมโคร แตจะสามารถ ่เขียนโมดูลได้ในภาษาการเขียนโปรแกรม Visual Basic for Applications (VBA) (Visual Basicสําหรับ Applications (VBA): รุ่ นภาษาแมโครของ Microsoft Visual Basic ที่นามาใช้เพื่อตั้ ง ํ ัโปรแกรมให้กบโปรแกรมประยุกต์ของ Microsoft Windows และรวมอยูในโปรแกรมตาง ๆ ของ่ ่ไมโครซอฟท์) โมดูลเป็ นคอลเลกชันของการประกาศ คําสัง และกระบวนงานที่ถูกเกบไว้ดวยกน ่ ็ ้ ั ่เป็ นหนวยเดียว โมดูลสามารถเป็ นได้ท้ งคลาสโมดูลหรื อโมดูลมาตรฐาน คลาสโมดูลจะถูกแนบไว้ ัในฟอร์ มหรื อรายงาน และมักจะประกอบด้วยกระบวนงานที่เฉพาะเจาะจงไปยังฟอร์มหรื อรายงานที่คลาสโมดูลแนบอยู่ สวนโมดูลมาตรฐานจะประกอบด้วยกระบวนงานทัวไปที่ไมสัมพันธ์กบวัตถุ ่ ่ ่ ั ่ ่อื่นใด โมดูลมาตรฐานจะถูกแสดงอยูภายใต้ โมดูล ในบานหน้าตางนําทาง ขณะที่คลาสโมดูลจะไม่ถูกแสดงไว้6. สเปคของฐานข้ อมลใน Access 2007 ู รายการเฉพาะในฐานข้อมูล Access 2007 มีสเปคของฐานข้อมูล 1 ดังตารางตอไปนี้ ่1 Http://office.microsoft.com/th-th/access
    • 1-14ตารางที่ 1-2 สเปคทัวไป ่ แอตทริบิวต์ ค่ าสงสด ู ุขนาดแฟมฐานข้ อมล Access (.accdb) ้ ู ิ ่ ่ ํ 2 กกะไบต์ ลบด้วยชองวางที่จาเป็ นสําหรับวัตถุ ของระบบจํานวนวัตถในฐานข้ อมล ุ ู 32,768จํานวนโมดล (รวมทั้ งฟอร์ มและรายงานที่ต้ังค่ า ู 1,000คณสมบัติ HasModule เป็ น True) ุจํานวนอักขระของชื่อวัตถุ 64จํานวนอักขระของรหัสผ่ าน 20จํานวนอักขระของชื่อผู้ใช้ หรือชื่อกล่ ม ุ 20จํานวนผ้ ูใช้ งานพร้ อมกัน 255ตารางที่ 1-3 สเปคตาราง แอตทริบิวต์ ค่ าสงสดู ุจํานวนอักขระของชื่อตาราง 64จํานวนอักขระของชื่อเขตข้ อมล ู 64จํานวนเขตข้ อมลในหนึ่งตาราง ู 255จํานวนตารางทีเ่ ปิ ด ่ 2048 จํานวนจริ งอาจน้อยกวานี้ เนื่องจากตาราง ่ อาจถูกเปิ ดอยูภายในด้วย Accessขนาดตาราง ิ ่ ่ ํ 2 กกะไบต์ ลบด้วยชองวางที่จาเป็ นสําหรับวัตถุ ของระบบจํานวนอักขระในเขตข้ อมล Text หนึ่งเขตข้ อมล ู ู 255  ่ ่จํานวนอักขระในเขตข้ อมล Memo หนึ่งเขต 65,535 เมื่ อป้ อนข้อมูลผานสวนติดตอผูใช้ ู ่ ้ข้ อมลู ิ ่ 2 กกะไบต์เมื่อป้ อนข้อมูลผานทางการเขียน โปรแกรมขนาดของเขตข้ อมล OLE Object ู ิ 1 กกะไบต์จํานวนดัชนีของตารางหนึ่งตาราง 32จํานวนเขตข้ อมลของดัชนีหนึ่งดัชนี ู 10จํ า นวนอั ก ขระของข้ อ ความตรวจสอบหนึ่ ง 255ข้ อความจํานวนอักขระของกฎการตรวจสอบหนึ่งกฎ 2,048
    • 1-15ตารางที่ 1-3(ต่ อ) สเปคตาราง แอตทริบิวต์ ค่ าสงสด ู ุจํ า นวนอั ก ขระของคํ า อธิ บ ายตารางหรื อ เขต 255ข้ อมลหนึ่งคําอธิบาย ูจํานวนอักขระของระเบียนหนึ่งระเบียน (ยกเว้ น 4,000เขตข้ อมล Memo และ OLE Object) เมื่อ ูคณสมบัติ การบีบ Unicode ของเขตข้ อมลถกตั้ง ุ ู ูค่ าเป็ น ใช่จํ า นวนอั ก ขระของการตั้ ง ค่ า คณสมบั ติ เ ขต ุ 255 ข้ อมล ูตารางที่ 1-4 สเปคแบบสอบถาม แอตทริบิวต์ ค่ าสงสด ู ุจํานวนของความสั มพันธ์ ทบังคับใช้ ี่ ่ 32 ตอตาราง ลบด้วยจํานวนของดัชนี ที่อยูใน ่ ตารางนั้ นสําหรับเขตข้อมูลหรื อการรวมของเขต ่ ี่ ข้อมูลที่ไมเกยวข้องในความสัมพันธ์*จํานวนของตารางในแบบสอบถาม 32*จํานวนของการรวมในแบบสอบถาม 16*จํานวนเขตข้ อมลในชดระเบียน ู ุ 255ขนาดของชดระเบียน ุ ิ 1 กกะไบต์ข้ อจํากัดของการเรียงลําดับ ่ อักขระ 255 ตัวในเขตข้อมูลอยางน้อยหนึ่ งเขต ข้อมูลจํานวนของระดับแบบสอบถามทีซ้อนกัน่ 50*จํ า นวนอั ก ขระของเซลล์ ใ นตารางออกแบบ 1,024แบบสอบถามจํานวนอักขระของพารามิเตอร์ ในแบบสอบถาม 255พารามิเตอร์จํา นวนของตั ว ดํ าเนิ น การ AND ในคํา สั่ ง 99*WHERE หรือ HAVINGจํานวนอักขระของคําสั่ ง SQL ประมาณ 64,000* ่ ่ ้*คาสู งสุ ดอาจตํ่ากวานี้ ถาแบบสอบถามมีเขตข้อมูลการค้นหาที่มีหลายคา ่
    • 1-16ตารางที่ 1-5 สเปคฟอร์มและรายงาน แอตทริบิวต์ ค่ าสงสด ู ุจํานวนอักขระของปายชื่อหนึ่งปาย ้ ้ 2,048จํานวนอักขระของกล่ องข้ อความหนึ่งกล่ อง 65,535ความกว้ างของฟอร์ มหรือรายงาน 22 นิ้ว (55.87 เซนติเมตร)ความสงของส่ วน ู 22 นิ้ว (55.87 เซนติเมตร)ความสงของส่ วนทั้งหมดรวมส่ วนหัวของส่ วน ู 200 นิ้ว (508 เซนติเมตร)(ในมมมองออกแบบ) ุจํานวนระดับของฟอร์ มหรือรายงานทีซ้อนกัน ่ 7จํ า นวนเขตข้ อ มลหรื อ นิ พ จน์ ที่ คุ ณสามารถ ู 10เรียงลําดับหรือจัดกล่ มในรายงาน ุ ่ ่จํานวนส่ วนหั วและส่ วนท้ ายของรายงานหนึ่ ง สวนหั ว /สวนท้ า ยรายงาน 1 สวน่ฉบับ ่ ่ สวนหั ว /สวนท้ า ยหน้ า 1 ่ สวน สวนหัว/สวนท้ายกลุ่ม 10 สวน ่ ่ ่จํานวนหน้ าทีถูกพิมพ์ในรายงานหนึ่งฉบับ ่ 65,536จํ า นวนตั ว ควบคมและส่ วนที่ คุ ณสามารถ ุ 754เพิมเติมตลอดการใช้ งานของฟอร์ มหรือรายงาน ่จํานวนอักขระในคําสั่ ง SQL ที่ใช้ ในคณสมบัติ ุ 32,750Recordsource หรื อ Rowsource ของฟอร์ มรายงาน หรือตัวควบคม (ทั้ง .accdb และ .adp) ุตารางที่ 1-6 สเปคแมโคร แอตทริบิวต์ ค่ าสงสด ู ุจํานวนแอคชันของแมโคร 999จํานวนอักขระของเงื่อนไข 255จํานวนอักขระของข้ อคิดเห็น 255จํานวนอักขระในอาร์ กวเมนต์ ของแอคชัน ิ 255
    • 1-177. สเปคของโครงการใน Access 2007 รายการเฉพาะในโครงการฐานข้อมูล Access 2007 มีสเปคของโครงการ 2 ดังนี้ตารางที่ 1-7 สเปคทัวไป ่ แอตทริบิวต์ ค่ าสงสด ู ุจํานวนวัตถของโครงการ Access (.adp) ุ 32,768จํ า นวนโมดล (รวมทั้ ง ฟอร์ มและรายงานที่ ต้ั ง ค่ า ู 1,000คณสมบัติ HasModule เป็ น True) ุจํานวนอักขระของชื่อวัตถุ 64จํานวนคอลัมน์ ของตารางหนึ่งตาราง 250 (Microsoft SQL Server 6.5) 1024 (Microsoft SQL Server 7.0 2000 และ 2005)ตารางที่ 1-8 สเปคฟอร์มและรายงาน แอตทริบิวต์ ค่ าสงสด ู ุจํานวนอักขระของป้ ายชื่อหนึ่งป้ าย 2,048จํานวนอักขระของกล่องข้ อความหนึ่งกล่อง 65,535ความกว้ างของฟอร์ มหรือรายงาน 22 นิ้ว (55.87 เซนติเมตร)ความสงของส่ วน ู 22 นิ้ว (55.87 เซนติเมตร)ความสงของส่ วนทั้งหมดรวมส่ วนหั วของส่ วน (ใน ู 200 นิ้ว (508 เซนติเมตร)มมมองออกแบบ) ุจํานวนระดับของฟอร์ มหรือรายงานทีซ้อนกัน ่ 7จํานวนเขตข้ อมลหรื อนิพจน์ ที่คุณสามารถเรี ยงลําดับ ู 10หรือจัดกล่มในรายงาน ุจํานวนส่ วนหัวและส่ วนท้ ายของรายงานหนึ่งฉบับ ส่ ว น หั ว / ส่ ว น ท้ า ย ร า ย ง า น 1 ส่ ว น ส่ ว น หั ว / ส่ ว น ท้ า ย ห น้ า 1 ส่ ว น ่ ่ สวนหัว/สวนท้ายกลุม 10 สวน่ ่จํานวนหน้ าทีถูกพิมพ์ในรายงานหนึ่งฉบับ ่ 65,536จํ า นวนตั ว ควบคมและส่ วนที่ คุ ณสามารถเพิ่ ม เติ ม ุ 754ตลอดการใช้ งานฟอร์ มหรือรายงานจํ า นวนอัก ขระในคํา สั่ ง SQL ที่ ใ ช้ ใ นคณสมบั ติ ุ 32,750Recordsource หรือ Rowsource ของฟอร์ ม รายงานหรือตัวควบคม (ทั้ง .accdb และ .adp) ุ2 Http://office.microsoft.com/th-th/access
    • 1-18ตารางที่ 1-9 สเปคแมโคร แอตทริบิวต์ ค่ าสงสด ู ุจํานวนของแอคชันในแมโคร 999จํานวนอักขระของเงื่อนไข 255จํานวนอักขระของข้ อคิดเห็น 255จํานวนอักขระในอาร์ กวเมนต์ ของแอคชัน ิ 2558. หลักการออกแบบฐานข้ อมลทีดี ู ่ ในกระบวนการออกแบบฐานข้อ มู ล ที่ ดี นั้ น มี ห ลัก การบางอยางเป็ นแนวทางในการ่ดําเนินการ ดังนี้ ่ ่ ่ 1. ข้อมูลซํ้ า หรื อที่เรี ยกวาข้อมูลซํ้ าซ้อน ไมใชสิ่ งที่ดี เนื่องจากเปลืองพื้นที่และอาจทํา ิ ิให้มีขอผิดพลาดเกดขึ้ นรวมถึงเกดความไมสอดคล้องกน ้ ่ ั 2. ความถูกต้องและความสมบูรณ์ของข้อมูลเป็ นสิ่ งสําคัญ ถ้าฐานข้อมูลมีขอมูลที่ไม่ ้ ่ถูกต้อง รายงานตางๆ ที่ดึงข้อมูลจากฐานข้อมูลจะมีขอมูลที่ไม่ถูกต้องตามไปด้วย สงผลให้การ ้ ่ ่ ่ตัดสิ นใจตาง ๆ ที่ได้กระทําโดยยึดตามรายงานเหลานั้ นจะไมถูกต้องด้วยเชนกน่ ่ ั ดังนั้ น หลักการออกแบบฐานข้อมูลที่ดี คือ ่ ่ 1. แบงข้อมูลของคุณลงในตารางตาง ๆ ตามหัวเรื่ องเพื่อลดการซํ้ าซ้อนกนของข้อมูล ั ่ 2. ใสข้อมูลที่จาเป็ นลงใน Access เพื่อรวมข้อมูลในตารางตางๆ เข้าด้วยกนตาม ํ ่ ัต้องการ ่ ั 3. ชวยสนับสนุนและรับประกนความถูกต้องและความสมบูรณ์ของข้อมูล ่ 4. ตอบสนองตอความต้องการในการประมวลผลข้อมูลและการรายงาน9. กระบวนการออกแบบ กระบวนการออกแบบประกอบด้วยขั้นตอนตอไปนี้ ่ ํ 1. กาหนดวัตถุประสงค์ของฐานข้อมูล 2. ค้นหาและจัดระเบียบข้อมูลที่ตองการ รวบรวมข้อมูลทุกชนิ ดที่ตองการบันทึกลง ้ ้ ่ในฐานข้อมูล เชน ชื่อผลิตภัณฑ์และหมายเลขใบสังซื้ อ ่ 3. แบงข้อมูลลงในตารางตาง ๆ แบงรายการข้อมูลออกเป็ นกลุ่มหรื อหัวเรื่ องหลัก ๆ ่ ่ ่ ่ ่เชน ผลิตภัณฑ์ หรื อใบสังซื้ อ จากนั้ นแตละหัวเรื่ องจะถูกนํามาทําเป็ นตาราง ่
    • 1-19 4. เปลี่ยนรายการของข้อมูลให้เป็ นคอลัมน์ต่าง ๆ ตัดสิ นใจวาต้องการเกบข้อมูลอะไร ่ ็ ่ ่ในตารางแตละตาราง รายการแตละรายการจะกลายเป็ นเขตข้อมูล และแสดงเป็ นคอลัมน์ในตาราง ่ ่ ่ตัวอยางเชน ตารางพนักงานอาจมีเขตข้อมูลเชน นามสกุล และวันที่จางงาน ้ ์ ์ ่ 5. ระบุคียหลัก เลือกคียหลักของตารางแตละตาราง คียหลัก คือคอลัมน์ที่ใช้เพื่อระบุ ์ ่ ่ ั ่ ่แตละแถวแบบไมซํ้ ากน ตัวอยางเชน หมายเลขผลิตภัณฑ์ หรื อ ID ใบสังซื้ อ ่ ํ ่ 6. กาหนดความสัมพันธ์ของตาราง ดูที่ตารางแตละตารางแล้วพิจารณาวาข้อมูลใน่ ั ่ตารางหนึ่งสัมพันธ์กบข้อมูลในตารางอื่น ๆ อยางไร ให้เพิ่มเขตข้อมูลลงในตารางหรื อสร้างตารางใหมเพื่อระบุความสัมพันธ์ต่าง ๆ ให้ชดเจนตามต้องการ ่ ั 7. การปรับการออกแบบให้ดียงขึ้ น วิเคราะห์การออกแบบ เพื่อหาข้อผิดพลาด สร้าง ิ่ตารางแล้วเพิ่มระเบียนข้อมูลตัวอยางสองสามระเบียน ให้ดูว่าจะได้รับผลลัพธ์ที่ตองการจากตาราง ่ ้นั้ นหรื อไม่ แล้วปรับเปลี่ยนการออกแบบตามต้องการ ่ 8. การใช้กฎ Normalization ใช้กฎ Normalization ข้อมูลเพื่อดูวาตารางมีโครงสร้างที่ถูกต้องหรื อไม่ ปรับเปลี่ยนการออกแบบได้ เมื่อจําเป็ น 9.1 การกําหนดวัตถประสงค์ ของฐานข้ อมล ุ ู เป็ นการดีที่จะเขียนวัตถุประสงค์ของฐานข้อมูลลงบนกระดาษ ได้แก่ การคาดหวังวา ่ ่ ่ ่จะใช้ฐานข้อมูลอยางไร และใครจะเป็ นผูใช้ ตัวอยางเชน ฐานข้อมูลขนาดเล็ก สําหรับธุรกจระดับ ้ ิ ่ ็ครอบครัว อาจเขียนทํานองวา “ฐานข้อมูลลูกค้ามีไว้เกบรายการข้อมูลลูกค้า เพื่อวัตถุประสงค์ในการออกจดหมายและรายงาน” ถ้าฐานข้อมูลซับซ้อนขึ้ นหรื อมีผใช้หลายคน ดังที่เกดขึ้ นอยูบ่อย ๆ ู้ ิ ่ ่ ่ในองค์กร วัตถุประสงค์อาจยาวเป็ นยอหน้าหรื อหลายยอหน้า และควรจะบอกวาใครจะใช้ ่ ่ ็ ่ ิฐานข้อมูล เมื่อใดหรื ออยางไร แนวคิดกคือวา เขียนพันธกจที่เรี ยบเรี ยงไว้ดีแล้วนั้ น จะสามารถใช้อ้างถึงได้ตลอดกระบวนการออกแบบ การมีบนทึกดังกลาวจะชวยให้จดจอกบจุดมุ่งหมายเมื่อ ั ่ ่ ่ ักระทําการตัดสิ นใจในกรณี ต่าง ๆ 9.2 การค้ นหาและการจัดระเบียบข้ อมลทีต้องการ ู ่ เมื่อต้องการค้นหาและจัดระเบียบข้อมูลที่ตองการ ให้เริ่ มต้นกบข้อมูลที่มีอยูเ่ ป็ น ้ ั ่ ็อันดับแรก เชน บันทึกใบสั่งซื้ อในบัญชี หรื อเกบข้อมูลลูกค้าในแบบฟอร์ มกระดาษไว้ในแฟ้ ม ่ ่ ่ ่ ่เอกสาร ให้รวบรวมเอกสารเหลานี้ แล้วทํารายการชนิดของข้อมูล (ตัวอยางเชน แตละชองที่กรอกลงในฟอร์ ม) ถ้าไมมีฟอร์ มใด ๆ อยู่ ให้ลองจินตนาการแทนวากาลังออกแบบฟอร์ มสําหรับการ ่ ่ ํ ่ ่ ่บันทึกข้อมูลลูกค้า ต้องคิดวาจะใสข้อมูลอะไรลงในฟอร์ มนี้ จะสร้างกลองสําหรับกรอกข้อมูล ่ ่ ่ ่ ่ ็อะไรบ้าง ให้ระบุและจดบันทึกรายการเหลานี้ แตละรายการไว้ ตัวอยางเชน สมมติวาคุณเกบรายชื่อลูกค้าไว้ในบัตรดัชนี ให้สารวจบัตรดัชนีเหลานี้ วาในบัตรอาจจะมีรายละเอียดเกยวกบชื่อลูกค้า ที่อยู่ ํ ่ ่ ี่ ั
    • 1-20 ่ ่เมือง รัฐ รหัสไปรษณี ย ์ และหมายเลขโทรศัพท์ โดยสามารถใช้รายการเหลานี้ แตละรายการในการสร้างคอลัมน์ในตารางได้ ในระหวางที่กาลังเตรี ยมรายการนี้ อยู่ ไมต้องเป็ นกงวลวาจะต้องทําให้ได้สมบูรณ์ ่ ํ ่ ั ่ ่ ่แบบในครั้ งแรก ให้แจกแจงแตละรายการเทาที่นึกได้ ถ้าจะมีบุคคลอื่นใช้ฐานข้อมูลนี้ ดวย ให้ลอง ้ ่ถามความคิดเห็นจากบุคคลเหลานั้ นดู ซึ่งสามารถปรับรายการให้สมบูรณ์ยงขึ้ นได้ในภายหลัง ิ่ ่ ่ ในขั้นตอไป ให้พิจารณาชนิดของรายงานหรื อการสงจดหมายที่ตองการสร้างขึ้ นโดย ้ ่ ่ใช้ฐานข้อมูล ตัวอยางเชน ต้องการรายงานการขายของผลิตภัณฑ์ เพื่อแสดงยอดขายตามภูมิภาคหรื อรายงานสรุ ปสิ นค้าคงคลังที่แสดงระดับสิ นค้าคงคลัง นอกจากนี้ ถ้าต้องการสร้างจดหมาย ่ ิแบบฟอร์ มสําหรับสงถึงลูกค้าเพื่อประกาศกจกรรมการขายหรื อนําเสนอข้อเสนอพิเศษตาง ๆ ให้ ่ ่ ่ ่ออกแบบรายงานนี้ ไว้ในใจ แล้วจินตนาการวารายงานจะมีรูปลักษณ์อยางไร จะใสข้อมูลอะไรบ้าง ่ ่ ั ํลงในรายงาน ให้จดแตละรายการไว้ แล้วทําเชนเดียวกนนี้ สาหรับจดหมายแบบฟอร์ มและสําหรับรายงานอื่น ๆ ที่จะสร้างขึ้ น รู ปที่ 1-10 การวางแผนค้นหาและจัดระเบียบข้อมูล ่ ่ เมื่อคิดถึงรายงานและการสงจดหมายที่ตองการสร้าง จะเป็ นการชวยให้การระบุ ้ ่ ่รายการตาง ๆ ที่ตองการให้มีในฐานข้อมูลได้ เชน ถ้าเปิ ดโอกาสให้ลูกค้าสามารถขอรับหรื อขอ ้ ่ยกเลิกการรับข้อมูลลาสุ ดทางอีเมลเป็ นประจํา และต้องการพิมพ์รายชื่อลูกค้าที่ตองการสมัครรับ ้ ่ ่ข้อมูล เมื่อต้องการบันทึกข้อมูลดังกลาวไว้ ให้เพิ่มคอลัมน์ “สงอีเมล” ลงในตารางลูกค้า และให้สามารถตั้ งคาเขตข้อมูลเป็ น ใช่ หรื อ ไมใช่ ให้กบลูกค้าแตละรายได้ ่ ่ ั ่ ํ ่ ข้อกาหนดในการสงข้อความอีเมลถึงลูกค้าเป็ นอีกรายการหนึ่ งที่ตองบันทึกไว้ เมื่อ ้ ่ ่ ่ทราบวาลูกค้าต้องการรับข้อความอีเมล จําเป็ นที่จะต้องทราบที่อยูอีเมลสําหรับการสงข้อความอีเมล ่ ่ ่เหลานี้ ดังนั้ นจึงต้องบันทึกที่อยูอีเมลของลูกค้าแตละรายไว้ดวย ้
    • 1-21 ่ เป็ นเรื่ องสมเหตุสมผลที่จะสร้างแบบตัวอยางของรายงานหรื อรายการผลลัพธ์ แล้ว ่ ่ ่พิจารณาวารายการใดที่ตองการสร้างเป็ นรายงาน ตัวอยางเชน เมื่อต้องการตรวจสอบฟอร์มจดหมาย ้ ่ ่ ่ ่อาจทําให้นึกอะไรได้หลายอยาง ตัวอยางเชน ถ้าต้องการใสคําทักทายที่เหมาะสม ต้องสร้างรายการ ่คําทักทายด้วยสตริ งที่เริ่ มคําขึ้ นต้นจดหมายวา “คุณ” หรื อ “Mr.” “Mrs.” หรื อ “Ms.” และอาจเริ่ มต้นจดหมายแบบทัวไปด้วย “เรี ยน คุณศักดิ์ สิทธิ์ ” แทนที่จะเป็ น “เรี ยน คุณศักดิ์ สิทธิ์ วัชรารัตน์” หรื อ ่ ่ ็ ั“Dear Mr. Saksit” แทนที่จะเป็ น “Dear Mr. Saksit Watchararat” ดังนี้ จึงรู ้วาควรเกบชื่อกบนามสกุลไว้แยกกน ั ่ ประเด็นสําคัญที่ตองจําคือ ควรแตกข้อมูลให้เป็ นสวนเล็กที่สุดที่มีประโยชน์ ในกรณี ้ ่ ่ของชื่ อ เพื่อทําให้นามสกุลพร้ อมใช้งานได้ ควรแบงชื่ อออกเป็ นสองสวน คือชื่ อกบนามสกุล ั ่ ่ ่ ่ตัวอยางเชน เมื่อต้องการเรี ยงลําดับตามนามสกุล การแบงเชนนี้ จะทําให้นามสกุลของลูกค้าถูกเกบ ็ ่แยกตางหาก โดยทัวไป ถ้าต้องการเรี ยงลําดับ ค้นหา คํานวณ หรื อรายงานโดยยึดตามข้อมูลรายการ ่ ็หนึ่งแล้ว ควรเกบข้อมูลรายการนั้ นในเขตข้อมูลของตัวเอง ่ ่ ลองนึ กถึงคําถามที่ ตองการให้ฐานข้อมูลตอบ ตัวอยางเชน มีรายการขายของ ้ ่ ี่ ่ผลิตภัณฑ์เดนที่ปิดรายการขายได้เมื่อเดือนที่แล้วกรายการ ลูกค้าดีที่สุดอาศัยอยูที่ไหน ใครเป็ นผู ้ ่จําหนายผลิตภัณฑ์ที่ขายดี ที่สุด การคิดคําถามเหลานี้ ล่วงหน้าจะชวยให้ไมต้องเพิ่มรายการใน ่ ่ ่ระเบียน 9.3 การแบ่ งข้ อมลลงในตารางต่ าง ๆ ู ่ เมื่ อ ต้อ งการแบงข้อ มู ล ลงในตาราง ให้ เ ลื อ กข้อ มู ล เฉพาะตัว หรื อเรื่ องสํ า คัญ ่ ่ตัวอยางเชน หลังจากค้นหาและจัดระเบียบข้อมูลสําหรับฐานข้อมูลการขายสิ นค้าแล้ว รายการเบื้องต้นอาจเป็ นดังนี้ ่ รู ปที่ 1-11 การแบงข้อมูลเฉพาะตัวหรื อเรื่ องสําคัญลงในตาราง
    • 1-22 ข้อมูลเฉพาะตัวที่สาคัญซึ่ งแสดงในที่น้ ี ได้แก่ ผลิตภัณฑ์ ผูจาหนาย ลูกค้า และใบสัง ํ ้ํ ่ ่ ี่ ัซื้ อ ดังนั้ น จึงสมควรเริ่ มต้นด้วยตาราง 4 ตาราง คือ ตารางหนึ่งสําหรับข้อเท็จจริ งเกยวกบผลิตภัณฑ์ ี่ ั ้ ํ ่ ี่ ัตารางหนึ่ งสําหรับข้อเท็จจริ งเกยวกบผูจาหนาย ตารางหนึ่ งสําหรับข้อเท็จจริ งเกยวกบลูกค้า และตารางหนึ่ งสําหรับใบสั่งซื้ อ ถึงแม้ว่าทั้ งหมดนี้ จะไมใชรายการที่ครบถ้วน แตกเป็ นจุดเริ่ มต้นที่ดี ่ ่ ่ ็สามารถปรับปรุ งรายการนี้ ต่อจนกวาจะมีการออกแบบที่ทางานได้ดี ่ ํ ่ เมื่อได้ตรวจทานรายการสิ่ งตาง ๆ ขั้ นต้นเป็ นครั้ งแรก เราอาจอยากใสรายการ ่ทั้ งหมดลงในตารางเดียวแทนที่จะเป็ นสี่ ตารางดังที่แสดงภาพประกอบไว้ก่อนหน้า จะได้เรี ยนรู ้ว่า ่ ่ ่ทําไมการทําเชนนั้ นจึงไมใชความคิดที่ดี ลองพิจารณาตารางที่แสดงตอไปนี้ ่ ่ ่ รู ปที่ 1-12 ตัวอยางการใสรายการทั้ งหมดลงในตารางเดียว ่ ี่ ั ้ํ ่ ในกรณี น้ ี แตละแถวมีขอมูลเกยวกบผลิตภัณฑ์และผูจาหนายผลิตภัณฑ์น้ น เนื่องจาก ้ ั ่ ้ํ ่ ัเราสามารถมีผลิตภัณฑ์หลายอยางจากผูจาหนายรายเดียวกน ชื่อและที่อยูผจาหนายจึงปรากฏซํ้ าหลา ่ ู้ ํ ่ครั้ ง ทําให้เปลืองเนื้ อที่ดิสก์ การบันทึกข้อมูลผูจาหนายเพียงครั้ งเดียวในตารางผูจาหนาย ซึ่ งแยก ้ํ ่ ้ํ ่ ่ตางหากแล้วเชื่อมโยงมายังตารางผลิตภัณฑ์ จึงเป็ นวิธีแกปัญหาที่ดีกวา ้ ่ ิ ปั ญหาที่สองของการออกแบบนี้ เกดขึ้ น เมื่ อต้องการปรั บเปลี่ยนข้อมูลเกยวกบผู ้ ี่ ั ่ ่ ่ ่ ่ ้ํ ่จําหนาย ตัวอยางเชน สมมติวาต้องการเปลี่ยนที่อยูของผูจาหนาย เนื่องจากที่อยูปรากฏในหลายแหง ่ ่ ่ ่ ัเราอาจเปลี่ยนที่อยูในรายการหนึ่ งแล้วลืมเปลี่ยนอีกรายการโดยไมได้ต้ งใจ การบันทึกที่อยูของผู ้ ่ ่ ้จําหนายไว้ในที่เดียวจะแกปั ญหานี้ ่ เมื่อออกแบบฐานข้อมูล ให้พยายามบันทึกข้อเท็จจริ งแตละอยางเพียงครั้ งเดียวเสมอ ่ ่ ็ ั ่ ่ ่ ่ ้ํ ่ถ้าพบวาตัวเองเกบข้อมูลเดียวกนซํ้ ามากกวาหนึ่ งแหง เชน ที่อยูของผูจาหนายรายหนึ่ง ให้เกบข้อมูล ็ในตารางที่แยกตางหาก ่ สุ ดท้าย สมมติว่ามีเพียงผลิตภัณฑ์เดียวที่ Coho Winery จําหนาย และต้องการลบ ่ ั ่ ็ ้ํ ่ ่ผลิตภัณฑ์น้ นแตต้องการเกบข้อมูลชื่อผูจาหนายและที่อยูไว้ เราจะลบระเบียนผลิตภัณฑ์โดยไม่ ้ํ ่ ่ ่ ่สู ญเสี ยข้อมูลผูจาหนายได้อยางไร คําตอบคือทําไมได้ เพราะวาระเบียนแตละระเบียนมีขอเท็จจริ ง ่ ้ ี่ ั ี่ ั ้ ํ ่ ่เกยวกบผลิตภัณฑ์และเกยวกบผูจาหนายด้วย เราไมสามารถลบอยางหนึ่ งโดยไมลบอีกอยางได้ ถ้า ่ ่ ่ ็ ่ ั ่ต้องการเกบข้อเท็จจริ งเหลานี้ แยกจากกน ต้องแบงตารางออกเป็ นสองตาราง คือ ตารางหนึ่ งสําหรับ
    • 1-23 ้ํ ่ข้อมูลผลิตภัณฑ์ และอีกตารางสําหรับข้อมูลผูจาหนาย การลบระเบียนของผลิตภัณฑ์ควรลบแค่ ี่ ั ่ ่ ่ ี่ ั ้ ํ ่ข้อเท็จจริ งเกยวกบผลิตภัณฑ์เทานั้ น ไมใชข้อเท็จจริ งเกยวกบผูจาหนาย ็ เมื่อได้เลือกเรื่ องที่ จะแทนด้วยตารางแล้ว คอลัมน์ในตารางนั้ นควรเกบเฉพาะ ี่ ั ่ ่ ่ ็ ี่ ัข้อเท็จจริ งเกยวกบเรื่ องนั้ นเทานั้ น ตัวอยางเชน ตารางผลิตภัณฑ์ควรเกบเฉพาะข้อเท็จจริ งเกยวกบ ่ ้ํ ่ ี่ ั ้ ํ ่ ่ ่ผลิตภัณฑ์ เนื่ องจากที่อยูของผูจาหนายเป็ นข้อเท็จจริ งเกยวกบผูจาหนาย ไมใชข้อเท็จจริ งเกยวกบี่ ั ่ผลิตภัณฑ์ ดังนั้ นต้องอยูในตารางผูจาหนาย ้ํ ่ 9.4 การเปลียนรายการข้ อมลให้ เป็ นคอลัมน์ ่ ู ํ เมื่อต้องการกาหนดคอลัมน์ในตาราง ให้พิจารณาวาต้องการข้อมูลใดบ้างในการ ่ติดตามเกยวกบหัวเรื่ องที่บนทึกในตาราง ตัวอยางเชน สําหรับตารางลูกค้านั้ น คอลัมน์ต่าง ๆ ได้แก่ ี่ ั ั ่ ่ชื่อ ที่อยู่ รหัสไปรษณี ย ์ สงอีเมล คําขึ้ นต้นจดหมาย และที่อยูอีเมล จะเป็ นรายการคอลัมน์เริ่ มต้นที่ดี ่ ่ ่ ัแตละระเบี ย นในตารางจะมี ค อลัม น์ ชุ ด เดี ย วกน ดังนั้ น คุ ณ จะสามารถเกบข้อ มู ล ชื่ อ ็ ที่ อ ยู่ ่ ่รหัสไปรษณี ย ์ สงอีเมล คําขึ้ นต้นจดหมาย และที่อยูอีเมลสําหรับแตละระเบียนได้ ตัวอยางเชน ใน่ ่ ่ ่ ่ ่คอลัมน์ที่อยูจะมีขอมูลที่อยูของลูกค้า แตละระเบียนจะประกอบด้วยข้อมูลเกยวกบลูกค้าหนึ่ งราย ้ ี่ ั ่และเขตข้อมูลที่อยูจะประกอบด้วยที่อยูของลูกค้ารายนั้ น ่ ํ เมื่อได้กาหนดชุดของคอลัมน์เริ่ มต้นสําหรับตารางแตละตารางได้แล้ว สามารถ ่ ่ ่ ็ปรับปรุ งรายการคอลัมน์ได้อีก ตัวอยางเชน เป็ นเรื่ องที่ดีที่จะเกบชื่อลูกค้าแยกเป็ นสองคอลัมน์ คือชื่อและนามสกุล เพื่อให้สามารถเรี ยงลําดับ ค้นหา หรื อทําดัชนี ของคอลัมน์เหลานั้ นได้ ในทํานอง ่ ั ่ ่เดียวกน จริ งๆ แล้วที่อยูประกอบด้วยคอมโพเนนต์ที่แยกได้ 5 สวน คือ บ้านเลขที่-ถนน เมือง รัฐ ็รหัสไปรษณี ย ์ และประเทศ/ภูมิภาค และเป็ นเรื่ องสมควรที่จะเกบคอลัมน์แยกกน ตัวอยางเชน ถ้า ั ่ ่ต้องการดําเนินการค้นหา กรอง หรื อเรี ยงลําดับตามจังหวัด จําเป็ นต้องใช้ขอมูลจังหวัดซึ่งเกบในอีก ้ ็คอลัมน์ต่างหาก ่ นอกจากนี้ ยังควรพิจารณาวาฐานข้อมูลจะบรรจุ เฉพาะข้อมูลที่ มาจากแหลง ่ ่ ็ ่ ่ภายในประเทศเพียงอยางเดียว หรื อเกบข้อมูลที่มาจากแหลงตางประเทศด้วย เชน ถ้าวางแผนที่จะ ่ ็ ่ ่เกบที่อยูในตางประเทศ ควรจะมีคอลัมน์ภูมิภาคแทนคอลัมน์รัฐ เนื่องจากคอลัมน์ดงกลาวสามารถ ั ่บันทึกได้ท้ งข้อมูลรัฐภายในประเทศ และภูมิภาคของประเทศ/ภูมิภาคอื่น ๆ อีกทั้ งรหัสไปรษณี ยยง ั ์ัเหมาะสมกวารหัสประจํารัฐ ถ้าคิดจะเกบข้อมูลที่อยูต่างประเทศด้วย ่ ็ ่ ่ รายการตอไปนี้ จะแสดงเคล็ดลับสองสามประการในการกาหนดคอลัมน์ ํ ่ 1. ไม่ ควรรวมข้อมูลจากการคํานวณ ไมควรเกบผลลัพธ์ของการคํานวณไว้ใน ็ ่ตาราง แตสามารถให้ Access 2007 ทําการคํานวณได้เมื่อต้องการดูผลลัพธ์ ตัวอยางเชน สมมติวามี ่ ่ ่ ่รายงานผลิตภัณฑ์ที่ส่ังซื้ อซึ่ งแสดงผลรวมยอยของจํานวนที่สั่งซื้ อสําหรับผลิตภัณฑ์แตละประเภท ่ในฐานข้อมูล อยางไรกตาม จะไมมีคอลัมน์ผลรวมยอยจํานวนที่สั่งซื้ ออยู่ในตาราง แตตาราง ่ ็ ่ ่ ่
    • 1-24 ็ ่ ่ผลิตภัณฑ์จะมีคอลัมน์จานวนที่สงซื้ อซึ่งเกบข้อมูลจํานวนหนวยของแตละผลิตภัณฑ์ในใบสั่งซื้ อไว้ ํ ั่ ่ ่ ่Access 2007 จะใช้ขอมูลดังกลาวในการคํานวณผลรวมยอย เมื่อคุณพิมพ์รายงานในแตละครั้ ง และ ้ ่ ่ ็ ่ผลรวมยอยเองไมควรจะถูกเกบอยูในตาราง ็ ่ 2. เกบข้อมูลในสวนตรรกะที่เล็กที่สุด ถ้าอยากมีเขตข้อมูลหนึ่ งเขตสําหรับชื่อ ่ ั ่ ่เต็ม หรื อชื่อผลิตภัณฑ์ควบคูไปกบรายละเอียดผลิตภัณฑ์ ใสข้อมูลมากกวาหนึ่งชนิดลงในลงในเขต ่ ่ ่ข้อมูลหนึ่ งเขต จะทําให้ยากตอการดึงข้อมูลแตละชนิดออกมาในภายหลัง ให้ลองแตกยอยข้อมูลลง ่ ่เป็ นหนวยเชิงตรรกะ เชน สร้างเขตข้อมูลเฉพาะสําหรับชื่อและอีกเขตหนึ่ งสําหรับนามสกุล หรื อสําหรับชื่อผลิตภัณฑ์ ประเภท และคําอธิบาย ่ ่ รู ปที่ 1-13 การแตกยอยข้อมูลลงเป็ นหนวยเชิงตรรกะ ่ ็ เมื่อคุณปรับปรุ งคอลัมน์ขอมูลในแตละตารางเรี ยบร้อยแล้ว คุณกพร้อมที่จะเลือกคีย ์ ้ ่หลักของตารางแตละตาราง 9.5 การระบคีย์หลัก ุ ในแตละตารางควรจะมี คอลัมน์หรื อชุ ดของคอลัมน์ที่ระบุแตละแถวที่ เกบอยู่ใน ่ ่ ็ ่ ั ่ ั ่ตารางโดยไมซํ้ ากน ซึ่ งมักจะเป็ นหมายเลขการระบุที่ไมซํ้ ากน เชน หมายเลข ID พนักงาน หรื อ ี่ ั ่ ์หมายเลขผลิตภัณฑ์ ในเชิงศัพท์เกยวกบฐานข้อมูลนั้ น ข้อมูลนี้ จะมีชื่อเรี ยกวา คียหลัก ของตาราง ่ซึ่ง Access 2007 จะใช้เขตข้อมูลคียหลักในการเชื่อมโยงข้อมูลจากตารางหลายตารางอยางรวดเร็ ว ์ ่ ัแล้วนําข้อมูลเหลานี้ มารวมกนให้ ่ ั ่ ถ้ามี ตวระบุที่ไมซํ้ ากนสําหรับตารางนั้ นแล้ว เชน หมายเลขผลิตภัณฑ์ซ่ ึ งระบุ ั ่ ัผลิตภัณฑ์ในแค็ตตาล็อกโดยไมซํ้ ากน เราสามารถใช้ตวระบุน้ ันเป็ นคียหลักของตารางได้ แตมี ั ์ ่
    • 1-25เงื่อนไขวาคาในคอลัมน์น้ ี ตองไมเหมือนกนในทุกระเบียนเสมอ เราไมสามารถมีค่าซํ้ ากนในคียหลั ่ ่ ้ ่ ั ่ ั ์ ่ ่ ่ ัได้ ตัวอยางเชน ไมใช้ชื่อคนเป็ นคียหลักเนื่ องจากชื่ออาจซํ้ ากนได้ เป็ นเรื่ องงายที่จะมีคนสองคนซึ่ง ์ ่ ัชื่อเหมือนกนในตารางเดียวกน ั คียหลักต้องมีค่าเสมอ ถ้าคาของคอลัมน์น้ นไมมีหรื อไมทราบคา (คาที่หายไป) จะไม่ ์ ่ ั ่ ่ ่ ่ ่สามารถใช้เป็ นสวนหนึ่งของคียหลักได้ ์ ่ ่ ควรเลือกคียหลักที่คาจะไมเปลี่ยน ในฐานข้อมูลที่ใช้มากกวาหนึ่งตาราง คียหลักของ ์ ่ ์ตารางสามารถใช้เป็ นการอ้างอิงในตารางอื่นได้ ถ้าคียหลักเปลี่ยนแปลง การเปลี่ยนแปลงนั้ นจะมีผล ์ ั ่ ้ ่กบทุกแหงที่อางอิงคียน้ น การใช้คียหลักที่ไมเปลี่ยนแปลงจะลดโอกาสที่คียหลักอาจไมเปลี่ยนให้ ์ ั ์ ์ ่ ั ัตรงกนกบตารางอื่นที่อางถึงคียหลักนั้ น ้ ์ ่ ่ ั บอยครั้ งที่จะมีการใช้หมายเลขที่ไมซํ้ ากนเป็ นคียหลัก ตัวอยางเชน อาจกาหนด์ ่ ่ ํ ่ ั ั ่หมายเลขใบสังซื้ อที่ไมซํ้ ากนให้กบการสังซื้ อแตละครั้ ง วัตถุประสงค์เดียวของหมายเลขใบสังซื้ อนี้ ่ ่ ่ ่ ํคือ เพื่อระบุใบสังซื้ อแตละใบ เมื่อมีการกาหนดแล้ว หมายเลขนี้ จะไมมีการเปลี่ยนแปลง ่ ่ ถ้าไมมีคอลัมน์หรื อชุดคอลัมน์ในใจที่อาจเป็ นคียหลักที่ดีแล้วละก็ ให้ลองพิจารณา ่ ์ ่ใช้คอลัมน์ที่มีชนิดข้อมูลเป็ น AutoNumber เมื่อคุณใช้ชนิดข้อมูล AutoNumber โปรแกรม Access ํ ่ ่ ่2007 จะกาหนดคาให้คุณโดยอัตโนมัติ ตัวระบุเชนนี้ ไมมีความหมาย ไมได้มีขอมูลข้อเท็จจริ งที่ใช้ ่ ้ ่อธิบายแถวที่ระบุ ตัวระบุที่ไมมีความหมายนี้ เหมาะจะใช้เป็ นคียหลักเพราะไมมีการเปลี่ยนแปลงคา ์ ่ ่ ี่ ั ่ ่คียหลักที่ มีขอเท็จจริ งเกยวกบแถว ตัวอยางเชน หมายเลขโทรศัพท์ หรื อชื่ อลูกค้า มีโอกาสที่จะ ์ ้เปลี่ยน เพราะตัวข้อเท็จจริ งเองนั้ นอาจเปลี่ยนแปลงได้ ํ รู ปที่ 1-14 การกาหนดคียหลัก ์ จากรู ป มีอยูบ่อยครั้ งที่คอลัมน์ที่ต้ งคาเป็ นชนิดข้อมูล AutoNumber มักจะสามารถใช้ ่ ั ่ ่เป็ นคียหลักที่ดีได้ เนื่องจากไมมีหมายเลขผลิตภัณฑ์ที่ตรงกนสองรายการ ์ ั ่ ในบางกรณี อาจต้องการใช้เขตข้อมูลอยางน้อยสองเขตข้อมูลรวมกนเป็ นคียหลัก่ ั ์ ่ ่ ็ของตาราง ตัวอยางเชน ตารางรายละเอียดใบสังซื้ อที่เกบรายการใบสังซื้ อควรใช้สองคอลัมน์เป็ นคีย ์ ่ ่หลัก ได้แก่ ID ใบสั่งซื้ อและหมายเลขผลิตภัณฑ์ เมื่อมีการใช้คียหลักมากกวาหนึ่ งคอลัมน์ จะ ์ ่ ่ ์เรี ยกวา คียผสม
    • 1-26 สําหรับฐานข้อมูลยอดขายผลิตภัณฑ์ สามารถสร้างคอลัมน์ AutoNumber สําหรับแต่ละตารางเพื่อใช้เป็ นคียหลักได้ ได้แก่ หมายเลขผลิตภัณฑ์สาหรับตารางผลิตภัณฑ์ ID ใบสั่งซื้ อ ์ ํ ้ํ ่สําหรับตารางใบสั่งซื้ อ ID ประจําตัวลูกค้าสําหรับตารางลูกค้า และ ID ผูจาหนายสําหรับตารางผู ้ ่จําหนาย ่ รู ปที่ 1-15 สร้างคอลัมน์ AutoNumber สําหรับแตละตารางเพื่อใช้เป็ นคียหลักได้ ์ 9.6 การสร้ างความสั มพันธ์ ของตาราง ่ ่ ตอนนี้ เราได้แบงข้อมูลออกเป็ นตารางตาง ๆ แล้ว และต้องการวิธีที่จะนําข้อมูลมา ั ่ ่ ่ ่รวมกนอีกครั้ งได้อยางเหมาะสม ตัวอยางเชน ฟอร์มตอไปนี้ มีขอมูลจากหลายตาราง คือ ้ 1. ตารางลูกค้า 2. ตารางพนักงาน 3. ตารางใบสังซื้ อ ่ 4. ตาราง ผลิตภัณฑ์ 5. ตารางรายละเอียดใบสังซื้ อ ่
    • 1-27 รู ปที่ 1-16 รายละเอียดใบสังซื้ อสิ นค้า ่ Access 2007 เป็ นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ ในฐานข้อมูลเชิงสัมพันธ์ แบง ่ ัข้อมูลออกเป็ นตารางตามหัวเรื่ องแยกจากกน จากนั้ นใช้ความสัมพันธ์ของตารางนําข้อมูลมารวมกน ัตามต้องการ 1. การสร้ างความสั มพันธ์ แบบหนึ่ง-ต่ อ-กล่ม ุ ่ ้ํ ่ ให้พิจารณาตัวอยางนี้ ในฐานข้อมูลการสั่งซื้ อสิ นค้ามีตารางผูจาหนายและตารางผลิตภัณฑ์ เนื่องจากผูจาหนายหนึ่งรายในตารางผูจาหนายสามารถผลิตสิ นค้าจํานวนเทาใดก็ ้ํ ่ ้ํ ่ ่ ้ํ ่ ่ได้ ดังนั้ นผูจาหนายจึงมีผลิตภัณฑ์หลายรายการในตารางผลิตภัณฑ์ ความสัมพันธ์ระหวางตารางผู ้จําหนายและตารางผลิตภัณฑ์จึงเป็ นความสัมพันธ์แบบหนึ่ง-ตอ-กลุ่ม ่ ่ รู ปที่ 1-17 ความสัมพันธ์แบบหนึ่ง-ตอ-กลุ่ม ่
    • 1-28 เมื่อต้องการแสดงความสัมพันธ์แบบหนึ่ ง-ตอ-กลุ่มในการออกแบบฐานข้อมูล ่ให้ใช้คียหลักที่ดาน “หนึ่ ง” ของความสัมพันธ์ แล้วเพิ่มคียหลักนั้ นเข้าไปเป็ นอีกคอลัมน์หรื อหลาย ์ ้ ์ ่ ่คอลัมน์ในตารางของด้าน “กลุ่ม” ของความสัมพันธ์ ตัวอยางเชน ในกรณี น้ ี เราเพิ่มคอลัมน์ ID ผู ้ ่ ้ํ ่จําหนายจากตารางผูจาหนายลงในตารางผลิตภัณฑ์ จากนั้ น Access 2007 จึงสามารถใช้ ID ผู ้ ่ ่ ้ํ ่จําหนายในตารางผลิตภัณฑ์ระบุตาแหนงของผูจาหนายที่ถูกต้องของผลิตภัณฑ์แตละอยาง ํ ่ ่ ้ํ ่ ่ คอลัมน์ ID ผูจาหนายในตารางผลิตภัณฑ์เรี ยกวา Foreign Key ซึ่งเป็ นคียหลัก ์ ้ํ ่ของอีกตารางหนึ่ ง คอลัมน์ ID ผูจาหนายในตารางผลิตภัณฑ์เป็ น Foreign Key เนื่องจากคอลัมน์น้ ี ้ํ ่เป็ นคียหลักในตารางผูจาหนายด้วย ์ ั ่ ์ ั รู ปที่ 1-18 ความสัมพันธ์กนระหวางคียหลักกบ Foreign Key เมื่อรวมตารางที่สมพันธ์กนด้วยการจับคู่ระหวางคียหลักกบ Foreign Key ถ้าไม่ ั ั ่ ์ ัแนใจวาตารางใดควรใช้คอลัมน์ร่ วมกน การระบุความสัมพันธ์แบบหนึ่ง-ตอ-กลุ่มจะทําให้แนใจวา ่ ่ ั ่ ่ ่ตารางสองตารางที่เกยวข้องกนนั้ นต้องใช้คอลัมน์ร่ วมกนจริ ง ี่ ั ั 2. การสร้ างความสั มพันธ์ แบบกล่ม-ต่ อ-กล่ม ุ ุ ่ ให้พิจารณาความสัมพันธ์ระหวางตารางผลิตภัณฑ์และตารางใบสังซื้ อ ่ ่ ใบสั่งซื้ อหนึ่ งใบอาจมีผลิตภัณฑ์สินค้าได้มากกวาหนึ่ งรายการ ในทางตรงกนั ่ข้าม ผลิตภัณฑ์สินค้ารายการหนึ่ งอาจปรากฏในใบสังซื้ อได้หลายใบ ดังนั้ นแตละระเบียนในตาราง ่ ่ใบสังซื้ อจึงอาจมีหลายระเบียนในตารางผลิตภัณฑ์ และในแตละระเบียนของตารางผลิตภัณฑ์กอาจ ่ ็มีหลายระเบียนในตารางใบสั่งซื้ อ ความสัมพันธ์เชนนี้ เรี ยกวาความสัมพันธ์แบบกลุ่ม-ตอ-กลุ่ม ่ ่ ่
    • 1-29 ่ ็เนื่องจากผลิตภัณฑ์หนึ่งอาจอยูในใบสังซื้ อหลายใบ และใบสังซื้ อหนึ่งกอาจมีผลิตภัณฑ์สินค้าหลาย ่ ่รายการ ให้สังเกตวาเมื่อต้องการตรวจหาความสัมพันธ์แบบกลุ่ม-ตอ-กลุ่มในตาราง สิ่ งสําคัญคือ ่ ่ต้องพิจารณาความสัมพันธ์ของทั้ งสองด้าน หัวเรื่ องของสองตาราง ได้แก่ ใบสั่งซื้ อและผลิตภัณฑ์ มีความสัมพันธ์แบบกลุ่ม-ตอ-กลุ่ม ซึ่งเป็ นปั ญหา เมื่อต้องการที่จะเข้าใจปั ญหาดังกลาว ให้ลองนึกภาพวาจะเกดอะไรขึ้ น ่ ่ ่ ิ ่ถ้าจะพยายามสร้างความสัมพันธ์ระหวางสองตารางด้วยการเพิ่มเขตข้อมูลหมายเลขผลิตภัณฑ์ลงใน ่ ่ตารางใบสังซื้ อ เมื่อต้องการมีผลิตภัณฑ์มากกวาหนึ่งรายการตอใบสั่งซื้ อหนึ่งใบ เราต้องใช้ระเบียน ่ ่ ่ในตารางใบสังซื้ อมากกวาหนึ่ งระเบียนตอใบสั่งซื้ อหนึ่ งใบ ต้องทําซํ้ าแถวข้อมูลการสังซื้ อแตละแถ ่ ่ ่ที่สัมพันธ์กบใบสั่งซื้ อใบเดียว ผลที่ได้คือการออกแบบที่ขาดประสิ ทธิ ภาพซึ่งจะนําไปสู่ ขอมูลที่ไม่ ั ้ ่ถูกต้อง ซึ่ งจะพบปั ญหาเดิมถ้าเอาเขตข้อมูล ID ใบสั่งซื้ อไปใสในตารางผลิตภัณฑ์ เมื่อตาราง ่ ่ ่ ้ผลิตภัณฑ์มีระเบียนสําหรับผลิตภัณฑ์แตละอยางมากกวาหนึ่งระเบียน จะแกปั ญหานี้ อยางไร ่ ่ ่ คําตอบคือการสร้างตารางที่สามขึ้ น ซึ่ งมักจะเรี ยกวาตารางเชื่ อมตอ (Junctiontable) ซึ่ งจะแตกความสัมพันธ์แบบกลุ่ม-ตอ-กลุ่มลงเป็ นความสัมพันธ์แบบหนึ่ ง-ตอ-กลุ่มจํานวน ่ ่ ่สองความสัมพันธ์ ให้คุณแทรกคียหลักจากแตละตารางลงในตารางที่สาม ผลที่ได้คือตารางที่สามจะ ์ ่บันทึกแตละรายการหรื ออินสแตนซ์ของความสัมพันธ์ไว้ ่ รู ปที่ 1-19 ตารางเชื่อมตอ (Junction table) คือตารางรายละเอียดใบสังซื้ อ ่ ่ ระเบี ย นในตารางรายละเอี ย ดใบสั่ ง ซื้ อ แตละระเบี ย นจะแทนรายการหนึ่ งบรรทัดของใบสั่งซื้ อ คียหลักของตารางรายละเอียดใบสั่งซื้ อประกอบด้วยเขตข้อมูลสองเขต ์ ่ ่ ่คือ Foreign Key จากตารางใบสังซื้ อและตารางผลิตภัณฑ์ การใช้เขตข้อมูล ID ใบสังซื้ ออยางเดียว ่ไมเพียงพอที่จะเป็ นคียหลักของตารางนี้ เนื่ องจากใบสั่งซื้ อหนึ่ งใบสามารถมีรายการได้หลาย ์
    • 1-30 ั ่ ับรรทัด ID ใบสั่งซื้ อจะซํ้ ากนทุกบรรทัดของใบสังซื้ อ ดังนั้ นเขตข้อมูลนี้ จึงมีคาซํ้ ากน การใช้เขต ่ ่ ็ ่ ่ ัข้อมูล หมายเลขผลิตภัณฑ์อยางเดียวกไมเพียงพอเชนกน เนื่องจากผลิตภัณฑ์สินค้าหนึ่งรายการอาจปรากฏในใบสังซื้ อหลายตอหลายใบ แตถ้าใช้พร้อมกนทั้ งสองเขตข้อมูลกจะให้ค่าที่ไมซํ้ ากนสําหรั ่ ่ ่ ั ็ ่ ั ่แตละระเบียน ในฐานข้อมูลยอดขายผลิตภัณฑ์น้ น ตารางใบสังซื้ อและตารางผลิตภัณฑ์จะไม่ ั ่สั ม พัน ธ์ กันและกนโดยตรง ั แตจะสั ม พัน ธ์ กันโดยอ้อ มผานตารางรายละเอี ย ดใบสั่ ง ซื้ อ ่ ่ความสัมพันธ์แบบกลุ่ม-ตอ-กลุ่มระหวางใบสั่งซื้ อและผลิตภัณฑ์จะแสดงอยูในฐานข้อมูลโดยใช้ ่ ่ ่ความสัมพันธ์แบบหนึ่ง-ตอ-กลุ่ม จํานวนสองความสัมพันธ์คือ ่ ตารางใบสั่งซื้ อและตารางรายละเอียดใบสั่งซื้ อมีความสัมพันธ์แบบหนึ่ ง-ตอ- ่กลุ่ม ใบสั่งซื้ อแตละใบสามารถมีรายการบรรทัดได้มากกวาหนึ่ งรายการ แตรายการบรรทัดแตละ ่ ่ ่ ่ ่ ัรายการจะเชื่อมตอกบใบสังซื้ อเพียงหนึ่งใบเทานั้ น ่ ่ ตารางผลิตภัณฑ์และตารางรายละเอียดใบสั่งซื้ อมีความสัมพันธ์แบบหนึ่ ง-ตอ- ่กลุ่ม ผลิตภัณฑ์แตละรายการสามารถมีบรรทัดรายการหลายบรรทัดที่สัมพันธ์อยูดวยกน แตบรรทัด ่ ่ ้ ั ่ ่ของรายการแตละบรรทัดจะอ้างอิงถึงผลิตภัณฑ์เพียงหนึ่งรายการเทานั้ น ่ ่ ํ จากตารางรายละเอียดใบสังซื้ อ คุณสามารถกาหนดให้มีผลิตภัณฑ์ท้ งหมดใน ั ่ ํใบสังซื้ อเฉพาะใบ นอกจากนี้ คุณยังสามารถกาหนดให้ใบสังซื้ อทุกใบมีผลิตภัณฑ์ใดผลิตภัณฑ์หนึ่ง ่โดยเฉพาะได้ หลังจากรวมตารางรายละเอียดใบสั่งซื้ อแล้ว รายการของตารางและเขตข้อมูลอาจมีลกษณะดังตอไปนี้ ั ่ รู ปที่ 1-20 รายการของตารางและเขตข้อมูล เมื่อมีตารางรายละเอียดใบสังซื้ อ ่
    • 1-31 3. การสร้ างความสั มพันธ์ แบบหนึ่ง-ต่ อ-หนึ่ง ความสัมพันธ์อีกชนิ ดหนึ่ งคือความสัมพันธ์แบบหนึ่ง-ตอ-หนึ่ ง เชน สมมติว่า ่ ่ ี่ ัจําเป็ นต้องบันทึกข้อมูลเกยวกบผลิตภัณฑ์อาหารเสริ มพิเศษชนิ ดหนึ่ งที่จะใช้นอยครั้ งมาก หรื อจะ ้ ั ่ ี่ ่ ่นําไปใช้กบผลิตภัณฑ์เพียงไมกรายการเทานั้ น เนื่ องจากไมจําเป็ นต้องใช้ขอมูลดังกลาวบอยครั้ ง ้ ่ ่และเนื่ องจากการเกบบันทึกข้อมูลในตารางผลิตภัณฑ์อาจสงผลให้เกดพื้นที่ว่างในผลิตภัณฑ์อื่น ๆ ็ ่ ิ ่ ี่ ั ่ ั ่ที่ไมเกยวข้องกบผลิตภัณฑ์น้ ี ให้ใสผลิตภัณฑ์ดงกลาวลงในตารางอื่นแยกตางหาก และเชนเดียวกน ่ ่ ั ักบตารางผลิตภัณฑ์ ให้ใช้หมายเลขผลิตภัณฑ์เป็ นคียหลัก ความสัมพันธ์ระหวางตารางเสริ มนี้ และ ์ ่ ่ตารางผลิตภัณฑ์จะเป็ นความสัมพันธ์แบบหนึ่ง-ตอ-หนึ่ ง สําหรับแตละระเบียนในตารางผลิตภัณฑ์ ่ ั ่นั้ น จะมีระเบียนที่ตรงกนอยูหนึ่ งระเบียนในตารางเสริ ม เมื่อระบุความสัมพันธ์ดงกลาว ตารางทั้ ง ั ่สองตารางจะต้องมีเขตข้อมูลที่ใช้ร่ วมกน ั เมื่ อ ตรวจพบความจํา เป็ นที่ ต ้อ งใช้ ค วามสั ม พัน ธ์ แ บบหนึ่ ง-ตอ -หนึ่ งใน ่ ่ ่ฐานข้อมูล ให้พิจารณาวาสามารถนําข้อมูลจากตารางทั้ งสองมาใสในตารางเดียวได้หรื อไม่ ถ้าไม่ต้องการทําเชนนั้ นด้วยเหตุผลบางอยาง อาจเนื่ องจากจะทําให้เกดพื้นที่ว่างจํานวนมาก รายการ ่ ่ ิ ่ตอไปนี้ แสดงวิธีที่จะใช้ความสัมพันธ์ในการออกแบบ คือ ั ่ ถ้าตารางทั้ งสองตารางนี้ มีหวเรื่ องเดียวกน อาจตั้ งคาความสัมพันธ์ดวยการใช้ ั ้ ัคียหลักเดียวกนในทั้ งสองตาราง ์ ถ้าตารางสองตารางมีหัวเรื่ องที่ต่างกนและมีคียหลักที่ต่างกน ให้เลือกตาราง ั ์ ั ็หนึ่งตาราง (ตารางใดกได้) และแทรกคียหลักของตารางนั้ นลงในอีกตารางหนึ่งเป็ น Foreign Key ์ ํ ่ ่ การกาหนดความสัมพันธ์ระหวางตารางตางๆ จะชวยให้เกดแนใจวาเรามีตาราง ่ ิ ่ ่และคอลัมน์ที่ถูกต้องแล้ว เมื่อมีความสัมพันธ์แบบหนึ่ง-ตอ-หนึ่ งหรื อแบบหนึ่ง-ตอ-กลุ่มอยู่ ตาราง ่ ่ตาง ๆ ที่เกยวข้องจะต้องมีคอลัมน์ร่ วมกนอยางน้อยหนึ่ งคอลัมน์ เมื่อมีความสัมพันธ์แบบกลุ่ม-ตอ- ่ ี่ ั ่ ่กลุ่มอยู่ จะต้องมีตารางที่สามสําหรับแสดงความสัมพันธ์ดงกลาว ั ่ 9.7 การปรับการออกแบบให้ ดียงขึน ิ่ ้ เมื่อมีตาราง เขตข้อมูล และความสัมพันธ์ตามที่ตองการแล้ว ควรสร้างตารางและใส่ ้ข้อมูลตัวอยางแล้วลองทํางานกบข้อมูล เชน สร้างแบบสอบถาม เพิ่มระเบียนใหม่ และอื่น ๆ การทํา ่ ั ่ ่ ่ ิ ่ ่เชนนี้ จะชวยให้เห็นปั ญหาที่อาจเกดได้ชดเจน ตัวอยางเชน อาจต้องการเพิ่มคอลัมน์ที่ลืมแทรกใน ัระหว่างขั้ นตอนออกแบบ หรื ออาจมีตารางที่ควรจะแยกเป็ นสองตารางเพื่อไมให้ซ้ ากน่ ํ ั ให้ดูว่าสามารถใช้ฐานข้อมูลดึ งคําตอบที่ตองการได้หรื อไม่ ให้สร้างฟอร์ มและ ้รายงานอยางคราว ๆ ขึ้ น แล้วดูวาฟอร์ มและรายงานเหลานี้ แสดงข้อมูลที่คุณคาดไว้หรื อไม่ ดูว่ามี ่ ่ ่ ่ข้อมูลที่ซ้ ากนโดยไม่จําเป็ นหรื อไม่ เมื่อพบวามี ให้แกไขการออกแบบเพื่อกาจัดข้อมูลเหลานี้ ํ ั ่ ้ ํ ่ ่ ี่ ่ขณะที่ลองใช้ฐานข้อมูลในขั้นเริ่ มต้น อาจพบสิ่ งที่ตองปรับปรุ ง สิ่ งที่ควรตรวจสอบไมกอยางมี ดังนี้ ้
    • 1-32 1. ลืมคอลัมน์ใดหรื อไม่ ถ้าลืม ข้อมูลนั้ นเป็ นของตารางที่มีอยูแล้วหรื อไม่ ถ้าเป็ น ่ ี่ ัข้อมูลเกยวกบสิ่ งอื่น อาจต้องสร้างตารางอีกตาราง ให้สร้างคอลัมน์สาหรับข้อมูลทุกอยางที่คุณ ํ ่ ่ ็ต้องการติดตาม ถ้าข้อมูลนั้ นไมสามารถคํานวณได้จากคอลัมน์อื่น กเป็ นไปได้อยางยิงที่ตองสร้าง ่ ่ ้เป็ นคอลัมน์ใหม่ ่ 2. มีคอลัมน์ที่ไมจําเป็ นเนื่ องจากสามารถคํานวณจากเขตข้อมูลที่มีอยูแล้วหรื อไม่ ่ถ้ารายการข้อมูลนั้ นสามารถคํานวณได้จากคอลัมน์ที่มีอยู่ ตัวอยางเชน ราคาที่ลดซึ่ งคํานวณจาก ่ ่ราคาขายปลีก การทําแบบนั้ นมักจะดีกวาและเลี่ยงการสร้างคอลัมน์ใหม่ ่ 3. ใสข้อมูลเดี ยวกนซํ้ ากนหลาย ๆ ครั้ งลงในตารางหรื อไม่ ถ้าเป็ นเชนนี้ อาจ ่ ั ั ่จําเป็ นต้องแบงตารางออกเป็ นสองตารางที่มีความสัมพันธ์แบบหนึ่ง-ตอ-กลุ่ม ่ ่ ํ ั 4. มีตารางซึ่งมีเขตข้อมูลจํานวนมาก มีจานวนระเบียนที่จากด และมีเขตข้อมูลวาง ํ ่จํานวนมากในแตละระเบียนหรื อไม่ ถ้ามี ลองนึ กถึงการออกแบบตารางใหมเพื่อให้มีเขตข้อมูล ่ ่น้อยลงและมีระเบียนมากขึ้ น 5. รายการข้อมูลแตละรายการแตกออกเป็ นสวนเล็กที่สุดซึ่ งมีประโยชน์หรื อไม่ ่ ่ถ้าต้องการทํารายงาน เรี ยงลําดับ ค้นหา หรื อคํานวณข้อมูลรายการหนึ่ง ให้ใสข้อมูลนั้ นในคอลัมน์ ่ของตัวเอง 6. แตละคอลัมน์มีขอมูลเกยวกบหัวเรื่ องของตารางหรื อไม่ ถ้าคอลัมน์ไมมีขอมูล ่ ้ ี่ ั ่ ้ ี่ ั ่เกยวกบหัวเรื่ องของตาราง แสดงวาหัวเรื่ องดังกลาวอยูในตารางอื่น ่ ่ 7. ความสัมพันธ์ท้ งหมดระหวางตารางถูกแสดงให้เห็นผานเขตข้อมูลที่ใช้ร่ วมกน ั ่ ่ ัหรื อตารางที่สามหรื อไม่ ความสัมพันธ์แบบหนึ่ง-ตอ-หนึ่ งและแบบหนึ่ง-ตอ-กลุ่มจะต้องมีคอลัมน์ ่ ่รวมกน ความสัมพันธ์แบบหนึ่ง-ตอ-กลุ่มต้องการตารางที่สาม ่ ั ่ การปรับปรุ งตาราง สมมติว่าผลิตภัณฑ์แตละชนิ ดในฐานข้อมูลการขายผลิตภัณฑ์อยู่ในประเภททัวไป ่ ่ ่เชน เครื่ องดื่ม เครื่ องเทศ หรื ออาหารทะเล ตารางผลิตภัณฑ์ควรจะมีเขตข้อมูลที่แสดงประเภทของ ่ผลิตภัณฑ์แตละชนิดด้วย สมมติว่าหลังจากที่ตรวจสอบและปรับปรุ งการออกแบบฐานข้อมูลแล้ว ตัดสิ นใจ ็ ัเกบคําอธิบายประเภทผลิตภัณฑ์พร้อมกบชื่อ ถ้าจะเพิ่มเขตข้อมูล คําอธิ บายประเภท ลงในตาราง ่ ่ผลิตภัณฑ์ คุณต้องอธิ บายซํ้ าแตละประเภทสําหรับแตละผลิตภัณฑ์ที่อยูในประเภทเดียวกน ซึ่ ง ่ ั ่ ่ ้ไมใชวิธีแกปั ญหาที่ดีนก ั ่ ่ ทางแก้ปัญหาที่ดีกวาคือให้ “ประเภท” เป็ นหัวเรื่ องใหมในฐานข้อมูลที่จะติดตามโดยมีตารางและคียหลักเป็ นของตัวเอง จากนั้ นจะสามารถเพิ่มคียหลักจากตารางประเภทให้เป็ น ์ ์Foreign Key ในตารางผลิตภัณฑ์ได้
    • 1-33 ตารางประเภทและตารางผลิ ต ภัณ ฑ์มี ค วามสั ม พัน ธ์ แ บบหนึ่ ง -ตอ -กลุ่ ม นั่น คื อ ่ ่ ่ ่ ่ประเภทหนึ่งอาจมีผลิตภัณฑ์มากกวาหนึ่งอยาง แตผลิตภัณฑ์หนึ่งจะอยูในประเภทเดียวเทานั้ น ่ เมื่อได้ตรวจทานโครงสร้างตาราง ให้มองหากลุ่มที่ซ้ ากน ตัวอยางเชน พิจารณา ํ ั ่ ่ตารางซึ่งมีคอลัมน์ต่อไปนี้ หมายเลขผลิตภัณฑ์ ชื่อ หมายเลขผลิตภัณฑ์1 ชื่อ1 หมายเลขผลิตภัณฑ์2 ชื่อ2 หมายเลขผลิตภัณฑ์3 ชื่อ3 ในที่น้ ี ผลิตภัณฑ์แตละรายการเป็ นกลุ่มของคอลัมน์ที่เกดขึ้ นซํ้ ากนซึ่ งแตละคอลัมน ่ ิ ั ่ ่แตกตางจากคอลัมน์อื่นโดยมีการเพิ่มตัวเลขลงที่ส่ วนท้ายของชื่อคอลัมน์ เมื่อเห็นวามีการใสตัวเลข ่ ่ลงในคอลัมน์ดวยวิธีน้ ี ควรจะคิดแกไขการออกแบบของคุณเสี ยใหม่ ้ ้ ่ ่ การออกแบบดังกลาวมีขอผิดพลาดหลายแหง ประการแรก จะต้องระบุจานวน ้ ํ ิ ํ ัผลิตภัณฑ์ที่มีได้มากสุ ด ทันทีที่มีผลิตภัณฑ์เกนจํานวนที่จากดไว้ ต้องเพิ่มกลุ่มของคอลัมน์ใหมลง ่ในโครงสร้างตาราง ซึ่งเป็ นงานหลักของผูดูแลระบบ ้ ้ํ ่ ่ อีกปั ญหาหนึ่ งคือผูจาหนายสิ นค้าที่มีจานวนผลิตภัณฑ์น้อยกวาจํานวนสู งสุ ดจะทํา ํให้เปลืองพื้นที่ เนื่ องจากคอลัมน์เพิ่มเติมจะเป็ นคอลัมน์ว่าง ข้อผิดพลาดร้ายแรงที่สุดของการ ่ ่ออกแบบนี้ คือจะทํางานหลายอยางได้ยาก เชน การเรี ยงลําดับหรื อการทําดัชนี ของตารางตามหมายเลขผลิตภัณฑ์หรื อชื่อผลิตภัณฑ์ เมื่อใดกตามที่เห็นกลุ่มซํ้ า ให้ตรวจทานการออกแบบอยางละเอียดโดยเน้นที่การแบง ็ ่ ่ ่ ่ตารางออกเป็ นสองตาราง ในตัวอยางข้างต้น จะเป็ นการดีกวาถ้าใช้สองตาราง ตารางหนึ่งสําหรับผู ้ ่ ัจําหนายและอีกตารางสําหรับผลิตภัณฑ์ แล้วเชื่อมโยงกนด้วย ID ผูจาหนาย ้ํ ่ 9.8 การใช้ กฎ Normalization ่่ เราสามารถใช้กฎ Normalization ข้อมูล (บางครั้ งเรี ยกแควา กฎ Normalization) ใน ่ขั้น ตอไปของการออกแบบ การใช้ก ฎเหลานี้ เ พื่อดู ว่าตารางมี โครงสร้ า งที่ ถูก ต้องหรื อไม่ ่ ่ ั ่กระบวนการใช้กฎเหลานี้ กบการออกแบบฐานข้อมูลเรี ยกวาการ Normalizing ฐานข้อมูล หรื อNormalization
    • 1-34 Normalization จะมีประโยชน์มากที่สุดหลังจากที่ได้แสดงรายการข้อมูลทั้ งหมดและ ่ออกแบบเบื้องต้นแล้ว ความคิดคือชวยตรวจสอบให้แนใจวาได้แบงรายการข้อมูลออกเป็ นตารางที่่ ่ ่ ่ ็ ่ ้เหมาะสม สิ่ งที่ Normalization ทําไมได้กคือการตรวจสอบวามีขอมูลที่ถูกต้องทั้ งหมดแล้วตั้ งแตเริ่ ม ่ การใช้กฎ Normalization ไปตามลําดับในแตละขั้ นเพื่อตรวจสอบให้แนใจวาการ ่ ่ ่ ั ั ั ่ออกแบบตรงกบสิ่ งที่รู้จกกนวาเป็ น “รู ปแบบปกติ” โดยรู ปแบบปกติที่ยอมรับกนอยางกว้างขวางมี ั ่อยู่ 5 แบบ นันคือรู ปแบบปกติที่หนึ่ งจนถึงรู ปแบบปกติที่หา ในที่น้ ี จะกลาวถึงรู ปแบบปกติในสาม ่ ้ ่รู ปแบบแรก เนื่องจากเป็ นสิ่ งที่ตองมีสาหรับการออกแบบฐานข้อมูลสวนมาก ้ ํ ่ 1. รู ปแบบปกติที่หนึ่ง รู ปแบบปกติแบบที่หนึ่ งระบุว่าทุกตําแหนงที่แถวและคอลัมน์ตดกนในตาราง ่ ั ั ็ ่ ่ ่ ่ ่ ่ ่ต้องเกบคาเพียงคาเดียว ไมใชรายการของคา ตัวอยางเชน เราไมสามารถมีเขตข้อมูลชื่อ ราคา ไว้ ่ ็ ่ ่เกบราคามากกวาราคาเดียวได้ ถ้าลองนึ กวาตําแหนงที่ตดกนของแถวและคอลัมน์คือเซลล์ แตละ่ ั ั ่ ้ ็ ่เซลล์ตองเกบคาเพียงคาเดียวเทานั้ น ่ ่ 2. รู ปแบบปกติที่สอง ่ ่ รู ปแบบปกติที่สองบังคับวาคอลัมน์แตละคอลัมน์ที่ไมใชคียตองขึ้ นกบคียหลัก ่ ่ ์ ้ ั ์ ่ ่ ่ทั้ งหมด ไมใชเพียงบางสวนของคียหลัก กฎนี้ ใช้เมื่อมีคียหลักซึ่ งประกอบด้วยคอลัมน์มากกวาหนึ่ง ์ ์ ่คอลัมน์ ตัวอยางเชน สมมติว่ามีตารางซึ่ งมีคอลัมน์ต่อไปนี้ โดยที่ ID ใบสั่งซื้ อและหมายเลข ่ ่ ัผลิตภัณฑ์รวมกนเป็ นคียหลัก ์ ID ใบสังซื้ อ (คียหลัก) ่ ์ หมายเลขผลิตภัณฑ์ (คียหลัก) ์ ชื่อผลิตภัณฑ์ การออกแบบนี้ ละเมิดรู ปแบบปกติที่สอง เนื่ องจากชื่ อผลิตภัณฑ์ข้ ึนอยู่กบ ั ่ ่ ัหมายเลขผลิตภัณฑ์ แตไมขึ้ นกบ ID ใบสั่งซื้ อ ดังนั้ นจึงไมขึ้ นกบคียหลักทั้ งหมด ต้องเอาชื่อ ่ ั ์ผลิตภัณฑ์ออกจากตารางเพราะเป็ นของตารางอื่น (ผลิตภัณฑ์) 3. รู ปแบบปกติที่สาม ่ ่ ่ รู ปแบบปกติ ที่สามบังคับวาไมเพียงแตคอลัมน์ที่ไมใชคียตองขึ้ นกบคียหลัก ่ ่ ์ ้ ั ์ ่ ่ ่ ่ ์ ้ทั้ งหมดเทานั้ น แตคอลัมน์ที่ไมใชคียตองเป็ นอิสระจากกนด้วย ั ่ ่ ่ ่ ่ ์ ้ อธิ บายได้อีกอยางวา แตละคอลัมน์ที่ไมใชคียตองขึ้ นกบคียหลักทั้ งหมดและ ั ์ต้องขึ้ นกบคียหลักอยางเดียวเทานั้ น ตัวอยางเชน สมมติวาคุณมีตารางซึ่งมีคอลัมน์ต่อไปนี้ คือ ั ์ ่ ่ ่ ่ ่ หมายเลขผลิตภัณฑ์ (คียหลัก) ์ ชื่อ ราคาขายปลีก ่ สวนลด
    • 1-35 สมมติ ว่าสวนลดขึ้ นกบราคาขายปลีก ตารางนี้ ละเมิดรู ปแบบปกติที่สาม ่ ั ่ ่ ์ ่ ั ่ ่เนื่องจากคอลัมน์ที่ไมใชคียคือสวนลดขึ้ นกบราคาขายปลีกซึ่ งไมใชคอลัมน์คีย ์ ความเป็ นอิสระของ ่ ่ ่ ์ ่ ่คอลัมน์หมายความวาเราควรสามารถเปลี่ยนแปลงคอลัมน์ที่ไมใชคียได้โดยไมมีผลตอคอลัมน์อื่น ่ ่ ็ถ้าคุณเปลี่ยนคาในเขตข้อมูลราคาขายปลีกแล้ว สวนลดกจะเปลี่ยนตามด้วย ดังนั้ นจึงละเมิดกฎ ในกรณี น้ ีควรย้ายสวนลดไปอยูอีกตารางหนึ่งซึ่งมีราคาขายปลีกเป็ นคียอยู่ ่ ่ ์กิจกรรม ่ ่ 1. ให้นกศึกษายกตัวอยางข้อมูลและฐานข้อมูลตาง ๆ ั ่ ั ํ 2. ให้นัก ศึ กษาอานและทําความเข้าใจกบเนื้ อหาข้อมูลและฐานข้อมูล การกาหนด ่ ่หัวข้อในแตละตาราง และสวนประกอบของฐานข้อมูลในโปรแกรม Access 2007 ่ 3. ครู ผสอนยกตัวอยางการจัดทําข้อมูลในตาราง และการออกแบบฐานข้อมูล ู้ 4. แบงกลุ่มนักศึกษาฝึ กปฏิบติการออกแบบฐานข้อมูล และรวมกนอภิปรายผล/ปั ญหา ่ ั ่ ัแบบประเมินผล คําสั่ ง ให้เลือกคําตอบที่ถูกที่สุดเพียงข้อเดียว ่ 1. ในฐานข้อมูล เรี ยกข้อมูลแตละรายการวาอยางไร ่ ่ ก. Tuple ข. Record ค. Attribute ง. Cardinality ั 2. ในฐานข้อมูลเชิงสัมพันธ์ สิ่ งใดที่มีความหมายเทียบได้กบแฟ้ มข้อมูล ก. Tuple ข. Record ค. Attribute ง. Domain ่ ่ ่ ่ 3. ในฐานข้อมูลเชิงสัมพันธ์จะเรี ยกคาที่อยูในแตละเขตข้อมูลวาอะไร ก. Tuple ข. Cardinality ค. Degree ง. Attribute
    • 1-36 ่ ่ ั ่ 4. คาของแอตทริ บิวต์ที่มีความเป็ นเอกลักษณ์ ไมซํ้ าซ้อนกนในแตละทูเพิล สามารนําไปใช้เป็ นคียชนิดใดได้ ์ ก. คียคูแขง ์่ ่ ข. คียหลัก ์ ค. คียนอก ์ ง. ถูกทั้ งข้อ ก. และ ข. ่ 5. ขอบเขตของคาของข้อมูลในแอตทริ บิวต์หนึ่ง ๆ เรี ยกวาอะไร ่ ก. โดเมน ข. คาร์ดินาลลิตี ค. ดีกรี ง. บรรทัดฐาน ่ 6. คียชนิดใดที่เลือกมาเพื่อสร้างความสัมพันธ์ระหวางเอนทิต้ ี ์ ก. คียสารอง ์ ํ ข. คียหลัก ์ ค. คียคูแขง ์่ ่ ง. คียนอก ์ ่ ่ 7. คาวาง หมายถึง คาใด ่ ่ ก. คาที่เป็ นที่วาง (Blank) ่ ่ ข. คาที่เป็ นศูนย์ ่ ่ ค. คาที่อยูนอกกรอบของโดเมน ง. ถูกทั้งข้อ ก. และ ข. ่ ่ 8. ข้อใดไมใชข้อดีของฐานข้อมูลเชิงสัมพันธ์ ก. ผูใช้มองเห็นภาพการจัดเกบข้อมูลได้ง่าย ้ ็ ข. สามารถใช้ภาษาที่ง่ายตอการเรี ยกดูขอมูล ่ ้ ่ ค. สามารถเชื่อมโยงข้อมูลระหวางรี เลชันโดยใช้ Pointer ง. สามารถใช้เครื่ องหมายคํานวณ และเปรี ยบเทียบทางคณิ ตศาสตร์ได้ ่ 9. ข้อใดไม่ใชลักษณะของฐานข้อมูลเชิงสัมพันธ์ ก. ข้อมูลจัดเกบในรู ปของตาราง ็ ข. การเรี ยกใช้ขอมูลต้องเขียนเป็ นโปรแกรม ้ ค. เชื่อมโยงข้อมูลระหวางรี เลชันได้โดยงาย่ ่ ง. จัดการกบข้อมูลได้ง่าย ั
    • 1-37 ่10. คียชนิดใดที่ใช้ประโยชน์ในการเชื่อมโยงข้อมูลระหวางรี เลชัน ์ ์่ ่ ก. คียคูแขง ข. คียนอก ์ ค. คียผสม์ ง. คียสารอง์ ํ