วันพฤหัสบดีที่ 6 พฤศจิกายน พ.ศ. 2557

ชนิดของฟิลด์

ชนิดของฟิลด์ 

         การประมวลผลข้อมูลเพื่อให้ได้สารสนเทศ จะมีองค์ประกอบที่สำคัญอย่างหนึ่งคือ แฟ้มข้อมูล ความหมายของแฟ้มข้อมูลหนึ่ง ๆ นั้น มักจะเป็นเอกสารที่เป็นเรื่องเดียวกันและจัดเก็บรวบรวมไว้เป็นแฟ้มข้อมูลเพื่อสะดวกในการค้นหาข้อมูล เช่น แฟ้มข้อมูลประวัติพนักงาน การเก็บรวบรวมข้อมูลในรูปของเอกสารเพื่อประโยชน์ในการใช้งาน ถ้าข้อมูลที่เก็บรวบรวมไว้มีจำนวนน้อยความยุ่งยากในการค้นหาหรือในการจัดเก็บก็จะไม่เกิดขึ้น แต่ถ้าข้อมูลที่เก็บรวบรวมไว้มีจำนวนมากจะมีปัญหาเกิดขึ้นในเรื่องของการค้นหาข้อมูลนั้นและสิ้นเปลืองพื้นที่ในการจัดเก็บข้อมูลนั้น ๆ วิธีการแก้ปัญหาการจัดเก็บแฟ้มข้อมูลที่อยู่ในรูปของเอกสารเมื่อข้อมูลมีจำนวนมากขึ้นก็คือการนำข้อมูลเหล่านั้นเก็บไว้ในระบบคอมพิวเตอร์ ข้อมูลทั้งหมดจะถูกเก็บรวบรวมไว้เป็นแฟ้มข้อมูล เช่นเดียวกับการจัดเก็บเป็นเอกสารแต่จะเป็นแฟ้มข้อมูลที่ถูกจัดเก็บไว้ในอุปกรณ์ของคอมพิวเตอร์ เช่น แผ่นจานบันทึกแม่เหล็กหรือเทปแม่เหล็ก

       
        ข้อมูล หมายถึง กลุ่มของสารสนเทศที่สัมพันธ์กัน ความสัมพันธ์ของกลุ่มสารสนเทศหรือข้อมูลนั้นถูกกำหนดโดยผู้ใช้แฟ้มข้อมูล ข้อมูลเป็นส่วนประกอบสำคัญในการทำงานของคอมพิวเตอร์ เพราะข้อมูลเป็นวัตถุดิบในการประมวลผลข้อมูลทั้งหมดที่จัดการโดยคอมพิวเตอร์ประกอบด้วยบิต (bit) ซึ่งเป็นโครงสร้างที่เล็กที่สุดในแต่ละบิตจะเป็นตัวเลขในระบบเลขฐานสอง ประกอบด้วย 0 และ 1 ซึ่งนำมาใช้แทน ระหว่างสองสถานะ เช่น จริง-เท็จ เปิด-ปิด เป็นต้น เพื่อให้สามารถแสดงสารสนเทศได้มากขึ้น บิตจึงถูกรวมต่อกันเข้าเป็นสายเพื่อแสดงสารสนเทศ โดยนำบิตเหล่านั้นมาทำให้เป็นหน่วยที่ใหญ่ขึ้นเรียกว่าไบต์ (byte)

       ไบต์ ประกอบขึ้นมาจากบิตหลาย ๆ บิตมาเรียงต่อกัน แต่เนื่องจากคอมพิวเตอร์เข้าใจเพียงเลข 0 และเลข 1 เท่านั้นถ้าต้องการให้คอมพิวเตอร์รูปจักอักขระตัวอักษร A,B….,Z จะต้องมีการเอาเลข 0 และเลข 1 มาเรียงต่อกันเป็นรหัสแทนอักขระ โดยปกติ 1 ตัวอักขระจะมีความยาว 8 บิต ซึ่งเท่ากับ 1 ไบต์ จำนวนบิตที่นำมาเรียงต่อกันเป็นไบต์นี้แตกต่างกันไปตามรหัสแทนข้อมูล รหัสแทนข้อมูลที่ใช้กันแพร่หลายมี 2 ระบบคือ รหัสเอบซีดิก (EBCDIC) และรหัสแอสกี (ASCII) ใช้ 8 บิต รวมกันเป็น 1 ไบต์ โดย 1 ไบต์ จะใช้แทนอักขระ 1 ตัว


       เมื่อเรานำอักขระหลายๆตัวรวมกันโดยมีความหมายอย่างใดอย่างหนึ่งเราจะเรียกว่า เขตข้อมูลหรือฟิลด์ (filed) เช่น การรวมของตัวอักษรและตัวเลขเพื่อใช้แทนรหัสลูกค้า เช่น ‘C0100001’ เป็นต้น ฟิลด์คือกลุ่มของอักขระที่สัมพันธ์กันตั้งแต่ 1 ตัวขึ้นไปที่นำมารวมกันแล้วแสดงลักษณะหรือความหมายอย่างใดอย่างหนึ่ง


       ฟิลด์ คือ กลุ่มของอักขระทีสัมพันธ์กัน ตั้งแต่ 1 ตัวขึ้นไปที่นำมารวมกันแล้วแสดงลักษณะหรือความหมายอย่างใดอย่างหนึ่ง ฟิลด์แต่ละฟิลด์ยังแยกออกเป็นประเภทข้อมูล ซึ่งจะบ่งบอกว่าในเขตฟิลด์นั้นบรรจุข้อมูลประเภทใดไว้ สามารถแยกประเภทของฟิลด์ได้เป็น 3 ประเภทคือ


          - ฟิลด์ตัวเลข (numeric field) ประกอบด้วย อักขระที่เป็นตัวเลข ซึ่งอาจเป็นเลขจำนวนเต็มหรือทศนิยมและอาจมีเครื่องหมายลบหรือบวก เช่น ยอดคงเหลือในบัญชีเป็นกลุ่มของตัวเลข


          - ฟิลด์ตัวอักษร (alphabetic field) ประกอบด้วย อักขระที่เป็นตัวอักษรหรือช่องว่าง (blank) เช่น ชื่อลูกค้าเป็นกลุ่มของตัวอักษร


          - ฟิลด์อักขระ (character field หรือ alphanumeric field) ประกอบด้วย อักขระซึ่งอาจจะเป็นตัวเลขหรือตัวอักษรก็ได้ เช่น ที่อยู่ของลูกค้า


       ข้อมูลที่ปรากฏอยู่ในฟิลด์ เป็นหน่วยย่อยของระเบียนที่บรรจุอยู่ในแฟ้มข้อมูล เช่น ฟิลด์เลขรหัสประจำตัวบุคลากร ฟิลด์เงินเดือนของลูกจ้าง หรือฟิลด์เลขหมายโทรศัพท์ของพนักงาน ตัวอย่าง เช็คของธนาคารแห่งหนึ่งประกอบด้วย ชื่อที่อยู่ธนาคาร เช็คเลขที่ จ่ายจำนวนเงินเป็นตัวเลข จำนวนเงินเป็นตัวอักษร สาขาเลขที่ เลขที่บัญชี และลายเซ็น


       ฟิลด์บางฟิลด์อาจจะประกอบด้วยข้อมูลหลาย ๆ ประเภทรวมกันในฟิลด์ เช่น ฟิลด์วันที่ประกอบด้วย 3 ฟิลด์ย่อย ๆ คือ วันที่ เดือน และปี หรือในฟิลด์ชื่อธนาคาร ยังประกอบด้วยหลายฟิลด์ย่อย ๆ คือ ชื่อธนาคาร ที่อยู่ เมือง ประเทศ และรหัสไปรษณีย์

