NO Sql คือ nosql vs sql Database อะไรที่ไม่มีใครพูด 7 DATA?
no sql
NOSQL คือ
เราสามารถให้คำจำกัดความของ NOSQLคือ ฐานข้อมูลที่ไม่มีภาษา SQL ให้ใช้
รายละเอียดของ NOSQLนั้นต่างจากพวก MySQL Microsoft SQL Oracle ดังนี้
- อย่างแรกคือไม่มีความสัมพันธ์ เพราะ NOSQLไม่ใช่ Relational Database ดังนั้นจึงไม่มีคำสั่งพวก JOIN, WHERE ฯลฯ
- เน้นใช้งานกับปริมาณข้อมูลที่มีจำนวนมากมายมหาศาลมีขนาดข้อมูลประมาณพวกfacebook.com,www.twitter.com, www.google.com ประมาณนั้น
- แต่เนื่องจาก NOSQL ไม่มีโครงสร้างตายตัว เลยสามารถขายได้มากกว่า ในแบบขนาน (horizontal scaling) คือเพิ่มเครื่องได้ง่ายในกรณีใช้งานจริง
- ประสิทธิภาพสูงกว่า แต่ก็มากับการออกแบบที่ไม่แน่นอนไม่ตายตัวและยากกว่า RDB เพราะไม่ต้องคอยจัดการเรื่องความสัมพันธ์
- ปกติแล้วฐานข้อมูลแบบ SQL นั้นจะเป็น Normalize แต่ NOSQL จะเน้นเป็นแบบ Denormalize คือเน้นให้ทำงานเร็วที่สุดไม่ต้องไป join อะไรต่างๆนาๆ คือหาเรคคอร์ดเดียวแล้วเอามาใช้งานได้เลย เช่นข้อมูล Contact ของ member เราก็เก็บทุกอย่างทุกคอลัมน์ลงไป ไม่ต้องไปแยกจังหวัด หรืออำเภออะไร เพื่อให้เกิดการ Compare เปรียบเทียบน้อยที่สุด
- เวลาจะเชื่อมต่อต้องง่ายเข้าไว้ไม่ต้องมี overhead เยอะ มีแค่ IP กับ Port ก็พอ
- ต้องสามารถทำ Replication ได้เพราะ ข้อมูลเป็นสิ่งสำคัญ และจะได้ไม่ทำให้เกิด Single Point of Failure หรือเกิดจุดตายในระบบ คือ พังไปซักเครื่อง ก็ยังทำงานได้ปกติ
- เน้นการทำงานแบบ Key/Value หรือ Key/Column แล้วแต่ยี่ห้อ
ตัวอย่างของฐานข้อมูลแบบ NOSQL Database ที่มีในปัจจุบันแบ่งตามประเภทดังนี้
- Document
- Graph
- Key/Value
- Tabular
- Unknown
CouchDB
CouchDB คือ document-oriented database ที่สามารถ queried และ indexed โดยการทำ MapReduce ผ่าน JavaScript โดย CouchDB จะใช้งานผ่าน RESTful JSON API ซึ่งจะทำให้เราสามารถเรียกจากที่ไหนก็ได้โดยผ่าน HTTP protocal ที่สำคัญไม่ต้องมี Driver ให้วุ่นวายปวดหัว
CouchDB ทำอะไรได้บ้าง
- เป็น document database ที่มีการเรียกใช้ผ่าน RESTful JSON API
- ไม่มี Schema และสามารถเพิ่มเติมแก้ไข field ได้อย่างทันที
- สามารถทำ replication โดยใช้วิธี bi-direction และสามารถจัดการปัญหาเรื่องการ conflict ของ data ได้อีกด้วย
- สามารถ Query และ Index ได้โดยการใช้ Javascript แทนการใช้ SQL Query
อะไรที่ไม่ใช่ CouchDB
- ไม่ใช่ relational database
- ไม่ใช่ตัวแทนของ ralational database
- ไม่ใช่ object-oriented db ไม่มี persistance layer
คุณสมบัติที่เด่นๆ
- Documents CouchDB document นั้นคือ object ที่ประกอบไปด้วย key และ value โดย value นั้นอาจจะเป็น strings, numbers, dates หรือ lists เช่นตัวอย่างข้างล่างนี้
- “Subject”: “I like Plankton”
- “Author”: “Rusty”
- “PostedDate”: “5/23/2006”
- “Tags”: [“plankton”, “baseball”, “decisions”]
- “Body”: “I decided today that I don’t like baseball. I like plankton.”
CouchDB database นั้นคือการรวบรวม document พวกนี้ โดยแต่ที่ document นั้นจะมี ID ของตัวเองที่เป็น unique ID
- Views นั้นคือวิธีการที่จะรวบรวมพวก documents ต่างๆใน database โดยจะใช้ Javascript เข้ามาช่วยในการจัดการเช่นกำหนด description ดังนั้นเราสามารถที่จะปรับแต่งส่วนของการใช้งานฝั่ง views ได้อย่างอิสระ ทำให้เราสามารถมี views ที่จะนำไปใช้งานได้หลายแบบ ขึ้นอยู่กับการนำไปใช้งานของเรา¹
¹ที่มา:http://bls.buu.ac.th/~f53361/ass06/50531900/50531900_NOSQL.odt
อ่านบทความทั้งหมด >>> pangpond.com
บทความแนะนำ หมวดหมู่: ไอที
จำนวนคอมเมนต์ของโพสต์ ID 168686: 86