1.1 数据库系统和数据模型
用户使用数据库之前需要构建数据库系统,按照一定的数据模型组织数据库中的数据。
数据库系统
1.1.1 数据库系统
数据库系统一般由数据库、数据库管理系统(Database Management System,DBMS)、数据库应用系统、数据库管理员(Database Administrator,DBA)和用户构成。数据库管理系统是数据库系统的基础和核心,如图1.1所示。
图1.1 数据库系统的构成
1.数据库
数据库是按照数据结构来组织、存储和管理数据的仓库,是一个可长期存储在计算机内、有组织、可共享、统一管理的大量数据的集合。
互联网世界充斥着大量的数据。例如网上商城包含商品分类信息、商品信息、商品供货商信息、购买商品的用户信息、订单支付信息、订单项信息、商品快递信息等。这些信息表达包含各种类型的数据。例如,字符数据、数值数据、时间数据、逻辑数据、集合数据、枚举数据、JSON数据、地理位置数据、二进制数据等。二进制数据可用于表达图像、音乐、声音、视频等。
2.数据库管理系统
数据库管理系统是数据库系统的核心组成部分,主要完成对数据库的操作与管理功能,实现数据库对象的创建和数据库存储数据的查询、添加、修改与删除操作,以及数据库的用户管理、权限管理等。简单地说,数据库管理系统是用于管理数据库的系统(软件)。数据库管理员通过数据库管理系统对数据库进行管理。
1.1.2 数据模型
要想使用计算机技术对客观事物进行管理,数据库管理员就需要对客观事物进行抽象、模拟,利用模型对事物进行描述是人们在认识和改造世界过程中广泛采用的一种方法。数据模型是在数据库设计中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。
数据库发展过程中产生了3种基本的数据模型,分别是层次模型、网状模型和关系模型。
1.层次模型
层次模型将数据组织成一对多关系的结构,用树形结构表示实体及实体间的联系。图1.2所示为按层次模型组织的数据示例。
图1.2 按层次模型组织的数据示例
层次模型存取方便且速度快;结构清晰,容易理解;数据修改和数据库扩展容易实现;检索关键属性十分方便。但其结构不够灵活;同一属性数据重复存储,数据冗余多;不适合用于拓扑空间数据的组织。
2.网状模型
网状模型用指针来指示数据间的网状连接关系,是具有多对多关系的数据的组织方式。图1.3所示为按网状模型组织的数据示例。
网状模型能够明确且方便地表示数据间的复杂关系,数据冗余少。但网状模型的结构复杂,增加了用户查询和定位的困难;需要存储指示数据间联系的指针,使得存储的数据量增大,数据的修改操作比较复杂。
图1.3 按网状模型组织的数据示例
3.关系模型
关系模型以记录组或数据表的形式组织数据,以便利用各种实体与属性之间的关系进行存储和变换,不分层且无指针,是建立空间数据和属性数据关系的一种非常有效的数据模型。
例如,网上商城管理系统所涉及的商品类别、商品、供货商、用户、订单、订单项等表中,商品表主要信息包括商品编号、商品名称、价格、库存量和商品图片等,部分数据如表1.1所示。
关系模型
表1.1 商品表的样本
关系模型是近年来整个数据模型领域的重要支撑,是目前数据库中常用的数据模型。
随着数据库应用领域的进一步拓展与深入,对象数据、空间数据、图像与图形数据、声音数据、关联文本数据及海量仓库数据等出现,为了满足应用需求,数据模型发展趋势如下。
(1)对传统关系模型的扩充,以实现关系模型嵌套,支持关系继承及关系函数等。
(2)用面向对象的思维方式与方法来描述客观实体,支持面向对象建模,支持对象存取与持久化,支持代码级面向对象的数据操作,称为面向对象数据模型。
(3)XML从数据交换领域发展到了数据存储与业务描述领域,数据库系统已支持对XML的存储与处理。
(4)研究新的数据模型,在数据构造器与数据处理原语上都有了新的突破。例如,函数数据模型(FDM)、语义数据模型(SDM)等。
目前比较流行的关系模型数据库管理系统包括Oracle、SQL Server、MySQL、PostgreSQL、Access等。本书介绍MySQL。