วันอาทิตย์ที่ 14 ธันวาคม พ.ศ. 2557

SQL

ฟังก์ชัน Sql

            1.คำสั่ง CREATE TABLE
CREATE TABLE phonebook (id INT (4) NOT NULL
AUTO_INCREMENT, fname VARCHAR (35) , lname VARCHAR (35) ,
email VARCHAR (50) , office VARCHAR (200) , province CHAR (2) ,
PRIMARY KEY(id), UNIQUE(id), INDEX(id)) 
โดยทั่วไปขนาดของตารางข้อมูลหนึ่งๆ จะมีขนาดไม่เกิน 2G หรือ 4G ขึ้นอยู่กับระบบปฏิบัติการ เราสามารถทำให้ประหยัดเนื้อที่ได้อีกโดยการบีบอัด (PACK) ข้อมูลดัชนี ซึ่งสามารถให้บีบอัดโดยกำหนดค่า PACK_KEYS=1การบีบอัดนี้จะทำให้การทำงานช้าลง แต่ก็ประหยัดเนื้อที่ขึ้น และตามปกติถ้าผู้ใช้ไม่ได้กำหนดให้บีบอัด ข้อมูลที่เป็นสตริงหรือตัวอักษรก็จะได้รับการบีบอัดข้อมูลอยู่แล้ว สำหรับข้อมูลตัวเลข ค่าการทำงานปกติจะไม่รับการบีบอัด เว้นแต่กำหนดการบีบอัดด้วยการใช้ UNION จะใช้กรณีที่ต้องการรวมตารางข้อมูลหลายๆ ตารางเข้าด้วยกันเป็นอันเดียว ซึ่งจะทำงานกับตารางประเภท MERGE เท่านั้น
2.คำสั่ง DROP TABLE
DROP TABLE phonebook
เป็นคำสั่งเพื่อให้ลบตารางข้อมูลออกจากระบบ สำหรับออปชัน RESTRICT และ CASCADE ยังไม่สามารถงานได้ในปัจจุบัน เนื่องจากเป็นความสามารถที่มีแผนจะรองรับในอนาคต สำหรับการใช้คำสั่ง DROP  TABLE จะต้องให้ความระมัดระวังในการใช้งานเป็นอย่างยิ่ง โดยเฉพาะการทำงานกับตารางข้อมูลประเภท nontransaction  เพราะจะทำการ commit การทำงานโดยอัตโนมัติ
3.คำสั่ง DELETE
DELETE FROM phonebook WHERE id=4
เป็นคำสั่งสำหรับลบข้อมูลจากตาราง โดยสามารถกำหนดเงื่อนไขสำหรับการลบได้ ซึ่งถ้าไม่ได้ระบุเงื่อนไข จะเป็นการลบข้อมูลทั้งหมดออกจากตาราง และถ้าอยู่ใน AUTOCOMMIT mode (กรณีปกติทั่วไป) จะไม่สามารถทำการยกเลิกการลบครั้งนี้ได้
4.คำสั่ง TRUNCATE
TRUNCATE phonebook
เป็นคำสั่งที่ให้ผลเช่นเดียวกับ DELETE FROM table_name แต่มีข้อแตกต่างดังนี้
จะทำการดรอปตารางข้อมูลก่อน แล้วทำการสร้างใหม่ ซึ่งจะให้ผลที่เร็วกว่าการลบตารางทั้งหมด
การทำงานเป็น non-transaction ไม่สามารถทำการยกเลิกได้
5.คำสั่ง SELECT
SELECT id, fname FROM phonebook ORDER BY fname DESC
เป็นคำสั่งสำหรับการแสดงผล หรือการดึงข้อมูลจากตาราง โดยสามารถกำหนดเงื่อนไข รูปแบบและวิธีการได้อย่างหลากหลาย การดึงข้อมูลสามารถระบุว่าจะเลือกจากตารางเดียว หรือหลายตารางก็ได้

