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

PHP คือ อะไร

PHP คืออะไร  ??


PHP ย่อมาจาก Professional Home Page ซึ่งเป็นภาษาจำพวก Script Language คำสั่งต่างๆ จะเก็บอยู่ในไฟล์ที่เรียกว่า สคริปต์ (Scrip) และเวลาใช้งานต้องอาศัยตัวแปรชุดคำสั่ง ซึ่งทำงานโดยการสั่งงานจากเว็บเพจ แต่ไปประมวลผลที่ Web Server สำหรับแสดงเว็บเพจอย่างหนึ่ง ที่จัดอยู่ในกลุ่ม Server Side Script และจะทำงานในฝั่ง Server แล้วส่งการแสดงผลมายัง Browser ของตัว Client นอกจากนี้มันยังเป็น Script ที่ Embed บน HTML อีกด้วย ส่วนเลขที่ต่อท้ายก็หมายถึงรุ่น (version) นั่นเอง และกำลังเป็นที่นิยมกันมากในหมู่นักสร้างเว็บทั่วโลก ตัวอย่างของภาษาสคริปต์ก็ เช่น Java Script, Perl, ASP (Active Server Page) เป็นต้น
การเขียน Function ใน PHP
ในการเขียนโปรแกรม การทำงานซ้ำ ๆ หลาย ๆ ครั้ง ถือเป็นเรื่องปกติในการเขียน ซึ่งการจะใช้โค้ดเดียวกันซ้ำ ๆ กันนั้น ส่วนมากเค้าไม่เขียนซ้ำ ๆ กันบ่อย ๆ แต่จะเขียนฟังก์ชันการทำงานขึ้นมา แล้วเวลาต้องการใช้ซ้ำ ๆ กัน ก็เพียงแค่เรียกชื่อฟังก์ชันขึ้นมาก็ถือว่าเป็นอันสิ้นสุด ดังนั้น ในบทความนี้ เรามาดูฟังก์ชันในภาษา PHP กันครับ

             ฟังก์ชันใน PHP มีอยู่ 2 แบบ นั่นคือ ฟังก์ชันมาตรฐาน (Built-In Function) ซึ่งเป็นฟังก์ชันที่ภาษา PHP มีให้อยู่แล้วสามารถเรียกใช้ได้เลย เช่น ฟังก์ชัน Date, sort เป็นต้น และฟังก์ชันอีกแบบคือ ฟังก์ชันแบบที่เราสร้างขึ้นเอง (User-Defined Function: UDF)
  
วิธีการตั้งชื่อฟังก์ชัน
                ชื่อของฟังก์ชันควรสื่อความหมายที่ฟังก์ชันทำงาน  ชื่อของฟังก์ชันต้องขึ้นต้นด้วยตัวอักษรหรือขีดล่างเท่านั้น

วันพุธที่ 5 พฤศจิกายน พ.ศ. 2557

SET

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

LONGBLOB

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

MEDIUMBLOB

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

BLOB

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

TINYBLOB

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

TIME

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 ล้านระเบียน ผมว่ามันต้องมีอย่างน้อยเป็นกิกะไบต์ ดังนั้นความแตกต่างที่ไม่กี่เมกะไบต์จึงไม่มากมาย)

TIMESTAMP[(M)]

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

DATETIME

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

DATE

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

DECIMAL[(M,D)]

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

DOUBLE[(M,D)]

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

FLOAT[(M,D)]

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

BIGINT

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

INT

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

MEDIUMINT

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

SMALLINT

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

TINYINT

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

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

LONGTEXT

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

MEDIUMTEXT

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

TEXT

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

TINYTEXT

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

CHAR

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

VARCHAR

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

