Featured Post

ขายของออนไลน์

ขายของออนไลน์ หลังจากห่างหายจากการเขียน blog อัพเดทความรู้ด้านไอที ใหม่ๆ ไปนานพอสมควร วันนี้มีโอกาสมาเขียน ดังนั้นวันนี้ก็จะขอแนะนำร้านค้าขายของออนไลน์...

อ่านต่อ

การเปรียบเทียบฐานข้อมูล SQL ชนิดต่างๆ

Posted by sunisa | Posted in Database | Posted on 10-07-2009

0

สรุปการเปรียบเทียบฐานข้อมูล SQL ชนิดต่างๆ

1.คำสั่ง Join

ทุกฐานข้อมูลสามารถใช้ INNER JOINs ได้ แต่ join types ประเภทอื่นๆ ไม่สามารถใช้ได้ทุกฐานข้อมูลแต่ขึ้นอยู่กับชนิดของฐานข้อมูล

yes = สามารถใช้งานได้

Join type/feature

PostgreSQL

DB2

MSSQL

MySQL

Oracle

Informix

Natural joins (only tested: NATURAL LEFT JOIN)

yes

yes

yes

USING-clause

yes

yes

yes

FULL joins1 (tested: SELECT…FULL JOIN…ON…=…)

yes

yes

yes

yes

yes

Explicit CROSS JOIN (cartesian product)

yes

yes

yes

yes

yes

yes

2. การเรียงลำดับข้อมูล

บางฐานข้อมูลจัดเรียงโดยค่าที่เป็น NULLs ถือว่ามีค่ามากกว่า non-NULL values เช่น PostgreSQL, DB2, Oracle และบางฐานข้อมูลจัดเรียงโดยค่าที่เป็น NULLs ถือว่ามีค่าน้อยกว่า

non-NULL values เช่น  MSSQL, MySQL, Informix เป็นต้น

รูปแบบคำสั่ง:

DECLARE cursorname CURSOR FOR
SELECT ... FROM ... WHERE ...
ORDER BY column_name1,column_name2,…

3.การใช้คำสั่ง SELECT

คำสั่ง SELECT ใช้ในการเลือกข้อมูลที่ต้องการ โดยการใช้คำสั่งเพื่อดึงข้อมูลที่เราต้องการออกมานั้นมีรูปแบบคำสั่งมาตรฐานหลายรูปแบบให้เลือกใช้  ขึ้นอยู่กับการสนับสนุนของฐานข้อมูล ซึ่งบางฐานข้อมูลไม่สนับสนุนรูปแบบมาตรฐานใดๆเลยและมีชุดคำสั่งเป็นของตัวเอง แบ่งเป็น 3 แบบ ได้แก่
Simple limit, Top-n, Limit—with offset

3.1 SELECT Simple limit มีคำสั่งมาตรฐาน 3 รูปแบบ ดังนี้

  • ใช้ FETCH FIRST:

รูปแบบคำสั่ง:
SELECT … FROM … WHERE … ORDER BY … FETCH FIRST n ROWS ONLY

  • ใช้ Window function: ใช้ฟังก์ชัน ROW_NUMBER() OVER

รูปแบบคำสั่ง:
SELECT * FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
columns
FROM tablename
) AS foo
WHERE rownumber <= n

  • ใช้ cursor:
    • DECLARE cursor-name CURSOR FOR …
    • OPEN cursor-name
    • FETCH …
    • CLOSE cursor-name

3.2 SELECT Top-n หรือ quota-queries มีคำสั่งมาตรฐาน 2 รูปแบบ ดังนี้

  • The fast variant: ใช้ window function ชื่อ RANK() OVER

รูปแบบคำสั่ง:
SELECT * FROM (
SELECT
RANK() OVER (ORDER BY age ASC) AS ranking,
person_id,
person_name,
age
FROM person
) AS foo
WHERE ranking <= 3

  • The slow variant:

ในกรณีที่ DBMS ไม่สนับสนุน elementary OLAP features

รูปแบบคำสั่ง:
SELECT * FROM person AS px
WHERE (
SELECT COUNT(*)
FROM person AS py
WHERE py.age < px.age
) < 3

3.3 SELECT Limit—with offset

  • ใช้ OFFSET and FETCH FIRST:

รูปแบบคำสั่ง:
SELECT…
FROM …
WHERE …
ORDER BY …
OFFSET skip ROWS
FETCH FIRST n ROWS ONLY

  • Using a window function: ใช้ฟังก์ชัน ROW_NUMBER() OVER

รูปแบบคำสั่ง:
SELECT * FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY key ASC) AS rownum,
columns
FROM tablename
) AS foo
WHERE rownum > skip AND rownum <= (n+skip)

  • ใช้ cursor:

รูปแบบคำสั่ง:

    • DECLARE cursor-name CURSOR FOR …
    • OPEN cursor-name
    • FETCH RELATIVE number-of-rows-to-skip …
    • CLOSE cursor-name

