前言 互联网传递的是信息,信息的载体是数据。如何高效地存储和查询数据是每一个互联网服务提供商需要面对的关键问题,也是每一位有志从事IT技术应用的研发人员必须掌握的基本功。当代的数据库技术日新月异,经典的关系数据库老当益壮且不断向网络化和智能化演进,新型的非关系数据库百花齐放,各自也都能独当一面。面对繁多的数据库技术和工具,怎样能在较短时间里理清其脉络,掌握其主要技术精髓和基本的动手实践能力是每一位初学者共同关心的问题。本书旨在为初学者提供这样一本参考书,较全面地涵盖当前主流的各类数据库的基本原理和技术特点,并且针对其中的典型数据库,结合具体案例介绍其基本操作和编程方法。希望本书能够成为数据库技术初学者的好帮手,陪伴读者在对数据库技术的学习中不断进步。 本书主要内容 本书是关于数据库技术的入门书,适合具备程序设计基础,特别是Python 3基础的读者学习。读者可以在短时间内学习本书中介绍的所有原理和方法。全书内容可分为三部分。 第一部分主要对数据库技术进行介绍,包括第1章。 第二部分针对关系数据库技术,包括第2~4章。第2章“关系数据库技术基础”,内容包括关系数据库的特点、基本概念、数据库设计的基本方法和SQL基础。第3章“关系数据库的管理和查询”,以华为openGauss数据库为载体,以方便云端部署的Docker平台为依托,介绍关系数据库系统的安装和配置方法、关系数据库的常规管理方法和基于Python的编程方法。第4章“关系数据库技术应用”,围绕一个应用实例讲解关系数据系统从需求分析到数据库设计、从界面设计到程序开发方法的全流程,让读者运用华为openGauss数据库在华为云上部署自己的数据库Web应用程序。 第三部分针对非关系数据库,包括第5~7章。第5章“文档数据库MongoDB的原理与应用”,内容包括文档数据库MongoDB的特点和基本概念、MongoDB系统的安装和配置方法、基于命令行和图形化界面的MongoDB管理方法以及基于Python的编程方法。第6章“图数据库Neo4j的原理与应用”,内容包括图数据库Neo4j的特点和基本概念、Cypher语言基础、Neo4j的安装和配置方法、基于命令行和图形化界面的Neo4j操作方法、基于Python的Neo4j编程方法。第7章“键值数据库Redis的原理与应用”,内容包括键值数据库的特点和基本概念、Redis数据库的安装和配置方法、基于命令行和图形化界面的Redis操作方法、基于 Python的Redis编程方法。 本书特色 (1) 涵盖面较广。 本书既涵盖经典的关系数据库,又涵盖新型的非关系数据库,适合读者全面理解和掌握数据库技术。在各类新型非关系数据库中,涵盖常用的文档数据库、图数据库和键值数据库。 (2) 案例驱动。 本书强调实用,第2~7章中每章都包含大量实操内容,且围绕具体案例展开讲解,引导读者理解相关原理和方法的技术特点、使用场合和注意事项。特别是第4章,围绕一个应用实例讲解关系数据库系统从需求分析到数据库设计、从界面设计到程序开发方法的全流程,让读者运用华为openGauss数据库在华为云上部署自己的数据库Web应用程序。 (3) 注重实用。 本书服务于数据库技术的初学者。本书没有长篇累牍地讲解数据库技术背后深奥的数理知识,而是针对初学者的认知基础,挑选必要的理论知识深入浅出地讲解。本书更多的篇幅是帮助读者理解数据库技术的使用方法,不仅仅是作为系统管理员的常规数据库维护方法,还针对每种类型的数据库讲解了如何通过Python语言对其进行编程。 (4) 培养全栈开发能力。 在数据库编程方面,除讲解如何用Python对数据库进行增、删、改、查外,还讲解如何建构基于Gradio的Web图形界面程序,以最小的学习成本让读者具备数据库应用的全栈开发能力。 配套资源 为便于教与学,本书配有微课视频、源代码、教学课件、教学大纲、教学进度表、期末试卷及答案。 (1) 获取微课视频的方式: 先刮开并用手机版微信App扫描本书封底的文泉云盘防盗码,授权后再扫描书中相应的视频二维码,观看教学视频。 (2) 获取源代码和全书网址的方式: 先刮开并用手机版微信App扫描本书封底的文泉云盘防盗码,授权后再扫描下方的二维码,即可获取。 源代码 全书网址 (3) 其他配套资源可以扫描本书封底的“书圈”二维码,关注后回复本书书号,即可下载。 读者对象 本书主要针对高等学校数据库技术基础课程的教学,也适合广大对数据库技术有兴趣的读者自学。 致谢 刘波和颜浩楠分别参与了本书第5章和第7章的撰写和修改工作; 刘泽星老师参与了本书的校对工作; 清华大学出版社的编辑们对书稿 提出了宝贵意见并进行了认真校对。在此一并表示衷心的感谢! 在编写本书的过程中,作者参考了诸多相关资料,在此对相关资料的作者表示衷心的感谢。限于个人水平和时间仓促,书中难免存在疏漏之处,欢迎广大读者批评指正。 作者 2024年1月