การใช้ LIMIT rows ก็จะช่วยกำหนดให้ทำการดึงข้อมูลจากตาราง ได้ไม่เกินจำนวนแถว rows ที่ระบุ
การใช้คำสั่งคีย์เวิร์ดตามหลัง SELECT จะต้องใช้ให้ถูกต้อง มีบางคีย์เวิร์ดที่ต้องใช้เรียงลำดับกัน เช่น
HAVING clause ต้องใช้ตามหลัง GROUP BY clause และใช้ก่อน ORDER BY clause  เป็นต้น
ตามปกติหากไม่ได้ระบุวิธีการจัดเรียงข้อมูล ก็จะเป็นการเรียงจากน้อยไปมาก (Ascending) หรือ คีย์เวิร์ด  ASCแต่ถ้าต้องการเรียงจากมากไปน้อย (Descending) ให้ใช้คีย์เวิร์ด DESC
การใช้คีย์เวิร์ด HAVING จะใช้ในกรณีร่วมกับ GROUP BY ซึ่งก็เป็นการกำหนดเงื่อนไขในการดึงข้อมูล ด้วยคำสั่ง SELECT
SELECT id,fname FROM phonebook GROUP BY fname HAVING id>2
6.คำสั่ง FLUSH
FLUSH TABLES phonebook
เป็นคำสั่งที่ใช้สำหรับการลบหน่วยความจำภายใน (Internal Cache) ที่ใช้งาน ทั้งนี้การใช้คำสั่ง FLUSH  จะอนุญาตเฉพาะ user ที่มีสิทธิ์ (Privilege) เท่านั้น  Flush_option สามารถระบุได้ดังนี้
-HOSTS ทำการล้าง hose cache table เพื่อปรับปรุงข้อมูลของ host หรือ client ที่คอนเน็กเข้าใช้งาน ซึ่งอาจมีการเปลี่ยนแปลง IP address หรืออื่นๆ โดยเมื่อทำการ flush เรียบร้อยแล้ว ก็จะอนุญาตให้ host นั้นๆ ทำการคอนเน็กเข้ามาใหม่อีกครั้งหนึ่ง
-LOGS ปิดและเปิด log files ใหม่
-PRIVILEGES ทำการ reload สิทธิ์ต่างๆ ของ user จาก grant tables ของ MySQL Server
-TABLES ปิด tables ทั้งหมด หากตารางใดยังถูกเปิดอยู่ ก็จะถูก force ให้ปิดลง
7.คำสั่ง SHOW
SHOW DATABASES
เป็นคำสั่งสำหรับแสดงรายละเอียด (Information) ของ databases, tables, columns หรือ สถานะต่างๆของServer แสดงรายละเอียดของ Databases, Tables, Columns และ Indexes
SHOW DATABASES แสดงรายชื่อ databases ทั้งหมดในระบบฐานข้อมูล
SHOW TABLES แสดงรายชื่อ tables ทั้งหมดของ current database
SHOW OPEN TABLES แสดงรายชื่อ tables ที่ถูกเปิดอยู่ในปัจจุบัน
SHOW COLUMNS แสดงรายละเอียดฟิลด์ทั้งหมดใน table นั้น (ให้ผลลัพธ์เช่นเดียวกับคำสั่ง DESCRIBE)
SHOW FIELDS ให้ผลลัพธ์เช่นเดียวกับ SHOW COLUMNS
SHOW INDEX แสดงรายละเอียดว่ามีดัชนีอะไรบ้างสำหรับ table นั้นๆ
SHOW KEYS ให้ผลลัพธ์เช่นเดียวกับ SHOW INDEX
8.คำสั่ง GRANT และ REVOKE
GRANT ALL PRIVILEGES ON demo TO user1@localhost WITH GRANT OPTION
REVOKE ALL PRIVILEGES ON demo FROM user1@localhost
คำสั่ง GRANT เป็นคำสั่งสำหรับการกำหนดสิทธิ์หรือความสามารถใดๆ ให้กับ user
คำสั่ง REVOKE หรือคำสั่งที่ตรงกันข้ามกับ GRANT คือเป็นการถอนหรือยกเลิกสิทธิ์ใดๆ จาก user
การใช้คำสั่ง GRANT หรือ REVOKE จะอนุญาตเฉพาะผู้บริหารระบบในการกำหนดสิทธิ์ต่างๆ สำหรับผู้ใช้    
MySQL จะแบ่งสิทธิ์ (Privilege) เป็น 4 ระดับ คือ
1. Global level
ระดับบนสุด ครอบคลุมทุก database รายละเอียดสำหรับสิทธิ์ของระดับนี้จะถูกเก็บไว้ในตาราง
mysql.user
2. Database level
ระดับ database ครอบคลุมเฉพาะใน database อันใดอันหนึ่ง เช่น ความสามารถในการกระทำใดๆ
ภายใน database นั้นๆ รายละเอียดสำหรับสิทธิ์ของระดับนี้ จะถูกเก็บไว้ในตาราง mysql.db และ mysql.host
3. Table level
ระดับ table ครอบคลุมเฉพาะภายในตารางนั้นๆ เช่น ความสามารถในการกระทำกับ table นั้นๆ
สามารถทำการ select, insert, delete, update ได้หรือไม่ เป็นต้น รายละเอียดสำหรับสิทธิ์ของระดับนี้ จะถูกเก็บอยู่ในตาราง mysql.tables_priv
4. Column level
ระดับ column ครอบคลุมเฉพาะฟิลด์ใดฟิลด์หนึ่งภายในตารางข้อมูล รายละเอียดสำหรับสิทธิ์ของระดับนี้ จะถูกเก็บอยู่ในตาราง mysql.columns_priv
             9.คำสั่ง INSERT
INSERT INTO phonebook (id, fname, lname, email, office, province)
VALUES (6, 'sineenat', 'phradmali', 'sineenat@health.moph.go.th', 'ศทส.', '12')
เป็นคำสั่งสำหรับการเพิ่มแถวข้อมูล หรือระเบียนใหม่เข้าตารางข้อมูล
10.คำสั่ง ALTER TABLE
ALTER TABLE phonebook ADD tel VARCHAR(30)
ALTER TABLE เป็นคำสั่งสำหรับการปรับเปลี่ยนแก้ไขโครงสร้างของตารางข้อมูล เช่น การเพิ่ม-ลบฟิลด์การสร้าง-ลบดัชนีการเปลี่ยนประเภทข้อมูลของฟิลด์การเปลี่ยนชื่อฟิลด์ เป็นต้น


วันอาทิตย์ที่ 30 พฤศจิกายน พ.ศ. 2557

ข้อสอบ O-net

คำสั่ง ให้นักเรียนทำเครื่องหมายกากบาท(X)ทับข้อที่ถูกที่สุดเพียงข้อเดียว
1.ข้อใดไม่ใช่ระบบปฏิบัติการที่นำมาใช้บนอุปกรณ์พกพา
ประเภท  Smartphone.
1.  Ubumtu       2.  Iphone  os
3.  Android      4.  Symbian
เฉลยข้อ  1
2.ไฟล์ประเภทใดในข้อต่อไปนี้เก็บข้อมูลในลักษณะตัวอักษร.
1.  ไฟล์เพลง  MP 3 (mp 3)
2.  ไฟล์รูปประเภท  JPEG (jpeg)
3.  ไฟล์แสดงผลหน้าเว็บ (html)
4.  ไฟล์วีดีโอประเภท  Movie (movie)
เฉลยข้อ  3
3.ลิขสิทธิ์โปรแกรมประเภทรหัสเปิด(
Open Source)อนุญาต
ให้ผู้ใช้ทำอะไรได้บ้าง.
ก.
  นำโปรแกรมมาใช้งานโดยไม่ต้องเสียค่าลิขสิทธิ์
ข.
  ทดลองใช้โปรแกรมก่อนถ้าพอใจจึงจ่ายค่าลิขสิทธิ์
ค.
  แก้ไขปรับปรุงโปรแกรมเองได้
1.
  ข้อ  ก กับ  ข้อ        2.  ข้อ    กับ  ข้อ  
3.
  ข้อ    อย่างเดียว     4.  ข้อ    อย่างเดียว
เฉลยข้อ  4
4.ระบบกระดานสนทนาหรือเว็บบอร์ดแห่งหนึ่งมีความต้องการดังนี้
ก.
  ต้องให้ผู้ใช้สามารถตั้งกระทู้โต้ตอบกันได้โดยผู้ใช้
