Neo4j: GraphDB Foundations with Cypher
วันที่เขียน 11/5/2562 15:45:51     แก้ไขล่าสุดเมื่อ 7/5/2567 5:02:08
เปิดอ่าน: 4068 ครั้ง

ระบบฐานข้อมูลเชิงกราฟบนโปรแกรม Neo4j เบื้องต้น ระบบฐานข้อมูลเชิงกราฟเหมาะสำหรับนำมาใช้จัดการข้อมูลที่อยู่ในรูปแบบไม่มีโครงสร้าง หรือ NoSql โดยโปรแกรมจัดการฐานข้อมูล Neo4j นั้นเป็นที่นิยมและมีการนำมาประยุกต์ใช้จริงในระบบฐานข้อมูลของบริษัทต่างๆ เช่น Ebay, Walmart, IBM, HP, CISCO เป็นต้น โดยระบบจัดการฐานข้อมูลเชิงกราฟ Neo4j นั้นมีหลายรูปแบบให้เลือกใช้ ทั้งแบบที่เก็บค่าบริการสำหรับการนำไปใช้งานในเชิงพาณิชย์ และแบบที่ไม่เก็บค่าบริการเพื่อนำไปใช้งานในเชิงการศึกษาและวิจัย

ระบบฐานข้อมูลเชิงกราฟบนโปรแกรม Neo4j  เบื้องต้น ระบบฐานข้อมูลเชิงกราฟเหมาะสำหรับนำมาใช้จัดการข้อมูลที่อยู่ในรูปแบบไม่มีโครงสร้าง หรือ NoSql โดยโปรแกรมจัดการฐานข้อมูล Neo4j นั้นเป็นที่นิยมและมีการนำมาประยุกต์ใช้จริงในระบบฐานข้อมูลของบริษัทต่างๆ เช่น  Ebay, Walmart, IBM, HP, CISCO  เป็นต้น   โดยระบบจัดการฐานข้อมูลเชิงกราฟ Neo4j นั้นมีหลายรูปแบบให้เลือกใช้ ทั้งแบบที่เก็บค่าบริการสำหรับการนำไปใช้งานในเชิงพาณิชย์ และแบบที่ไม่เก็บค่าบริการเพื่อนำไปใช้งานในเชิงการศึกษาและวิจัย สำหรับโปรแกรม Neo4j  สามารถดาวน์โหลดได้ที่  Neo4j Dowload Center ซึ่งมีให้ทั้งระบบปฎิบัติ  Windows และ Mac OS X  ผู้ใช้สามารถเลือกดาวน์โหลดทั้งแบบ  Neo4j Desktop หรือ  Neo4j sever

ในที่นี้เลือกดาวน์โหลด Neo4j Community Sever ไม่จำกัดระยะเวลาในการใช้งาน ขณะที่  Desktop version จะให้ใช้ฟรี 30 วัน ขณะเดียวกัน Neo4j ต้องการใช้  Java  ให้ตรวจสอบแครื่องว่ามีไฟล์ JDK หรือไม่ ถ้าไม่มีก็ให้ทำการติดตั้งก่อน  เมื่อดาวน์โหลดโปรแกรมเสร็จเรียบร้อยให้ทำการแตกไฟล์ไว้ใน โฟล์เดอร์ที่เราต้องการ ในที่นี้ จะนำไปไว้ที่ Desktop ในโฟล์เดอร์ชื่อ neo4j-community-3.3.2 หลังจากนั้นให้ทำการเปิด command prompt แบบ  Admin   ให้ไปที่ตำแหน่งไฟล์ของ neo4j  ที่แตกไว้ให้ทำการไปยัง โฟล์เดอร์ Bin    

 C:\Users\Wanvimol\Desktop\neo4j-community-3.3.2\bin

ให้ทำการเรียกไฟล์    neo4j.bat  ทำการติดตั้ง service  ดังนี้

C:\Users\Wanvimol\Desktop\neo4j-community-3.3.2\bin\ neo4j.bat install-service

หลังจากนนั้นให้ทำการรัน service ดังรูป

C:\Users\Wanvimol\Desktop\neo4j-community-3.3.2\bin\ neo4j.bat install-service

 