Field คืออะไร

           Field (ฟิลด์) เป็นพื้นที่ในตำแหน่งตายตัวหรือรู้จักในหน่วยข้อมูล เช่น เรคคอร์ด ส่วนหัวข่าวสาร หรือคำสั่ง (instruction) ที่มีวัตถุประสงค์และตามปกติขนาดตายตัว ในบางบริบท ฟิลด์สามารถได้รับการแบ่งย่อยเป็นฟิลด์เล็กกว่า นี่มีบางตัวอย่าง
           1) ในตารางข้อมูลของฐานข้อมูล ฟิลด์เป็นโครงสร้างข้อมูลสำหรับชิ้นของข้อมูลเดียว ฟิลด์ได้รับการจัดแบ่งเป็นเรคคอร์ด ซึ่งบรรจุสารสนเทศทั้งหมดภายในตารางข้อมูลที่สัมพันธ์กับเอกลักษณ์เฉพาะ (specific entity) ตัวอย่าง ในตารางข้อมูลที่เรียกว่า สารสนเทศติดต่อลูกค้า หมายเลขโทรศัพท์จะเป็นฟิลด์ในแถวที่จะเก็บฟิลด์อื่น เช่น ถนน ที่อยู่ และเมือง เรคคอร์ดสร้างเป็นแถวของตารางข้อมูลและฟิลด์สร้างเป็นคอลัมน์
           2) ในฟอร์มที่ใช้เติมข้อมูลบนเว็บไซต์ แต่ละ box ที่ขอสารสนเทศจากท่านเป็นฟิลด์นำเข้าข้อความ

           3) ในส่วนหัวของหน่วยการส่งผ่านความยาวแปรผัน ฟิลด์ย่อยสองไบต์ในส่วนหัว (ซึ่งเป็นฟิลด์โดยตัวเองอย่างแน่นอน) สามารถระบุความยาวเป็นไบต์ของข่าวสาร
ข้อดีของการใช้ฐานข้อมูล

1.      กะทัดรัด (Compactness) ไม่ต้องมีที่ซ้ำซ้อนจำนวนมาก
2.      ความเร็ว (Speed) เรียกใช้ข้อมูลได้รวดเร็วขึ้น
3.      น่าเบื่อหน่ายลดลง (Less drudgery) ความยุ่งยากลดลง และความน่าเบื่อหน่ายลดลง แพร่หลาย (Currency) มีข้อมูลที่ถูกต้องทันสมัยให้ใช้ตลอดเวลา ในวงกว้างขึ้น
หน้าที่ของระบบฐานข้อมูล

        ระบบบริหารฐานข้อมูล จะต้องสนับสนุนการกระทำต่อไปนี้ได้อย่างน้อย

  • การนิยามข้อมูล (Data Definition) ต้องสามารถรับการนิยามข้อมูลได้ เช่น การกำหนดเค้าร่างภายนอก เค้าร่างแนวคิด เค้าร่างภายใน และการเชื่อมทุกตัวที่เกี่ยวข้อง จากนั้นแปลงนิยามนั้นให้เป็นวัตถุ ดังนั้น ระบบจัดการฐานข้อมูลต้องมี ตัวประมวลผลภาษานิยามข้อมูล (Data Definition Language Processor/Compiler)
  • การจัดดำเนินการข้อมูล (Data Manipulation) ระบบฯ ต้องสามารถจัดการคำร้องในการสืบค้น ปรับปรุง ลบ เพิ่มข้อมูลได้ ดังนั้น ระบบฯ จึงต้องมีตัวประมวลผลภาษาจัดดำเนินการข้อมูล (Data Manipulation Language Processor/Compiler)  การร้องขอให้จัดดำเนินการข้อมูลอาจเป็น การร้องขอที่แจ้งล่วงหน้า (Planned Request) ซึ่งเตรียมไว้ล่วงหน้าก่อนการ Execute เป็นอย่างดี เช่น การรันโปรแกรมทุกเช้าซึ่งเป็นกิจวัตร หรืออาจเป็นการร้องขอที่ไม่แจ้งล่วงหน้า (Unplanned or ad Hoc request) ซึ่งต้องการข้อมูลอย่างฉับพลันหรือเป็นบางครั้งบางคราว ซึ่งมีลักษณะเป็นแบบโต้ตอบ (Interactive)
  • การแปลงคำสั่งให้เหมาะสมที่สุดและการเอ็กซีคิวคำสั่ง (Optimization and Execution)ระบบบริหารฐานข้อมูล จะมี Optimizer เป็นซอฟต์แวร์ที่รับเอาคำร้องขอ โค้ดคำสั่งวัตถุนั้นมาตรวจดูก่อนรันเพื่อดูว่าจะรันอย่างไรจึงจะดีที่สุด กล่าวคือ ให้ใช้ทรัพยากรน้อยที่สุด เช่น จะใช้วิธีใดในการเข้าถึงข้อมูล X จึงจะเหมาะสมที่สุด
  • ความปลอดภัยและความถูกต้องของข้อมูล (Data Security and Integrity) ระบบฯ จะต้องยอมให้ผู้บริหารฐานข้อมูล (DBA) สามารถเขียนคำสั่ง หรือกำหนดกฎความถูกต้อง (Integrity Constraints)ได้
  • การฟื้นฟูสภาพข้อมูลและสภาวะพร้อมกัน (Data Recovery and Concurrency) ระบบฯ ต้องสนับสนุนให้ผู้บริหารฐานข้อมูลสามารถสั่งให้ ตัวจัดการธรุกรรม (Transaction Manager or Transaction Processing Monitor)ให้ทำการฟื้นฟูสภาพ และควบคุมสภาวะการเข้าถึงฐานข้อมูลแบบพร้อมกันได้
  • พจนานุกรมข้อมูล (Data Dictionary) ระบบฯ ต้องสร้างพจนานุกรมข้อมูลของมันเองขึ้นมาได้เพื่อให้ผู้ใช้สามารถนำไปใช้ได้