ต้องแสดงตัวตน(ล็อกอิน)เพื่อเข้าระบบก่อน
ข.  ผู้ใช้สามารถตั้งกระทู้หรือเข้าไปตอบกระทู้ที่ตั้งไว้แล้วได้
ค.  ระบบจะบันทึกชื่อผู้ตั้งและผู้ตอบไว้ด้วย
ในการออกแบบฐานข้อมูลดังกล่าวข้อใดกล่าวได้ถูกต้อง.
1.  ต้องสร้างตารางผู้ใช้ ตารางกระทู้และตารางคำตอบ
2.  ไม่ต้องสร้างตารางผู้ใช้เนื่องจากสามารถบันทึกชื่อ
ผู้ใช้ในตารางกระทู้และตารางคำตอบได้เลย
3.  ต้องสร้างตารางผู้ใช้และตารางกระทู้ส่วนคำตอบจะอยู่
ในตารางกระทู้อยู่แล้ว
4.  ไม่ต้องสร้างตารางกระทู้เพราะสามารถบันทึกกระทู้ที่ผู้ใช้
ตั้งในตารางผู้ใช้ได้เลย
เฉลยข้อ  4
5.อุปกรณ์ข้อใดคือหน่วยประเมินผลกลางของคอมพิวเตอร์.
เฉลย  CPU
6.ข้อใดเป้นการปฏิบัติที่ถูกต้องตามหลักวิชาการเมื่อค้นคว้า
หาข้อมูลจากอินเทอร์เนตมาทำรายงาน.
1.  คัดลอกเนื้อหาจากเว็บไซต์
2.  ใช้เนื้อหาจากกระดานสนทนา(Web board)มาใส่ในรายงาน
3.  นำรูปภาพจากเว็บไซต์มาใส่ในรายงาน
4.  อ้างอิงชื่อผู้เขียนบทความ
เฉลยข้อ  4
5.ห้องสมุดแห่งหนึ่งต้องการพัมนาระบบยืมหนังสือโดยสามารถ
บันทึกข้อมูลการยืมหนังสือลงบนบัตรอิเลคโทรนิกส์โดยไม่ต้อง
เขียนด้วยมือระบบนี้ควรใช้เทคโนโลยีในข้อใด.
1.
  Smart  Card          2.  Fingerprint
3.
  Barcode                 4.  WiFi
เฉลยข้อ  3
6.ผู้ประกอบอาชีพเป็นผู้พัฒนาเว็บไซต์ต้องเชี่ยวชาญความรู้
ด้านใดบ้างจากตัวเลือกต่อไปนี้.
ก.
  ฮาร์แวร์คอมพิวเตอร์       ข.  ระบบปฎิบัติการ
ค.
  เว็บเซิร์ฟเวอร์                   ง.  HTML
จ.
  ระบบฐานข้อมูล                ฉ.  ภาษาจาวา(Java)
1.
  ข้อ  ก และ ค                    2.  ข้อ    และ  
3.
  ข้อ    และ                     4.  ข้อ    และ  
เฉลยข้อ  3
7.ข้อใดเป็นเทคโนโลยีการเชื่อมต่อข้อมูลไร้สายทั้งหมด.
1.
  Wi-Fi  ,  IP              2.  Wi-Fi  ,Bluetooth
3.
  3G  ADSL                4.  3G    Ethernet
เฉลยข้อ  2
8.ข้อใดไม่ใช่ข้อเสียของการละเมิดลิขสิทธิ์ซอฟต์แวร์.
1.
  การทำผิดกฏหมายลิขสิทธิ์มีความผิดทางอาญา
2.
  เป็นช่องทางหนึ่งในการระบาดของไวรัสคอมพิวเตอร์
3.
  ผู้ใช้จะไม่ได้รับการบริการจากผู้พัมนาถ้าหากมีปัญหาการใช้งาน
4.
  ทำให้ผู้พัมนาซอฟแวร์ไม่มีรายได้เพื่อประกอบการและพัฒนาต่อไปได้
เฉลยข้อ  2

9.ข้อใดเป็นระบบปฏิบัติการทั้งหมด
1. Solaris , Symbian , IPX , RAM
2. DOS , WWW , Linux ,Windows
3. Symbian , Mac OS , Linux , Windows
4. Unix , Linux , Mac OS , Microsoft Office
เฉลยข้อ  3 
10. ถ้าต้องการบันทึก และวิเคราะห์คะแนนของนักเรียน และแสดงข้อมูลสรุปในรูปแบบของแผนภูมิซอฟต์แวร์ประเภทใด
เหมาะสมที่สุด
1. ซอฟต์แวร์ฐานข้อมูล (database)
2. ซอฟต์แวร์นาเสนอ (presentation)
3. ซอฟต์แวร์ตารางทางาน (spread sheet)
4. ซอฟต์แวร์ประมวลคา (word processing)

เฉลยข้อ  3 

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

PHP

พีเอชพี (PHP) คือ ภาษาคอมพิวเตอร์ในลักษณะเซิร์ฟเวอร์-ไซด์ สคริปต์ โดยลิขสิทธิ์อยู่ในลักษณะโอเพนซอร์ส ภาษาพีเอชพีใช้สำหรับจัดทำเว็บไซต์ และแสดงผลออกมาในรูปแบบ HTML โดยมีรากฐานโครงสร้างคำสั่งมาจากภาษา ภาษาซี ภาษาจาวา และ ภาษาเพิร์ล ซึ่ง ภาษาพีเอชพี นั้นง่ายต่อการเรียนรู้ ซึ่งเป้าหมายหลักของภาษานี้ คือให้นักพัฒนาเว็บไซต์สามารถเขียน เว็บเพจ ที่มีความตอบโต้ได้อย่างรวดเร็ว
พีเอชพีรุ่นล่าสุดคือ PHP 5.4.0 ส่วนรุ่นพัฒนาคือ PHP 6.0.0-dev
ชื่อของพีเอชพี
ภาษาพีเอชพี ในชื่อภาษาอังกฤษว่า PHP ซึ่งใช้เป็นคำย่อแบบกล่าวซ้ำ จากคำว่า PHP Hypertext Preprocessor หรือชื่อเดิม Personal Home Page
คุณสมบัติ
การแสดงผลของพีเอชพี จะปรากฏในลักษณะHTML ซึ่งจะไม่แสดงคำสั่งที่ผู้ใช้เขียน ซึ่งเป็นลักษณะเด่นที่พีเอชพีแตกต่างจากภาษาในลักษณะไคลเอนต์-ไซด์ สคริปต์ เช่น ภาษาจาวาสคริปต์ ที่ผู้ชมเว็บไซต์สามารถอ่าน ดูและคัดลอกคำสั่งไปใช้เองได้ นอกจากนี้พีเอชพียังเป็นภาษาที่เรียนรู้และเริ่มต้นได้ไม่ยาก โดยมีเครื่องมือช่วยเหลือและคู่มือที่สามารถหาอ่านได้ฟรีบนอินเทอร์เน็ต ความสามารถการประมวลผลหลักของพีเอชพี ได้แก่ การสร้างเนื้อหาอัตโนมัติจัดการคำสั่ง การอ่านข้อมูลจากผู้ใช้และประมวลผล การอ่านข้อมูลจากดาต้าเบส ความสามารถจัดการกับคุกกี้ ซึ่งทำงานเช่นเดียวกับโปรแกรมในลักษณะCGI คุณสมบัติอื่นเช่น การประมวลผลตามบรรทัดคำสั่ง (command line scripting) ทำให้ผู้เขียนโปรแกรมสร้างสคริปต์พีเอชพี ทำงานผ่านพีเอชพี พาร์เซอร์ (PHP parser) โดยไม่ต้องผ่านเซิร์ฟเวอร์หรือเบราว์เซอร์ ซึ่งมีลักษณะเหมือนกับ Cron (ใน ยูนิกซ์หรือลีนุกซ์) หรือ Task Scheduler (ในวินโดวส์) สคริปต์เหล่านี้สามารถนำไปใช้ในแบบ Simple text processing tasks ได้