4. การใช้คำสั่ง INSERT

บางฐานข้อมูลสนับสนุนการใช้คำสั่งเพื่อ INSERT ข้อมูลทีละหลายๆแถวได้ เช่น PostgreSQL, DB2, MySQL

รูปแบบคำสั่ง:
INSERT INTO tablename VALUES (0,'foo') , (1,'bar') , (2,'baz');

มีค่าเท่ากับการใช้คำสั่ง

INSERT INTO tablename VALUES (0,'foo');
INSERT INTO tablename VALUES (1,'bar');
INSERT INTO tablename VALUES (2,'baz');

5. ข้อมูลชนิด Boolean

Boolean สามารถมีค่าดังต่อไปนี้

- True

- False

- UNKNOWN หรือ NULL (ถ้าไม่มีข้อจำกัดว่าห้ามมีค่า Null)

โดย True จะมีค่ามากกว่า False บางฐานข้อมูลมีตัวแปรชนิดนี้ และบางฐานข้อมูลไม่มีตัวแปรชนิดนี้ แต่มีการใช้ตัวแปรอื่นเพื่อเก็บค่าเหมือนกับตัวแปร Boolean เช่นในฐานข้อมูล DB2 ใช้ฟิลด์ข้อมูล CHAR(1) เพื่อเก็บค่า 0 กับ 1

6. ข้อมูลชนิด char

บางฐานข้อมูลมีรูปแบบตามมาตรฐานของข้อมูลชนิดนี้ และบางฐานข้อมูลรายละเอียดบางอย่างที่แตกต่างกันออกไป

7.ข้อมูลชนิด TIMESTAMP

มาตรฐานมี 2 แบบ ได้แก่

1. TIMESTAMP เช่น TIMESTAMP '2003-07-29 13:19:30'

2. TIMESTAMP WITH TIME ZONE เช่น TIMESTAMP '2003-07-29 13:19:30+02:00'
บางฐานข้อมูลสนับสนุนทั้ง 2 แบบ และบางฐานข้อมูลสนับสนุน TIMESTAMP  เพียงอย่างเดียว เช่น PostgreSQL

8. SQL functions

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

ตัวอย่างคำสั่ง รูปแบบมาตรฐาน:
CHARACTER_LENGTH(argument)

ตัวอย่างคำสั่ง ฐานข้อมูล Oracle:
LENGTH(TRIM(TRAILING FROM foo))

9. การเชื่อม string

รูปแบบมาตรฐาน: string1 || string2

แต่ละฐานข้อมูลมีรูปแบบคำสั่งและ syntax แตกต่างกันออกไป  ตัวอย่างเช่น MSSQL ใช้เครื่องหมาย + แทนเครื่องหมาย ||

10. Automatic key generation

ตัวแปรที่ใช้ในการระบุ IDENTITY แตกต่างกันในแต่ละฐานข้อมูล เช่น PostgreSQL ไม่สนับสนุนคำสั่งมาตรฐานแต่จะประกาศชนิดของคอลัมน์เป็น SERIAL เพื่อให้ข้อมูล auto-generated

ตัวอย่างคำสั่ง รูปแบบมาตรฐาน:

CREATE TABLE tablename (
tablename_id INTEGER GENERATED ALWAYS AS IDENTITY
...
)

ตัวอย่างคำสั่ง ฐานข้อมูล PostgreSQL:

CREATE TABLE tablename (
tablename_id SERIAL,
...
)

11. TRUNCATE TABLE operations

คำสั่ง TRUNCATE ของแต่ละฐานข้อมูลอาจมีรายละเอียดบางอย่างต่างไปจากรูปแบบมาตรฐาน และบางฐานข้อมูลไม่มีคำสั่ง TRUNCATE เช่น ใน DB2 จะใช้คำสั่ง IMPORT statement แทนโดยขึ้นอยู่กับชนิดระบบปฏิบัติการ

ตัวอย่างคำสั่ง

On unix-like systems:                                                                                                     IMPORT FROM /dev/null OF DEL REPLACE INTO tablename

On Windows:                                                                                                                 IMPORT FROM NUL OF DEL REPLACE INTO tablename

12. Command line operations

มีรูปแบบการเขียน และชื่อคำสั่งที่แตกต่างกันออกไป เช่น ตัวอย่างในการดึงรายชื่อฐานข้อมูล

ตัวอย่างคำสั่ง ฐานข้อมูล MSSQL:
EXEC SP_HELPDB

ตัวอย่างคำสั่ง ฐานข้อมูล MySQL:
SHOW DATABASES

เว็บสำเร็จรูป ดีอย่างไร

Posted by suthamas | Posted in เว็บสำเร็จรูป | Posted on 10-07-2009

0

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

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

ประหยัด, คุ้มค่า…โดยคุณไม่ต้องจ้างคนทำเว็บ ราคาเป็นหมื่น! ทำเว็บให้คุณ ไม่ต้องสิ้นเปลืองเวลาไปกับการพยายามสร้าง ตกแต่งเว็บ เพราะเว็บสำเร็จรูปส่วนใหญ่จะมีเทมเพลตสำเร็จรูปมากมายพร้อมให้คุณเลือกใช้บริการ

