DATABASE
ฐานข้อมูล ( Database) หมายถึง ชุดของข้อมูลที่รวมเอาข้อมูลที่เกี่ยวข้องกันเป็นเรื่องราวเดียวกันรวมกันเป็นกลุ่มหรือเป็นชุดข้อมูล เช่น ฐานข้อมูลนิสิต ฐานข้อมูลค้า และ ฐานข้อมูลวิชาเรียน เป็นต้น ซึ่งข้อมูลเหล่านี้ได้มาจากการบันทึกข้อมูลโดยผู้ใช้ หรือบางข้อมูลอาจจะได้มาจากการประมวลผลข้อมูลแล้วบันทึกข้อมูลกลับไปเก็บที่ตำแหน่งที่ต้องการ
ระบบฐานข้อมูล ( Database System) ความหมายของระบบฐานข้อมูลก็คือ ที่รวมของฐานข้อมูลต่าง ๆ หรือที่รวมของข้อมูลทั้งหมด ซึ่งอาจจะได้จากการคำนวณ หรือประมวลผลต่าง ๆ หรืออาจจะได้จากการบันทึกข้อมูลโดยผู้ใช้ เช่น ระบบฐานข้อมูลงานทะเบียนนิสิตมหาวิทยาลัยทักษิณ ก็จะรวมเอาฐานข้อมูลต่าง ๆ เช่น ฐานข้อมูลวิชาเรียน ฐานข้อมูลนิสิต ฐานข้อมูลอาจารย์ผู้สอน และ ฐานข้อมูลหลักสูตร เป็นต้น ซึ่งรวมกันเป็นระบบฐานข้อมูลของงานทะเบียนนิสิต หรือฐานข้อมูลห้างร้านต่าง ๆ ก็จะประกอบด้วย ฐานข้อมูลสินค้า ฐานข้อมูลลูกค้า ฐานข้อมูลระบบบัญชี ฐานข้อมูลลูกหนี้ และฐานข้อมูลตัวแทนจำหน่าย เป็นต้น
Learning Objectives
เรียนรู้ถึงองค์ประกอบโครงสร้างของระบบฐานข้อมูล ประโยชน์ของฐานข้อมูล รวมถึงต้องรู้วิธีการออกแบบฐานข้อมูล โดยกระบวนการที่เรียกว่า ER Diagram ในการดีไซน์ database
Advantages of Using Databases
1. สามารถลดความซ้ำซ้อนของข้อมูลได้
การเก็บข้อมูลชนิดเดียวกันไว้หลาย ๆ ที่ ทำให้เกิดความซ้ำซ้อน (Redundancy) ดังนั้นการนำข้อมูลมารวมเก็บไว้ในฐานข้อมูล จะชาวยลดปัญหาการเกิดความซ้ำซ้อนของข้อมูลได้ โดยระบบจัดการฐานข้อมูล (Database Management System : DBMS) จะช่วยควบคุมความซ้ำซ้อนได้ เนื่องจากระบบจัดการฐานข้อมูลจะทราบได้ตลอดเวลาว่ามีข้อมูลซ้ำซ้อนกันอยู่ที่ใดบ้าง
2. หลีกเลี่ยงความขัดแย้งของข้อมูลได้
หากมีการเก็บข้อมูลชนิดเดียวกันไว้หลาย ๆ ที่และมีการปรับปรุงข้อมูลเดียวกันนี้ แต่ปรับปรุงไม่ครบทุกที่ที่มีข้อมูลเก็บอยู่ก็จะทำให้เกิดปัญหาข้อมูลชนิดเดียวกัน อาจมีค่าไม่เหมือนกันในแต่ละที่ที่เก็บข้อมูลอยู่ จึงก่อใให้เกิดความขัดแย้งของข้อมูลขึ้น (Inconsistency)
3. สามารถใช้ข้อมูลร่วมกันได้
ฐานข้อมูลจะเป็นการจัดเก็บข้อมูลรวมไว้ด้วยกัน ดังนั้นหากผู้ใช้ต้องการใช้ข้อมูลในฐานข้อมูลที่มาจากแฟ้มข้อมูลต่างๆ ก็จะทำได้โดยง่าย
4. สามารถรักษาความถูกต้องเชื่อถือได้ของข้อมูล
บางครั้งพบว่าการจัดเก็บข้อมูลในฐานข้อมูลอาจมีข้อผิดพลาดเกิดขึ้น เช่น จากการที่ผู้ป้อนข้อมูลป้อนข้อมูลผิดพลาดคือป้อนจากตัวเลขหนึ่งไปเป็นอีกตัวเลขหนึ่ง โดยเฉพาะกรณีมีผู้ใช้หลายคนต้องใช้ข้อมูลจากฐานข้อมูลร่วมกัน หากผู้ใช้คนใดคนหนึ่งแก้ไขข้อมูลผิดพลาดก็ทำให้ผู้อื่นได้รับผลกระทบตามไปด้วย ในระบบจัดการฐานข้อมูล (DBMS) จะสามารถใส่กฎเกณฑ์เพื่อควบคุมความผิดพลาดที่เกดขึ้น
5. สามารถกำหนดความเป็นมาตรฐานเดียวกันของข้อมูลได้
การเก็บข้อมูลร่วมกันไว้ในฐานข้อมูลจะทำให้สามารถกำหนดมาตรฐานของข้อมูลได้รวมทั้งมาตรฐานต่าง ๆ ในการจัดเก็บข้อมูลให้เป็นไปในลักษณะเดียวกันได้ เช่นการกำหนดรูปแบบการเขียนวันที่ ในลักษณะ วัน/เดือน/ปี หรือ ปี/เดือน/วัน ทั้งนี้จะมีผู้ที่คอยบริหารฐานข้อมูลที่เราเรียกว่า ผู้บริหารฐานข้อมูล (Database Administrator : DBA) เป็นผู้กำหนดมาตรฐานต่างๆ
6. สามารถกำหนดระบบความปลอดภัยของข้อมูลได้
ระบบความปลอดภัยในที่นี้ เป็นการป้องกันไม่ให้ผู้ใช้ที่ไม่มีสิทธิมาใช้ หรือมาเห็นข้อมูลบางอย่างในระบบ ผู้บริหารฐานข้อมูลจะสามารถกำหนดระดับการเรียกใช้ข้อมูลของผู้ใช้แต่ละคนได้ตามความเหมาะสม
7. เกิดความเป็นอิสระของข้อมูล
ในระบบฐานข้อมูลจะมีตัวจัดการฐานข้อมูลที่ทำหน้าที่เป็นตัวเชื่อมโยงกับฐานข้อมูล โปรแกรมต่าง ๆ อาจไม่จำเป็นต้องมีโครงสร้างข้อมูลทุกครั้ง ดังนั้นการแก้ไขข้อมูลบางครั้ง จึงอาจกระทำเฉพาะกับโปรแกรมที่เรียกใช้ข้อมูลที่เปลี่ยนแปลงเท่านั้น ส่วนโปรแกรมที่ไม่ได้เรียกใช้ข้อมูลดังกล่าว ก็จะเป็นอิสระจากการเปลี่ยนแปลง
Data Life Cycle Process:
คือ วงจรข้อมูลขององค์กรที่นำฐานข้อมูลมาใช้ โดยปกติข้อมูลมาจากหลายที่ ไม่ว่าจะเป็นจากภายนอกหรือภายในองค์กร หรือทั้งจากลูกค้าและ Supplier โดย Data เหล่านั้นจะถูกนำมาเก็บใน Database ขององค์กรชื่อว่า Data Warehouse ซึ่งเป็น software ที่ใช้เก็บข้อมูล Database ขององค์กรซึ่งเก็บข้อมูลทั้งในอดีตและในปัจจุบัน ซึ่งข้อมูลนั้นจะมีประโยชน์เมื่อนำมาวิเคราะห์ ซึ่งใน Data Warehouse ก็อาจจะมีการทำ Cluster ของข้อมูลในรูปแบบต่างๆให้อยู่ในรูปแบบของ Data Mart เช่น แผนกการตลาดก็จะมีข้อมูลที่เกี่ยวกับการตลาด แผนกขายก็จะมีข้อมูลที่เกี่ยวข้องกับการขาย แต่ทั้ง Data Mart กับ Data Warehouse เป็นข้อมูลที่มาจากแหล่งเดียวกัน และจากนั้นข้อมูลจะถูกนำไปวิเคราะห์
เครื่องมือที่ใช้ในการวิเคราะห์ Database หลักๆมี 2 รูปแบบ
วิธีที่1 คือ การค้นหาความสัมพันธ์ของข้อมูล ซึ่งจะใช้เครื่องมือที่เรียกว่า Query tool/OLAP/Multi Dimentional Analysis
วิธีที่2 คือ การใช้ Data Mining คือ software ที่ใช้ในการค้นหา Pattern ของข้อมูลใน Database
หลังจากที่มีการวิเคราะห์ข้อมูล ก็สามารถที่จะนำมาปรับใช้เพื่อประกอบการตัดสินใจขององค์กร หรือนำมาประยุกต์ใช้เรื่องกลยุทธ์ได้
ความแตกต่างหลักๆระหว่าง 2 วิธีนี้คือ ถ้าเป็น OLAP จะเป็นการหาความสัมพันธ์ระหว่างข้อมูล Aและข้อมูล B เพื่อดูว่าความสัมพันธ์ของมันคืออะไร เช่น อะไรคือความสัมพันธ์ระหว่างยอดขายของยาสีฟันกับยอดขายของสบู่ ซึ่งแบบนี้จะใช้OLAP หรือว่าใช้ Regression แต่ถ้าเป็น Data Mining คือเราไม่ได้มีการตั้งสมมุติฐานอะไรเลย แต่ Software เป็นตัวหา Pattern หาtrend ของข้อมูล หลังจากนั้นข้อมูลเหล่านั้นก็จะใช้ในการประกอบการตัดสินใจ ไม่ว่าจะอยู่ในรูปแบบของ Decision Support หรือ ERP
นิยามและคำศัพท์พื้นฐานเกี่ยวกับระบบฐานข้อมูล
บิท (Bit) หมายถึง หน่วยของข้อมูลที่มีขนาดเล็กที่สุด
ไบท์ (Byte) หมายถึง หน่วยของข้อมูลที่กิดจากการนำบิทมารวมกันเป็นตัวอักขระ (Character)
เขตข้อมูล (Field) หมายถึง หน่วยของข้อมูลที่ประกอบขึ้นจากตัวอักขระตั้งแต่หนึ่งตัวขึ้นไปมารวมกันแล้วได้ความหมายของสิ่งใดสิ่งหนึ่ง เช่น ชื่อ ที่อยู่ เป็นต้น
ระเบียน (Record) หมายถึง หน่วยของข้อมูลที่เกิดจากการนเอาเขตข้อมูลหลาย ๆ เขตข้อมูลมารวมกัน เพื่อเกิดเป็นข้อมูลเรื่องใดเรื่องหนึ่ง เช่น ข้อมูลของนักศึกษา 1 ระเบียน (1 คน) จะประกอบด้วย
รหัสประจำตัวนักศึกษา 1 เขตข้อมูล
ชื่อนักศึกษา 1 เขตข้อมูล
ที่อยู่ 1 เขตข้อมูล
แฟ้มข้อมูล (File) หมายถึงหน่วยของข้อมูลที่เกิดจากการนำข้อมูลหลาย ๆ ระเบียนที่เป็นเรื่องเดียวกันมารวมกัน เช่น แฟ้มข้อมูลนักศึกษา แฟ้มข้อมูลลูกค้า แฟ้มข้อมูลพนักงาน
ส่วนในระบบฐานข้อมูล มีคำศัพท์ต่าง ๆ ที่เกี่ยวข้องดังนี้
เอนทิตี้ (Entity) หมายถึง ชื่อของสิ่งใดสิ่งหนึ่ง ได้แก่ คน สถานที่ สิ่งของ การกระทำ ซึ่งต้องการจัดเก็บข้อมูลไว้ เช่น เอนทิตี้ลูกค้า เอนทิตี้พนักงาน
เอนทิตี้ชนิดอ่อนแอ (Weak Entity) เป็นเอนทิตี้ที่ไม่มีความหมาย หากขาดเอนทิตี้อื่นในฐานข้อมูล
แอททริบิวต์(Attribute) หมายถึง รายละเอียดข้อมูลที่แสดงลักษณะและคุณสมบัติของเอนทิตี้หนึ่ง ๆ เช่น
เอนทิตี้นักศึกษา ประกอบด้วย
- แอทริบิวต์รหัสนักศึกษา
- แอททริบิวต์ชื่อนักศึกษา
- แอททริบิวต์ที่อยู่นักศึกษา
Hierarchy of Data
หน่วยที่เล็กที่สุดของระบบฐานข้อมูลคือ Bit (0,1) ซึ่งเป็นหน่วยที่เล็กที่สุดในคอมพิวเตอร์ → สูงจากกลุ่มของ Bit คือ Byte โดย 8 Bit จะเท่ากับ 1 byte ขนาดของ 1 Byte เท่ากับ 1 ขระตัวอักษร → กลุ่มของ Byte ที่มีความเกี่ยวข้องกัน ก็คือ Field (เช่น ชื่อ นามสกุล ก็คือ Name field) → Record หรือระเบียนข้อมูล คือกลุ่มของ Field ที่มีความเกี่ยวข้องกัน (เช่น ชื่อ นามสกุล รหัส นศ. YMBA-29) → File คือกลุ่มของ Record ที่มีความเกี่ยวข้องกัน ( เช่น file ของนศ. ในวิชานี้ ซึ่งประกอบด้วย record ของนศ. แต่ละคนตาม field ต่างๆ) → Database ซึ่งเป็นกลุ่มของ Files ที่มีความเกี่ยวข้องกัน (เช่น Database ของการลงทะเบียน จะมี files ของวิชาเรียน files นศ. files ของอาจารย์ ซึ่งในแต่ละ file จะมี record ที่เชื่อมโยงกัน เช่น ใน file ของอาจารย์จะมี list ของนศ. ใน file ของนศ. จะมี list ของวิชาเรียน)
Access จะมี record ที่เป็นส่วนของ row (แถว) และ field คือ ส่วนของ column และ file (อีกชื่อหนึ่งของ file คือ table หรือ entity) จะเป็น table ส่วน Database จะเป็นกลุ่มของ file ที่มีความเชื่อมโยงกัน
Database ที่จะเรียนกัน จะเป็น relational database คือ database ที่มีการนำเสนอข้อมูลในรูปแบบของตาราง ซึ่งเป็นความสัมพันธ์ของแถว & ตาราง ซึ่งปัจจุบันเป็น database ที่มีความนิยมมากสุด
Attribute คือ คุณลักษณะที่ใช้อธิบาย entity (file) ซึ่ง attribute ของ file นศ. ก็เช่น course date ในส่วนของ column
Database Foundations (รูปแบบของการเก็บข้อมูลในอดีต)
Card Catalog มีโอกาสซ้ำซ้อนกันได้ง่าย เพราะเวลามีการเปลี่ยนแปลงข้อมูลเดียวกันจากที่หนึ่งแล้วไม่ได้เปลี่ยนจากอีกที่ มันก็จะเกิดความขัดแย้งของข้อมูล มีปัญหาด้านความถูกต้องของข้อมูลเกิดขึ้น เป็นที่มาของระบบฐานข้อมูล
ในอดีตรูปแบบของการเก็บข้อมูลจะขึ้นอยู่กับโปรแกรม ข้อมูลนั้นๆสามารถจะถูกอ่านหรือถูกเขียนได้โดยโปรแกรมที่สร้างมาเพื่อใช้กับข้อมูลนั้นๆ เหมือนกับที่ File Word จะถูกเปิดได้จาก Program Word และข้อมูลนั้นจะไม่มีข้อบังคับด้วยว่าห้ามซ้ำกัน ซึ่งสิ่งเหล่านี้จะไม่เกิดขึ้นในระบบฐานข้อมูลที่ดี Database จะเข้าไปลดความซ้ำซ้อนของข้อมูล รวมไปถึงสร้างความถูกต้องของข้อมูลให้เกิดขึ้น อันนี้เป็นรูปแบบการเก็บข้อมูลเดียวกันจะเก็บซ้ำซ้อนกันได้หลายแผนก ทำให้ในองค์กรไม่สามารถ Share ข้อมูลกันได้ และมีปัญหาเรื่องความถูกต้องของข้อมูล
Problems of Computer based files
Problems with the Traditional File Environment
ปัญหาอย่างแรกที่เจอในระบบฐานข้อมูลแบบเดิมคือ
Data Redundancy and Inconsistency
เมื่อข้อมูลเดียวกันถูกเก็บไว้หลายแหล่ง เวลาที่มีการอัพเดทข้อมูลเดียวกันจากแหล่งหนึ่ง โดยไม่ได้อัพเดทกับอีกแหล่งหนึ่ง ก็จะเกิดความขัดแย้งของข้อมูลเกิดขึ้นและยังมีปัญหาเรื่องของโปรแกรมกับ Data ซึ่งในเรื่องของโปรแกรมกับ Data จะต้องเป็นลักษณะที่ถูกสร้างขึ้นมาโดยเฉพาะจะมีปัญหาเรื่องของ Data ที่ไม่สามารถ Shareได้ และการขาดความยืดหยุ่นในการค้นหาข้อมูล ซึ่ง Function ที่เป็นประโยชน์อย่างมากของระบบฐานข้อมูลคือ Query ซึ่งคือการค้นหาสับเซตของข้อมูล เพื่อดูความสัมพันธ์ของข้อมูล ในรูปแบบของแฟ้มข้อมูลลักษณะเดิมจะทำได้ยากมาก และรวมถึงเรื่องของระบบรักษาความปลอดภัยเนื่องจากข้อมูลจะกระจัดกระจาย ทำให้ยากต่อการรักษาความปลอดภัย
ดังเช่นการที่มีแผนกหลายแผนก เช่น แผนกบัญชี แผนกขาย และแต่ละแผนกก็จะมีข้อมูลของตัวเองที่แตกต่างกัน สมมุติว่า แผนกบัญชีก็มีข้อมูลของลูกค้า A B C D แผนกขายก็มีข้อมูลของลูกค้า A B E G จะเห็นได้ว่ามีข้อมูลลูกค้า A B ที่เหมือนกัน แล้วถ้าเกิดแผนกขายมีการอัพเดทข้อมูลลูกค้า A แล้วแผนกบัญชีไม่มีการอัพเดทข้อมูลลูกค้า A ก็จะเกิดความขัดแย้งความไม่ถูกต้องของข้อมูลเกิดขึ้น และสูญเสียทรัพยากรโดยใช่เหตุในการเก็บข้อมูล เหล่านี้ก็คือปัญหาของการเก็บข้อมูลในรูปแบบเก่า
Database เป็นการ Consolidate ข้อมูลให้มาอยู่ในแหล่งเดียวกัน นั่นคือทุกข้อมูลจะถูกเก็บในแหล่งๆเดียว โดยมี Software ที่ชื่อว่า DBMS เช่น Access, My SQL ทำหน้าที่เป็นตัวกลางระหว่างโปรแกรมต่างๆเพื่อให้เข้าถึงข้อมูล รวมถึงการจัดเก็บและบริหารข้อมูล จะเห็นได้ว่าจากรูปแรกข้อมูลจะมีความกระจัดกระจายและซ้ำซ้อน จะมีปัญหาเรื่องความปลอดภัย แต่พอมาเป็นรูปที่2 ข้อมูลทุกอย่างถูกนำมา Consolidate ให้อยู่ที่เดียวกันและการเข้าถึงข้อมูลนั้นจะเข้าถึงผ่าน DBMS
Database ในปัจจุบันเราเรียกว่า Relational Database คือ Database ที่มี 2 มิติหลักๆ คือมิติของแถว กับมิติของคอลัมน์ ในรูปแบบของ Database ที่นำเสนอข้อมูลในรูปแบบของตาราง ซึ่งใน Database ก็จะมี Record หรือ ระเบียนข้อมูล มี Attribute ซึ่งก็คือ คุณลักษณะของ Entity
ER Diagram
ใน Database อย่างแรกสุดในการสร้าง Database ที่ดีจะต้องเริ่มต้นจาก ER Diagram ซึ่งถ้าเปรียบเทียบ ER Diagram ก็เหมือนกับ Blue Print ของการสร้างบ้าน ซึ่งใน ER Diagram ก็จะมี 3องค์ประกอบหลัก คือ
1. Entity – สิ่งที่เราต้องการเก็บข้อมูลใน Database อาจจะจะเป็นไฟล์ หรือ Table ใน Access ตัวอย่างเช่น ถ้าเก็บข้อมูลของนักศึกษาที่ลงทะเบียนวิชานี้ จะต้องมี Entity คือ นักศึกษา วิชา
2. Attribute – คือคุณลักษณะของ Entity โดย Attribute จะมีค่าเท่ากับ Field หรือ Column ใน Access เป็นคุณลักษณะที่อธิบาย Entity ตัวอย่างเช่น
ถ้ามี Entity นักศึกษา สิ่งที่เป็น Attribute ของ Entity นี้ คือ ชื่อ, นามสกุล, ที่อยู่, ID, เพศ หรืออาจจะมี วันเดือนปีเกิด อีเมลล์ เบอร์โทรศัพท์ เป็นต้น
ถ้ามี Entity อาจารย์ สิ่งที่เป็น Attribute ของ Entity นี้ คือ ชื่อ อายุ เบอร์โทร อีเมลล์ วิชาที่สอน
ถ้ามี Entity วิชาเรียน สิ่งที่เป็น Attribute ของ Entity นี้ คือ ชื่อวิชา รหัสวิชา จำนวนเครดิต
ในแต่ละ Entity จะต้องมีอย่างน้อย 1 Attribute ที่ใช้ในการแยกแยะแต่ละ Record ซึ่ง Attribute นั้นจะต้องมีค่าที่ไม่ซ้ำกันในแต่ละ Record ซึ่ง Attribute นี้ใน Database เรียก Primary key
ชื่อ,นามสกุล ถือว่าเป็น Primary key ที่ไม่ดีเพราะมีการซ้ำกันเยอะ ถ้าเป็น ID จะดีกว่า เพราะเราจะมี ID ที่ไม่ซ้ำกัน (ต้องทำการระบุ primary key ในแต่ละ entity โดยการขีดเส้นใต้)
3. ความสัมพันธ์ (Relationships) หมายถึง ความสัมพันธ์ระหว่างเอนทิตี้ เช่น ความสัมพันธ์ระหว่างเอนทิตี้นักศึกษาและเอนทิตี้คณะวิชา เป็นลักษณะว่า นักศึกษาแต่ละคนเรียนอยู่คณะวิชาใดคณะวิชาหนึ่ง
ในการแสดงความสัมพันธ์ระหว่างเอนทิตี้ เราจะใช้หัวลูกศรเพื่อแสดงความสัมพันธ์ ดังตัวอย่างต่อไปนี้
ตัวอย่างที่ 1 คณะวิชา < --» นักศึกษา (คณะวิชามีความสัมพันธ์กับนักศึกษา)
ในการระบุความสัมพันธ์ระหว่างเอนทิตี้ จะกำหนดโดยใช้หัวลูกศร และหากพิจารณาความสัมพันธ์จากเอนทิตี้นักศึกษาไปยังเอนทิตี้คณะวิชา อาจจะกำหนดความสัมพันธ์ได้ดังนี้
ตัวอย่างที่ 2 คณะวิชา ----> นักศึกษา (นักศึกษาสังกัดอยู่คณะวิชา)
และหากพิจารณาความสัมพันธ์จากเอนทิตี้คณะวิชาไปยังเอนทิตี้นักศึกษา อาจกำหนดความสัมพันธ์ได้ดังนี้
ตัวอย่างที่ 3 คณะวิชา --——» นักศึกษา (คณะวิชาประกอบด้วยนักศึกษา)
จากตัวอย่างที่ 2 จะเห็นได้ว่า นักศึกษา 1 คนจะสามารถสังกัดอยู่ได้เพียง 1 คณะวิชา แต่จากตัวอย่างที่ 3จะเห็นได้ว่า 1 คณะวิชาสามารถประกอบด้วยนักศึกษาหลาย ๆ คน
ความสัมพันธ์ระหว่างเอนทิตี้bold text
แบ่งออกเป็น 3 ประเภท คือ
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-one Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่งที่มีความสัมพันธ์กับข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะหนึ่งต่อหนึ่ง
(1 : 1) ตัวอย่างเช่น นักศึกษากับอีเมลล์ สมมุติฐานว่า นักศึกษา 1 คน มี 1 e-mail และ 1 e-mail เป็นของนักศึกษา 1คน ซึ่งโดยปกติไม่ควรจะมี นอกจากว่าจะเน้นย้ำอะไรบางอย่าง เพราะสามารถรวมมาอยุ่ใน Entity เดียวกันได้ primary key จะเป็นตัวเดียวกัน
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลในเอนทิตี้หนึ่ง ที่มีความสัมพันธ์กับข้อมูลหลาย ๆ ข้อมูลในอีกเอนทิตี้หนึ่ง ในลักษณะ (1:m) ตัวอย่างเช่น อาจารย์ 1คนสอนได้หลาย class แต่ 1 class ต้องมีอาจารย์ 1 คน ซึ่งอาจารย์ คือ one และ class คือ many ซึ่งนี่คือความสัมพันธ์แบบ one to many *จำไว้ว่า*เมื่อมีความสัมพันธ์ one to many ให้เอา primary key ของฝั่ง one ไปใส่ใน many ในฐานะที่เป็น Foreign keys (โดยอาจารย์จะเป็น foreign keys ของ class) ก็คือ primary key ของ table นึงที่ปรากฎในอีก table โดยหน้าที่หลักของ Foreign key คือ คอยเชื่อมโยง entity เข้าด้วยกัน การเชื่อมโยงแต่ละ table ใน database จะผ่านความสัมพันธ์ระหว่าง primary key และ foreign key
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-many Relationships) เป็นการแสดงความสัมพันธ์ของข้อมูลสองเอนทิตี้ในลักษณะกลุ่มต่อกลุ่ม (m:m) ตัวอย่างเช่น นักศึกษา1 คนลงได้หลายวิชา และใน 1วิชามีนักศึกษาได้หลายคน
เวลาดีไซน์ Database ความสัมพันธ์ที่พึงประสงค์คือ ความสัมพันธ์แบบ One to Many *สำคัญ การเชื่อมโยง 2 entity จะต้องสร้าง table ขึ้นมาตรงกลางที่เรียกว่า Bridge table และนำเอา primary key ของทั้ง 2 table เข้ามาเป็น primary key ของ bridge table ซึ่งความสัมพันธ์ระหว่าง 3 table จะเป็น one to many และ many to one
ตัวอย่างการใช้งาน Microsoft Access
< Hint: มีข้อสอบแน่นอน 1 ข้อเรื่องของ E-R Diagram >
เปิดโปรแกรม Microsoft Access version 2007 (Thai Edition) จะพบหน้าจอ ให้ทำการตั้งชื่อ database ก่อนเป็นอันดับแรก ( อยู่ในวงกลมสีแดง ) ให้ชื่อว่า Registration และ click create จะพบหน้าจอต่อไป ดังในภาพล่าง
จากนั้นให้ทำการตั้งชื่อ Entity โดยการเข้าไปที่ มุมมอง (view) แล้วเลือก มุมมองออกแบบ (design view) จะมีหน้าต่างขึ้นมาให้ตั้งชื่อ Entity ทำการตั้งชื่อว่า Students เสร็จแล้วคลิ๊กคำว่า “ตกลง” จะได้ Table ที่มีชื่อว่า Students (สังเกตทางซ้ายมือจะเพิ่มขึ้นมา 1 Table)
ภายใน Table ที่ชื่อ Students จะต้องใส่ชื่อของข้อมูลที่ต้องการระบุ (data definition) ทั้งหมดใน Entity นี้ เช่น รหัส ชื่อ นามสกุล วันเกิด รูปภาพ ที่อยู่ professor ID ฯลฯ และเลือกชนิดของข้อมูลของแต่ละตัว ซึ่งแต่ละชนิดข้อมูลมีความหมาย ดังนี้
Text จะมีความยาวได้ไม่เกิน 256 ตัวอักษร เช่น ชื่อ นามสกุล, ID, ตัวเลข (เพราะไม่ได้ใช้ในการคำนวณ)
Memo จะมีความยาวได้มากกว่า 256 ตัวอักษร
Number ใช้กรณีที่เป็นตัวเลขที่มีความหมาย เช่น ราคา, เครดิตวิชาเรียน (เพราะนำไปคำนวณได้)
Date/Time ใช้เก็บข้อมูลที่เป็นวันเดือนปี ซึ่งสามารถคำนวณอายุได้
Currency ใช้เกี่ยวกับข้อมูลที่เป็นหน่วยเงินต่างๆ
AutoNumber จะทำการรันอัตโนมัติเวลาที่มีการสร้างแถวใหม่
Yes/No ใช้กรณีมีแค่ 2 คำตอบ คือ ไม่ Yes ก็ No
OLE Object ใช้เวลาที่เราจะ Attach ไฟล์ต่างๆ รวมไปถึงรูปภาพไฟล์วีดีโอต่างๆ
Hyperlink จะเป็นข้อมูลที่เกี่ยวข้องกับ Link เช่น E-Mail address, Website
Attachment สามารถแนบไฟล์ต่างๆ ลงในฐานข้อมูลได้
เมื่อใส่เขตข้อมูล ชนิดข้อมูล รวมถึงการกำหนด Primary key เสร็จแล้ว จะได้ตารางสำหรับใส่ข้อมูลเปล่าขึ้นมา แต่อย่าเพิ่งใส่ข้อมูลอะไรลงไป แต่ให้ทำการสร้าง Table ถัดไป ซึ่งใช้วิธีการสร้างแบบเดียวกับ Table แรก อีก Table 3 Table โดยใช้ชื่อว่า Professors, Course และ Registrations (เพื่อเชื่อมระหว่าง Students กับ Course) ดังภาพล่าง โดยในทุก Entity นี้ จะต้องมีการกำหนด Primary key 1 ตัว ยกเว้น Table Registrations ที่สร้างเพิ่มขึ้นมา เพื่อเปลี่ยนรูปแบบความสัมพันธ์ของ Students กับ Course ให้กลายเป็น one-to-many จากเดิม many-to-many
เมื่อสร้าง Table ทั้งสี่เสร็จแล้ว ให้ไปที่ เครื่องมือฐานข้อมูล > ความสัมพันธ์
จะมี Pop up ชื่อ แสดงตาราง ขึ้นมา เพื่อให้เราเลือก Table ที่ต้องการแสดงความสัมพันธ์ ให้ทำการเลือกทั้ง 4 ตารางจะพบว่า Table ที่เลือก จะมาอยู่ในหน้าเดียวกัน แต่ยังไม่มีการโยงความสัมพันธ์กันให้ทำการเลือกโยงความสัมพันธ์โดยการลากเชื่อม Primary key ไปหา Foreign key ของอีก Table เช่น จะสร้างความสัมพันธ์ระหว่าง professor และ student ให้ลาก professor ID ที่เป็น primary key ไปไว้ในอีก entity (จะพบหน้าต่างใหม่ ถามว่าต้องการสร้างความสัมพันธ์ของ professor ID ใน professor table กับ professor ID ใน student table หรือไม่ ให้ทำการเลือก create ซึ่งความสัมพันธ์จะแสดงเป็น one to many) ส่วน Student ก็ดึงไปยัง registration ซึ่งต้องมั่นใจว่ามัน match กัน และ create ก็จะได้ผลลัพธ์ออกมา
การคลิก Enforce differential entity หมายความว่า ข้อมูลของ professor จะต้องมีใน professor table ก่อนที่จะปรากฎใน course table or student table
หลังจากทำการสร้างความสัมพันธ์กันเรียบร้อยแล้ว ให้ไปทำการลงข้อมูล โดยการดับเบิ้ลคลิ๊กที่ Table ทั้ง 3 เพื่อทำการลงข้อมูล สังเกตเครื่องหมายบวกด้านหน้าตาราง ให้ทำการคลิ๊กเลือก เพื่อใส่ข้อมูลในกรณีที่เป็น one-to-many
เมื่อลงข้อมูลทั้งหมดเสร็จแล้ว ขั้นตอนต่อไป คือ การออกแบบสอบถาม (Query) จะปรากฏหน้าต่างใหม่
ให้ทำการเลือกตารางที่เกี่ยวข้องกับแบบสอบถามที่ต้องการ จะพบกล่อง Table แสดงขึ้นมา ลักษณะเดียวกับตอนที่เลือกแสดงความสัมพันธ์ หลังจากนั้นให้ทำการเลือกข้อมูลที่ต้องการจะทำแบบสอบถาม โดยการเลือกหัวเรื่องข้อมูลจากเขตข้อมูล
อย่างเช่น ต้องการให้ list ข้อมูลวิชาที่มีนักศึกษาลงเรียน โดยจะสามารถเลือกแสดงหรือไม่ก็ได้ด้วยการติ๊กเครื่องหมายถูก ส่วนเกณฑ์ ( Syntax ) คือ การเลือกข้อมูลเฉพาะ เช่น ต้องการแสดงเฉพาะวิชา MIS ให้พิมพ์ว่า *MIS* ในช่องเกณฑ์ หลังจากนั้นให้ทำการดึงข้อมูลจากสิ่งที่เราเลือกไว้โดยการกดเครื่องหมายอัศเจรีย์ทางด้านบนของ Toolbar จะพบข้อมูลที่เราต้องการทั้งหมดออกมา ก็เป็นอันเสร็จสมบูรณ์
Note :
1. Primary key ในแต่ละ Entity เมื่อมีการแสดงความสัมพันธ์กับ Entity อื่น Entity อื่นนั้น จะต้องมี Foreign key เป็นชื่อเดียวกับ Primary key ด้วย
2. ในกรณีที่มีความสัมพันธ์ในลักษณะของ many-to-many จะต้องมีการสร้าง Table ขึ้นมาเพิ่ม เพื่อเปลี่ยนจาก many-to-many เป็น one-to-many โดยที่ใน Table ใหม่นี้จะมี Primary key อย่างน้อย 2 อัน
ตัวอย่างที่ 1italic text
เพื่อฝึกหัดการสร้าง E-R Diagram ต้องเริ่มจากกระดาษก่อน เช่น ต้องการสร้าง database ของค่ายหนัง ก็ต้องจะมี
ผู้กำกับ : DirectorID, DirectorName, AssistDirector
หนัง : MovieID, MovieName, Date, Rate
นักแสดง : ID, ActorName, ActorSurname, Gender, Role
สถานที่ : LocateID, LocateName, Province
หลังจากนั้นก็ระบุความสัมพันธ์
หนัง 1 เรื่อง มีนักแสดงได้หลายคน นักแสดง 1 คนก็แสดงหนังได้หลายเรื่อง เป็น many-to-many
( ต้องทำการสร้าง Table เพิ่ม เพื่อเปลี่ยนให้เป็นแบบ one-to-many )
ผู้กำกับ 1 คน กำกับหนังหลายเรื่อง หนัง 1 เรื่องมีผู้กำกับ 1 คน (สมมติ ขึ้นกับสมมติฐาน) เป็น one-to-many
( เมื่อเกิด one-to-many ต้องนำ primary key ของด้าน one ไปเป็น foreign key ของด้าน many )
หนัง 1 เรื่อง มีได้หลายโลเคชั่น 1 โลเคชั่นถ่ายหนังได้หลายเรื่อง
( ต้องทำการสร้าง Table เพิ่ม เพื่อเปลี่ยนให้เป็นแบบ one-to-many
ตัวอย่างที่ 2
เพื่อฝึกหัดการสร้าง E-R Diagram ต้องเริ่มจากกระดาษก่อน เช่น ต้องการสร้าง database ของร้านอาหาร ก็ต้องจะมี
อาหาร : FoodID, FoodName, Price, LevelTest
ร้าน : RestaurantID, RestaurantName, RestaurantHour, RestaurantLocattion
ลูกค้า : CustomerID, CustomerName
พนักงาน : OfficerID, OfficerName, OfficerPosition
หลังจากนั้นก็ระบุความสัมพันธ์
ร้านอาหาร 1 ร้าน มีอาหารได้หลายชนิด อาหาร 1 ชนิด ก็มีอยู่ได้หลายร้าน เป็น many-to-many
( ต้องทำการสร้าง Table เพิ่ม เพื่อเปลี่ยนให้เป็นแบบ one-to-many )
ลูกค้า 1 คน ใช้ร้านอาหารได้หลายร้าน ร้านอาหาร 1 ร้านก็ให้บริการลูกค้าได้หลายคน เป็น many-to-many
( ต้องทำการสร้าง Table เพิ่ม เพื่อเปลี่ยนให้เป็นแบบ one-to-many )
พนักงาน 1 คน ทำงานได้ 1 ร้าน แต่ร้านอาหาร 1 ร้าน มีพนักงานได้หลายคน เป็น many-to-one
( เมื่อเกิด one-to-many ต้องนำ primary key ของด้าน one ไปเป็น foreign key ของด้าน many )
*จบในส่วนการสอนการใช้งาน Microsoft Access 2007 เบื้องต้น และตัวอย่างกรณีศึกษา *
ในส่วนของการ javascript:;Lecture เรื่อง Database (ต่อ)
Record คือ ข้อมูลในละแถว ของแต่ละ Table
Field คือ ข้อมูลในแต่คอลัมน์ ของแต่ละ table
Attributes ถ้าอยู่ใน Entity จะหมายถึง สิ่งที่อธิบายคุณลักษณะของ Entity แต่ถ้าใน
DBMS จะหมายถึง สิ่งที่เราเข้าตั้ง เช่น ชื่อ นามสกุล วัน เดือน ปีเกิด ที่อยู่ เป็นต้น
Data Definition คือ นิยามของข้อมูล
Terminology Data type คือ ประเภทของข้อมูลที่เราใช้ระบุว่า Attributes แต่ละตัว ตัวไหนสามารถจะใส่ลงใน database ได้
Record คือ ข้อมูลในแต่ละแถว
Table ก็คือ ตารางทั้งหมด ซึ่งทุก Table ก็ต้องมี primary key เพื่อใช้ในการกำหนดการแยกแยะในแต่ละ Table ซึ่งต้องมีค่าที่ไม่ซ้ำกัน เพราะในสมมติฐานของระบบ database จะถือว่าทุก record จะต้องมีค่าๆ หนึ่งในแต่ละ Attributes ที่ไม่ซ้ำกัน
ในแต่ละ Record ก็ต้องมี primary key ในการ identify attributes
DBMS ( Database Management System ) ใช้ในการบริหารข้อมูลใน database และเชื่อมต่อแอพพลิเคชั่นต่างๆ ให้กับข้อมูลที่อยู่ใน database อย่างเช่น Access ก็เป็นหนึ่งใน DBMS ซึ่ง DBMS ก็จะแบ่งออกเป็น 3 ธุรกิจขนาดใหญ่ โดยทั่วไปถ้าเป็นธุรกิจขนาดเล็กๆ ก็จะใช้แค่ Access, file maker ถ้าเป็นธุรกิจขนาดกลางในปัจจุบัน จะใช้ MySQL, SQL Server แต่ถ้าเป็นธุรกิจขนาดใหญ่ ก็จะเป็น Oracle, IBM ฯลฯ
Components of DBMS
จะประกอบด้วย 3 องค์ประกอบหลักด้วยกัน คือ
Data definition language : มีองค์ประกอบในการระบุประเภทของข้อมูลในการจัดเก็บ เช่น text, รูปภาพ, วันเดือนปี
Data manipulation language : ภาษาที่ใช้ในการสร้าง Query ใหม่ ในที่นี้ คือ ภาษา SQL ซึ่งว่าถือเป็นมาตรฐานของทั้งหมดในการสร้าง Query ใดก็ตาม
Data dictionary : เป็นองค์ประกอบทั้งหมดที่อยู่ใน database และมีเรื่อง security เข้ามาเกี่ยวข้อง
Current database types :
ในปัจจุบัน database มีอยู่ 3 ประเภทหลักๆ แต่ที่นิยมมากที่สุดกว่า 80%แม้ว่าจะใช้มานานก็ตาม คือ
- Relational database จะมีการจัดเก็บข้อมูลในรูปแบบของ Table และจะมีการลิ้งค์ข้อมูลผ่านกระบวนการสร้างความสัมพันธ์ primary key กับ foreign key เช่น Access, Oracle, MySQL, SQL serverซึ่งปัจจุบันได้พัฒนาเป็น Object-oriented database - Object-oriented database จะมีเพิ่มเติมจากแบบของ Relational database คือ สามารถจัดเก็บข้อมูลในรูปแบบของ Multimedia ได้ สามารถทำให้ข้อมูล Multimedia อยู่ในรูปแบบของ primary key ได้
- Multidimensional database จะเก็บข้อมูลได้หลายมิติ ไม่ใช่แค่ข้อมูล Row, Column ยังเป็นเรื่องที่ใหม่อยู่
Design database
จะประกอบด้วย 2 กระบวนการหลักๆ
1.Conceptual design เป็นการ design ในมุมมองของธุรกิจ ทำในกระดาษ ER-diagram
Physical design เป็นการ design ในเชิงเทคนิคว่าข้อมูลจะทำการเก็บไว้ที่ใดในทางกายภาพ server ต้องตั้งที่ไหน ฯลฯ( เราจะดูแค่ Conceptual design เรื่อง E-R Diagram )
ERD(Entity-relationship diagram) เป็นมาตรฐานหลักในการ design database
Normalization คือ การ design database ให้มีขนาดกระชับ มากขึ้น นั่นคือ Table ที่ดี ไม่ควรมีข้อมูลซ้ำซ้อนกัน
คนที่บริหาร database ในองค์กร ก็คือ DBA มีหน้าที่หลัก ในการกำหนดว่าใครมีสิทธิ์เข้าถึงข้อมูลบ้าง ข้อมูลใดควรอยู่ใน database วางแผนโครงสร้างของข้อมูล
2. Entering data
Form คือ แบบฟอร์มที่ต้องการให้ user เพื่อให้ง่ายแก่การใส่ข้อมูลเข้าไปที่ database เช่น form บน web เนื่องจากปกติ การนำข้อมูลเข้าจะไม่ได้ทำที่ Access ดังตัวอย่าง แต่จะใช้เป็นฟอร์ม อย่างเช่น การลงทะเบียน
ในการเลือกดูข้อมูลจาก database ส่วนหนึ่งส่วนใดขึ้นมา เรียกขั้นตอนนี้ว่า Query เป็นการค้นหาหรือนำเสนอข้อมูลซับเซตที่เราต้องการ โดยคำสั่ง Query หลักๆ จะมีคำว่า where ซึ่งจะเป็นคำสั่งในการกำหนดเงื่อนไข เช่น ให้ลิสข้อมูลนักศึกษาที่ลงทะเบียนวิชา MIS แล้วได้ A เป็นต้น
นอกจากนี้ ยังมีในเรื่องของการ Report
เราสามารถสร้าง Report จาก Query หรือจาก Table ได้ เพื่อง่ายแก่การนำเสนอ
Identifying records
Primary key คือ ตัวแยกแยะในแต่ละ record สามารถที่จะทำการ combine กันได้ในระหว่าง attributes
Secondary key คือ key อื่นๆ ที่ไม่ใช่ primary key
Foreign key คือ primary key ที่ใช้ในการเชื่อมความสัมพันธ์ในระหว่าง tables
< Hint : ข้อสอบจะมีการให้สมมติฐาน แล้วให้สร้าง E-R diagram >
ในกรณีที่มีข้อมูลที่ซ้ำซ้อนกันมากๆใน table นั้นๆ หรือที่เรียกว่า Data Redundancy มีวิธีการแก้ไขโดยการแตก table ออกมา ทำให้ข้อมูลมีความกะทัดรัดมากขึ้น หรือที่เรียกว่าการทำ Normalization
การบริหาร database จะมีอยู่ 2 รูปแบบหลักๆ คือ การรวมสู่ศูนย์กลาง (Centralized) และการกระจาย (Decentralized)
Centralized: มีข้อมูลอยู่ที่ศูนย์กลางที่เดียว ในการที่สาขาจะเข้ามา query หรือดูข้อมูลก็จะต้องเชื่อมโยงที่ศูนย์กลางที่เดียว ซึ่งเป็นถือเป็นความเสี่ยงขององค์กร เพราะถ้าเกิดปัญหาที่ศูนย์กลาง ก็ทำให้สาขาอื่นๆ ไม่สามารถเข้าถึงข้อมูลขององค์กรได้ องค์กรขนาดเล็ก มักมีเพียง database เดียว เรียกว่า Centralized database
Distributed database เป็นการกระจายข้อมูลหรือ copy database ไปทุกภาคส่วนขององค์กร องค์กรขนาดใหญ่จะอยู่ในรูปแบบนี้ ข้อดี คือ เป็นการกระจายความเสี่ยง รวมไปถึงในเรื่องของทำให้การตอบสนองต่อผู้ใช้รวดเร็วมากขึ้น ต่างจากแบบ Centralized database ที่เมื่อมีคนเข้าจำนวนมาก ความสามารถในการตอบสนอง ก็จะลดลง หรือช้า นั่นเอง แต่อาจมีปัญหาในเรื่องของความปลอดภัย เพราะมีการเก็บข้อมูลไว้หลายที รวมถึงเรื่องความเป็น standard ของข้อมูลที่อาจไม่เหมือนกัน
Distributed database แบ่งออกเป็น 2 ส่วนหลักๆ คือ
1.Partition คือ database ที่มีการแบ่งออกมา เพื่อสนองความต้องการของพื้นที่ใดพื้นที่หนึ่งโดยเฉพาะ เช่น องค์กรใหญ่ อาจมีการแบ่ง database ไปยังสาขาภาคเหนือ เพื่อเก็บข้อมูลทางภาคเหนืออย่างเดียว ภาคใต้ก็เก็บข้อมูลภาคใต้ แล้วมีการทำ synchronize แบบ real time ที่มีต้นทุนแพง หรือแบบ batch ที่มีต้นทุนถูกกว่า
2.Duplicate คือ ทำการ copy ข้อมูลเดียวกันจากส่วนกลางไปยังส่วนอื่นๆ ขององค์กร มีข้อดี คือ เมื่อเกิดความเสียหายกับจุดใด ข้อมูลก็ยังไม่สูญหายไป เพราะมีการ copy ไว้ ซึ่งจะ เป็นแบบ real time หรือ batch ก็ได้
ซึ่งทั้ง 2 ส่วนหลักๆ นี้ เป็นการกระจายความเสี่ยง และยังตอบสนองต่อการเข้าถึงข้อมูลให้กับผู้ใช้ได้อย่างรวดเร็ว
Data Warehouse
คือ database ขนาดใหญ่ขององค์กร จะเก็บทั้งข้อมูลในอดีต ปัจจุบัน ทั้งภายในและนอก ไม่ว่าจะเป็นจากลูกค้า supplier รูปภาพ หรืออย่างอื่น ให้มาอยู่ที่เดียวกัน มาตรฐานเดียวกัน เพื่อจะสามารถนำมาวิเคราะห์ผ่านทางเครื่องมือต่างๆ
Data mart เป็นซับเซตของ data warehouse
เป็นข้อมูลเฉพาะของแผนกใดแผนกหนึ่ง ซึ่งเป็นข้อมูลตัวเดียวกันกับใน data warehouse แต่มีการแบ่งออกไปให้แผนกต่างๆ เพื่อความสะดวก รวดเร็วในการเข้าถึงข้อมูลของ user อีกทั้งยังเพิ่มความปลอดภัย เนื่องจากพนักงานควรเข้าถึงแต่ข้อมูลที่ตนต้องการเท่านั้น ไม่ควรเข้าถึงข้อมูลทั้งหมด
Data mining เป็น software ที่ใช้ในการค้นหา pattern ข้อมูลใน database โดยเฉพาะ จากใน data warehouse ซึ่งบริษัทบัตรเครดิตส่วนมาก มักมีการใช้โปรแกรมตัวนี้ เพื่อดูว่าลูกค้าส่วนใหญ่ใช้อะไร เพื่อดูความต้องการของลูกค้าผ่านโปรแกรม data mining แต่ต้องระวังในส่วนของ ความครบถ้วน ถูกต้อง และจำนวนของข้อมูลว่าเพียงพอหรือไม่
Multidimensional Data Analysis(การวิเคราะห์ความสัมพันธ์ของข้อมูลที่จัดเก็บใน database)
เครื่องมืออีกอย่างหนึ่งในการวิเคราะห์ data warehouse คือ OLAP(Online Analysis Processing) เช่น การวิเคราะห์ดูความสัมพันธ์ระหว่างยอดขายกับlocation
ต่างจาก data mining ที่ค้นหา pattern ของข้อมูล ตรงที่ทำการดูความสัมพันธ์ของข้อมูลในหลากหลายมิติ เช่น มิติของพื้นที่ มิติของเวลา โดยจะต้องมีการกำหนดข้อมูลมาก่อนว่าอะไรคือความสัมพันธ์ของข้อมูลที่เราต้องการทราบ ปัจจุบันมีการนำ data mining มาใช้ในรูปแบบของ CRM ค่อนข้างมาก
Business intelligence
คือ การนำเอาข้อมูลที่เก็บมาจากองค์กรมาใช้อย่างมีประสิทธิภาพ โดยเฉพาะการวิเคราะห์ เพื่อประกอบการตัดสินใจ ไม่ว่าจะผ่านทาง data mining หรือ OLAP ก็ตาม ตัวอย่างผู้ใช้งานแบบนี้ ก็เช่น IBM, Microsoft
Google Trend เป็นเครื่องมือที่ใช้การวิเคราะห์ทางการตลาดอย่างมาก เป็น data mining อย่างหนึ่ง ว่าในหนึ่งวัน มีการ search ในเรื่องใดมากที่สุด (database ขนาดใหญ่ที่สุดในตอนนี้ คือ Google เพราะมีการทำ index ข้อมูลจากทุก website)
ปัจจุบัน ความสำคัญของ database มีมากขึ้น เนื่องจากสามารถเข้าถึงผ่านทาง website ได้ โดยการเชื่อมต่อกับ application server ( ไม่สามารถเชื่อมต่อ web กับ database โดยตรงได้ เนื่องจาก database ไม่เข้าใจภาษา html ) โดยเฉพาะ ธุรกิจที่เป็น e-commerce
Information policy
ต้องมีการกำหนดเรื่องของการเก็บหรือการเข้าถึงข้อมูล เนื่องจากเมื่อมีการใช้ database การแก้ไขจะทำได้ยาก เหมือนกับการที่ design E-R diagram ที่เมื่อใส่ข้อมูลไปแล้ว จะแก้ได้ยาก
ข้อจำกัดในเรื่องของ database คือ ข้อมูลที่ได้มานั้น มีความถูกต้องหรือไม่ เช่น มีการเก็บข้อมูลผิดพลาด ราคาของสินค้าไม่ตรงกับราคาขายจริง ซึ่งมีกระบวนการในการตรวจสอบ นั้นคือ การ audit (data quality audit) ข้อมูลที่อยู่ภายใน database โดยการดึงเอาข้อมูลบางส่วนมา sample ว่ามีความถูกต้องหรือไม่
Data cleaning คือ การสร้างกระบวนการป้องกันตรวจสอบการนำเข้าข้อมูลที่ผิดพลาด มีการ detect ข้อมูลที่ผิดพลาด เช่น เบอร์โทร ไม่เกินกี่ตัว ชื่อไม่เกินกี่คำ
Managerial issues
- Data security and ethics :ข้อมูลในปัจจุบันมีการเก็บใน database มากขึ้น จึงต้องระวังในเรื่องของการ hack ข้อมูล - Privacy : ในบางครั้ง บริษัทอาจเอาข้อมูลของลูกค้าไปวิเคราะห์ ซึ่งอาจเป็นการรุกล้ำสิทธิส่วนบุคคลได้ โดยเฉพาะการทำ data mining, OLAP ต่างๆ เช่น พฤติกรรมการใช้ การซื้อของต่างๆ ในชีวิตประจำวัน ตัวอย่าง เช่น Facebook เอาข้อมูลของเราไปใช้ - Disaster recovery ในองค์กรที่ไม่มีการทำ database ถ้ามีการสูญหายไปของข้อมูลลูกค้าอาจเกิดความเสียหายได้
- Legacy data บริษัทที่ใช้ฐานข้อมูลแบบเดิมๆ เช่น รูปแบบของกระดาษ จะทำอย่างไรให้มาอยู่ในรูปแบบของ database ได้
สิ่งที่อาจารย์ต้องการในการเรียนเรื่องนี้ คือ
1. การสร้าง database ทำอย่างไร
2. อะไรคือประโยชน์ของ database
3. กระบวนการในการนำ database ไปใช้มีอะไรบ้าง
แนวข้อสอบ : ออกแบบ diagram ตามสถานการณ์ที่ยกมาให้
Ref :
- http://en.wikipedia.org/wiki/Database
- http://www.ismed.or.th/SME/src/upload/knowledge/118914946746e0fb1bb6e9e.pdf
- http://dlibed.kku.ac.th/e_lib2/exxe/594.pdf
ผู้จัดทำ : G6 (YMBA 30)
1 นางสาวอังคณา ตันวัฒนเสรี เลขประจำตัว 5310221001
2 นางสาวกัญญ์ณณัฏฐ์ ทักศินาวรรณ เลขประจำตัว 5310221005
3 นางสาวสวลี เจริญการ เลขประจำตัว 5310221016
4 นางสาวชนากานต์ นุนพนัสสัก เลขประจำตัว 5310221034
5 นางสาวสุพัตรา เกษรบัว เลขประจำตัว 5310221037
6 นายธนดร พร้อมมูล เลขประจำตัว 5310221038
Class Participation List
1. 5310221002 อุกฤษฏ์ เลาหะวัฒน์ 2
2. 5310221038 ธนดร พร้อมมูล 4
3. 5220221055 อภิชาต จันทนิสร์ 2
4. 5310221004 ศรายุทธ์ พูลปวงทรัพย์ 1