การแสดงผลของพีเอชพี ถึงแม้ว่าจุดประสงค์หลักใช้ในการแสดงผล HTML แต่ยังสามารถสร้าง XHTML หรือ XML ได้ นอกจากนี้สามารถทำงานร่วมกับคำสั่งเสริมต่างๆ ซึ่งสามารถแสดงผลข้อมูลหลัก PDF แฟลช (โดยใช้ libswf และ Ming) พีเอชพีมีความสามารถอย่างมากในการทำงานเป็นประมวลผลข้อความ จาก POSIX Extended หรือ รูปแบบ Perl ทั่วไป เพื่อแปลงเป็นเอกสาร XML ในการแปลงและเข้าสู่เอกสาร XML เรารองรับมาตรฐาน SAX และ DOM สามารถใช้รูปแบบ XSLT ของเราเพื่อแปลงเอกสาร XML

เมื่อใช้พีเอชพีในการทำอีคอมเมิร์ซ สามารถทำงานร่วมกับโปรแกรมอื่น เช่น Cybercash payment, CyberMUT, VeriSign Payflow Pro และ CCVS functions เพื่อใช้ในการสร้างโปรแกรมทำธุรกรรมทางการเงิน

การรองรับพีเอชพี
คำสั่งของพีเอชพี สามารถสร้างผ่านทางโปรแกรมแก้ไขข้อความทั่วไป เช่น โน้ตแพด หรือ vi ซึ่งทำให้การทำงานพีเอชพี สามารถทำงานได้ในระบบปฏิบัติการหลักเกือบทั้งหมด โดยเมื่อเขียนคำสั่งแล้วนำมาประมวลผล Apache, Microsoft Internet Information Services (IIS) , Personal Web Server, Netscape และ iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, และอื่นๆ อีกมากมาย. สำหรับส่วนหลักของ PHP ยังมี Module ในการรองรับ CGI มาตรฐาน ซึ่ง PHP สามารถทำงานเป็นตัวประมวลผล CGI ด้วย และด้วย PHP, คุณมีอิสรภาพในการเลือก ระบบปฏิบัติการ และ เว็บเซิร์ฟเวอร์ นอกจากนี้คุณยังสามารถใช้สร้างโปรแกรมโครงสร้าง สร้างโปรแกรมเชิงวัตถุ (OOP) หรือสร้างโปรแกรมที่รวมทั้งสองอย่างเข้าด้วยกัน แม้ว่าความสามารถของคำสั่ง OOP มาตรฐานในเวอร์ชันนี้ยังไม่สมบูรณ์ แต่ตัวไลบรารีทั้งหลายของโปรแกรม และตัวโปรแกรมประยุกต์ (รวมถึง PEAR library) ได้ถูกเขียนขึ้นโดยใช้รูปแบบการเขียนแบบ OOP เท่านั้น

พีเอชพีสามารถทำงานร่วมกับฐานข้อมูลได้หลายชนิด ซึ่งฐานข้อมูลส่วนหนึ่งที่รองรับได้แก่ ออราเคิล dBase PostgreSQL IBM DB2 MySQL Informix ODBC โครงสร้างของฐานข้อมูลแบบ DBX ซึ่งทำให้พีเอชพีใช้กับฐานข้อมูลอะไรก็ได้ที่รองรับรูปแบบนี้ และ PHP ยังรองรับ ODBC (Open Database Connection) ซึ่งเป็นมาตรฐานการเชื่อมต่อฐานข้อมูลที่ใช้กันแพร่หลายอีกด้วย คุณสามารถเชื่อมต่อกับฐานข้อมูลต่างๆ ที่รองรับมาตรฐานโลกนี้ได้



พีเอชพียังสามารถรองรับการสื่อสารกับการบริการในโพรโทคอลต่างๆ เช่น LDAP IMAP SNMP NNTP POP3 HTTP COM (บนวินโดวส์) และอื่นๆ อีกมากมาย คุณสามารถเปิด Socket บนเครื่อข่ายโดยตรง และ ตอบโต้โดยใช้ โพรโทคอลใดๆ ก็ได้ PHP มีการรองรับสำหรับการแลกเปลี่ยนข้อมูลแบบ WDDX Complex กับ Web Programming อื่นๆ ทั่วไปได้ พูดถึงในส่วน Interconnection, พีเอชพีมีการรองรับสำหรับ Java objects ให้เปลี่ยนมันเป็น PHP Object แล้วใช้งาน คุณยังสามารถใช้รูปแบบ CORBA เพื่อเข้าสู่ Remote Object ได้เช่นกัน


ชนิดข้อมูลใน MySQL (Datatype)


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 ค่า

วันพุธที่ 29 ตุลาคม พ.ศ. 2557

ฐานข้อมูล