ฟิลด์ต่างๆ 


VARCHAR

       สำหรับเก็บข้อมูลประเภทตัวอักษร ทุกครั้งที่เลือกชนิดของฟิลด์เป็นประเภทนี้ จะต้องมี การกำหนดความยาวของข้อมูลลงไปด้วย ซึ่งสามารถกำหนดค่าได้ตั้งแต่ 1 - 255 ฟิลด์ชนิดนี้ เหมาะสำหรับการเก็บข้อมูลสั้นๆ เช่น ชื่อ นามสกุล หรือหัวข้อต่างๆ เป็นต้น... ในส่วนฟิลด์ประเภทนี้ จะ สามารถเลือก "แอตทริบิวต์" เป็น BINARY ได้ โดยปกติแล้วการจัดเรียงข้อมูลเวลาสืบค้น (query) สำหรับ VARCHAR จะเป็นแบบ case-sensitive (ตัวอักษรใหญ่ และเล็กมีความหมายแตกต่างกัน) แต่ หากระบุ "แอตทริบิวต์" เป็น BINARY ปุ๊บ การสืบค้นจะไม่คำนึงตัวอักษรว่าจะเป็นตัวใหญ่ หรือตัวเล็ก


CHAR

       สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่ สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ ก็จะเรียงข้อมูลแบบ case-sensitive เว้นแต่จะกำหนดแอตทริบิวต์เป็น BINARY ที่จะทำให้การเรียงข้อมูลเป็นแบบ non case-sensitive เช่นเดียวกับ VARCHAR



TINYTEXT 


      ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัดแค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูล ได้ 256 ตัวอักษร ซึ่งมองเผินๆ ก็ไม่ต่างกับเก็บลงฟิลด์ประเภท CHAR หรือ VARCHAR(255) เลย แต่
จริงๆ มันต่างกันตรงที่ มันทำFULL TEXT SEARCH ได้


TEXT

     สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดย สูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ



MEDIUMTEXT

     เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร


LONGTEXT

      เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร



TINYINT 

       สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติม ในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น UNSIGNED หรือ UNSIGNED ZEROFILL โดยจะมี ความแตกต่างดังนี้


         - UNSIGNED : จะหมายถึงเก็บค่าตัวเลขแบบไม่มีเครื่องหมาย แบบนี้จะทำใหสามารถเก็บค่าได้ ตั้งแต่ 0 - 255


         - UNSIGNED ZEROFILL : เหมือนข้างต้น แต่ว่าหากข้อมูลที่กรอกเข้ามาไม่ครบตามจำนวน หลักที่เรากำหนด ตัว MySQL จะทำการเติม 0 ให้ครบหลักเอง เช่น ถ้ากำหนดให้ใส่ได้ 3 หลัก แล้วทำการเก็บข้อมูล 25 เข้าไป เวลาที่สืบค้นดู เราจะได้ค่าออกมาเป็น 025 หากไม่เลือก "แอ ตทริบิวต์" สิ่งที่เราจะได้ก็คือ SIGNED นั่นก็คือต้องเสียบิตนึงไปเก็บเครื่องหมาย บวก/ลบ ทำ ให้สามารถเก็บข้อมูลได้อยู่ในช่วง -128 ถึง 127 เท่านั้น


SMALLINT

         สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย)ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT


MEDIUMINT

       สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บ ข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215(ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT


INT

      สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น
UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT


BIGINT

        สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ - 9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย) หรือ 0 ถึง 18446744073709551615 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT


FLOAT[(M,D)]

         ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูล ที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์ เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต คือมีค่าตั้งแต่ -3.402823466E+38 ไปจนถึง -1.175494351E- 38, 0 และ 1.175494351E-38 ถึง 3.402823466E+38


DOUBLE[(M,D)]

       สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ2.2250738585072014E-308 ถึง 1.7976931348623157E+308


