网站如何做业务,wordpress删除,软件是怎么开发的,企业如何做好网站运营注#xff1a;本博文展示部署哥操作步骤和命令#xff0c;具体报告及运行截图可通过上方免费资源绑定下载
一#xff0e;数据库的部署与配置
在单个节点上对进行数据库的单机部署
#xff08;1#xff09;上传neo4j-community-3.5.30-unix.tar.gz到hadoop1的/export/so…注本博文展示部署哥操作步骤和命令具体报告及运行截图可通过上方免费资源绑定下载
一数据库的部署与配置
在单个节点上对进行数据库的单机部署
1上传neo4j-community-3.5.30-unix.tar.gz到hadoop1的/export/software目录
2解压缩neo4j$ tar -xzf /export/software/neo4j-community-3.5.30-unix.tar.gz -C /export/servers/
3进入Neo4j解压缩目录修改conf目录下的配置文件neo4j.conf
·cd /export/servers/neo4j-community-3.5.30
·vi conf/neo4j.conf
修改内容如下
4启动Neo4j数据库bin/neo4j start
5停止Neo4j数据库bin/neo4j stop
6重启Neo4j数据库bin/neo4j restart
查看Neo4j数据库的状态bin/neo4j status
8使用web访问http://hadoop1:7474 默认用户名和密码均为“neo4j”
9在输入框中输入指令可以显示教程play start
二使用命令访问数据库
1.节点和关系的创建创建节点包括属性、创建关系、创建唯一节点。
1创建节点创建三个Person节点分别代表 Alice、Bob 和 Charlie每个节点都有name和age属性。
·CREATE (a:Person {name: Alice, age: 28})
·CREATE (b:Person {name: Bob, age: 32})
·CREATE (c:Person {name: Charlie, age: 25})
创建关系使用MATCH找到指定的节点Alice, Bob, Charlie然后使用CREATE创建关系KNOWS表示他们之间相互认识。
// Alice 认识 Bob
·MATCH (a:Person {name: Alice}), (b:Person {name: Bob})
·CREATE (a)-[:KNOWS]-(b)
// Bob 认识 Charlie
·MATCH (b:Person {name: Bob}), (c:Person {name: Charlie})
·CREATE (b)-[:KNOWS]-(c)
3创建唯一节点确保只有一个名为 Charlie 的节点存在
·MERGE (d:Person {name: Charlie})
2.节点和关系的查询查询节点、条件查询、查询关系
1查询节点查询所有Person节点并查看它们的name和age属性。
·MATCH (n:Person)
·RETURN n.name, n.age
条件查询查询年龄大于30的用户并返回他们的name和age。
·MATCH (n:Person)
·WHERE n.age 30
·RETURN n.name, n.age
查询关系查询所有的KNOWS关系并返回两个节点a和b以及它们之间的关系r
·MATCH (a:Person)-[r:KNOWS]-(b:Person)
·RETURN a.name, b.name, r
3.更新标签或属性更新属性、更新标签
1更新属性更新name为Alice的Person节点的age属性为30
·MATCH (n:Person {name: Alice})
·SET n.age 30
2更新标签给name为Alice的Person节点添加了一个新的标签Employee表示她同时是Employee类型的节点。
·MATCH (n:Person {name: Alice})
·SET n:Employee
上述操作更新后的节点表如下
4.删除节点和关系删除属性、删除节点、删除关系、删除所有的节点和关系
1删除属性删除name为Alice的Person节点的age属性。
·MATCH (n:Person {name: Alice})
·REMOVE n.age
2删除节点删除name为Bob的Person节点
·MATCH (n:Person {name: Bob})
·DETACH DELETE n
删除关系删除名为 Alice 和 Bob 之间的 KNOWS 关系
·MATCH (a:Person {name: Alice})-[r:KNOWS]-(b:Person {name: Bob})
·DELETE r
4删除所有的节点和关系
·MATCH (n)
·DETACH DELETE n 三数据库的设计
图书管理系统包含两个主要实体图书和读者。它们之间通过一个关系来进行联系借阅记录表示图书与读者之间的借阅关系本系统共设计两个节点标签分别是图书存储图书的相关信息和读者存储读者的基本信息一个关系标签借阅关系表示图书与读者之间的借阅关系。
1.数据库设计
1图书节点标签
标签名称Book
属性
title图书名称
category图书类别如文学、小说等
published_date图书出版日期
author_name作者名称
author_birth_date作者出生日期
publisher_name出版商名称
publisher_address出版商地址
2读者节点标签
标签名称Reader
属性
name读者姓名
dob读者出生日期
email电子邮件
phone_number联系电话
address住址
3借阅关系标签
标签名称BORROWED
连接节点Reader与Book
属性
borrow_date借阅日期
return_date归还日期
4实体与关系的增删改查
①新增操作
新增图书使用 CREATE 命令添加新的图书节点Book。图书节点包括图书的标题、类别、出版日期、作者信息、出版商等属性。
新增借阅记录使用 CREATE 命令在图书与读者之间建立一个新的借阅关系BORROWED。该关系包含借阅日期、归还日期等属性连接已存在的读者节点Reader和图书节点Book。
新增读者使用 CREATE 命令添加新的读者节点Reader。读者节点包括读者的姓名、出生日期、联系信息如电话、地址、电子邮件等等属性。
②删除操作
删除图书使用 DELETE 命令删除指定的图书节点Book。删除时需要先找到该图书节点可以通过图书标题等属性进行匹配。
删除借阅记录使用 DELETE 命令删除图书与读者之间的借阅关系BORROWED。通过匹配读者和图书的具体信息删除它们之间的借阅关系。
删除读者使用 DELETE 命令删除指定的读者节点Reader。删除时需要先找到该读者节点并确认与该读者相关的借阅关系如果有是否也需要删除。
③更新操作
更新图书信息使用 SET 命令更新图书节点的某些属性如图书的标题、作者、出版商等信息。通过匹配图书的具体属性如标题更新节点中的内容。
更新借阅记录使用 SET 命令更新借阅关系的属性如借阅日期、归还日期等。通过匹配特定的读者和图书更新相应的借阅记录。
更新读者信息使用 SET 命令更新读者节点的某些属性如读者的姓名、电子邮件、联系电话等。通过匹配读者的具体信息如姓名更新该节点的内容。
④查询操作
查询某本图书的详细信息使用 MATCH 命令查询图书节点的相关信息。可以根据图书的标题、作者或其他属性来查询图书的详细信息。
查询某本图书的借阅记录使用 MATCH 命令查询所有借阅特定图书的记录。可以通过图书的标题或ID找到借阅该图书的所有读者以及借阅的日期和归还日期等信息。
查询某位读者的借阅记录使用 MATCH 命令查询特定读者的所有借阅记录。通过读者的姓名或ID查询该读者借阅的所有图书并返回图书的详细信息如标题、作者等。
查询某位读者的详细信息使用 MATCH 命令查询读者的详细信息。可以根据读者的姓名或ID返回该读者的姓名、出生日期、联系方式等信息。
2.图设计与填充数据
1图书节点数据填充
CREATE (b1:Book { title: 活着, category: 文学, published_date: 1993-06-01, author_name: 余华, author_birth_date: 1960-04-03, publisher_name: 作家出版社, publisher_address: 北京市朝阳区
}) CREATE (b2:Book { title: 百年孤独, category: 小说, published_date: 1967-06-05, author_name: 加西亚·马尔克斯, author_birth_date: 1927-03-06, publisher_name: 南海出版公司, publisher_address: 上海市徐汇区
})
2读者节点数据填充
CREATE (r1:Reader { name: 张三, dob: 1990-05-15, email: zhsanemail.com, phone_number: 123-4567-8901, address: 北京市海淀区
}) CREATE (r2:Reader { name: 李四, dob: 2005-02-28, email: lisiemail.com, phone_number: 987-6543-2100, address: 上海市浦东新区
})
3借阅关系节点数据填充
MATCH (r:Reader {name: 张三}), (b:Book {title: 活着})
CREATE (r)-[:BORROWED {borrow_date: 2024-11-01, return_date: 2024-11-15}]-(b) MATCH (r:Reader {name: 李四}), (b:Book {title: 百年孤独})
CREATE (r)-[:BORROWED {borrow_date: 2024-11-02, return_date: 2024-11-20}]-(b)
四编程实现数据库的访问
使用Python访问实现设计的图书管理系统的Neo4j数据库步骤如下
1在Python中连接到Neo4j数据库
import neo4j # 数据库连接 uri neo4j://localhost:7687 # Neo4j默认连接端口 username neo4j password neo4j driver neo4j.GraphDatabase.driver(uri, auth(username, password))
2图书管理系统包含以下节点类型和关系
Book图书节点包含书名、作者、出版日期等属性。
Reader读者节点包含姓名、联系方式等属性。
BORROWED借阅关系表示图书与读者之间的借阅关系包含借阅日期和归还日期。
创建这些节点的函数
def create_book(tx, title, category, published_date, author_name, author_birth_date, publisher_name, publisher_address): query ( CREATE (b:Book {title: $title, category: $category, published_date: $published_date, author_name: $author_name, author_birth_date: $author_birth_date, publisher_name: $publisher_name, publisher_address: $publisher_address}) ) tx.run(query, titletitle, categorycategory, published_datepublished_date, author_nameauthor_name, author_birth_dateauthor_birth_date, publisher_namepublisher_name, publisher_addresspublisher_address) def create_reader(tx, name, dob, email, phone_number, address): query ( CREATE (r:Reader {name: $name, dob: $dob, email: $email, phone_number: $phone_number, address: $address}) )
tx.run(query, namename, dobdob, emailemail, phone_numberphone_number, addressaddress)
3插入图书和读者
def insert_data(): with driver.session() as session: # 新增图书 session.write_transaction(create_book, 活着, 文学, 1993-06-01, 余华, 1960-04-03, 作家出版社, 北京市朝阳区) session.write_transaction(create_book, 百年孤独, 小说, 1967-06-05, 加西亚·马尔克斯, 1927-03-06, 南海出版公司, 上海市徐汇区) # 新增读者 session.write_transaction(create_reader, 张三, 1990-05-15, zhsanemail.com, 123-4567-8901, 北京市海淀区) session.write_transaction(create_reader, 李四, 2005-02-28, lisiemail.com, 987-6543-2100, 上海市浦东新区)
4查询所有图书及其属性
def get_all_books(tx): query MATCH (b:Book) RETURN b.title AS title, b.author_name AS author, b.published_date AS published_date result tx.run(query) for record in result: print(fTitle: {record[title]}, Author: {record[author]}, Published Date: {record[published_date]})
5更新图书的出版日期
def update_book(tx, title, new_publish_date): query MATCH (b:Book {title: $title}) SET b.published_date $new_publish_date
tx.run(query, titletitle, new_publish_datenew_publish_date)
更新《活着》session.write_transaction(update_book, 活着, 1993-07-01)
6删除某本图书和读者节点
def delete_book(tx, title): query MATCH (b:Book {title: $title}) DELETE b tx.run(query, titletitle)
def delete_reader(tx, name): query MATCH (r:Reader {name: $name}) DELETE r
tx.run(query, namename)
7建立图书与读者之间的借阅关系
def create_borrowed_relationship(tx, book_title, reader_name, borrow_date, return_date): query ( MATCH (b:Book {title: $book_title}), (r:Reader {name: $reader_name}) CREATE (r)-[:BORROWED {borrow_date: $borrow_date, return_date: $return_date}]-(b) ) tx.run(query, book_titlebook_title, reader_namereader_name, borrow_dateborrow_date, return_datereturn_date)
建立张三与《活着》之间的关系session.write_transaction(create_borrowed_relationship, 活着, 张三, 2024-11-01, 2024-11-15)