ระบบฐานข้อมูลประกอบส่วนประกอบหลัก 4 ส่วน  ได้แก่

4. ผู้ใช้ (Users) มี 3 กลุ่มใหญ่ ๆ คือ  Application Programmer เขียนโปรแกรมประยุกต์  End Users ผู้ใช้ที่อยู่กับ Online terminal เข้าถึงข้อมูลโดยผ่านโปรแกรมประยุกต์ หรือผ่านภาษาเรียกค้น (Query Language) Data Administrator & Database Administrator DA ผู้บริหารอาวุโส เป็นผู้ตัดสินใจว่าจะเก็บข้อมูลใดในฐานข้อมูลก่อน และกำหนดนโยบายการรักษาความปลอดภัยของข้อมูล DBA ผู้เชี่ยวชาญระดับมืออาชีพ เป็นผู้สร้างฐานข้อมูลและนำมาใช้งานจริง โดยควบคุมทางด้านเทคนิคที่จำเป็นในการดำเนินนโยบายที่กำหนดโดย DA 
ระบบฐานข้อมูลประกอบส่วนประกอบหลัก 4 ส่วน  ได้แก่

3. ซอฟต์แวร์ (Software) ตัวกลางเชื่อมระหว่างฐานข้อมูลและผู้ใช้คือ DBMS เป็นซอฟต์แวร์ที่สำคัญที่สุดของระบบฐานข้อมูล นอกจากนี้ยังมี Utility , Application Development tool , Deism aids , Report writers , ect. 
ระบบฐานข้อมูลประกอบส่วนประกอบหลัก 4 ส่วน  ได้แก่

2. ฮาร์ดแวร์ (Hardware) ประกอบด้วย อุปกรณ์บันทึกข้อมูลเช่น จานแม่เหล็ก , I/O device , Device controller , I/O channels , หน่วยประมวลผล และหน่วยความจำหลัก

ระบบฐานข้อมูลประกอบส่วนประกอบหลัก 4 ส่วน  ได้แก่

1. ข้อมูล (Data) ข้อมูลในฐานข้อมูลจะต้องมีคุณสมบัติ 2 ประการ คือ  เบ็ดเสร็จ (Integrate) ฐานข้อมูลเป็นแหล่งรวบรวมข้อมูลจากแฟ้มต่าง ๆ ไว้ครบถ้วนสมบูรณ์ เพื่อลดข้อมูลซ้ำซ้อนระหว่างแฟ้มใช้ร่วมกันได้ (Share) ข้อมูลแต่ละชิ้นในฐานข้อมูลสามารถนำมาแบ่งใช้กันได้ระหว่างผู้ใช้  ต่าง ๆ ในระบบ

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

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

ระบบฐานข้อมูลประกอบส่วนประกอบหลัก 4 ส่วน  ได้แก่
  • ข้อมูล (Data)
  • ฮาร์ดแวร์ (Hardware)
  • ซอฟต์แวร์ (Software)
  • ผู้ใช้ (Users)