DECIMAL[(M,D)]


         สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ ต้องการความละเอียดและถูกต้องของข้อมูลสูง ข้อสังเกต เกี่ยวกับข้อมูลประเภท FLOAT, DOUBLE และ DECIMAL ก็คือ เวลากำหนดความ ยาวของข้อมูลในฟิลด์ จะถูกกำหนดอยู่ในรูปแบบ (M,D) ซึ่งหมายความว่า ต้องมีการระบุว่า จะให้มี ตัวเลขส่วนที่เป็นจำนวนเต็มกี่หลัก และมีเลขทศนิยมกี่หลัก เช่น ถ้าเรากำหนดว่า FLOAT(5,2) จะ หมายความว่า เราจะเก็บข้อมูลเป็นตัวเลขจำนวนเต็ม 5 หลัก และทศนิยม 2 หลัก ดังนั้นหากทำการใส่ ข้อมูล 12345.6789 เข้าไป สิ่งที่จะเข้าไปอยู่ในข้อมูลจริงๆ ก็คือ 12345.68 (ปัดเศษให้มีจำนวนหลัก ตามที่กำหนดไว้)


DATE

       สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD


DATETIME 


      สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น(query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS


TIMESTAMP[(M)] 


      สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ ว่าจะระบุค่า M เป็น 14, 12, 8 หรือ 6 ตามลำดับ สามารถเก็บได้ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 ไป จนถึงประมาณปี ค.ศ. 2037


TIME

          สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผล ออกมาในรูปแบบ HH:MM:SS YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่ หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069 ข้อสังเกต ค่าที่เก็บในข้อมูลประเภท TIMESTAMP และ YEAR นั้นจะมีความสามารถพอๆ กับ การเก็บข้อมูลวันเดือนปี และเวลา ด้วยฟิลด์ชนิด VARCHAR แต่ต่างกันตรงที่ จะใช้เนื้อที่เก็บข้อมูล น้อยกว่า... ทว่า ฟิลด์ประเภท TIMESTAMP นั้นจะมีข้อจำกัดในเรื่องของเวลาที่สามารถเก็บได้ คือ จะต้องอยู่ในระหว่าง 1 มกราคม ค.ศ. 1000 ไปจนถึงแถวๆ ค.ศ. 2037 อย่างที่บอก แต่หากเก็บเป็น VARCHAR นั้นจะไม่ติดข้อจำกัดนี้ 

          ฟิลด์ชนิด YEAR ก็เช่นกันครับ... ใช้เนื้อที่แค่ 1 ไบต์เท่านั้นในการ เก็บข้อมูล แต่ข้อจำกัดจะอยู่ที่ ปี ค.ศ. 1901 ถึง 2155 เท่านั้น (หรือ ค.ศ. 1970 ถึง 2069 ในกรณี 2 หลัก) แต่หากเก็บเป็น VARCHAR จะได้ตั้งแต่ 0000 ถึง 9999 เลย อันนี้เลยอยู่ที่ความจำเป็นมากกว่าครับ (แต่ ด้วยความที่ว่า ปัจจุบันฮาร์ดดิสก์ราคาถูกมากๆ ผมเลยไม่ติดใจอะไรที่จะใช้ VARCHAR แทน เพื่อ ความสบายใจ อิอิ เพราะสมมติว่ากินเนื้อที่ต่างกัน 3 ไบต์ ต่อ 1 ระเบียน มีข้อมูล 4 ล้านระเบียน ก็เพิ่ง ต่างกัน 12 ล้านไบต์ หรือ 12 เมกะไบต์เท่านั้นเอง ซึ่งหากเทียบกับปริมาณข้อมูลทั้งหมดของข้อมูล 4 ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมาย)


TINYBLOB 


ิ      สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้นจะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์


BLOB
         

       สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KB


MEDIUMBLOB

       สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB


LONGBLOB
     

      สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB ข้อสังเกต ข้อมูลประเภท BLOB นั้น แม้จะมีประโยชน์ในเรื่องของการเก็บข้อมูลประเภท BINARY ให้อยู่กับตัวฐานข้อมูล ทำให้สะดวกเวลาสืบค้นก็ตาม แต่มันก็ทำให้ฐานข้อมูลมีขนาดใหญ่ เกินความจำเป็นด้วย ทำให้เกิดความไม่สะดวกในการสำรองฐานข้อมูลในกรณีที่ มีข้อมูลอัพโหลดไป เก็บมากๆ โดยปกติแล้ว จะใช้วิธีการอัพโหลดไปเก็บไว้ในโฟลเดอร์ แล้วเก็บลิงก์ไปยังไฟล์เหล่านั้น เป็นฟิลด์ชนิด VARCHAR มากกว่า


SET
      

      สำหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่งสามารถกำหนด ได้ถึง 64 ค่า

ฐานข้อมูล


ระบบฐานข้อมูล (DATABASE SYSTEMS)

       ระบบฐานข้อมูล (database) หมายถึง กลุ่มของข้อมูลที่มีความสัมพันธ์กันและถูกนำมาจัดเก็บในที่เดียวกัน โดยข้อมูลอาจเก็บไว้ในแฟ้มข้อมูลเดียวกันหรือแยกเก็บหลาย  แฟ้มข้อมูล แต่ต้องมีการสร้างความสัมพันธ์ระหว่างข้อมูลเพื่อประสิทธิภาพในการจัดการข้อมูลในการจัดเก็บข้อมูลในระบบฐานข้อมูลมีข้อดีกว่าการจัดเก็บข้อมูลในระบบแฟ้มข้อมูลพอสรุปประเด็นหลัก  ได้ดังนี้
· มีการใช้ข้อมูลร่วมกัน (data sharing)
· ลดความซ้ำซ้อนของข้อมูล (reduce data redundancy)
· ข้อมูลมีความถูกต้องมากขึ้น (improved data integrity)
· เพิ่มความปลอดภัยให้กับข้อมูล (increased security)
· มีความเป็นอิสระของข้อมูล (data independency)

ความรู้พื้นฐานเรื่องเขตข้อมูล ระเบียน และแฟ้มข้อมูล

       การประมวลผลด้วยเครื่องคอมพิวเตอร์ ข้อมูลนับเป็นส่วนที่สำคัญยิ่งของการประมวลผลเพราะถ้าปราศจากข้อมูล การประมวลผลก็ไม่อาจทำได้ ข้อมูลที่ใช้ในการประมวลผลด้วยเครื่องคอมพิวเตอร์จะเป็นข้อมูลที่จัดเก็บเป็นแฟ้มข้อมูล (File) โดยแบ่งอกเป็นเรื่องตามชื่อแฟ้มข้อมูลนั้น เช่น แฟ้มข้อมูลเรื่องลูกค้า แฟ้มข้อมูลเรื่องสินค้า แฟ้มข้อมูลเรื่องการขาย แฟ้มข้อมูลเรื่องเช็คธนาคาร เป็นต้น ในการแบ่งเช่นนี้ แต่ละแฟ้มข้อมูลก็จะประกอบด้วยข้อมูลในเรื่องเดียวกัน เช่น เมื่อหยิบแฟ้มข้อมูลลูกค้า จะมีรายละเอียดของลูกค้าทุกคน โดยทั่วไปกิจการจะมีการจัดข้อมูลให้ง่ายต่อการใช้ (File organization) โดยจัดเป็นโครงสร้างของแฟ้มข้อมูลที่ถูกจัดเก็บบนอุปกรณ์เก็บข้อมูลของเครื่องคอมพิวเตอร์ เช่น การจัดเก็บข้อมูลแบบเรียงลำดับตัวอักษรชื่อ เป็นต้น เมื่อมีความต้องการรายละเอียดของลูกค้าคนใด ก็จะนำแฟ้มข้อมูลลูกค้าออกมาเปิด และดึงเอารายละเอียดของลูกค้านั้นออกมา ซึ่งรายละเอียดของลูกค้าแต่ละคนอาจประกอบด้วยข้อมูลเกี่ยวกับ ชื่อ ที่อยู่ เบอร์โทรศัพท์ เป็นต้น รายละเอียดของลูกค้าแต่ละคนนี้ เรียกว่า ระเบียนหรือเรคอร์ด แฟ้มข้อมูลหนึ่ง ๆ จะประกอบด้วยระเบียนหลาย ๆ ระเบียน

ระบบฐานข้อมูล


4.1 ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล (Database Concepts)

            ฐานข้อมูลมีบทบาทสำคัญมากต่องานด้านต่างๆ โดยเฉพาะอย่างยิ่งกับระบบงานที่ใช้คอมพิวเตอร์ เช่น งานด้านธุรกิจ  วิศวกรรม การแพทย์  การศึกษา งานวิทยาศาสตร์   เป็นต้น  ความหมายของระบบฐานข้อมูลอย่างง่ายๆ คือ การจัดเก็บข้อมูลอย่างมีระบบ ซึ่งผู้ใช้สามารถเรียกใช้ข้อมูลในลักษณะต่างๆ ได้ เช่น    การเพิ่มเติมข้อมูล การเรียกดูข้อมูล การแก้ไขหรือลบข้อมูล และโดยทั่วไปการจัดเก็บข้อมูลจะมีการนำระบบคอมพิวเตอร์เข้ามาช่วยในการจัดการฐานข้อมูล

4.1.1 การจัดเก็บข้อมูลด้วยรูปแบบแฟ้มข้อมูล

           เมื่อเปรียบเทียบกับการจัดเก็บข้อมูลในอดีตซึ่งเป็นการจัดเก็บแบบแฟ้มข้อมูลโดยที่แต่ละแฟ้มข้อมูลจะทำการเก็บหรือประมวลผลในลักษณะที่เป็นอิสระจากกัน เช่น




                รูปที่ 4.1 : แผนภาพการใช้ข้อมูลในระบบประมวลผลแบบแฟ้มข้อมูล

              จากรูปภาพดังกล่าวข้างต้น  เป็นภาพการใช้ข้อมูลในระบบประมวลผลแบบเดิม   ซึ่งข้อมูลมีความซ้ำซ้อนกันอยู่   และสามารถใช้ข้อมูลร่วมกันได้ในบางเรื่องเช่น  ถ้าต้องการรายงานการให้บริการหลังการขายแก่ลูกค้าของพนักงานคนหนึ่งในบริษัท   จะไม่สามารถดึงข้อมูลมาใช้ร่วมกันได้ เนื่องจาก แหล่งที่เก็บข้อมูลแยกเป็นอิสระกันอยู่   ดังนั้นการได้มาซึ่งข้อมูลที่ต้องการนี้   จะต้องทำการออกแบบฐานข้อมูลใหม่   พร้อมทั้งเขียนโปรแกรมให้สามารถดึงข้อมูลที่ต้องการได้ในทุกรูปแบบ  ดังนี้




             จากภาพที่ 4.2 จะเห็นว่าเป็นการประมวลผลในลักษณะของฐานข้อมูล โดยที่แฟ้มทั้งสามจะถูกจัดเก็บเป็นฐานข้อมูลรวม (Data Integration) โดยมีซอฟท์แวร์ช่วยเหลือในการจัดการฐานข้อมูลที่เรียกกันว่า   ระบบจัดการฐานข้อมูล (Database Management Systems ; DBMS) ที่สามารถช่วยเหลือในการสร้าง (Creation) จัดเก็บ (Storage) เรียกดูข้อมูล (Retrieval) และควบคุมข้อมูล (Data control)   ในกรณีที่ต้องการให้ออกรายงานพนักงานขายที่ไปให้บริการหลังขายแก่ลูกค้ารายหนึ่ง  ซึ่งเป็นข้อมูลที่มีความสัมพันธ์กัน   สามกลุ่ม   ระบบย่อมสามารถดึงข้อมูลไปใช้ร่วมกันได้   ซึ่งแตกต่างจากการประมวลผลแบบเดิม


4.1.2 ความหมายของฐานข้อมูล (Database)

            ฐานข้อมูล  ประกอบด้วยรายละเอียดชองข้อมูลที่เกี่ยวข้องกัน ซึ่งถูกนำมาใช้ในงานด้านต่างๆ เช่น ด้านธนาคาร จะมีฐานข้อมูลที่เกี่ยวข้องกับข้อมูลเงินฝาก  ข้อมูลการให้สินเชื่อ  งานด้านการรักษาพยาบาล ก็จะมีฐานข้อมูลประวัติคนไข้  งานด้านการตลาด ก็อาจมีฐานข้อมูลลูกค้า  ประวัติพนักงานขาย   ข้อมูลซัพพลายเออร์  หรือฐานข้อมูลสินค้า ข้อมูลเหล่านี้จะถูกเก็บไว้อย่างมีระบบเพื่อประโยชน์ในการจัดการและเรียกใช้ข้อมูล (Retrieve) ได้อย่างมีประสิทธิภาพ

4.1.3 องค์ประกอบของระบบฐานข้อมูล

             ระบบฐานข้อมูลส่วนใหญ่เป็นระบบที่มีการนำเอาคอมพิวเตอร์เข้ามาช่วยเหลือเป็นเครื่องมือพื้นฐาน (Computer Based Information System ; CBIS) โดยมีซอฟท์แวร์หรือโปรแกรมช่วยจัดการข้อมูลเหล่านี้เพื่อให้ได้ข้อมูลตามที่ผู้ใช้ต้องการ องค์ประกอบจึงแบ่งเป็น 5 ประเภทดังนี้
        1. ฮาร์ดแวร์ (Hardware) ในระบบฐานข้อมูลที่มีประสิทธิภาพควรมีฮาร์ดแวร์ต่างๆที่พร้อมจะอำนวยความสะดวกในการบริหารฐานข้อมูลได้อย่างมีประสิทธิภาพ  เช่น หน่วยความจำหลัก  หน่วยความจำสำรอง ความเร็วของหน่วยประมวลผลกลาง  อุปกรณ์นำเข้าและออกรายงานที่มีคุณภาพดี
        2.  ซอฟท์แวร์ (Software)    บ้างก็เรียก โปรแกรม หรือ Package เป็นสิ่งที่ใช้เพื่อการประมวลผลฐานข้อมูลเหล่านั้น มักเรียกรวมกันว่าเป็น ระบบจัดการฐานข้อมูล     (Database Management System  หรือ DBMS)   ซึ่งเป็นโปรแกรมที่มีความสามารถในการจัดเก็บข้อมูลอย่างมีระบบ หมวดหมู่ สามารถเรียกใช้ข้อมูล(Retrieve data)  แก้ไขข้อมูล (Edit data) การเพิ่มเข้าไป (Append data) การแก้ไขโครงสร้างข้อมูล การออกรายงาน   และการควบคุมการเข้าใช้ข้อมูล ซึ่งเป็นโปรแกรมตัวกลางในการติดต่อสื่อสารระหว่างผู้ใช้และโปรแกรมประยุกต์ต่างๆที่มีในฐานข้อมูล (User Interface)
       3. ข้อมูล (Data) ข้อมูลคือสิ่งที่ผู้ใช้ต้องการเรียกใช้  จัดเก็บ  แก้ไข เพิ่มเติม ข้อมูลที่มีลักษณะเป็นฐานข้อมูลจะต้องถูกเรียกใช้ร่วมกันได้ (Sharing) กันระหว่างผู้ใช้ที่ต่างกัน  
      4. บุคลากร (People)   ผู้ใช้ฐานข้อมูลย่อมมีระดับที่ใช้แตกต่างกันไป  ไม่ใช่ว่าใครจะเข้าไปใช้ฐานข้อมูลก็ได้ เพราะแต่ละระดับย่อมมีขอบเขตของการเข้าใช้    ซึ่งเป็นเรื่องที่ต้องระมัดระวังมากในกรณืที่ใช้ฐานข้อมูลร่วมกันอาจต้องมีการกำหนดระดับของการเข้าใช้ และการป้องกันฐานข้อมูลที่จำเป็น ดังนั้นโดยทั่วไปแล้วฐานข้อมูลมักมีผู้ใช้ที่เกี่ยวข้องดังนี้
                - ผู้ใช้ทั่วไป (General User) เป็นผู้ที่ต้องใช้ฐานข้อมูลจากระบบงาน   เพื่อทำงานให้สำเร็จ เช่น พนักงานเก็บเงินในห้างสรรพสินค้า  ต้องใช้ฐานข้อมูลสินค้าในระบบขณะแสกนบาร์โค้ด
                - พนักงานปฏิบัติการ (Operator) เป็นพนักงานที่อยู่ส่วนหลังกิจการ ทำหน้าที่ประมวลผลข้อมูล คอยป้อนข้อมูลเข้า  แก้ไข  ปรับเปลี่ยนโครงสร้าง  เฝ้าระวัง
                - นักวิเคราะห์และออกแบบระบบ   (System Analysis ; SA)   เป็นผู้มีหน้าที่วเคราะห์ระบบงานฐานข้อมูลและออกแบบระบบงานที่จะนำมาใช้
                - ผู้เขียนโปรแกรมประยุกต์ใช้งาน (Programmer)   เป็นผู้ทำหน้าที่ในการเขียนโปรแกรมเพื่อการจัดเก็บ การเรียกใช้ข้อมูล และงานอื่นๆ ให้เป็นไปตามความต้องการของผู้ใช้
                - ผู้บริหารฐานข้อมูล  (Database Administrator :DBA)   เป็นบุคลากรที่สำคัญ คอยทำหน้าที่บริหารงานของระบบฐานข้อมูลทั้งหมด    เป็นผู้ต้องตัดสินใจว่าจะรวบรวมข้อมูลอะไรบ้างไว้ในระบบ   จะจัดเก็บโดยวิธีใด  จะใช้เทคนิคใดในการเรียกดูข้อมูล  การกำหนดระบบการรักษาความปลอดภัยข้อมูล การสร้างระบบสำรองข้อมูล การกู้คืน  การซ่อมบำรุง  การประสานงานผู้ใช้  ผู้ปฏิบัติงาน นักวิเคราะห์ระบบตลอดจนโปรแกรมเมอร์   และการกำหนดระดับการเข้าใช้ข้อมูลของบุคลากรทุกระดับ
5. ขั้นตอนการปฏิบัติงาน  (Procedure)
        ในระบบฐานข้อมูลควรจะมีการจัดทำเอกสารที่ระบุขั้นตอนทำงานของหน้าที่ต่างๆ   ทั้งในสภาวะปกติและสภาวะเกิดปัญหา ซึ่งเป็นขั้นตอนการปฏิบัติงานสำหรับบุคลากรทุกระดับในองค์กร
 4.1.4  ข้อดีและข้อจำกัดของฐานข้อมูล
        การจัดเก็บข้อมูลในรูปแบบของฐานข้อมูลมีข้อไดเปรียบกว่าการจัดเก็บในลักษณะแฟ้มข้มูลดังนี้
        - หลีกเลี่ยงความขัดแย้งของข้อมูลได้   (Inconsistency can be avoided)  ในการจัดเก็บข้อมูลแบบแฟ้มข้อมูล  จะก่อให้เกิดความขัดแย้งของข้อมูลได้ (Inconsistency)  เช่น ถ้ามีการแก้ไขข้อมูลในแฟ้มๆหนึ่ง โดยที่ไม่ได้แก้ไขข้อมูลเดียวกันนั้นในอีกแฟ้มข้อมูลหนึ่งจะทำให้ข้อมูลนั้นมีค่าที่ต่างกันทั้งๆที่จะต้องเหมือนกัน
        - สามารถใช้ข้อมูลร่วมกันได้ (Data  can be shared ) ตามที่กล่าวมาแล้วว่า ฐานข้อมูลเป็นการจัดเก็บข้อมูลไว้ร่วมกัน เมื่อผู้ใช้ต้องการข้อมูลจากฐานข้อมูลซึ่งเป็นข้อมูลที่มาจากแฟ้มที่แตกต่างกันจะทำได้ง่าย    เช่น การดึงข้อมูลสินค้ามาจากฐานข้อมูล  ฝ่ายขายก็สามารถดึงไปใช้งานการตลาดได้  ส่วนฝ่ายจัดซื้อก็ดึงไปในระบบงานสั่งซื้อได้  ดังภาพ




        - สามารถลดความซ้ำซ้อนของข้อมูล  (Redundancy can be reduced) การจัดเก็บข้อมูลไว้เป็นแฟ้มแยกกันอย่างอิสระ (Independent data)  ก่อให้เกิดความซ้ำซ้อน (Redundancy) การนำข้อมูลมารวบรวมไว้ในฐานข้อมูลเดียวกันช่วยลดปัญหาการซ้ำซ้อนของข้อมูลได้    โดยมีระบบจัดการฐานข้อมูลช่วยควบคุมความซ้ำซ้อนทั้งในด้านการจัดเก็บและการประมวลผลรวมถึงความเชื่อถือได้ของข้อมูล (Integrity)

        - การรักษาความถูกต้องเชื่อถือได้ของข้อมูล (Maintaining data integrity) ในกรณีการป้อนข้อมูลโดยคนอาจเกิดความผิดพลาดขึ้นได้จากการป้อนเข้า   (Human error )   ซึ่งจะก่อให้เกิดปัญหา GIGO (Garbage In Garbage Out) ในระบบจัดการฐานข้อมูลจะสามารถระบุกฎเกณฑ์เพื่อควบคุมความผิดพลาดในการป้อนเข้าได้   เช่น การระบุตัวเลข Digit Number  ท้ายรหัสบาร์โค้ดเพื่อตรวจสอบความถูกต้องของชุดตัวเลขที่อยู่ก่อนหน้า
        - สามารถกำหนดความเป็นมาตรฐานเดียวกันได้ (Standardization)   การเก็บรวบรวมข้อมูลเป็นฐานข้อมูลสามารถกำหนดให้อยู่ในรูปฟอร์มเดียวกันได้ (Formatting) เช่น โครงสร้างข้อมูล ประเภทของข้อมูลที่จัดเก็บเป็นต้น
        - สามารถกำหนดระบบความปลอดภัยของข้อมูลได้   (Data security)   ผู้บริหารระบบฐานข้อมูลสามารถกำหนดระดับการเรียกใช้ข้อมูลของผู้ใช้แต่ละคนให้แตกต่างกันตามหน้าที่รับผิดชอบได้ง่าย     เพื่อป้องกันการรั่วไหลของข้อมูลและมีกติกาในการเอาผิดผู้ละเมิดได้
        -  ข้อมูลและโปรแกรมเป็นอิสระต่อกัน (Independence) ถ้าหากโปรแกรมประยุกต์ต่างๆ ต้องใช้แฟ้มข้อมูลโดยตรงดังภาพที่ 4.1 แล้ว แต่ละโปรแกรมจะมีรายละเอียดของแฟ้มข้อมูลนั้นๆ ถ้าหากมีการเปลี่ยนแปลงโครงสร้างแฟ้มข้อมูล เช่น จากเดิมเคยมีข้อมูล อยู่ 10 Field ต้องขยายเป็น 15 Field ก็จะต้องแก้ไขโปรแกรมประยุกต์ที่เกี่ยวข้องด้วย  ซึ่งจะทำให้กระทบกระเทือนทุกๆโปรแกรมที่เกี่ยวข้องกับข้อมูลนั้นด้วยทันที  แต่ในกรณีการสร้างฐานข้อมูล โปรแกรมประยุกต์ต่างๆ  เป็นอิสระจากแฟ้มข้อมูล  เนื่องจากไม่ได้ผูกติดกันโดยตรง เมื่อมีการเปลี่ยนแปลงโครงสร้าง
     ข้อมูลจะไม่กระทบต่อโปรแกรมประยุกต์  เพราะโปรแกรมประยุกต์จะทำงานโดยมีระบบจัดการฐานข้อมูล (DBMS) เป็นตัวเชื่อมโยงกับฐานข้อมูลคั่นอยู่ระหว่างกลาง  เมื่อมีการเปลี่ยนโครงสร้างข้อมูล  ระบบจัดการฐานข้อมูลจะเป็นตัวจัดการให้เอง
อย่างไรก็ตามการจัดเก็บข้อมูลในรูปแบบฐานข้อมูล ก็มีข้อจำกัดเช่นกัน
        - มีต้นทุนสูง     ระบบฐานข้อมูลก่อให้เกิดต้นทุนที่สูงขึ้น    ตามองค์ประกอบ 5 ชนิดที่กล่าวมาแล้วได้แก่  Hardware/ระบบเครือข่าย , Software  , บุคลากร  ข้อมูลและขั้นตอนการปฏิบัติงาน
        - มีความซับซ้อน การเริ่มใช้ฐานข้อมูล  มีความซับซ้อน  และยากต่อความเข้าใจ   ตั้งแต่การออกแบบระบบ  การวางโครงสร้างข้อมูล   การเขียนโปรแกรม
        - เสี่ยงต่อการหยุดชะงักของระบบ     ลักษณะของการเก็บข้อมูลในลักษณะฐานข้อมูลเป็นการบริหารข้อมูลแบบรวมศูนย์ (Centralized Database system)  หากศูนย์เกิดความขัดข้อง   จะทำให้เกิดปัญหารวนไปทั้งระบบได้ เช่น ระบบงานธนาคาร ถ้าศูนย์บัญชาการข้อมูลเกิดไฟฟ้าดับ  สำนักงานสาขาย่อมเกิดปัญหาเป็นลูกโซ่ไปทั้งประเทศได้


1. Microsoft Access เป็นโปรแกรมระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational DataBase Management System : RDBMS) ที่ช่วยให้การจัดเก็บข้อมูล การสอบถาม การค้นหา การดูแลรักษา (เพิ่ม,ลบ,แก้ไขข้อมูล) การวิเคราะห์และการน าเสนอข้อมูล รวมถึงการรักษาความปลอดภัยของ
ข้อมูล ทำได้ง่ายและมีประสิทธิภาพสูง 

                                
2. มายเอสคิวแอล (MySQL) คืออะไร
MySQL คือ โปรแกรมระบบจัดการฐานข้อมูล ที่พัฒนาโดยบริษัท MySQL AB มีหน้าที่เก็บข้อมูลอย่างเป็นระบบ รองรับคำสั่ง SQL เป็นเครื่องมือสำหรับเก็บข้อมูล ที่ต้องใช้ร่วมกับเครื่องมือหรือโปรแกรมอื่นอย่างบูรณาการ เพื่อให้ได้ระบบงานที่รองรับ ความต้องการของผู้ใช้ เช่นทำงานร่วมกับเครื่องบริการเว็บ (Web Server) เพื่อให้บริการแก่ภาษาสคริปต์ที่ทำงานฝั่งเครื่องบริการ (Server-Side Script) เช่น ภาษา php ภาษา aps.net หรือภาษาเจเอสพี เป็นต้น หรือทำงานร่วมกับโปรแกรมประยุกต์ (Application Program) เช่น ภาษาวิชวลเบสิกดอทเน็ต ภาษาจาวา หรือภาษาซีชาร์ป เป็นต้น โปรแกรมถูกออกแบบให้สามารถทำงานได้บนระบบปฏิบัติการที่หลากหลาย และเป็นระบบฐานข้อมูลโอเพนทซอร์ท (Open Source)ที่ถูกนำไปใช้งานมากที่สุด
MySQL : มายเอสคิวแอล เป็นระบบจัดการฐานข้อมูลโดยใช้ภาษา SQL. แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจ
MySQL ถือเป็นระบบจัดการฐานข้อมูล (DataBase Management System (DBMS) 
ฐานข้อมูลมีลักษณะเป็นโครงสร้างของการเก็บรวบรวมข้อมูล การที่จะเพิ่มเติม เข้าถึงหรือประมวลผลข้อมูลที่เก็บในฐานข้อมูลจำเป็นจะต้องอาศัยระบบจัดการ ฐานข้อมูล ซึ่งจะทำหน้าที่เป็นตัวกลางในการจัดการกับข้อมูลในฐานข้อมูลทั้งสำหรับการ ใช้งานเฉพาะ และรองรับการทำงานของแอพลิเคชันอื่นๆ ที่ต้องการใช้งานข้อมูลในฐานข้อมูล เพื่อให้ได้รับความสะดวกในการจัดการกับข้อมูลจำนวนมาก MySQL ทำหน้าที่เป็นทั้งตัวฐานข้อมูลและระบบจัดการฐานข้อมูล

                              
3. SQL Server  คืออะไร
            SQL Server เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (relational database management system หรือ RDBMS) จาก Microsoft ที่ได้รับการออกแบบสำหรับสภาพแวดล้อมวิสาหกิจ SQL Server เรียกใช้บน T-SQL (Transact -SQL) ชุดของส่วนขยายโปรแกรมจาก Sybase และ Microsoft ที่เพิ่มหลายส่วนการทำงานจาก SQL มาตรฐาน รวมถึงการควบคุมทรานแซคชัน, exception และการควบคุมความผิดพลาด, การประมวลผลแถว และการประกาศตัวแปร
Yukon เป็นชื่อรหัสในการพัฒนา SQL Server 2005 ได้รับการเผยแพร่ในเดือนพฤศจิกายน 2548 ผลิตภัณฑ์ 2005 ได้รับการกล่าวว่าให้ความยืดหยุ่น ความสามารถเชิงปริมาณ ความน่าเชื่อถือ และความปลอดภัยกับการประยุกต์ฐานข้อมูล และทำให้สร้างและจัดวางง่ายขึ้น ดังนั้น จึงลดความซับซ้อนและความน่าเบื่อเกี่ยวกับการจัดการฐานข้อมูล SQL Server 2005 รวมการสนับสนุนการบริหารมากขึ้นด้วย
ต้นกำเนิดคำสั่ง SQL Server ได้รับการพัฒนาโดย Sybase ในปลายทศวรรษ 1980 Microsoft, Sybase และ Ashton-Tate รวมมือในการผลิตเวอร์ชันแรกของผลิตภัณฑ์นี้เวอร์ชันแรก SQL Server 4.2 สำหรับ OS/2 นอกจากนี้ ทั้ง Sybase และ Microsoft เสนอผลิตภัณฑ์ SQL Server โดย Sybase เปลี่ยนชื่อผลิตภัณฑ์ของพวกเขาเป็น Adaptive Server Enterprise

                        

4. Oracle  คืออะไร
        Oracle คือ โปรแกรมจัดการฐานข้อมูล ผลิตโดยบริษัทออราเคิล ซึ่งเป็นโปรแกรมจัดการฐานข้อมูลเชิงสัมพันธ์ หรือ DBMS(Relational Database Management System) ตัวโปรแกรมนี้จะทำหน้าที่เป็นตัวกลางคอยติดต่อ ประสาน ระหว่างผู้ใช้และฐานข้อมูล ทำให้ผู้ใช้งานสามารถใช้งานฐานข้อมูลได้สะดวกขึ้น เช่นการค้นหาข้มูลต่างๆภายในฐานข้อมูลที่ง่ายและสะดวก โดยผู้ใช้ไม่จำเป็นต้องทราบถึงโครงสร้างภายในของฐานข้อมูลก้สามารถเข้าใช้ฐานข้อมุลนั้นได้
ข้อดีของ Oracle
1.เทคโนโลยี Rollback Segment ถูกนำมาใช้ในโปรแกรม Oracle ประโยชน์ Rollback Segment คือ สามารถจัดการกับข้อมูลในกรณีที่เกิดการล้มเหลวของระบบ หรือภาวะระบบไม่สามารถให้บริการได้ ด้วยเทคโนโลยี Rollback Segment จะจัดการ Instance Recovery ข้อมูลไม่ให้เกิดความเสียหายอันเนื่องมาจาก การล้มเหลวของระบบ ได้อย่างดีมาก  
2. Oracle ยังมีส่วนที่เรียกว่า Timestamp ทำงานเกี่ยวข้องกับ Concurrency Control เป็นส่วนที่จัดการการทำงานกับหลาย ๆ Transaction ในเวลาเดียวกัน โดยทุก ๆ Transaction จะมี Timestamp เป็นตัวกำหนดเวลาเริ่มต้นของการประมวลผล (Process) ซึ่งช่วยในการขจัดปัญหาหลักของ Concurrency Problems 
3.Oracle ใช้ได้กับฐานข้อมูลกว่า 80 แพลตฟอร์ม ซึ่งครอบคลุมเกือบทุกแพลตฟอร์มที่มีอยู่ในปัจจุบัน เริ่มตั้งแต่เครื่องคอมพิวเตอร์บนเมนเฟรม, มินิคอมพิวเตอร์, พีซี บนระบบปฏิบัติการตั้งแต่ Window 9x, NT, Window CE, UNIX, SOLARIS, LINUX  โดยที่ในทุกพอร์ตมีโครงสร้างการเหมือนกันๆหมด คำสั่งที่ใช้ก็เป็นแบบเดียวกัน สามารถทำงานร่วมกันได้ สามารถนำข้อมูลจากพอร์ตหนึ่งไปพอร์ตอื่นได้อย่างไม่มีปัญหา
ประเภทของ Oracle1. Personal Oracle
2. Oracle Server
     ทั้ง 2 แบบนี้มีลักษณะการใช้งานและคำสั่งเหมือนกัน แต่ต่างกันที่ Personal Oracle คือฐานข้อมูลที่เมื่อติดตั้งบนเครื่องคอมพิวเตอร์แล้ว ผู้ใช้จะต้องนั่งทำงานกับ Oracle นี้ที่หน้าเครื่องท่านั้น ส่วนของ Oracle Server คือ ฐานข้อมูลในลักษณะเซิร์ฟเวอร์ คือเครื่องคอมพิวเตอร์ที่ติดตั้งโปรแกรมของ Oracle Server ไว้ และยอมให้ผู้ใช้งานเรียกฐานข้อมูล หรือจัดการกับข้อมูลจากเครื่องคอมพิวเตอร์อื่น ๆ ได้(เรียกเครื่องอื่นๆ เป็นไคลเอนต์) ดังนั้นถ้าต้องการให้มีผู้เรียกใช้ข้อมูลจากฐานข้อมูลหลาย ๆ คนได้ ก็ควรต้องเลือกแบบที่เป็น Oracle Server