ประวัติ
ฐานข้อมูลในลักษณะที่คล้ายกับฐานข้อมูลสมัยใหม่ ถูกพัฒนาเป็นครั้งแรกในทศวรรษ 1960 ซึ่งผู้บุกเบิกในสาขานี้คือ ชาลส์ บากแมน แบบจำลองข้อมูลสำคัญสองแบบเกิดขึ้นในช่วงเวลานี้ ซึ่งเริ่มต้นด้วย แบบจำลองข่ายงาน (พัฒนาโดย CODASYL) และตามด้วยแบบจำลองเชิงลำดับชั้น (นำไปปฏิบัติใน IMS) แบบจำลองทั้งสองแบบนี้ ในภายหลังถูกแทนที่ด้วย แบบจำลองเชิงสัมพันธ์ ซึ่งอยู่ร่วมสมัยกับแบบจำลองอีกสองแบบ แบบจำลองแบบแรกเรียกกันว่า แบบจำลองแบนราบซึ่งออกแบบสำหรับงานที่มีขนาดเล็กมาก ๆ แบบจำลองร่วมสมัยกับแบบจำลองเชิงสัมพันธ์อีกแบบ คือ ฐานข้อมูลเชิงวัตถุ หรือ โอโอดีบี3 (OODB)
ในขณะที่แบบจำลองเชิงสัมพันธ์ มีพื้นฐานมาจากทฤษฎีเซต ได้มีการเสนอแบบจำลองดัดแปลงซึ่งใช้ทฤษฎีเซตคลุมเครือ (ซึ่งมีพื้นฐานมาจากตรรกะคลุมเครือ) ขึ้นเป็นอีกทางเลือกหนึ่ง
ปัจจุบันมีการกล่าวถึงมาตรฐานโครงสร้างฐานข้อมูล เพื่อให้สามารถเชื่อมโยงฐานข้อมูลต่างระบบ ให้สืบค้นรวมกันเสมือนเป็นฐานข้อมูลเดียวกัน และการสืบค้นต้องแสดงผลตรงตามคำถาม มาตรฐานดังกล่าวได้แก่ XML RDF Dublin Core Metadataเป็นต้น และสิ่งสำคัญอีกประการหนึ่งที่จะช่วยให้การแลกเปลี่ยนข้อมูลรหว่างต่างหน่วยงานได้ดี คือการใช้ Taxonomy และ อรรถาภิธาน ซึ่งเป็นเครื่องมือสำหรับจัดการความรู้ในลักษณะศัพท์ควบคุม เพื่อจำกัดความหมายของคำที่ใช้ได้หลายคำในความหมายเดียวกัน
สถาปัตยกรรม
สถาปัตยกรรมฐานข้อมูล ประกอบด้วย 3 ระดับ คือ ระดับภายนอก, ระดับแนวคิด และ ระดับภายใน โดยทั้ง 3 ระดับ จะถูกแบ่งแยกออกจากกันโดยชัดเจน ซึ่งทั้ง 3 ระดับเป็นลักษณะสำคัญหลักๆ ของแบบจำลองฐานข้อมูลเชิงสัมพันธ์ ที่นิยมนำมาใช้กับฐานข้อมูลในยุคศตวรรษที่ 21
ระดับภายนอก คือ การบอกผู้ใช้ให้เข้าใจว่าจะจัดการข้อมูลได้อย่างไร โดยในฐานข้อมูลหนึ่งๆ สามารถมีจำนวนวิวที่ระดับภายในกี่วิวก็ได้ ระดับภายใน คือ การที่ข้อมูลจะถูกเก็บไว้ในที่จัดเก็บข้อมูลเชิงกายภาพและประมวลผลโดยระบบคอมพิวเตอร์ได้อย่างไร สถาปัตยกรรมภายในจะมีเกี่ยวข้องกับ ต้นทุน, ประสิทธิภาพ, การขยายขนาดของงาน และ ปัจจัยในการดำเนินการอื่นๆ ระดับแนวคิด คือ ระดับที่อยู่ระหว่างระดับภายในและระดับภายนอก โดยจะต้องจัดเตรียมวิวของฐานของมูลให้ไม่ซับซ้อน โดยจะมีรายละเอียดว่าจะจัดเก็บหรือจัดการข้อมูลอย่างไร, และสามารถรวมระดับภายนอกที่หลากหลายต่างๆ ให้สอดคล้องเข้าไว้ด้วยกัน
ระบบจัดการฐานข้อมูล
ดูบทความหลักที่: ระบบจัดการฐานข้อมูล
ระบบจัดการฐานข้อมูล (DBMS) ประกอบด้วยซอฟต์แวร์ที่ใช้ในการจัดการฐานข้อมูล, จัดเตรียมพื้นที่ในการเก็บ, การเข้าถึง,ระบบรักษาความปลอดภัย, สำรองข้อมูล และสิ่งอำนวยความสะดวกอื่นๆ ระบบจัดการฐานข้อมูลสามารถแบ่งหมวดหมู่ได้ตามแบบจำลองฐานข้อมูลที่สนับสนุน อาทิเช่น เชิงสัมพันธ์ หรือ XML เป็นต้น แบ่งตามประเภทของคอมพิวเตอร์ที่สนับสนุน อาทิเช่นserver cluster หรือ โทรศัพท์พกพา เป็นต้น แบ่งตามประภทของภาษาสอบถามที่ใช้ในการเข้าถึงฐานข้อมูล อาทิเช่น ภาษาสอบถามเชิงโครงสร้าง หรือ XQuery แบ่งตามประสิทธิภาพในการ trade-offs อาทิเช่น ขนาดที่ใหญ่ที่สุด หรือ ความเร็วสูงสุด หรือ อื่นๆ เป็นต้น ในบาง DBMS จะครอบคลุมมากกว่าหนึ่งหมวดหมู่ เช่น สนับสนุนภาษาสอบถามได้หลายๆ ภาษา ยกตัวอย่างเช่น ในDBMS ที่นิยมใช้การอย่างแพร่หลาย MySQL, PostgreSQL, Microsoft Access, SQL Server, FileMaker,Oracle,Sybase, dBASE, Clipper,FoxPro อื่นๆ ในทุกๆ ซอฟต์แวร์ฐานข้อมูลจะมี Open Database Connectivity (ODBC) driver มาให้ด้วย เพื่ออนุญาตให้ฐานข้อมูลสามารถทำงานร่วมกับฐานข้อมูลแบบอื่นๆ ได้
การออกแบบฐานข้อมูล
การออกแบบฐานข้อมูล (Designing Databases) มีความสำคัญต่อการจัดการระบบฐานข้อมูล (DBMS) ทั้งนี้เนื่องจากข้อมูลที่อยู่ภายในฐานข้อมูลจะต้องศึกษาถึงความสัมพันธ์ของข้อมูล โครงสร้างของข้อมูลการเข้าถึงข้อมูลและกระบวนการที่โปรแกรมประยุกต์จะเรียกใช้ฐานข้อมูล ดังนั้น เราจึงสามารถแบ่งวิธีการสร้างฐานข้อมูลได้ 3 ประเภท
1. รูปแบบข้อมูลแบบลำดับขั้น หรือโครงสร้างแบบลำดับขั้น (Hierarchical data model) วิธีการสร้างฐาน ข้อมูลแบบลำดับขั้นถูกพัฒนาโดยบริษัท ไอบีเอ็ม จำกัด ในปี 1980 ได้รับความนิยมมาก ในการพัฒนาฐานข้อมูลบนเครื่องคอมพิวเตอร์ขนาดใหญ่และขนาดกลาง โดยที่โครงสร้างข้อมูลจะสร้างรูปแบบเหมือนต้นไม้ โดยความสัมพันธ์เป็นแบบหนึ่งต่อหลาย (One- to -Many)
2. รูปแบบข้อมูลแบบเครือข่าย (Network data Model) ฐานข้อมูลแบบเครือข่ายมีความคล้ายคลึงกับฐาน ข้อมูลแบบลำดับชั้น ต่างกันที่โครงสร้างแบบเครือข่าย อาจจะมีการติดต่อหลายต่อหนึ่ง (Many-to-one) หรือ หลายต่อหลาย (Many-to-many) กล่าวคือลูก (Child) อาจมีพ่อแม่ (Parent) มากกว่าหนึ่ง สำหรับตัวอย่างฐานข้อมูลแบบเครือข่ายให้ลองพิจารณาการจัดการข้อมูลของห้องสมุด ซึ่งรายการจะประกอบด้วย ชื่อเรื่อง ผู้แต่ง สำนักพิมพ์ ที่อยู่ ประเภท
3. รูปแบบความสัมพันธ์ข้อมูล (Relation data model) เป็นลักษณะการออกแบบฐานข้อมูลโดยจัดข้อมูลให้อยู่ในรูปของตารางที่มีระบบคล้ายแฟ้ม โดยที่ข้อมูลแต่ละแถว (Row) ของตารางจะแทนเรคอร์ด (Record) ส่วน ข้อมูลนแนวดิ่งจะแทนคอลัมน์ (Column) ซึ่งเป็นขอบเขตของข้อมูล (Field) โดยที่ตารางแต่ละตารางที่สร้างขึ้นจะเป็นอิสระ ดังนั้นผู้ออกแบบฐานข้อมูลจะต้องมีการวางแผนถึงตารางข้อมูลที่จำเป็นต้องใช้ เช่นระบบฐานข้อมูลบริษัทแห่งหนึ่ง ประกอบด้วย ตารางประวัติพนักงาน ตารางแผนกและตารางข้อมูลโครงการ แสดงประวัติพนักงาน ตารางแผนก และตารางข้อมูลโครงการ

