第七章: 数据库技术基础——知识点整理
- 第七章: 数据库技术基础
-
- 知识梳理
- 高频考点
- 7.1 数据库技术基础
-
- 7.1.1 数据管理技术的发展
- 7.1.2 数据库的基本概念 ??
-
- 1、数据
- 2、数据处理
- 3、数据库
- 4、数据库管理系统
- 5、数据库系统
- 7.1.3 数据库系统的组成 ??????
-
- 1、硬件系统
- 2、系统软件
- 3、数据库应用系统
- 4、各类人员
- 7.1.4 数据模型 ????
-
- 1、层次模型
- 2、网状模型
- 3、关系模型
- 7.1.5 关系数据库的基本概念 ??
- 7.1.6 关系运算 ??????
-
- 1、传统的集合运算
- 2、专门的关系运算
- 7.2 数据库管理系统
-
- 7.2.1 数据库管理系统的组成和功能
-
- 1、数据库管理系统的组成
- 2、数据库管理系统的功能
- 7.2.2 常见数据库管理系统
-
- 1、Oracle
- 2、 Microsoft SOL Server
- 3、Visual FoxPro
- 4、Microsoft Access
- 5、MySQL
- 6、DB2
- 7.3 数据库的建立和维护
-
- 7.3.1 数据库对象 ????
- 7.3.2 创建数据库
- 7.3.3 创建数据表
-
- 1、在数据表视图创建数据表
- 2、设置表的字段类型
- 3、设置字段属性
- 4、创建表结构
- 5、创建表间关系
- 7.3.4 编辑表的内容
- 7.3.5 创建查询 ??????
-
- 1、选择查询
- 2、操作查询
- 7.3.6 SQL查询
-
- 1、数据定义
- 2、数据操纵
- 3、数据查询
- 7.3.7 关系数据库设计方法
-
- 1、需求分析
- 2、概念设计
- 3、逻辑设计
- 4、物理设计
- 5、验证设计
- 7.4 非关系型数据库
-
- 7.4.1 非关系型数据库的概念
- 7.4.2 NoSQL 数据存储模式
-
- 1、键值数据存储模式
- 2、文档数据存储模式
- 3、列族数据存储模式
- 4、图数据存储模式
- 同步特训知识点
第七章: 数据库技术基础 知识梳理
文章图片
高频考点
高频考点 | 重要程度 |
---|---|
数据模型 | ???? |
数据库系统组成 | ???????? |
SQL查询 | ???????? |
表 | ?????? |
一对一、一对多、多对多关系 | ???? |
窗体 | ???? |
专门的关系运算 | ???? |
报表 | ?? |
数据管理技术的发展大致经历了人工管理、文件系统和数据库系统三个阶段,如表所示。
数据管理技术的发展
数据管理技术 发展阶段 |
硬件设备 | 软件设备 | 处理方式 | 主要特点 |
---|---|---|---|---|
人工管理阶段 | 没有磁盘等直 接存取的存储设备 |
只有汇编语言, 没有操作系统和 高级语言,更 没有管理数据 的软件 |
批处理,依赖人 工进行 |
(1)数据不进行保存;
(2)没有专门的数据管理软件; (3)数据面向应用; (4)只有程序的概念。 |
文件系统阶段 | 已经有了磁盘、 磁鼓等直接存取 的外存设备 |
出现了操作系统 、高级语言 |
增加了联机 实时处理 |
(1)数据可以长期保存在磁盘上;
(2)文件系统提供了数据与程序之间的存取方法; (3)数据冗余量大; (4)文件之间缺乏联系,相对孤立, 仍然不能反映客观世界各个事物之间 错综复杂的联系。 |
数据库系统阶段 | 出现了大容量的磁盘 | 软件设备 更加丰富 |
在处理方式上, 联机实时处理 的要求更多 |
(1)数据结构化;
(2)数据共享性好; (3)数据独立性好; (4)数据存储粒度小; (5)数据冗余量小; (6)为用户提供了友好的接口。 |
1、数据 数据是指存储在某一种媒体上能够识别的物理符号。数据的概念包括两个方面:一是描述事物特性的数据内容;二是存储在某一种媒体上的数据形式。
2、数据处理 数据处理是指对各种形式的数据进行收集、存储、加工、传播的一系列活动的总和。
3、数据库 数据库是长期存放在计算机内的、有组织的、可表现为多种形式的可共享的数据集合。
4、数据库管理系统 数据库管理系统(DBMS)是对数据库进行管理的系统软件,它的职能是有效地组织和存储数据,获取和管理数据,接受和完成用户提出的访问数据的各种请求。
5、数据库系统 数据库系统是指拥有数据库技术支持的计算机系统,它可以实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享服务。数据库系统的核心是数据库管理系统。
拿分笔记: 数据库系统(DBS)包括数据库(DB)和数据库管理系统(DBMS)。
7.1.3 数据库系统的组成 ??????
数据库系统由四部分组成,即硬件系统、系统软件、数据库应用系统和各类人员。
1、硬件系统 由于一般数据库系统的数据量很大,加之DBMS丰富的功能使得自身的体积很大,因此,整个数据库系统对硬件资源提出了较高的要求。
2、系统软件 系统软件主要包括操作系统数据库管理系统、与数据库接口的高级语言及其编译系统,以及以DBMS(数据库管理系统)为核心的应用程序开发工具。
3、数据库应用系统 数据库应用系统是为特定应用开发的数据库应用软件。
4、各类人员 参与分析、设计、管理、维护和使用数据库的人员均是数据库系统的组成部分。这些人员包括数据库理员、系统分析员、应用程序员和最终用户。
7.1.4 数据模型 ????
数据库中最常见的数据模型有三种,即层次模型、网状模型和关系模型。
1、层次模型 若用图来表示层次模型是一棵倒立的树。在数据库中,满足以下两个条件的数据模型称为层次模型。
(1)有且仅有一个结点无父结点,这个结点称为根结点
(2)其他结点有且仅有一个父结点。
在层次模型中,结点层次从根开始定义,根为第一层,根的子结点为第二层,根为其子结点的父结点,同一父结点的子结点称为兄弟结点,没有子结点的结点称为叶结点。
在如图所示的抽象层次模型中,R1为根结点;R2和R3为兄弟结点,并且是R1的子结点;R4和R5为兄弟结点,并且是R2的子结点; R3、R4和R5为叶结点。
文章图片
层次模型结构
2、网状模型 若用图来表示网状模型是个网络。 在数据库中,满足以下两个条件之一的数据模型称为网状模型。
(1)允许一个以上的结点无父结点。
(2)允许结点有多于一个的父结点。
由于在网状模型中子结点与交结点的联系不是唯一的,所以要为每个联系命名,并指出与该联系有关的父结点和子结点。网状模型允许一个以 上的结点无父结点或某一个结点有一个以上的父结点,从而构成了比层次结构复杂的网状结构。
文章图片
网状模型结构
在上图所示的抽象网状模型中,R1与R2之间的联系被命名为L1,R1与R4之间的联系被命名为L2,R3与R4之间的联系被命名为L3,R4与R5之间的联系被命名为L4,R2 与R5之间的联系被命名为L5。R1为R2和R4的父结点,R3也是R4的父结点。R1和R3没有父结点。
3、关系模型 关系模型把世界看作是由实体和联系构成的。
所调联系就是指实体之间的关系,即实体之间的对应关系。联系可以分为三种:一对一的联系,一对多的联系和多对多的联系。
(1)一对一的联系
对于实体集A中的每个实体,实体集B中最多有一个实体与之联系,反之亦然。例如,一个人只有一个身份证号,一个身份证号只对应一个人。
(2)一对多的联系
对于实体集A中的每个实体,实体集B中可以有多个实体与之联系;反之,对于实体集B中的每个实体,实体集A中只有一个实体与之联系。例如,一个班级中有若干名学生,每个学生只在一个班级中学习。
(3)多对多的联系
对于实体集A中的每个实体,实体集B中可以有多个实体与之联系,反之亦然。例如,课程与学生之间存在联系,一门课程同时有若干个学生选修,一个学生可以同时选修多门课程。
通过联系就可以用一个实体的信息来查找另一个实体的信息。关系模型把所有的数据都组织到表中。表是由行和列组成的,反映了现实世界中的事实和值。
满足下列条件的二维表,在关系模型中,称为关系。
(1)每一列中的分量是类型相同的数据。
(2)列的顺序可以是任意的。
(3)行的顺序可以是任意的。
(4)表中的分量是不可再分割的最小数据项,即表中不允许有子表。
(5)表中的任意两行不能完全相同。
拿分笔记: 关系数据库以其数学理论基础完善、使用简单灵活、数据独立性强等优点,被公认为是最有前途的一种数据库管理系统,占据主导地位。关系数据库是目前最常见的数据库类型。
补充: 在关系数据库中,一个关系就是一张二维表。
7.1.5 关系数据库的基本概念 ??
(1)关系:一个关系就是一张二维表,每个关系有一个关系名。在计算机中,关系的数据存储在文件中,在Access中,一个关系就是数据库文件中的一个表对象。
(2)属性:二维表中垂直方向的列称为属性,有时也叫作一个字段。
(3)域:一个属性的取值范围叫作一个域。
(4)元组:二维表中水平方向的行称为元组,有时也叫作一条记录。
(5)码:又称为关键字。二维表中的某个属性或属性组,若它的值唯一地标识了一个元组,则称该属性或属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码也称之为主键。
(6)分量:元组中的一个属性值叫作元组的一个分量。
(7)关系模式:是对关系的描述,它包括关系名、组成该关系的属性名、属性到域的映象。通常简记为:关系名(属性名1,属性名2…,属性名n)。
拿分笔记: 主键不能出现重复值或空值。
点拨: 一个关系中可以有多个关键字,但只能有一个主键。
7.1.6 关系运算 ??????
在关系数据库中查询用户所需的数据时,需要对关系进行一定的关系运算。关系运算主要分为两类:传统的集合运算和专门的关系运算。前者将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行的,而后者的运算不仅涉及行而且涉及列。
1、传统的集合运算 传统的集合运算包括并、差、交、广义笛卡尔积等,进行传统集合运算的前提是两个关系必须具有相同的关系模式,即具有相同的结构。
(1)并
两个相同结构关系的并是由属于两个关系的元组组成的集合。例如,有两个结构相同的关系R和S,如图(a)和(b)所示,将S的记录追加到R记录后面就得到这两个关系的并集,如图7-4所示。
文章图片
文章图片
(2)差
关系R差关系S的结果是由属于R但不属于S的元组组成的集合,即差运算的结果是从R中去掉S中也有的元组,如图7-5所示。
文章图片
(3)交
【专升本计算机|第七章( 数据库技术基础——知识点整理)】关系R和关系S的交是由既属于R又属于S的元组所组成的集合。交运算的结果是R和S的共同元组,如图7-6所示。
文章图片
(4)广义笛卡尔积
关系R(m个属性)和关系S(n个属性)的广义笛卡尔积是一个(m+n)个属性的元组集合,元组的前m列是关系R的一个元组,后n列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组,如图所示。
文章图片
2、专门的关系运算 专门的关系运算的操作对象是关系,运算的结果仍为关系。专门的关系运算包括:选择、投影和连接。
(1)选择
从关系模式中找出满足某条件的元组的操作称为选择。选择的条件以逻辑表达式给出,使得逻辑表达式的值为“真”的元组被选取。选择操作是从行的角度进行的运算,即水平方向抽取记录,经过选择运算的结果,可以成为一个新的关系,其关系模式不变,仍为一个表,新表的结构则来自原表结构,选择的结果是原关系的一个子关系。
[例]现有员工信息表如图所示,查询所有年龄大于25岁的员工信息。
文章图片
查询结果如图所示:
文章图片
(2)投影
从关系模式中指定若干个属性组成新的关系称为投影。投影是以列的角度进行的运算,相当于对关系进行垂直分解。经过投影运算可以得到一个新关系,其关系模式所包含的属性个数一般比原关系的要少,或者属性的排列顺序发生了变化,投影运算体现了关系中的属性次序可以改变的性质。
[例7. 2]查询员工信息表中员工的“姓名”“工号”和“部门”三列信息。
查询结果如图所示:
文章图片
(3)连接
连接是关系的横向结合。连接运算将两个关系模式拼成一个包含更多列的关系模式,生成的新关系中包含满足条件的元组。连接运算中最为重要的等值连接和自然连接。
等值连接:两个关系中,按照对应属性值相等作为连接条件进行的连接为等值连接。
自然连接:去掉重复属性的等值连接为自然连接。一般的连接操作是从行的角度进行运算,但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算的。
下面以一个简单的例子说明一下两者的区别。
[例]设有两个关系R和S,如图7-11(a)、7-11(b)所示。
文章图片
以R中的A列和S中的C列进行等值连接,结果如图所示。
文章图片
点拨: 以R中的A列和S中的C列进行等值连接,其中关系R中A列的值“2”和“4”,与关系S中C列的值“2”和“4”对应,取消其他行,连接的结果就如图所示。
文章图片
同理可得,以R中的B列和S中的B列进行等值连接,结果如图所示。
文章图片
[例]对关系R和关系S进行自然连接,结果如图所示。
文章图片
点拔: 在关系R和关系S中,只有B列的属性名称相同,因此,只能以B列进行自然连接,相比于等值连接(R.B=S.B),自然连接就是去掉重复属性的等值连接(R. B和S.B重复,只保留一列,字段名称为“B”)。
根据上面的例子,我们不难得出:
①自然连接一定是等值连接,但等值连接不一定是自然连接。
②等值连接不要求相同属性值的属性名称(字段名称)相同,例如等值连接(A=C); 自然连接要求相同属性值的属性名称必须相同。
③等值连接不将重复的属性(字段)去掉,而自然连接会去掉重复属性。
7.2 数据库管理系统 数据库管理系统是一种操纵和管理数据库的系统软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。
7.2.1 数据库管理系统的组成和功能
1、数据库管理系统的组成 按功能划分,数据库管理系统大致可分为以下六个部分:
(1)模式翻译。提供数据定义语言(DDL),用它书写的数据库模式被翻译为内部表示。
(2)应用程序的编译。把包含着访回数据库语句的应用程序编译成在DEMS支持下可运行的目标程序。
(3)交互式查询。提供易使用的交互式查询语言,如SQL。DBMS负责执行查询命令,并将查询结果显示在屏幕上。
(4)数据的组织与存取。提供数据在外围储存设备上的物理组织与存取方法。
(5)事务运行管理。提供事务运行管理及运行日志管理。事务运行的安全性监控和数据完整性检查、事务的并发控制及系统恢复等功能。
(6)数据库的维护。为数据库管理员提供软件支持包括数据安全控制完整性保障数据库备份、数据库重组以及性能监控等维护工具。
2、数据库管理系统的功能 数据库管理系统所提供的功能有以下几项:
(1)数据定义功能。DBMS提供相应数据定义语言来定义数据库结构,刻画数据库框架,并保存在数据字典中。
(2)数据存取功能。DBMS提供数据操纵语言(DML)实现对数据库数据的基本存取操作,如检索、插入、修改和删除。
(3)数据库运行管理功能。DBMS提供数据控制功能,即在数据库运行期间,对数据的安全性、完整性和并发控制等进行有效的控制和管理,以确保数据正确有效。
(4)数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
(5)数据库的传输。DBMS提供数据的传输功能,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。
7.2.2 常见数据库管理系统
1、Oracle Oracle是著名的Oracle(甲骨文)公司的产品,它是最早商品化的关系型数据库管理系统,也是应用最广泛、功能最强大的数据库管理系统之一。 Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,伎持各种分布式功能,特别是支持Internet应用。
2、 Microsoft SOL Server Microsoft SQL Server是一种典型的关系型数据库管理系统,它使用Transact-SQL语言完成数据操作。Microsoft SQL Server是开放式的系统,其他系统可以与它进行较好的交互操作。
3、Visual FoxPro Visual FoxPro简称VFP,是Microsoft 公司推出的数据库管理/开发软件,它既是一种简单的数据库管理系统,又能用来开发数据库客户端应用程序。
4、Microsoft Access Access是Microsoft Office 办公系列软件的一个重要组成部分,主要用于数据库管理。使用它可以高效地完成各种类型中小型数据库管理工作,使用它可以大大提高数据处理的效率。
5、MySQL MySQL是一个小型关系型数据库管理系统,广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体成本而选择了MySQL作为网站数据库。
6、DB2 DB2是IBM公司研制的一种关系型数据库系统,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。
补充: Access是一款数据库应用的开发工具软件,中文名是:微软办公软件——关系数据库管理系统。
7.3 数据库的建立和维护 数据库是与特定主题或目的相关的数据的集合。Acces 是一种可视化的关系型数据库管理系统。目前,Access应用广泛,不仅可用于中、小型的数据库管理,供单机使用,而且还可以作为“客户机/服务器”或“浏览器/服务器”体系中数据库服务器上的数据库管理系统。
7.3.1 数据库对象 ????
Access关系数据库是数据库对象的集合。数据库对象包括表、查询、窗体、报表、宏和模块等。在每一个数据库中,可以拥有众多的表、查询、窗体、报表、宏和模块。这些数据库对象都存储在同一个以 .accdb 为扩展名的数据库文件中。
点拨: 在任何时刻 ,Access只能打开并运行一个数据库。
(1)表(Table)对象
表是数据库中最基本的对象,用于保存数据库中的全部数据信息,没有表就没有其他对象。它是整个数据库系统的核心和基础。一个数据库中可以有多个表,表与表之间通常是有关系的,可以通过相关的字段建立关系。
在Access关系数据库中,有关表的操作都是通过表对象来实现的。表对象可以管理表的结构(包括字段名称、数据类型、字段属性等)以及表中存储的记录。
拿分笔记: 在Access关系数据库中,表是数据库中用来存储和管理数据的对象,是整个数据库系统的基础,也是数据库其他对象的操作依据。
(2)查询(Query)对象
查询是Access数据库中的一个重要对象,它是按照一定的条件或准则从一个或多个数据表中映射出的虚拟视图,是对数据库中数据的直接访问。它是表加工处理后的结果,也是可以作为其他数据库对象的数据来源。查询用于在一个或多个表内查找某些特定的数据,完成数据的检索定位和计算的功能供用户在看。
(3)窗体(Form)对象
窗体是应用程序和用户之间的接口界面,是创建数据库应用系统最基本的对象。窗体为用户查看和编辑数据库中的数据提供了一种友好的交互式界面。用户可以通过窗体来实现数据维护、控制应用程序流程等人机交互的功能,也可以使用窗体完成向表中输入数据,控制数据输出、显示等操作,还可打开其他窗体或报表创建自定义对话框。
(4)报表(Report)对象 (主要用来进行数据输出)
报表是以打印格式显示用户数据的一种有效方式。用户可以将一个或多个表和查询中的数据以一定的格式制作成报表,还可以将数据处理的结果或各种图表插入到报表中,用户可以在报表设计视图窗口中控制每个对象的大小和显示方式,对报表对象的各项内容进行设计和修改,按照用户所需的方式完成打印工作。
报表和窗体的建立过程很相似,主要区别是:窗体是将最终结果显示在屏幕上,报表可以打印出来,窗体可以实现交互操作,报表则不能。
(5)宏(Macro)对象
宏是一种为实现较复杂功能而建立的可定制对象,它实际上是一系列操作的集合,其中每个操作都能实现特定的功能,是帮助用户实现各种操作的集合,使系统成为一个可以良好运行的软件,如打开窗体、生成报表、保存修改等。Accss 2010具有功能更强大的宏设计器和数据宏,使用该设计器可以轻松地创建、编辑和自动处理数据库逻辑、减少编码错误,并轻松地整合更复杂的逻辑以创建功能强大的应用程序。
(6)模块(Module)对象
模块是Access数据库中最复杂也是功能最强大的一种对象,它由Visual Basic编制的过程和函数组成。模块提供了更加独立的动作流程,并且允许捕捉错误。在Access中,一个模块相当于一组相关功能的集合。使用其内置的Visual Basic for Application(VBA)可以编制各种对象的属性、方法,以实现细致的操作和复杂的控制功能。
7.3.2 创建数据库
Access创建的数据库以一个独立的文件保存在处存中,且一个数据库文件将包含数据表、查询、窗体、报表等在内的全部数据库对象。因此,应用Access必须首先创建数据库。
例如,创建一个空数据库,保存在“D:\accDB"文件夹,文件名为“教务管理.accdb”。
(1)单击“文件”选项卡。在左侧窗格中单击“新建”命在右侧窗格中单击“空数据库”选项。
(2)在右侧窗格文件名文本框中,有一个默认的文件名“Database1" ,将该文件名改为“教务管理”,扩展名由系统自动加上。
(3)单击其右侧的“浏览”按钮弹出“文件新建数据库”对话框。在该对话框中找到D盘中的“accDB”文件夹并打开,然后单击“确定”按钮,返回到Access窗口。在右侧窗格下方显示将要创建的数据库的名称和保存位置。
(4)单击“创建”按钮,Access创建一个空数据库,并自动创建一个名称为“表1”的数据表,该表以数据表视图方式打开。数据表视图中显示两个字段,一个是默认的“ID”字段,另一个是用于添加新字段的标识“单击以添加”,光标位于“单击以添加”列的第一个空单元格,如图所示。此时不需要再做其他操作,直接关闭Access窗口,空数据库创建完毕。
7.3.3 创建数据表
1、在数据表视图创建数据表 打开一个数据库(也可以是空数据库),在“创建”选项卡的“表格”组中单击“表”按钮,Access将创建表,单击“单击以添加”右侧的箭头,选择要添加的字段的类型,Access会将新字段添加到数据表中的插入点处。若要添加数据,请首先在第一个空单元格中键入。若要重命名列(字段),请双击对应的列标题,然后键入新名称,如图所示。若要移动列,请单击对应的列标题选择该列,然后将该列拖至所需的位置。
文章图片
输入数据创建表
2、设置表的字段类型 数据库中的数据表,通常简称为表,可以存储各种类型的数据,如文本、数字、货币、日期和时间、图像、声音、超链接地址等。选定基本表,进入设计视图,修改表结构。例如,可以修改字段名称、字段类型和字段属性,可以对字段进行插入、删除、移动等操作,还可以重新设置主键。
表由结构(表的字段)和数据(表中的记录)构成。关于字段的数据类型,通常可在下表中选择。
表——字段数据类型
数据类型 | 阐述 |
---|---|
文本 | 存放数字文本、英文字符和中文字符,默认字段大小为255个字符。数字文本不能用于数值计算,常常用来表示编号、身份证号、电话号码、邮政编码等。 |
备注 | 备注类型与文本类型的作用相同,用来存放较长的文本,最多存储6.4万个字符,如个人简历、情况简介、学生评语等。备注类型的字段不能参与排序或索引,如果字段内容较少,尽量使用文本类型。 |
数字 | 存放需要计算的数值数据。单击“字段大小”属性右边的网格,可选择字节、整型、长整型、单精度型、双精度型等数据类型。 |
日期/时间 | 存储日期、时间或日期与时间的组合,如出生日期、借书时间等字段大小固定8个字节,由系统自动设定。 |
货币 | 货币数据,如单价、工资、销售金额等,系统一般会自动加上供给制符号(如¥),字段大小固定为8个字节,整数部分不超过15位,小数部分不超过4位。 |
自动编号 | 在添加新记录时,Access自动为自动编号字段分配一个唯一的连续编号或随机编号。编号永久与相应的记录连接,用户无法修改,在删除或添加记录时,不再重新编号。自动编号类型的字段大小固定4个字节,按长整型存储。一个表中只允许出现一个自动编号字段。 |
是/否 | 是/否类型又称为逻辑类型,存储只有两种不同取值的数据,如性别、婚否等,固定采用1位二进制数存储。 |
OLE对象和附件 | 用来嵌入或链接多种类型文件,如图像、声音、动画、Excel工作簿、Word文档等。对于一个记录,OLE对象字段只能存储一个文件,最多1GB数据;而附件类型字段可存储多个文件,添加附件时自动压缩最多存储2GB数据。 |
超链接 | 用来存放磁盘文件地址、电子邮箱地址、网页地址等。指向本地文件或网页的路径,最多6.4万个字符。 |
计算 | 用计算的结果表示字段的值。计算时必须引用同一张表中的其他字段。 |
查阅向导 | 用于存放从其他表中查阅的数据,存储长度一般为4字节。 |
3、设置字段属性 设置字段属性可以减少数据输入错误或保证数据规范一致。字段属性是字段所具有的一些特征。不同类型的字段,具有不同的属性。
(1)字段大小
字段大小是指字段数据内容的字节个数或字符个数,而不是字段名称的字符个数。例如,“性 别”的字段名称为2个字符,而字段天小设置为1,字段中可以存放1个字符。
单击字段大小属性右边的设计网格,输入字符个数,设置文本字段的大小;单击下拉按钮,设置数字字段的大小,如整型,单精度型等。货币、日期/时间、是/否、自动编号等字段大小由Access系统决定,用户无法改变。
(2)格式
设置字段的格式属性,可以设定数据的输出格式,即显示和打印格式,而不影响数据的实际存在方式。单击格式属性右边的设计网格,可以设置文本、数字、货币、日期/时间、是/否等字段格式。
例如,在设置是/否字段时,选择 “真/假”,显示“True”或“False” ;选择“是/否”,显示“Yes”或“No”;选择“开/关”,显示“On”或“Off”)
(3)输入掩码
输入掩码属性用来指定字段数据的输入格式,具体限定输入字符的类型和位数,可以减少人为输入错误,保证数据格式统一,该属性仅适用于文本数字货币和日期/时间类型的字段。在“输入掩码”文本框中,输入系统规定的格式字符,可以在输入数据时发挥约束作用。
(4)标题
设置字段的标题属性,,可在数据表视图、窗体和报表中显示标题文本,而不显示字段名称。在设计表的结构时,字段名称应当简明扼要,但在数据表视图、窗体和报表中,为了表达字段的确切含义,可以使用更加详细的标题文本代替字段名称。例如,“教师表”中的“编号”字段,标题属性可以设置为“教师编号”。
点拔: 修改字段名称不会影响到字段中所存放的数据;但是会影响到一些相关的部分。如果查询、报表、窗体等对象使用了这个更换名称的字段,那么在这些对象中也要进行相应的修改。
(5)默认值
设置字段的默认值属性,可以避免重复输入数据。默认值是指添加记录时,自动加入到该字段中的值,例如,将“学号”字段的默认值设置为“2021”,在输入新记录时,“2021”自动出现在“学号”字段中,可减少数据输入。
(6)有效性规则与有效性文本
设置有效性规则属性,可以检查字段中的输入值是否符合要求,防止输入非法数据。有效性规则是一个逻辑表达式,文本字段指定必须输入的文本,如“性别”字段指定必须输入“男”OR“女”;日期/时间字段指定必须输入的日期时间范围,如“出生日期”字段指定为“
如果输入的数据违反有效性规则,Access拒绝接收输入的数据A并显示默认提示信息。设置有效性文本属性,可以显示用户设置的提示信息。例如,设置有效性文本为“输入数据错误!”,那么一旦在“性别”字段输入“男”或“女”之外的文本,则显示提示信息“输入数据错误!”。
(7)必需
必需字段属性仅有“是”和“否”两个选项。选择“是”则字段中必须填写数据,不允许出现空值; 选择“否”,则字段中可以不填写任何数据,允许出现空值。
(8)索引
设置字段的索引属性,可以加快数据查询、数据排序和数据分组的速度。单击索引属性右边的设计网格,选择“无”,不设置字段索引;选择“有(有重复)”,设置字段索引,允许字段值重复出现;选择“有(无重复)”,设置字段索引,不允许字段值重复出现。
在设置主键字段时,Access自动添加索引并选择“有(无重复)”选项。
4、创建表结构 在“教务管理”数据库中创建“学生表”,“学生表”的结构如表7-3所示。
操作步骤如下,
(1)在“创建”选项卡中,单击“表格”组中的“表设计”按钮进入表设计视图。默认的表名为“表1”,保存时可命名为“学生表”。
表设计视图分为上下两部分,上部为字段输入区,可分别输入“字段名称”、选定字段的“数据类型”,以及对一个字段输入一些注释性的“说明”。“说明”的内容不影响数据库的任何操作。下部为字段的属性区,用来设置字段的各种属性值。
(2)在第一行的“字段名称”列中,输入第一个字段的名称为“学号”;单击“数据类型”列的下拉按钮,选择“文本”类型;可以在“说明”列中输入“该字段应设为主键”。如图7-17所示。
(3)使用类似的方法,按照表所列字段名称和数据类型,设置其他字段。其他字段可以不再设置“说明”的内容。
(4)全部字段设置完成后,单击选定“学号”字段,然后单击“表格工具/设计”选项卡下“工具”组中的“主键”按钮,将该字段设置为主键。
(5)单击“保存”按钮,结果如图(a)所示。
可以用同样方法创建“课程表”“教师表”成绩表”等其他表的结构,如图(b)、(c )、(d)所示。
5、创建表间关系 建立表间关系是关系型数据库中的数据取得联系的根本途径和方法。建立表间关系具有两方面意义:一是将数据库中的多个表连成一体,可通过查询同时获取跨越多表的信息;二是可通过设置参照完整性建立多个表之间的约束关系,确保数据的完整统一。
(1)表间关系的概念
在设计Access数据库时,通常将“一对一”关系合并为一个表;“多对多”关系需拆分为两个或多个“一对多”关系。因此,实际建立的表间关系都是“一对多”关系,“一”方的表称为主表,“多”方的表称为子表或相关表。
主键和外键在两个表之间起着“桥梁”作用,用来建立表与表之间的关系,通常是两个表中的同名字段或数据语义相同的字段。在上图(a)(b)?(d)所示的“教务管理”数据库中,各表的主键和外键字段如下:
学生(学号,姓名,性别,出生日期,团员否,个人网站,简历)
课程(课号,课名,类别,学分)
教师(编号,姓名.性别,入职时间,政治面貌,职称:学历)
成绩(选课次序,学号,课号,分数,班级,编号 )
其中,带下划线的字段为主键字段,带删除线的字段为外键字段。
(2)关系的创建
创建表间关系主要包括两大步骤:一是添加表,二是创建关系。创建关系之前,应先关闭已经打开的表。以创建“学生表”和“成绩表”的关系为例,方法如下:
①在“关系”窗格中,鼠标指向“学生表”的“学号”字段(主键),按下鼠标左键,拖动到“成绩表”的“学号”字段(外键),上,释放鼠标左键,出现“编辑关系”对适框。
②选中“实施参照完整性”复选框,单击“创建”按钮,“学生表”和“成绩表”的“学号”字段之间出现一条连线,即两个表之间建立了“一对多”的关系。“一” 端显示“1”,“多”端显示“∞”如图所示。
③重复上面操作,建立“课程表”与“成绩表”、“教师表”与“成绩表”之间的关系。
④双击图中的关系连线,或右击关系连线,选择“编辑关系”命令,或功能区中的“编辑关系”按钮,可再次打开“编辑关系”对适框,修改表间关系。
⑤单击关系连线,按Del键或右击关系连线,执行“删除”命令,连线消失,即删除了表间关系。
点拨: 关系表中互相关联的字段是无法修改的,如果需要修改,必须先将关联去掉。修改时,原来互相关联的字段都要同时修改,修改之后,再重新设置关联。
补充: Access 2010中字段的数据类型包括文本、数字、货币、日期/时间、OLE对象、备注、自动编号、是/否、超链接、附件、计算、查阅向导12种,不包括逻辑和通用。
7.3.4 编辑表的内容
进入数据表视图,可以对字段进行插入、删除、排序、筛选等操作。
插入:单击切换到数据表视图,点击“单击以添加”右侧的箭头,选择要添加的字段的类型,Access会将新字段添加到数据表中的插入点处。若要添加数据,需首先在第一个空单元格中键入。若要重命名列(字段)标题,请双击对应的列标题,然后键入新名称,如图7-20所示。
文章图片
在数据表视图下可以进行定位选定和删除记录等操作。另外,数据的查找与替换操作与Word类似,这里不再赘述。
排序:Access提供了按一个字段或多个字段排序记录的功能。对于刚打开的表,如果表中定义了主键,则该表中的记录按主键的顺序排序;如果没有,则记录将按数据输入的原始顺序显示。排序的方法是:打开表,切换到数据表视图窗口,然后单击要用于排序的字段,再单击“开始”选项卡“排序和筛选”组中的“升序”和“降序”按钮。
点拨: 在保存结果时,排序结果将和表一起保存。如果要取消对记录的排序,可以单击“排序和筛选”组中的“取消排序”命令。
筛选:在使用数据库时,常常需要从大量数据中筛选出一部分进行操作和处理。Access共有4种筛选方法:按选定内容饰选、按窗体筛选、按筛选目标筛选以及高级筛选。
7.3.5 创建查询 ??????
查询是数据库最重要和最常见的应用,它作为Access数据库中的一个重要对象,可以让用户根据指定条件对数据库进行检索,筛选出符合条件的记录,构成一个新的数据集合,从而方便用户对数据库进行查看和分析。
在Access数据库中,查询可以分为多种类型,本小节将介绍选择查询和操作查询。
1、选择查询 选择查询是最常用的查询类型,它从一个或多个相关联的表中检索数据,并且用数据表视图显示结果。在Access中,可以将选择查询分为单表查询与连接查询(也称多表查询)。
(1)创建单表查询
所谓单表查询,就是在一个数据表中完成查询操作,不需要引用其他表中的数据。在数据库窗口中打开“创建”选项卡,在该选项卡中可以实现单表查询操作。
创建单表查询的一般步骤为:在“创建”选项卡的“查询”组中单击“查询设计”打开查询视图,在“显示表”对话框中选择要进行查询的数据表,在出现的查询窗口中设置查询,保存查询,如图7-21所示。
文章图片
(2)创建连接查询
在实际操作过程中,查询的数据大都来自多个表,因此,要建立基于多个表的查询。查询要使用两个或两个以上的表时,称为连接查询。在Access中,使用查询向导可以快速创建连接查询,也可以利用设计视图进行查询。
2、操作查询 操作查询是Access查询的重要组成部分,使用操作查询可以对数据库中的数据进行简单的检索、显示和统计,而且可以根据需要对数据库进行修改。
操作查询用于对数据库进行复杂的数据管理操作,它能够通过一次操作完成多个记录的修改。操作查询包括更新查询、生成表查询、追加查询、删除查询等几种类型。
(1)更新查询
更新查询就是对一个或多个数据表中的一组记录进行全局的更改。这样,用户就可以通过添加某些特定的条件来批量更新数据库中的记录。
创建更新查询的一般步骤为:
单击“创建”选项卡的“查询”组中的“查询设计”打开查询视图→在“显示表”对话框中添加表后单击“关闭”→单击“查询类型”组中的“更新”按钮→设置更新方式(如图7-22所示),单击“查询工具/设计”选项卡的“结果”组中的“运行”按钮运行查询。
文章图片
点拔:
①在“更新到”文本框中输入表中字段时,表达方式为:[表名]![字段名]。
②图7-22 设置的更新查询为“chengji表中,英语成绩高于和等于60分的,再加5分”
(2)生成表查询
生成表查询可以根据一个或多个表/查询中的数据来新建数据表。这种由表产生查询,再由查询来生成表的方法,使得数据的组织更灵活,使用更方便。
创建生成表查询的一般步骤为:
在“创建”选项卡的“查询”组中单击“查询设计”打开查询视图→在“显示表”对话框中选择要进行查询的数据表→在“查询工具/设计”选项卡中选择“查询类型”组中的“生成表”→输入或选择新表名称(如图7-23所示)→进行生成表查询设置(如图7-24所示)→单击“结果”组中的“运行”按钮执行查询。
(3)追加查询
追加查询用于将一个或多个表中的一组记录添加到另一个表或多个表的结尾,但是,当两个表之间的字段定义不相同时,追加查询只添加相互匹配的字段内容,不匹配的字段将被忽略。追加查询以查询设计视图中添加的表为数据源,以在“追加”对话框中选定的表为目标表。
追加查询可以为指定的表追加记录,目标表必须是一个已经存在的表源数据表与目标数据表可以存在于同一个数据库中,也可以分属于不同的数据库。
创建追加查询的一般步骤为:
单击“创建”选项卡的“查询”组中的“查询设计”打开查询视图→在“显示表”对话框中选择要进行查询的数据表→单击“查询工具/设计”选项卡的“查询类型”组中的“追加”按钮→选择目标表(如图7-25所示)→进行追加查询设置(如图7-26所示)→单击“结果”组中的“运行”按钮执行查询。
(4)删除查询
删除查询是将符合条件的记录删除。删除查询可以删除一个表中的记录,也可以利用表间关系删除多个表中相互关联的记录。
创建删除查询的般一步骤为:
单击“创建”选项卡的“查询”组中的“查询设计”打开查询视图→在“显示表”对话框中将表添加到“对象”窗格中→单击“查询工具/设计”选项卡的“查询类型”组中的“删除”按钮→将查询表中“*”号和对应的字段拖到设计网格中→在对应字段的“条件”行输入条件(如图7-27所示)→单击“结果”组中的“运行”按钮执行查询。
文章图片
点拨: 表中的记录删除后不能恢复。
7.3.6 SQL查询
结构化查询语言(SQL)设计精妙、语法简单,现已成为关系数据库管理系统的标准语言,主要功能包括数据定义、数据操纵,数据查询和数据控制。SQL 查询是用SQL语句创建的查询,实际上Access的所有查询都是SQL查询,在查询设计视图中创建查询时,Access自动生成等效的SQL语句。
在查询设计视图中,可以创建多数查询,而特定查询只能使用SQL语句才能实现,如数据定义查询、联合查询、嵌套查询和传递查询。在数据库窗口中,打开SQL视图的方法如下:
打开查询设计视图,关闭“显示表”对话框。单击“视图”按钮中的下拉箭头,选择“SQL视图”命令,切换到SQL视图,输人SQL语句。
1、数据定义 数据定义功能用来定义数据库中的表,包括创建表、修改表、删除表、创建索引、删除索引、设置主键、设置字段的有效性规则等。Access 支持下表中的数据定义语句。
表——数据定义语句
语句名称 | 语句功能 |
---|---|
CREATE TABLE | 创建表的结构和表间关系,设置主键和字段有效性规则。 |
ALTER TABLE | 修改表结构,如添加字段,修改字段类型、字段大小和字段有效性规则。 |
DROP TABLE | 删除数据库中的表。 |
CREATE TABLE | 创建字段的索引, |
DROP INDEX | 删除字段的索引, |
打开SQL视图,输入SQL语句,英文字母大写或小写均可。
CREATE TABLE职工(编号,姓名,性别,出生日期,备注)
SQL语句输入完毕,单击“运行”按钮,创建“职工”表。
[例]使用SQL语句删除数据库中的职工表。
DROP TABLE 职工
单击“运行”按钮,删除“职工”表;再次单击“运行”按钮,显示“职工”表不存在,说明已经删除。
2、数据操纵 数据操纵功能用来操作表中的记录,包括在表的尾部插入记录、修改记录中的字段内容和删除符合条件的记录。Access支持下表中的数据操纵语句。
语句名称 | 语句功能 |
---|---|
INSERT | 在指定表的尾部插入一个新记录,相当于追加查询。 |
DELETE | 删除指定表中符合条件的记录,相当于删除查询。 |
UPDATE | 更新指定表中符合条件记录的字段内容,相当于更新查询 |
在SQL中,INSERT语句用于数据插入,相当于操作查询中的追加查询,其语法结构如下:
格式1:
INSERT INTO表名 [(字段1,字段2…,字段n)]VALUES(常量1,常量2…,常量n)
格式2:
INSERT INTO表名(字段1,字段2…,字段n)VALUES 子查询
第一种格式是把一条记录插入指定的表中,第二种格式是把某个查询的结果插入表中。自动编号字段的数据不能插入,否则出错。除了自动编号的字段之外,如果表中某个字段在INSERT中没有出现,则这些字段上的值取空值(NULL)。如果新记录在每一个字段上都有值,则字段 名连同两边的括号可以省略。
[例]向“课程表”中插入记录(K801 ,算法分析,必修,4)。
INSERT INTO 课程表(课号,课名,类别,学分)VALUES(“K801”, “算法分析”,“必修”,4)
点拔: 在表达式中,字符型数据用“'”或““”括起来,日期型数据用“#”括起来,如"abc”、#1/1/2021#。
(2)DELETE语句
在SQL中,DELETE语句用于数据删除,相当于操作查询中的删除查询,其语法格式为:
DELETE FROM 表名 [WHERE条件]
点拨: DELETE语句从表中删除满足条件的记录。如果WHERE子句省略,则删除表中所有的记录,但是表本身没有被删除,仅仅删除了表中的数据,表结构仍保留。
[例]使用SQL语句实现从“优秀”表中删除学号第5、6、7位是“021”的学员的所有记录。
DELETE FROM 优秀 WHERE 学号 like "????021*"
输入SQL语句后,单击“视图”按钮,预览符合删除条件的记录;再单击“视图”按钮切换到查询设计视图。单击“运行”按钮删除符号条件的记录。
点拨: Like通常与?、* 、# 等通配符结合使用,主要用于模糊查询。其中“?”表示任何单一字符:“*”表示零个、一个或多个字符; “#”表示任何一个数字(0~9)。
(3)UPDATE语句
在SQL中UPDATE语句用于数据修改,相当于操作查询中的更新查询,其语法格式为:
UPDATE 表名 SET 字段1=表达式1,…,字段n=表达式n [WHERE条件]
UPDATE语句修改指定表中满足条件的记录,把这些记录按表达式的值修改相应字段的值。如果WHERE子句省略,则更新表中所有的记录。
[例]将“成绩表”中所有分数低于70分的学生加2分。
UPDATE 成绩表 SET 分数=分数+2 WHERE 分数<70
需要注意的是,UPDATE语句一次只能对一个表进行修改,这就有可能破坏数据库中数据的一致性,例如,如果修改了学生表中学生的学号,而成绩表没有相应的调整,则两个表之间就存在数据一致性的问题。解决这个问题的一个方法是执行两个UPDATE语句,分别对两个表进行修改。
3、数据查询 SQL语言的核心功能是数据查询,SELECT语句用来实现各种查询功能,如选择查询、生成表查询等。执行SELECT语句,在数据表视图中输出查询结果。SELECT语句包含多个子句,功能非常强大,基本结构如下:
SELECT 字段名称 FROM <表名或查询>??? ?说明:基本部分,选择字段7
[WHERE <条件>]?????????? ????说明:选择满足条件的记录
[GROUP BY <字段名称1> [HAVING <条件>]]??说明:分组
[ORDER BY <字段名称2> [ASC | DESC]]????说明:排序
SELECT语句一般由上述4部分组成。第1部分是最基本的、不可缺少的,称为基本部分;其余部分是可以省略的,称为子句。
整个语句的功能是,根据WHERE子句中的表达式,从FROM子句指定的表或查询中找出满足条件的记录,再按SELECT子句中的目标列显示数据。如果有GROUP BY子句,则按字段名称1的值进行分组,值相等的记录分在一组,每一组产生一条记录。如果GROUP BY子句带有HAVING短语,则只有满足过滤表达式的组才予以输出。如果有ORDER BY子句,则查询结果按字段名称2的值进行排序。
点拨: 在SQL的SELECT语句中,“SELECT字段名称”子句对应关系运算中的“投影”;“WHERE <条件>”子句对应关系运算中的“选择”。
补充: where是进行分组前的筛选, having是进行分组后的筛选。
(1)条件查询
条件查询用来检索符合条件的记录,关键是如何构造满足要求的条件,可以使用前面介绍的运算符、函数、字段名称、通配符构造查询条件。条件查询的语句结构如下:
SELECT <字段名称> FROM <表名或查询> WHERE <条件>
其中,FROM子句指定数据来源,WHERE子句指定查询条件。省略查询条件,则选择所有记录。
[例]查询“学生表”中姓“王”的学生记录,查询结果中显示所有字段。
SELECT * FROM 学生表 WHERE 姓名 like "王*"
其中SELECT子句后的星号“*”代表所有字段。
[例]查询“学生表”中1998年出生的女生,输出字段包括“学号”“姓名”“性别”和“出生日期”。
SELECT学号,姓名,性别,出生日期 FROM 学生表 WHERE 性别="女" AND YEAR(出生日期)=1998
(2)分组查询
分组查询就是按照分组依据,将记录划分为多个组,一个分组中的记录合并为一个记录。分组后还可以进行各种计算,如求每个分组中的记录个数、平均值、最大值和最小值等。分组查询的语句结构如下:
SELECT <字段名称> FROM <表名或查询> WHERE <条件> GROUP BY <字段名称> HAVING <条件>
其中,GROUP BY子句中的<字段名称>用来指定分组依据,可按一个或多个字段分组。HAVING子句中的<条件>是分组限定条件,根据分组中的记录是否满足<条件>确定是否输出分组。HAVING子句必须在GROUP BY子句后面出现,不能单独使用。
WHERE子句来选择记录,GROUP BY子句将所选择的记录分组,HAVING子句确定需要输出的分组。
[例]在“学生表”中查询男女生的人数。
首先按性别分组, 然后输出分组中的人数。
SELECT 性别,COUNT(*) AS 人数 FROM 学生表 GROUP BY 性别
[例]查询“成绩表”中至少参加两门课程考试且成绩大于等于75分的学号。
SELECT 学号 FROM 成绩表 WHERE 分数>= 75 GROUP BY 学号 HAVING COUNT(*)>=2
(3)排序查询
ORDER BY子句用于指定查询结果的排列顺序,ASC表示升序,DESC表示降序。ORDER BY可以指定多个列作为排序的关键字。
[例]查询“学生表”中所有团员的学号和姓名,并按出生日期升序排列。
SELECT 学号,姓名 FROM 学生表 WHERE团员=TRUE ORDER BY 出生日期 ASC
补充: 默认是进行升序排序,升序排序可以省略ASC。
7.3.7 关系数据库设计方法
一般来说关系数据库的设计过程大致可分为需求分析、概念设计、逻辑设计、物理设计和验证设计五个阶段。
1、需求分析 数据库设计是面向应用的设计,用户是最终的使用者,为设计出满足要求的数据库,必须首先进行用户需求调查、分析与描述。需求分析是数据库设计的第一步,是设计的基石。需求分析是否能全面、准确地表达用户要求,将直接影响到后续各阶段的设计,影响到整个数据库设计的可用性和合理性。
2、概念设计 概念设计是对数据的抽象和分析,它以对信息要求和处理要求的初步分析为基础,以数据流图和数据字典提供的信息作为输入,运用信息模型工具,发挥开发设计人员的综合抽象能力建立概念模型。概念模型独立于数据逻辑结构,也独立于DBMS和计算机系统,能充分反映现实世界。
(1)E-R模型
E-R方法是实体-联系方法的简称,是描述现实世界概念结构模型的有效方法。用E-R方法建立的概念结构模型称为E-R模型,或称为E-R图,如图所示。
文章图片
(2)数据抽象
E-R模型是对现实世界的一种抽象。所谓抽象是对实际的人、物、事和概念进行人为处理,抽取人们关心的本质特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。抽象一般有三种,分别是分类、聚集和概括。
3、逻辑设计 逻辑设计是在数据库概念设计的基础上,将概念结构设计阶段得到的独立于DBMS和计算机系统的概念模型转换成特定DBMS所支持的数据模型。概念模型可转换为关系、网状、层次三种模型中的任一种。新设计的数据库系统普遍采用支持关系数据模型的DBMS。
4、物理设计 物理设计是以逻辑设计结果作为输入,结合DBMS特征与存储设备特性设计出适合应用环境的物理结构。数据库物理结构是数据库在物理设备上的存储结构和存取方法。数据库物理设计的目的是提高系统处理效率,充分利用计算机的存储空间。一般来讲,数据库物理设计分为两步,即数据库物理设计和性能评价。
5、验证设计 验证设计是在上述设计的基础上收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般来说,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改,因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方便性。
7.4 非关系型数据库 7.4.1 非关系型数据库的概念
由于大数据问题的出现,催生了新的非关系型数据库技术,并使其得到了迅猛发展。该技术的出现弥补了传统关系型数据库的技术缺陷——尤其在速度、存储量及多样化结构数据的处理问题上。
非关系型数据库(NoSQL)是指主体符合非关系型、分布式、开放源码和具有横向扩展能力的下一代数据库。英文名称NoSQL本身的意思是“Not Only SQL”,意即不仅仅是SQL。
传统关系型数据库在使用之前,必须先进行表结构定义,并对字段属性进行各种约束,而NoSQL在这方面的要求很宽松,很多NoSQL数据库产品不需要预先定义数据存储结构。
7.4.2 NoSQL 数据存储模式
NoSQL数据存储模式主要涉及数据库建立的存放数据的逻辑结构,基本的数据读、写、改、删等操作,数据处理对象,及在分布式状态下的一些处理方式。
从数据存储结构原理的角度,一般将NoSQL数据库分为键值存储、文档存储、列族存储、图存储、其他存储5种模式。本节重点介绍键值(Key-Value)、文档(Document)、列族(Column Families)、图(Graph) 4种NoSQL数据库存储模式,如图所示。
1、键值数据存储模式 键值数据库是一类以轻量级结合内存处理为主的NoSQL数据库。轻量级指的是它的存储数据结构特别简单,数据库系统本身规模也比较小;以内存为主的运行处理,设计目的是为了更快地实现对大数据的处理。键值数据库的设计原则是以提高数据处理速度为第一目标。常见的键值数据库有Redis、Memcached等。
(1)键值数据库存储结构基本要素
①键。键起唯一索引值的作用,确保一个键值结构里数据记录的唯一性,同时也起信息记录的作用。
②值。值是对应键相关的数据,通过键来获取,可以存放任何类型的数据。
③键值对。键和值的组合就形成了键值对,它们之间的关系是一对一映射的关系。
④命名空间。命名空间是由键值对所构成的集合。通常由一类键值对数据构成一个集合。
(2)键值存储特点
①简单。数据存储结构只有“键”和“值”,并成对出现,“值”理论上可以存储任意数据,并支持大数据存储。凡是具有类似关系的数据应用,均可以考虑键值数据库,如热门网页排行记录。
②快速。由于键值数据库在设计之初就要避开机械硬盘低效的读写速度瓶颈,那么以内存为主的设计思路,使键值数据库拥有了快速处理数据的优势。更大容量、更快速内存的出现使键值数据库具备了在互联网上应对海量访间的高速处理能力。
③高效计算。键值数据库具有数据结构简单化,数据集之间关系的简单化(没有复杂的传统关系型那样的多表关联关系)以及基于内存的数据集计算等特点,使得在大量用户访问情况下,键值数据库仍可以高速计算并响应。如电子商务网站需要根据用户历史访问记录,实时提供用户喜欢商品的推荐信息,提高用户的购买量,而这推荐过程不能出现明显的延迟现象,键值数据库擅长解决类似问题。
④分布式处理。分布式处理能力使键值数据库具备了处理大数据的能力。它们可以把PB级的大数据放到几百台PC服务器的内存里一起计算,最后把计算结果汇总。
点拨: 键值数据库的缺点是:①多值查找的功能很弱; ②缺少约束,意味着更容易出错; ③不容易建立复杂关系。
(3)应用实例
键值数据库的应用主要包括:一指通医疗网、京东、阿里巴巴、腾讯(游戏)、新浪网(微博)、美团网、赶集网等。
2、文档数据存储模式 文档数据库主要用于管理文档,尤其适合于处理各种非结构化与半结构化的文档数据、建立工作流应用、建立各类基于Web的应用。常见的文档数据库有MongoDB、Couchbase等。
文档数据库与传统关系数据库一样,主流的也是建立在对磁盘读写的基础上,对数据进行各种操作。文档数据库的设计思路是针对传统数据库低效的操作性能,首先考虑的是读写性能,为此需要去掉各种传统数据库规则的约束。
(1)文档数据库存储结构基本要素
①键值对。文档数据库数据存储结构的基本形式为键值对形式,具体由数据和格式组成。数据分键和值两部分,格式根据数据种类的不同有所区别。
按照数据和格式的复杂程度,可以把键值对分为基本键值对、带结构键值对、多形结构键值对。
②文档。文档是由键值对所构成的有序集。
③集合。集合是由若干条文档构成的对象。一个集合对应的文档应该具有相关性。如所有的图书相关信息放在一个集合里,方便电子商务平台用户选择。
④数据库。文档数据库中包含若干个集合在进行数据操作之前,必须指定数据库名。
(2)文档存储特点
①简单。没有数据存储结构定义要求,不考虑数据写入各种检查约束,也不考虑集合与集合对象之间的关系检查约束,相对传统关系型数据库来说,数据存储结构简单。
②相对高效。相对于传统关系型数据库而言,文档数据库每秒可以写入几万条到几十万条记录,每秒可以写出几百万条记录。
③文档格式处理。文档数据库擅长基于JSON、XML、BSON类似的格式文档数据处理。在选择该类数据库产品时,必须遵循这样的格式约定。
④查询功能强大。相对于键值数据库而言,文档数据库具有强大的查询支持功能,更加接近于SQL数据库。
⑤分布式处理。文档数据库具有分布式多服务器处理功能,那么它们就具有了很强的可伸缩性,给大数据处理带来了很多方便。它们可以轻松解决PB级甚至是EB级的数据存储应用需要。
点拨: 文档数据库的缺点是:①数据出现冗余; ②缺少约束; ③与键值数据库的响应速度比较,文档数据库相对低效。
(3)应用实例
文档数据库的应用主要包括:阿里云提供基于云的MongoDB服务、华为的数据中心、中国银行的中银易商平台等。
3、列族数据存储模式 列族数据库是为处理大数据而生的。列族数据库为了解决大数据存储问题引入了分布式处理技术,为了提高数据操作效率,针对传统数据库的弱点,采用了去规则、去约束化的思路。常见的列族数据库有Cassandra、Hbase等。
(1)列族数据库存储结构基本要素
①命名空间。命名空间是列族数据库的顶级数据库结构,相当于传统关系型数据库的表名。
②行键。行键用来唯一确定列族数据库中不同行数据区别的标识符。它的作用与传统关系型数据库表的行主键作用类似。但是列族数据库的行是虚的,只存在逻辑关系,因为它们的值以列为单位进行存储。另外,行键还起分区和排序作用。当列族的列存放于不同服务器的分区里时,则行键起分区地址指向的标识作用。列族数据库存放数据时,自动按照行键进行排序,如按照ASCII码进行排序。
③列族。由若千个列所构成的一个集合称为列族。对于关系紧密的列可以放到一个列族里,目的是提高查询速度。
④列。列是列族数据库里用来存放单个数值的数据结构。列的每个值(Value)都附带时间戳,通过时间戳来区分值的不同版本。
(2)列族存储特点
①擅长大数据处理,特別是PB、EB级别的大数据存储和从几千台到几万台级别的服务器分布式存储管理,体现了更好的可扩展性和高可用性。
②对于命名空间、行键、列族需要预先定义,列无须预先定义; 随时可以增加。
③在大数据应用环境下,管理复杂,必须借助各种高效的管理工具来监控系统的正常运行。
④数据存储模式相对键值数据库、文档数据库要复杂。
⑤查询功能相对更加丰富。
⑥高密集写入处理能力。不少列族数据库一般都能达到每秒百万次的并发插入处理能力。
(3)应用实例
Netflix(网飞)于2013年完成了大数据从传统关系型数据库到NoSQL数据库Cassandra的转移,以提供更好的在线数据处理服务。
4、图数据存储模式 “图”是指数学里的“图论”。所谓的图论里的图,就是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。常见的图数据库有Neo4j、OrientDB等。
图存储是一个包含若于个节点、节点之间存在边关系,节点和边可以附加相关属性的结合系统,简称图。
(1)图数据库存储结构基本要素
①节点。
②边。
③属性。
④图。
(2)图存储特点
①处理各种具有图结构的数据。这里的图结构包括无向图、有向图、流动网络图、二分图、多重图加权图、树等。
②应用领域相对明确。
③以单台服务器运行的图数据库为主。
④图偏重于查找、统计、分析应用。
(3)应用实例
eBay(易贝)网是一家销售玩具、领带、拖鞋、手机等商品的电子商务平台,从2014年开始,易贝网把相关的业务数据管理从MySQL数据库迁移到了图数据库Neo4j。迁移完成后,快递查询功能速度快了几千倍,而执行查询请求的代码却缩减为原来的10%~1%,达到了提高速度、减少维护工作量的目的。
同步特训知识点 1、简述数据库系统阶段有哪些特点?
答:
(1)数据结构化;
(2)数据共享性好;
(3)数据独立性好;
(4)数据存储粒度小;
(5)为用户提供了友好的接口;
(6)数据冗余量小。
2、试简述数据、数据库、数据库管理系统、数据库系统的概念。
答:
(1)数据是指存储在某一种媒体上能够被识别的符号。
(2)数据库是长期存放在计算机内的、有组织的、可表现为多种形式的可共享的数据集合。
(3)数据库管理系统是对数据库进行管理和操作的系统软件,能有效地组织和存储数据,获取和管理数据,接受和完成用户提出的访问数据的各种请求。
(4)数据库系统是指拥有数据库技术支持的计算机系统,可以实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享服务。
#pic_center
推荐阅读
- 计算机组织|不同的指令周期详细图解
- 精简指令集计算机
- 从新计算机中删除预装软件的 5 个工具
- #yyds干货盘点#一什么是计算机
- ers 会取代计算机视觉中的
- 1计算机的发展历史
- it|算法工程师老潘总结的一些经验
- 2021年我推荐给你这些高质量计算机书籍
- 计算机|.NET Core中JWT+Auth2.0实现SSO,附完整源码(.NET6)