เมื่อทำการติดตั้งเรียบร้อยแล้วจะเห็นคำว่า Neo4j is ready อยู่แสดงว่าใช้งานได้แล้ว การเรียกใช้งานโปรแกรมสามารถเรียกผ่านบราวเซอร์จาก Port 7474  โดยพิมพ์ http://localhost:7474/browser/   ให้ทำการ login ด้วย username:  neo4j  password: neo4j   ในครั้งแรก  หลังจากนั้นทำการเปลี่ยนรหัสผ่าน

 

Cypher Language

โดยปกติในระบบฐานข้อมูลเชิงสัมพันธ์เราจะใช้ภาษา SQL  ในการเรียกดูข้อมูล (Select) แต่ถ้าในระบบฐานข้อมูลเชิงกราฟจะใช้ภาษา  Cypher  สำหรับในการคิวรีเรียกดูข้อมูล โดยจะมีการกำหนด Node แทน Object ที่ใช้เก็บข้อมูลใน Database  ในการอ้างอิง Node จะเขียนชื่อ node ในวงเล็บ ( )  เช่น (:Movie),  (:Person), (:Actor)   และภายใน Node จะมีการกำหนดชื่อ (Label)  และ คุณสมบัติ (Properties) ให้แต่ละ Node  เช่น (a:Actor{name: ‘Tom’),    (p:Person{name:  ‘Jen’}),  (movie:Movie {title: ‘Game of Thorne’})  และเมื่อรันผลลัพธ์จะแสดงเป็นรูปวงกลมๆ

 

 ()                     //node ไม่ระบุชื่อ สามารถอ้างถึง node ใด ๆ ในฐานข้อมูลได้

(p:Person)          //ใช้ตัวแปรชื่อ p และติด label Person

(p:Person {name:Jen})      //ใช้ตัวแปรชื่อ p และติด label Person และกำหนดคุณสมบัติชื่อ Jen

(:Technology)       //ไม่ใช้ตัวแปร แต่ติด label Technology

(work:Company)      //ใช้ตัวแปรชื่อ work และติด label Company

 

ความสัมพันธ์  (Relationship)  จะทำให้เราสามารถระบุประเภทเพื่อค้นหาหรือสร้างได้   และแต่ละ Node สามารถมีความสัมพันธ์ (Relationship)  ระหว่างกันได้หลายความสัมพันธ์  โดยความสัมพันธ์จะใช้สัญลักษณ์ [ ]  เชื่อมกับ Node  ทิศทางความสัมพันธ์จะใช้สัญลักษณ์   ขีดหนึ่งขีด  “-”  หรือ “--”   หรือ เส้นลูกศร “->” ในการระบุทิศทางความสัมพันธ์ระหว่าง Node ได้ เช่น  (actor:Actor)-[:Acted-In]->(movie:Movie)   หรือจะไม่กำหนดทิศทางก็ได้  (p1:Person)-[:Has_contact]-(p2:Person)

 

จากภาพเป็นการแสดงข้อมูลของนักแสดงชื่อ  Emily Clark ที่แสดงหนังเรื่อง A Game of Thorne ในปี 2011 จากรูปภาพข้างต้นสามารถเขียนคำสั่งคิวรีได้ดังนี้

MACTH  (actor: Actor{name:’Emily Clark’}) - [:Acted-In] -> (movie:Movie{title: ‘ A Game of Throne’}

WHERE      movie.produced = 2011

RETURN  actor, movie

  • คำสั่งหลักใน Cypher ที่ควรรู้
    • MATCH () เป็นคำสั่งที่ใช้ในการค้นหา Node หรือ relationship ที่มีอยู่แล้วใน database ถ้าให้เปรียบเทียบกับ SQL ก็จะคล้ายกับ SELECT
    • RETURN เป็นคำสั่งที่ใช้ส่งค่ากลับผ่านตัวแปรที่เราอ้างอิงไว้จากคำสั่ง MATCH  ดังตัวอย่าง



 

ตัวอย่าง

ต้องการค้นหานักแสดงที่ Tom Hanks  ติดต่อและเกิดในปีค.ศ. 1960 และหลังปี ค.ศ. 1960 และ มีรายได้เกิน $10M จากหนังเรื่องเดียว สามารถเขียนคำสั่งได้ดังนี้

MATCH (tom:Person{name:'Tom Hanks'})

MATCH  (tom)-[:HAS_CONTACT]->(actor:Person)

MATCH (actor)-[role:ACTED_IN]-> (movie:Movie)

WHERE  actor.born >= 1960 And  role.earnings > 10000000

RETURN actor.name AS Contactname, role.earnings as Earnt, actor.born AS Born

ORDER BY  role.earnings DESC

ส่วนคำสั่ง  Create Update Delete  สามารถดูได้จากเอกสารเพิ่มเติมคลิ๊กที่นี้

ไฟล์คำสั่ง  create data และ คำสั่ง delete ลากไปใส่ในส่วน import

เรียบเรียงโดย

อ.ดร.วรรณวิมล  นาดี

 
   



คำสำคัญ :
กลุ่มบทความ :
หมวดหมู่ :
แชร์ :
https://erp.mju.ac.th/acticleDetail.aspx?qid=955
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : กลุ่มงานสายวิชาการ
Data Science คืออะไร และนำมาใช้ประโยชน์อย่างไร » Data Science คืออะไร และนำมาใช้ประโยชน์อย่างไร
Data Science หรือ วิทยาการข้อมูล หมายถึง การนำข้อมูลมาใช้ประโยชน์ โดยครอบคลุมตั้งแต่ขั้นตอนการเก็บข้อมูล (Collect) การจัดการข้อมูล (Manage) การวิเคราะห์ข้อมูล (Analyze) ไปจนถึงขั้นตอนการนำข้อมูลมาช...
Data Science  วิทยาการข้อมูล     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานสายวิชาการ
ผู้เขียน ธวัชชัย เพชรธาราทิพย์  วันที่เขียน 24/4/2567 13:27:01  แก้ไขล่าสุดเมื่อ 6/5/2567 23:20:10   เปิดอ่าน 30  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การเผยแพร่ความรู้ที่ได้จากการเข้าร่วมประชุมวิชาการ/อบรม/สัมมนา » การประชุมวิชาการระดับชาติ วิทยาศาสตร์ เทคโนโลยีและนวัตกรรม ครั้งที่ 5 มหาวิทยาลัยแม่โจ้
การประชุมวิชาการระดับชาติ วิทยาศาสตร์ เทคโนโลยีและนวัตกรรม ครั้งที่ 5 ในวันที่ 28 มีนาคม 2567 เวลา 08.00 - 17.00 น. ณ ห้องเอกภพวิทยา ชั้น G อาคารจุฬาภรณ์ คณะวิทยาศาสตร์ มหาวิทยาลัยแม่โจ้ ซึ่งจัดโดย...
ChatGPT  การประชุมวิชาการ  เทคโนโลยี  วิทยาศาสตร์  สิ่งแวดล้อม     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานสายวิชาการ
ผู้เขียน พิกุล ศรีดารัตน์  วันที่เขียน 11/4/2567 15:19:10  แก้ไขล่าสุดเมื่อ 6/5/2567 0:45:14   เปิดอ่าน 46  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
รายงานสรุปเนื้อหาและการนำไปใช้ประโยชน์จากการเข้าอบรม สัมมนาหรือประชุมวิชาการ » รายงานสรุปเนื้อหาและการนำไปใช้ประโยชน์จากการเข้าร่วมและนำเสนอผลงาน การประชุมวิชาการระดับชาติ วิทยาศาสตร์ เทคโนโลยีและนวัตกรรม ครั้งที่ 5
รายงานสรุปเนื้อหาและการนำไปใช้ประโยชน์จากการเข้าร่วมและนำเสนอผลงาน การประชุมวิชาการระดับชาติ วิทยาศาสตร์ เทคโนโลยีและนวัตกรรม ครั้งที่ 5
รายงานสรุปเนื้อหา     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานสายวิชาการ
ผู้เขียน ศิริพร สมุทรวชิรวงษ์  วันที่เขียน 2/4/2567 16:14:15  แก้ไขล่าสุดเมื่อ 6/5/2567 17:05:00   เปิดอ่าน 71  ครั้ง | แสดงความคิดเห็น 0  ครั้ง