การออกแบบฐานข้อมูลเชิงสัมพันธ์
การออกแบบฐานข้อมูลในองค์กรขนาดเล็กเพื่อตอบสนองความต้องการของผู้ใช้งานอาจเป็นเรื่องที่ไม่ยุ่งยากนัก เนื่องจากระบบและขั้นตอนการทำงานภายในองค์กรไม่ซับซ้อน ปริมาณข้อมูลที่มีก็ไม่มาก และจำนวนผู้ใช้งานฐานข้อมูลก็มีเพียงไม่กี่คน หากทว่าในองค์กรขนาดใหญ่ ซึ่งมีระบบและขั้นตอนการทำงานที่ซับซ้อน รวมทั้งมีปริมาณข้อมูลและผู้ใช้งานจำนวนมาก การออกแบบฐานข้อมูลจะเป็นเรื่องที่มีความละเอียดซับซ้อน และต้องใช้เวลาในการดำเนินการนานพอควรทีเดียว ทั้งนี้ ฐานข้อมูลที่ได้รับการออกแบบอย่างเหมาะสมจะสามารถตอบสนองต่อความต้องการของผู้ใช้งานภายในหน่วยงานต่าง ๆ ขององค์กรได้ ซึ่งจะทำให้การดำเนินงานขององค์กรมีประสิทธิภาพดียิ่งขึ้น เป็นผลตอบแทนที่คุ้มค่าต่อการลงทุนเพื่อพัฒนาระบบฐานข้อมูลภายในองค์กรทั้งนี้ การออกแบบฐานข้อมูลที่นำซอฟต์แวร์ระบบจัดการฐานข้อมูลมาช่วยในการดำเนินการ สามารถจำแนกหลักในการดำเนินการได้ 6 ขั้นตอน คือ
1.การรวบรวมและวิเคราะห์ความต้องการในการใช้ข้อมูล
2.การเลือกระบบจัดการฐานข้อมูล
3.การออกแบบฐานข้อมูลในระดับแนวคิด
4.การนำฐานข้อมูลที่ออกแบบในระดับแนวคิดเข้าสู่ระบบจัดการฐานข้อมูล
5.การออกแบบฐานข้อมูลในระดับกายภาพ
6.การนำฐานข้อมูลไปใช้และการประเมินผล

การออกแบบฐานข้อมูลในระดับตรรกะ
การออกแบบฐานข้อมูลในระดับตรรกะ หรือในระดับแนวความคิด เป็นขั้นตอนการออกแบบความสัมพันธ์ระหว่างข้อมูลในระบบโดยใช้แบบจำลองข้อมูลเชิงสัมพันธ์ ซึ่งอธิบายโดยใช้แผนภาพแสดงความสัมพันธ์ระหว่างข้อมูล (E-R Diagram) จากแผนภาพ E-R Diagram นำมาสร้างเป็นตารางข้อมูล (Mapping E-R Diagram to Relation) และใช้ทฤษฏีการ Normalization เพื่อเป็นการรับประกันว่าข้อมูลมีความซ้ำซ้อนกันน้อยที่สุด ซึ่งการออกแบบเชิงตรรกะนี้จะบอกถึงรายละเอียดของ Relation , Attributeและ Entity

วันศุกร์ที่ 19 กันยายน พ.ศ. 2557

บทบาทและการสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์

บทบาทและการสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์

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

    สำหรับการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์หลายเครื่องในเวลาเดียวกันที่เรียกว่าระบบเครือข่าย (network) มีการพัฒนาให้ดีขึ้นเป็นลำดับ จากในอดีตการใช้งานคอมพิวเตอร์จะเป็นคอมพิวเตอร์ที่มีขนาดใหญ่เช่น เมนเฟรม การใช้งานจะมีการเชื่อมต่อไปยังเครื่องปลายทางหรือเทอร์มินัล (terminal) หลายเครื่อง ซึ่งถือว่าเป็น
