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

ระบบฐานข้อมูลเชิงกราฟบนโปรแกรม 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)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : กลุ่มงานสายวิชาการ
การจัดการองค์ความรู้ที่ได้จากการเข้าร่วมประชุม อบรม สัมมนา » เทคนิคการเขียนบทความทางวิชาการเพื่อตีพิมพ์ในวารสารในประเทศและวารสารต่างประเทศ
การเขียนบทความทางวิชาการเพื่อให้ได้ตีพิมพ์ในวารสารในประเทศและวารสารต่างประเทศนั้น เป็นสิ่งที่สำคัญ และจำเป็นสำหรับบุคลากรสายวิชาาร เนื่องจากหลังจากที่ทำการศึกษา วิจัย ค้นคว้า ทดลองสิ่งใหม่ ๆ ๆได้แล...
Chat GPT  บทความวิชาการ  วารสาร     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานสายวิชาการ
ผู้เขียน ศิรศักดิ์ ศศิวรรณพงศ์  วันที่เขียน 4/3/2567 10:52:45  แก้ไขล่าสุดเมื่อ 29/3/2567 1:29:15   เปิดอ่าน 61  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การเผยแพร่ความรู้ที่ได้จากการเข้าร่วมประชุมวิชาการ/อบรม/สัมมนา » โครงการติดตามบุคคลากรคณะวิทยาศาสตร์ที่ครบกำหนดในการดำรงตำแหน่งที่สูงขึ้น กิจกรรมที่ 1 การสร้างความรู้เกี่ยวกับการขอตำแหน่งทางวิชาการ
โครงการติดตามบุคคลากรคณะวิทยาศาสตร์ที่ครบกำหนดในการดำรงตำแหน่งที่สูงขึ้น กิจกรรมที่ 1 การสร้างความรู้เกี่ยวกับการขอตำแหน่งทางวิชาการ ในวันที่ 24 มกราคม 2567 เวลา 08.30 - 15.00 น. ณ ห้องประชุม 2 อาค...
การขอตำแหน่งทางวิชาการ     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานสายวิชาการ
ผู้เขียน พิกุล ศรีดารัตน์  วันที่เขียน 23/2/2567 23:01:14  แก้ไขล่าสุดเมื่อ 27/3/2567 22:32:54   เปิดอ่าน 61  ครั้ง | แสดงความคิดเห็น 0  ครั้ง