`
robinsoncrusoe
  • 浏览: 746594 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

PHP构建语义Web CRUD操作

    博客分类:
  • JAVA
阅读更多
创建、读、更新和删除(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" }



以上内容由 厦门市数字引擎 搜集整理,如转载请注明原文出处,并保留这一部分内容。
分享到:
评论

相关推荐

    运用php和html构建考生考试系统

    在web开发领域,PHP和HTML是两种常用的编程语言,它们常被组合使用来构建动态且交互性强的网页应用。本项目“运用php和html构建考生考试系统”就是这样一个实例,它展示了如何利用这两种技术创建一个完整的考试管理...

    PHP 留言模板代码

    在PHP中,我们使用SQL查询语句来执行CRUD(创建、读取、更新、删除)操作。 "源代码"文件夹里应该包含了所有的PHP脚本、HTML文件和CSS样式表。PHP文件可能包括一个处理表单提交的脚本(如`submit.php`)和一个显示...

    细说PHP随书光盘源码,LAMP兄弟连,高洛峰

    5. **PHP与数据库交互**:PHP常与MySQL数据库配合,处理CRUD(创建、读取、更新、删除)操作。了解如何使用PDO或mysqli扩展连接数据库,执行SQL语句,处理查询结果,以及事务处理等,对于开发数据库驱动的应用程序...

    WEB前段基础与数据库开发

    在WEB应用中,通常使用后端编程语言如PHP、Java、Python等与数据库交互,实现数据的CRUD(Create, Read, Update, Delete)功能。 总结来说,WEB前端基础涉及HTML结构、语义化、标签规范以及交互元素的使用,而...

    Learn PHP 7.pdf

    - **CRUD操作:** 在PHP中实现增删改查等基本操作。 - **事务处理:** 介绍如何使用事务来保证数据的一致性和完整性。 - **安全性:** 讨论SQL注入攻击的防范措施,确保数据安全。 #### 7. 实战案例分析 - **网站开发:...

    web后台管理模板

    6. **CRUD操作**:创建(Create)、读取(Read)、更新(Update)、删除(Delete)功能,用于数据库交互。 7. **权限管理**:角色和权限设置,控制不同用户对后台资源的访问权限。 8. **错误处理和日志记录**:捕获...

    PHP实例开发源码—HTML5自适应企业网站通用模板源码 php版.zip

    PHP与MySQL等数据库管理系统配合,可以实现数据的CRUD操作(创建、读取、更新和删除)。开发者可能使用PHP的PDO(PHP Data Objects)扩展或者mysqli扩展来安全地连接和操作数据库。 6. **模板引擎**:为了提高代码...

    php仿qq空间博客

    【PHP仿QQ空间博客】项目是一个使用PHP、HTML、JavaScript、CSS和jQuery技术构建的社交网络平台,旨在模仿腾讯QQ空间的博客功能。这个项目涵盖了Web开发中的多个关键知识点,让我们逐一深入探讨。 首先,PHP...

    《Web高级程序设计教程》电子教案

    5. **数据库交互**:课程会讲解SQL语言,如MySQL、PostgreSQL或MongoDB等非关系型数据库的使用,以及如何设计数据库模型,实现CRUD操作。 6. **前端框架**:如今,前端开发常使用React、Vue.js或Angular等框架。...

    通过使用HTML5BoilerPlate构建的社区最佳实践集合来提升您的CakePHP烘焙.zip

    3. **易用性**:使用CRUD(创建、读取、更新、删除)操作,以及丰富的模型和控制器功能,简化了数据操作。 4. **RESTful**:CakePHP支持RESTful接口,方便构建API服务。 5. **强大的社区支持**:大量的插件和组件,...

    PHP开发的黑色精美自适应音乐网站源码.zip

    2. **MySQL数据库集成**:源码中必然包含了与数据库的连接和操作,如创建、读取、更新和删除(CRUD)音乐信息。了解如何使用PHP的PDO(PHP Data Objects)或mysqli扩展进行数据库操作,是理解整个系统运行的基础。 ...

    PHP实例开发源码——红色风格政府协会建站系统(带小程序).zip

    - SQL查询:编写CRUD(创建、读取、更新、删除)操作的SQL语句,实现对数据库的数据操作。 - 数据库设计:涉及到表的创建、字段定义、主键和外键的设置,以及索引优化等。 3. **框架与MVC模式** - MVC(Model-...

    php开发的响应式时尚女装展示网站.zip

    PHP通过PDO(PHP Data Objects)或mysqli扩展与数据库进行交互,执行CRUD(创建、读取、更新、删除)操作。 5. 图像优化:为了保证页面加载速度,开发者可能会对展示的女装图片进行优化,包括压缩、调整大小和使用...

    Music_Streaming_WebProject:HTML5,CSS,JS,PHP的音乐流Web应用程序的源代码

    3. **CRUD操作**:创建(Create)、读取(Read)、更新(Update)和删除(Delete)是数据库操作的基础。PHP将执行这些操作,例如添加新歌曲、检索用户信息、修改播放列表或删除不必要的数据。 4. **会话管理**:PHP...

    4085黑色全屏交互式美食西餐店html5模板5503_企业网站模板PHP整站源码.zip.7z

    源码中可能包含与数据库交互的PHP脚本,如SQL查询和CRUD(创建、读取、更新、删除)操作。 7. **安全性**:PHP源码应考虑安全问题,如防止SQL注入、XSS跨站脚本攻击等。开发者可能还需要实现用户密码的加密存储和...

    W3CSchool资料的chm版本

    教程中会讲解基本的CRUD操作(创建、读取、更新、删除)、数据类型、索引、视图、存储过程等,帮助读者掌握数据库管理的基本技能。 此外,CHM文件可能还包含了其他Web技术的相关教程,如XML、JSON、Ajax、前端框架...

    内容管理系统

    内容管理系统(Content Management System...这将包括创建数据库模型、设计用户界面、实现CRUD(Create, Read, Update, Delete)操作,以及如何部署和调试系统。通过学习,你将具备独立开发和定制内容管理系统的能力。

    web_technology_exam:html,css,js,php,考试的数据库连接

    在Web技术领域,HTML、CSS、JavaScript、PHP以及数据库连接是构建动态网站不可或缺的基础知识。以下是对这些关键概念的详细阐述: HTML(HyperText Markup Language)是网页内容的基础,用于创建和布局页面结构。它...

    Laravel开发-mytest

    Eloquent提供了ActiveRecord模式,使得每个数据库表对应一个Model类,通过这个类可以直接执行CRUD操作。此外,Laravel的查询构造器也提供了一种链式调用的方式来构建复杂的SQL查询。 Laravel的Artisan命令行工具为...

Global site tag (gtag.js) - Google Analytics