创建、读、更新和删除(Create/Read/Update/Delete,CRUD)操作是最基本的数据库操作,但是它们也是最重要的操作。CRUD 操作通常是使用关系数据库系统中的结构化查询语言(Structured Query Language,SQL)完成的。随着 Web 变得更加具有面向数据特性,因此需要从基于 SQL 的 CRUD 操作转移到基于语义 Web 的 CRUD 操作。了解如何使用PHP通过基于语义的 Web 执行 CRUD 操作。 常用缩写词
API — 应用程序编程接口(Application Programming Interface)
CRUD — 创建/读/更新/删除(Create/Read/Update/Delete)
HTTP —超文本传输协议(Hypertext Transfer Protocol)
MVC — 模式—视图—控制器(Model-View-Controller)
OOP — 面向对象的编程(Object-Oriented Programming)
RDF — 资源描述框架(Resource Description Framework)
SPARQL — 简单协议和 RDF 查询语言(Simple Protocol and RDF Query Language)
SQL — 结构化查询语言(Structured Query Language)
UI — 用户界面(User interface)
W3C — 万维网联盟(World Wide Web Consortium)
在开发Web 应用程序时,为逻辑层和 UI 层创建放置服务器端代码的数据库结构是一种标准实践。要连接到数据库,服务器端代码需要执行一些基本的创建、更新、删除和 — 最重要的 — 读取记录等操作。由于 Web 应用程序的后台数据库通常都是关系数据库,因此这些 CRUD 操作都是使用众所周知的 SQL 语言执行的。但是,随着 Web 开发越来越多地采用面向对象的编程(OOP),模型也随之发生改变。
资源描述框架(Resource Description Framework,RDF)是描述对象同时保留数据含义的理想方法。简单协议和 RDF 查询语言(Simple Protocol and RDF Query Language,SPARQL — 发音为 “sparkle”)是通常用于针对该数据进行查询的语言,因为它在语句构成上匹配 RDF 本身的结构。RDF 和 SPARQL 都是所谓 语义 Web 栈(semantic Web stack)中的技术。
要彻底地应用语义 Web 理念,您可以使用 SPARQL 将传统的 Web 开发技术应用到 RDF 数据中。本文将展示如何使用简化的模式—视图—控制器(Model-View-Controller,MVC)设计模型、PHP 服务器端脚本语言和 SPARQL 连接到 RDF — 与使用关系数据库系统中的 SQL 相反。
SQL 和 SPARQL CRUD 操作
先决条件 本文假定您基本了解 SQL、PHP 和 Web 应用程序开发。了解语义 Web 也十分有利。要对基于语义 Web 的数据运行 create、update 和 delete 命令,需要具有支持 SPARQL/Update 规范的语义 Web 数据库。
在使用 SQL 和 SPARQL 进行开发时,需要查看一下 CRUD 操作之间的异同。清单 1 显示了 read 操作的 SQL 代码。
SELECT realname, dob, locationFROM UserTable WHERE realname = "John Smith";
将这段基于 SQL 的代码与清单 2 中所示的基于 SPARQL 的代码相比较。采用这两个 read 操作的原因在于它们最易于理解、实现和说明。这对于 SQL 和 SPARQL 来说都是一样的。
PREFIX foaf:<http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECT ?uri ?name ?dob ?locationFROM<http://www.example.org/graph>WHERE{ ?urirdf:type foaf:Person ;foaf:name "John Smith" ;foaf:birthday?dob ;foaf:location ?location .} ;
在比较两张清单时,您的第一个想法很可能是 SPARQL 版本明显比 SQL 版本长很多。这是事实,但是请不要误以为 SQL 必然更简单而且更干净。根据所运行引擎的不同,SPARQL 可以全部通过称为链接数据结果(linked data effect)的内容进行分发。此外,它允许拥有动态模式,因为它拥有互相链接的面向对象的透视图,与严格的 SQL 关系透视图形成对照。如果您想要把关系数据库表分隔为许多数据孤岛,则实际上使用的 SQL 代码行将比 SPARQL 多很多 — 更不必说 SQL 中会出现大量令人讨厌的 JOIN 描述符。
SPARQL 的前两行是 PREFIX 声明。根据语义 Web 理论,一切内容 — 无论是对象还是数据图来源(也是一个对象)— 都有统一资源标识符(Uniform Resource Identifier,URI)。PREFIX 行只是将临时标签应用到一些 URI 中 — 在本例中为 Friend of a Friend 和 RDF 模式。其中的好处是您以后可以在查询中使用 PREFIX 声明而不必使用完整的 URI。
SPARQL 代码的下一行描述了查询请求。这条语句在本质上与 SQL 语句相同,不同之处是对 URI 的附加请求。注意问号的使用(?)是为了表示术语是变量。
FROM 语句描述了获取数据的位置。这在 SQL 和 SPARQL 中是相同的,只是在 SPARQL 中,数据源名称是 URI,而非表示计算机或网络中某个物理位置的字符串。
两者的 WHERE 语句完全不同,因为使用 SPARQL,必须指定用于获取数据的模式。同样,如果尝试过使用关系方法执行此操作,则需要花费的代价比普通 SQL 多得多:需要使用 PHP、Java?编程语言或者一些其他服务器端语言才能执行数据源之间的检查。SPARQL 代码行完成的操作比较明了,这包括确保正在检索的数据只属于 Person 类型。SPARQL 将获取名称和位置,同时执行一些模式匹配以查找正确的 John Smith。
创建
SPARQL 中的 CRUD 操作通常比 read 操作更神秘。但是,可以完成这些操作。首先,create 操作将把新记录或对象插入到表或图表中。
INSERT INTO UserTable (realname, dob, location) VALUES ("John Smith", "1985-01-01", "Bristol, UK");
现在,比较清单 3 中基于 SQL 的代码与清单 4 中基于 SPARQL 的代码中的 create 操作。
PREFIX foaf:<http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>INSERT INTO GRAPH <http://www.example.com/graph> (?realname, ?dob, ?location) {<http://www.example.org/graph/johnsmith#me> rdf:Type foaf:Person ; foaf:name "John Smith" ; foaf:birthday <1985-01-01T00:00:00> ; foaf:location "Bristol, UK" }
以上内容由 厦门市数字引擎 搜集整理,如转载请注明原文出处,并保留这一部分内容。
分享到:
相关推荐
在web开发领域,PHP和HTML是两种常用的编程语言,它们常被组合使用来构建动态且交互性强的网页应用。本项目“运用php和html构建考生考试系统”就是这样一个实例,它展示了如何利用这两种技术创建一个完整的考试管理...
在PHP中,我们使用SQL查询语句来执行CRUD(创建、读取、更新、删除)操作。 "源代码"文件夹里应该包含了所有的PHP脚本、HTML文件和CSS样式表。PHP文件可能包括一个处理表单提交的脚本(如`submit.php`)和一个显示...
5. **PHP与数据库交互**:PHP常与MySQL数据库配合,处理CRUD(创建、读取、更新、删除)操作。了解如何使用PDO或mysqli扩展连接数据库,执行SQL语句,处理查询结果,以及事务处理等,对于开发数据库驱动的应用程序...
在WEB应用中,通常使用后端编程语言如PHP、Java、Python等与数据库交互,实现数据的CRUD(Create, Read, Update, Delete)功能。 总结来说,WEB前端基础涉及HTML结构、语义化、标签规范以及交互元素的使用,而...
- **CRUD操作:** 在PHP中实现增删改查等基本操作。 - **事务处理:** 介绍如何使用事务来保证数据的一致性和完整性。 - **安全性:** 讨论SQL注入攻击的防范措施,确保数据安全。 #### 7. 实战案例分析 - **网站开发:...
6. **CRUD操作**:创建(Create)、读取(Read)、更新(Update)、删除(Delete)功能,用于数据库交互。 7. **权限管理**:角色和权限设置,控制不同用户对后台资源的访问权限。 8. **错误处理和日志记录**:捕获...
PHP与MySQL等数据库管理系统配合,可以实现数据的CRUD操作(创建、读取、更新和删除)。开发者可能使用PHP的PDO(PHP Data Objects)扩展或者mysqli扩展来安全地连接和操作数据库。 6. **模板引擎**:为了提高代码...
【PHP仿QQ空间博客】项目是一个使用PHP、HTML、JavaScript、CSS和jQuery技术构建的社交网络平台,旨在模仿腾讯QQ空间的博客功能。这个项目涵盖了Web开发中的多个关键知识点,让我们逐一深入探讨。 首先,PHP...
5. **数据库交互**:课程会讲解SQL语言,如MySQL、PostgreSQL或MongoDB等非关系型数据库的使用,以及如何设计数据库模型,实现CRUD操作。 6. **前端框架**:如今,前端开发常使用React、Vue.js或Angular等框架。...
3. **易用性**:使用CRUD(创建、读取、更新、删除)操作,以及丰富的模型和控制器功能,简化了数据操作。 4. **RESTful**:CakePHP支持RESTful接口,方便构建API服务。 5. **强大的社区支持**:大量的插件和组件,...
2. **MySQL数据库集成**:源码中必然包含了与数据库的连接和操作,如创建、读取、更新和删除(CRUD)音乐信息。了解如何使用PHP的PDO(PHP Data Objects)或mysqli扩展进行数据库操作,是理解整个系统运行的基础。 ...
- SQL查询:编写CRUD(创建、读取、更新、删除)操作的SQL语句,实现对数据库的数据操作。 - 数据库设计:涉及到表的创建、字段定义、主键和外键的设置,以及索引优化等。 3. **框架与MVC模式** - MVC(Model-...
PHP通过PDO(PHP Data Objects)或mysqli扩展与数据库进行交互,执行CRUD(创建、读取、更新、删除)操作。 5. 图像优化:为了保证页面加载速度,开发者可能会对展示的女装图片进行优化,包括压缩、调整大小和使用...
3. **CRUD操作**:创建(Create)、读取(Read)、更新(Update)和删除(Delete)是数据库操作的基础。PHP将执行这些操作,例如添加新歌曲、检索用户信息、修改播放列表或删除不必要的数据。 4. **会话管理**:PHP...
源码中可能包含与数据库交互的PHP脚本,如SQL查询和CRUD(创建、读取、更新、删除)操作。 7. **安全性**:PHP源码应考虑安全问题,如防止SQL注入、XSS跨站脚本攻击等。开发者可能还需要实现用户密码的加密存储和...
教程中会讲解基本的CRUD操作(创建、读取、更新、删除)、数据类型、索引、视图、存储过程等,帮助读者掌握数据库管理的基本技能。 此外,CHM文件可能还包含了其他Web技术的相关教程,如XML、JSON、Ajax、前端框架...
内容管理系统(Content Management System...这将包括创建数据库模型、设计用户界面、实现CRUD(Create, Read, Update, Delete)操作,以及如何部署和调试系统。通过学习,你将具备独立开发和定制内容管理系统的能力。
在Web技术领域,HTML、CSS、JavaScript、PHP以及数据库连接是构建动态网站不可或缺的基础知识。以下是对这些关键概念的详细阐述: HTML(HyperText Markup Language)是网页内容的基础,用于创建和布局页面结构。它...
Eloquent提供了ActiveRecord模式,使得每个数据库表对应一个Model类,通过这个类可以直接执行CRUD操作。此外,Laravel的查询构造器也提供了一种链式调用的方式来构建复杂的SQL查询。 Laravel的Artisan命令行工具为...