การติดต่อสื่อสารระหว่างคอมพิวเตอร์กับเทอร์มินัลในยุคแรก

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

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

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

การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ก่อให้เกิดประโยชน์ ดังนี้

    1. ความสะดวกในการแบ่งปันข้อมูล ปัจจุบันมีข้อมูลจำนวนมากสามารถถูกส่งผ่านเครือข่ายการสื่อสารได้อย่างมีประสิทธิภาพและรวดเร็ว เช่น การส่งข้อมูลผ่านเครือข่ายโทรศัพท์ระบบ ดีเอสแอล ( Digital Subscriber Line DSL ) ถ้าส่งด้วยอัตราเร็ว 2 Mbps หรือประมาณ 256 kB/s จะส่งข้อมูลจำนวน 200หน้าได้ในเวลาน้อยกว่า 10 วินาที

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

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

    4. การประหยัดค่าใช้จ่ายในการสื่อสารข้อมูล การรับและส่งข้อมูลผ่านเครือข่ายการสื่อสารสามารถทำได้ในราคาถูกกว่าการสื่อสารแบบอื่น เช่น การใช้งานโทรศัพท์โดยผ่านอินเทอร์เน็ตหรือที่เรียกว่า วอยซ์โอเวอร์ไอพี
( Voice over IP : VoIP ) จะมีค่าใช้จ่ายต่ำกว่าการใช้งานโทรศัพท์โดยผ่านระบบโทรศัพท์พื้นฐาน หรือการใช้อีเมลส่งข้องมูลหรือเอกสารในรูปแบบอีเล็กทรอนิกส์จะมีค่าใช้จ่ายต่ำกว่า และรวดเร็วกว่าการส่งเอกสารแบบวิธีอื่น

    5. ความสะดวกในการแบ่งปันทรัพยากร ในองค์กรสามารถใช้อุปกรณ์สารสนเทศร่วมกันได้โดยไม่ต้องเสียค่าใช้จ่ายติดตั้งอุปกรณ์ให้กับทุกเครื่อง เช่น เครื่องพิมพ์ นอกจากนี้ยังสามารถให้โปรแกรมและข้อมูลร่วมกันได้ โดยจัดเก็บโปรแกรมและข้อมูลเหล่านั้นไว้ที่แหล่งเก็บข้อมูลที่เป็นศูนย์กลาง เช่น เครื่องบริการไฟล์ ( file server ) เป็นต้น

    6. ความสะดวกในการประสารงาน ในองค์กรที่มีหน่วยงานย่อยหลายแห่งที่อยู่ห่างไกลกันสามารถทำงานประสานกันผ่านระบบอินเทอร์เน็ต เช่น การประชุมทางไกล และการแก้ไขเอกสารร่วมกันผ่านระบบเครือข่าย

    7. ขยายบริการองค์กร เครือข่ายคอมพิวเตอร์ทำให้องค์กรสามารถกระจายทำการไปตามจุดต่างๆ ที่ต้องการให้บริการ เช่น ธนาคารที่มีสาขาทั่วประเทศ สามารถถอนเงินได้จากตู้เอทีเอ็ม หรือฝากเงินได้ตามตู้เอทีเอ็ม เป็นต้น

    8. การสร้างบริการรูปแบบใหม่บนเครือข่าย การให้บริการต่างๆ ผ่านเครือข่ายคอมพิวเตอร์ทำให้ผู้ใช้สามารถเข้าใช้บริการได้ทุกที่ทุกเวลา เช่น การซื้อสินค้าผ่านร้านค้าออนไลน์ ซึ่งเป็นบริการแบบหนึ่งของพาณิชย์อิเล็กทรอนิคส์ ( e – commerce ) และการรับชำระสินค้า ค่าสาธารณูปโภคผ่านจุดรับชำระแบบออนไลน์ ที่เรียกว่าเคาน์เตอร์เซอร์วิส ( counter service )a

วันอังคารที่ 16 กันยายน พ.ศ. 2557

การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์

การติดต่อสื่อสารเป็นการพูดคุยหรือส่งข่าวสารกันของมนุษย์  ซึ่งอาจเป็นการแสดงออกด้วยท่าทาง การใช้ภาษาพูดหรือผ่านทางตัวอักษร  โดยส่วนใหญ่เป็นการสื่อสารในระยะมาใกล้ ต่อมาเมื่อเทคโนโลยีก้าวหน้าขึ้นมีการพัฒนาอุปกรณ์อิเล็กทรอนิกส์สำหรับใช้ในการสื่อสาร ทำให้สามารถสื่อสารได้ในระยะทางไกลและสะดวกรวดเร็วมากขึ้น เช่น โทรเลข โทรศัพท์ และโทรสาร
 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ ก่อให้เกิดประโยชน์ดังนี้
1) ความสะดวกในการแบ่งปันข้อมูล   ปัจจุบันมีข้อมูลจำนวนมากมายสามารถถูกส่งผ่านเครือข่ายการสื่อสารได้อย่างมีประสิทธิภาพและรวดเร็ว
2) ความถูกต้องของข้อมูล   การรับส่งข้อมูลระหว่างคอมพิวเตอร์ผ่านเครือข่ายการสื่อสารเป็นการส่งแบบดิจิทัล
3) ความเร็วของการรับส่งข้อมูล   การใช้คอมพิวเตอร์ในการส่งข้อมูลหรือค้นหาข้อมูลหรือค้นหาข้อมูลจากฐานข้อมูลขนาดใหญ่ทำได้อย่างรวดเร็ว
4) การประหยัดค่าใช้จ่ายในการสื่อสารข้อมูล   การรับและส่งข้อมูลผ่านเครือข่ายการสื่อสารสามารถได้ในราคาถูกว่าการสื่อสารแบบอื่น
5) ความสะดวกในการแบ่งปันทรัพยากร  ในองค์กรสามารถใช้อุปกรณ์สารสนเทศร่วมกันได้ โดยไม่ต้องค่าใช้จ่ายติดตั้งอุปกรณ์ให้กับทุกเครื่อง  เช่น  เครื่องพิมพ์
6) ความสะดวกในการในการประสานงาน  ในองค์กรที่มีหน่วยงานย่อยหลายแห่งที่อยู่ห่างไกลกันสามารถทำงานประสานกันผ่านทางระบบอินเทอร์เน็ต
7) ขยายบริการขององค์กร  เครือข่ายคอมพิวเตอร์กรสามารถกระจายที่ทำการไปตามจุดต่างๆ ที่ต้องการให้บริการ  เช่น  ธนาคารมีสาขาทั่วประเทศ
8) การสร้างบริการรูปแบบใหม่บนเครือข่าย   การให้บริการต่างๆ  ผ่านเครือข่ายคอมพิวเตอร์  ทำให้ผู้ใช้สามารถเข้าใช้สามารถเข้าใช้บริการได้ทุกที่ทุกเวลา
……………………………………………………………………………………………………………………………..