เว็บสำเร็จรูปที่ดีนั้นควรมีคุณสมบัติดังนี้

1. มีรูปแบบที่ใช้งานได้ง่าย ถึงแม้ว่าระบบเว็บสำเร็จรูปจะมีรูปแบบ หรือ ฟังก์ชั่นการใช้งานให้เยอะมาก แต่ถ้าระบบขาดการจัดวางที่ดีแล้วนั้น ก็จะทำให้ผู้ใช้เกิดความสับสนในการแก้ไขหน้าเว็บหรือเนื้อหาภายในเว็บได้เช่นกัน ดังนั้น ควรที่จะมีการจัดวางรูปแบบที่ดี
2. รองรับการแก้ไขได้หลายรูปแบบ ส่วนมากระบบเว็บสำเร็จรูปจะมีหน้าจอสำหรับแก้ไขแบบ WYSIWYG (What you see is what you get) ซึ่งทำให้เนื้อหาที่แสดงผลในหน้าเว็บอาจจะผิดเพี้ยนได้ โดยเฉพาะเมื่อมีการก็อปปี้เนื้อหามาจากโปรแกรมสำเ็ร็จรูปอื่นๆ เช่น MS Word ดังนั้น หน้าจอแก้ไขควรสามารถเลือกใช้แบบ HTML หรือ Plain text ได้ด้วย
3. มีโปรแกรมรองรับที่หลากหลาย เนื่องจากการสร้างเว็บไซต์หนึ่งสามารถมีเป้าหมายหรือวัตถุประสงค์ในการสร้างเว็บได้หลายรูปแบบ รวมถึงประเภทของผู้เ้ข้าเยี่ยมชมเว็บไซต์ ที่มีความต้องการที่แตกต่างกัน ดังนั้นระบบเว็บสำเร็จรูปที่ดีควรรองรับโปรแกรมพื้นฐานที่สามารถใช้งานร่วมกันได้หลายตัว เช่น ระบบตะกร้าสินค้า บล็อก เว็บบอร์ด ห้องแชท เป็นต้น

SSL Certificates

Posted by admin | Posted in Web Hosting | Posted on 10-07-2009

0

SSL Certificates Secure Socket Layer Protocol (SSL) เป็นระบบรักษาความปลอดภัยของข้อมูลให้กับเว็บของคุณ ทำให้คุณมั่นใจได้ว่า ข้อมูลต่างๆ ที่อยู่บนเว็บของคุณ เช่น ข้อมูลส่วนตัว ข้อมูลที่คุณติดต่อกับลูกค้า ไม่ว่าจะเป็นข้อมูลบัตรเครดิต รหัสผ่านต่างๆ จะไม่สามารถถูกเจาะข้อมูลโดย hacker ได้ บริการนี้เหมาะสำหรับเว็บไซต์ E-Commerce หรือเว็บไซต์ขายของออนไลน์ ซึ่งระบบ SSL นี้จะช่วยเพิ่มความมั่นใจในการจ่ายเงินของลูกค้ากับเว็บของคุณมากยิ่งขึ้น

ssl

การทำงานของ SSL นั้นมีหลักการทำงานแบบ Key 2 ตัวหรือเรียกว่า  Asymmetric algorithms ทำให้คนกลางไม่สามารถรู้ได้ว่ากำลังส่งข้อมูลอะไรอยู่ โดยจะมีการส่งข้อมูลหากันระหว่างเครื่อง Server และเครื่องลูกค้าดังนี้

  1. เริ่มแรกถ้ามีการใช้ SSL เครื่องลูกค้าจะขอ Public Key จาก Server
  2. Server ส่ง Public Key ให้
  3. เครื่องลูกค้าจะเข้ารหัสข้อมูลตาม Public Key แล้วส่งข้อมูลหากันด้วยการเข้ารหัสแบบนี้ตลอด

สามารถสังเกตุได้ง่ายๆว่าถ้าคุณเข้าสู่การทำงานแบบ SSL แล้ว url ที่ใช้ทำงานของหน้าเว็บจะเปลี่ยนไปจาก http กลายเป็น https ทันที (ปกติการทำงานจะอยู่ที่ Port 80 แต่ SSL จะทำงานที่ Port 443) หลังจากที่ server ได้ข้อมูลที่เข้ารหัสด้วย Public Key และแก้ไขข้อมูลอีกทีด้วย Private Key ก็จะได้ข้อมูลที่สมบูรณ์

เนื่องจาก Private Key นั้นมีแต่ที่ Server เท่านั้นซึ่งอยู่ใน Directory ที่ไม่สามารถเข้าถึงได้จากภายนอกทำให้เกิดความมั่นใจได้ว่าจะไม่มีข้อมูลรั่วใหลที่กลางทางได้

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



Advertise Here