>>>>4.2 การสื่อสารข้อมูล

การสื่อสารข้อมูล  หมายถึง การแลกเปลี่ยนข้อมูล/ข่าวสารโดยผ่านทางสื่อกลางในการสื่อสารซึ่งอาจเป็นสื่อกลางประเภทที่มีสายหรือไร้สายก็ได้
1) ข้อมูล/ข่าวสาร (data/message)
2) ผู้ส่ง  (sender)
3) ผู้รับ  (receiver)
4) สื่อกลางในการส่งข้อมูล (transmission media)
5) โพรโทคอล (protocol)
4.2.1 สัญญาณที่ใช้ในระบบการสื่อสาร   แบ่งออกได้เป็น 2ประเภท
4.2.2การถ่ายโอนข้อมูล เป็นการส่งสัญญาณจากอุปกรณ์ส่ง
1) การถ่ายโอนข้อมูลแบบขนาน
4.2.3 รูปแบบการรับ-ส่งข้อมูล
1) การสื่อสารทางเดียว  (simplex transmission)
2) การสื่อสารสองทางครึ่งอัตรา  (half duplex transmission)
3) การสื่อสารสองทางเต็มอัตรา   (full duplex transmission)

……………………………………………………………………………………………………..

>>>>4.3 สื่อกลางในการสื่อสารข้อมูล

4.3.1 สื่อกลางแบบใช้สาย
1) สายคู่บิดเกลียว (twisted pair cable) สายนำสัญญาณแบบนี้แต่ละคู่สายที่สายที่เป็นสายทองแดงจะถูกพันบิดเป้นเกลียว
2) สายโคแอกซ์  (coaxial cable) เป็นสายนำสัญญาณที่เรารู้จักกันดี โดยใช้เป็นสายนำสัญญาณที่ต่อจากเสาอากาศเครื่องรับโทรทัศน์หรือสายเคเบิลทีวี
3) สายไฟเบอรืออพติก (fiber-optic cable) ประกอบด้วยกลุ่มของเส้นใยทำมาจากแก้ว
4.3.2 สือกลางแบบไร้สาย  การสื่อสารแบบไร้สายอาศัยคลื่นแม่เหล้กไฟฟ้าเป็นสื่อกลางนำสัญญาณ
1) อินฟราเรด
2) ไมโครเวฟ
3) คลื่นวิทยุ
4) ดาวเทียมสื่อสาร
……………………………………………………………………………………………………………………………..

>>>>4.4 เครือข่ายคอมพิวเตอร์

    เครือข่ายคอมพิวเตอร์สามารถแบ่งออกเป็นประเภทตามพื้นที่ที่ครอบคลุมการใช้งานของเครือข่าย  ดังนี้
1.เครือข่ายส่วนบุคคล  หรือแพน
2.เครือข่ายเฉพาะที่  หรือแลน
3.เครือข่ายนครหลวง  หรือแมน
 4.เครือข่ายวงกว้างหรือแวน
4.4.1 ลักษณะของเครือข่าย
1.เครือข่ายแบบรับ-ให้บริการ  หรือไคลเอนท์/เซิร์ฟเวอร์
2.เครือข่ายระดับเดียวกัน
4.4.2 รูปเครือข่าย
 โดยทั่วไปรูปร่างเครือข่ายสามารถแบบออกตามลักษณะของการเชื่อมต่อได้ 4  รูปแบบ  คือ
1.เครือข่ายแบบบัส  (bus   topology)
2.เครือข่ายแบบวงแหวน(ring  topology)
3.เครือข่ายแบบดาว(star  topology)
4.เครือข่ายแบบเมช  (mesh  topology)
……………………………………………………………………………………………………………………………..

>>>>4.5  โพรโทคอล

  สำหรับโพรโทคอลที่ใช้เป็นมาตรฐานในการสื่อสารแบบใช้สาย  และแบบไร้สาย  ที่ใช้กันอย่างแพร่หลาย  เช่น
-ทีซีพี/ไอพี(Transmission  Control  Protocol/Internet  Protocol :TCP/IP)
-ไวไฟ(Wireless  Fidelily: Wi-Fi)-ไออาร์ดีเอ  เป็นโพรโทคลอใช้เชื่อมต่อคอมพิวเตอร์กับอุปกรณ์สื่อสารแบบไร้สายระยะใกล้ และไม่มีสิ่งกีดขวาง
-บลูทูท  เป็นโพรโทคอลที่ใช้คลื่นวิทยุความถี2.4  GHz  ในการรับส่งข้อมูลโดยคล้ายกับแลนไร้สาย  ตามมาตรฐาน  IEEE 802.15

……………………………………………………………………………………………………..

>>>>4.6อุปกรณ์การสื่อสาร

1.โมเด็ม(modem)

1.1โมเด็มแบบหมุนโทรศัพท์

1.2 ดิจิทัลโมเด็ม-ดีเอสแอล  เป็นโมเดฟ็มที่ไดกรับความนิยมในการใช้งานในบ้าน  และสำนักงานขนาดเล็ก

-เคเบิลโมเด็ม   เป็นโมเด็มทำหน้าที่รับและส่งข้อมูลดิจิทัลจากคอมพิวเตอร์ผ่านทางสายเคเบิลทีวี

2.การ์ดแลน(LAN  card)

3.ฮับ(hub)

4. สวิตช์(switch)

5. อุปกรณ์จัดเส้นทาง  (router)

6.จุดเชื่อมต่อแบบไร้สาย  (wireless  access  point)

…………………………………………………………………………………………………..

>>>>4.7 ตัวอย่างการติดตั้งแลนภายในบ้าน

         สามารถทำได้โดยเชื่อมต่อคอมพิวเตอร์อย่างน้อยสองเครื่องเข้าด้วยกันโดยผ่านสวิตซ์ และทำการปรับตั้งค่าโพรโทคอลการสื่อสารที่เกี่ยวข้อง เช่น ที่อยู่ไอทีของแต่ละเครื่อง

…………………………………………………………………………………