目录
一、数据库技术基础
1、数据库的基本概念
-
数据
数据是指存储在某一种媒体上能够识别的物理符号。数据的概念包括两个方面:其一是描述事物特性的数据内容;其二是存储在某一种媒体上的数据形式。 -
数据处理
数据处理是指对各种形式的数据进行收集、存储、加工和传播的一系列活动的总和。 -
数据库(DB)
数据库是长期存放在计算机内的、有组织的、可表现为多种形式的可共享的数据集合。 -
数据库管理系统(DBMS)
数据库管理系统(DBMS)是对数据库进行管理的系统软件,它的职能是有效地组织和存储数据,获取和管理数据,接受和完成用户提出的访问数据的各种请求。 -
数据库系统(DBS)
数据库系统是指拥有数据库技术支持的计算机系统,它可以实现有组织地动态地存储大量相关数据,提供数据处理和信息资源共享服务。
2、数据管理技术的发展
数据管理技术的发展大致经历了人工管理、文件系统和数据库系统三个阶段。
3、数据库系统组成
数据库系统由四部分组成,即硬件系统、系统软件、数据库应用系统和各类人员
4、数据模型
层次模型
网状模型
关系模型
关系模型把世界看作由实体( Entity )和联系( Relationship) 构成的。
所谓联系就是指实体之间的关系.即实体之间的对应关系。联系可以分为三种:
(1)一对一的联系。如:一个班级只有一个班长,一个班长只属于一个班级 ,班长和班级之间为一对一的联系。
(2)一对多的联系。如:相同性别的人有许多个,一个人只有一种性别,性别与人之间为一对多的联系。
(3)多对多的联系。如:一个人可以选多门课,门课可以被很多人选,人与课程之间是多对多的联系。
通过联系就可以用一个实体的信息来查找另一个实体的信息。关系模型把所有的数据都组织到表中。表是由行和列组成的,反映了现实世界中的事实和值。
满足下列条件的二维表,在关系模型中称为关系。(选择、判断)
(1)每一列中的分量是类型相同的数据;
(2)列的顺序可以是任意的;
(3)行的顺序可以是任意的:
(4)表中的分量是不可再分割的最小数据项,即表中不允许有子表:
(5)表中的任意两行不能完全相同。
5、关系数据库的基本概念
(1)关系:一个关系就是一张二维表,每个关系有一个关系名。在计算机中,关系的数据存储在文件中,在Access中,一个关系就是数据库文件中的一个表对象。
(2)属性:二维表中垂直方向的列称为属性,有时也叫做一个字段。
(3)域:一个属性的取值范围叫做个域。
(4)元组:二维表中水平方向的行称为元组,有时也叫做一条记录。
(5)码:又称为关键字。二维表中的某个属性或属性组,若它的值唯一地标识了一个元组,则称该属性或属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码,也称为主键。
(6)分量:元组中的一个属性值叫做元组的一个分量。
(7)关系模式:是对关系的描述,它包括关系名、组成该关系的属性名、属性到域的映象。通常简记为:关系名(属性名1,属性名2, .,属性名n)。
6、关系运算
对关系数据库进行查询时,若要找到用户关心的数据,就需要对关系进行一定的关系运算。关系运算有两种:一种是传统的集合运算(并、差、交、广义笛卡儿积等);另一种是专门的关系运算(选择、投影、连接)。
(1)选择:选择运算即在关系中选择满足指定条件的元组。
(2)投影:投影运算是在关系中选择某些属性1列。
(3)连接:连接运算是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。
二、数据库管理系统
1、数据库管理系统
数据库管理系统(DataBase Management System)是一种操纵和管理数据库的系统软件,用于建立、使用和维护数据库,简称DBMS。
2、数据库管理系统的组成
按功能划分,数据库管理系统大致可分为以下六个部分:
-
模式翻译
提供数据定义语言(DDL)。 用它书写的数据库模式被翻译为内部表示。数据库的逻辑结构、完整性约束和物理存储结构保存在内部的数据字典中。数据库的各种数据操作(如查找、修改、插人和删除等)和数据库的维护管理都是以数据库模式为依据的。
-
应用程序的编译。
把包含着访问数据库语句的应用程序编译成DBMS支持下可运行的目标程序。
-
交互式查询。
提供易使用的交互式查询语言,如SQL。DBMS负责执行查询命令,并将查询结果显示在屏幕上。
-
数据的组织与存取。
提供数据在外围储存设备上的物理组织与存取方法。
-
事务运行管理。
提供事务运行管理及运行日志管理、事务运行的安全性监控和数据完整性检查、事务的并发控制及系统恢复等功能。
-
数据库的维护。
为数据库管理员提供软件支持,包括数据安全控制、完整性保障、数据库备份、数据库重组以及性能监控等维护工具。
3、数据库管理系统的功能
(1)数据定义功能。
DBMS提供相应数据定义语言来定义数据库结构,刻画数据库框架,并保存在数据字典中。
(2)数据存取功能。
DBMS提供数据操纵语言,实现对数据库数据的基本存取操作,如检索、插入、修改和删除。
(3)数据库运行管理功能。
DBMS提供数据控制功能,即在数据库运行期间,对数据的安全性、完整性和并发控制等进行有效的控制和管理,以确保数据正确有效。
(4)数据库的建立和维护功能。
包括数据库初始数据的装人,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
(5)数据通信接口
DBMS需要提供与其他软件系统进行通信的功能。例如,提供与其他DBMS或文件系统的接口,从而能够将数据转换为另一个DBMS或文件系统能够接受的格式,或者接收其他DBMS或文件系统的数据。
4、数据库管理系统的层次结构
根据处理对象的不同,数据库管理系统的层次结构由高级到低级依次为:应用层、语言翻译处理层、数据存取层、数据存储层、操作系统。
三、关系数据库的基本概念
Access 2010关系数据库是数据库对象的集合。数据库对象包括表、查询、窗体、报表、宏和模块。
在任何时刻,Access只能打开并运行一个数据库。但是,在每一个数据库中,可以拥有众多的表、查询、窗体、报表、宏和模块。这些数据库对象都存储在同一个以.accdb为扩展名的数据库文件中。
查询(Query)对象(Access2010中,查询的6类)
(1)选择查询。
选择查询是用于从表中检索数据或进行计算的查询。这也是最常用的查询类型。
(2)生成表查询。
生成表查询就是通过查询来搜索记录,然后将这些记录保存到一个新的表中。
(3)追加查询。
追加查询可以将一个数据表中的数据添加到另一个数据表中。
(4)更新查询。
更新查询就是利用查询的功能批量更改记录。
(5)交叉表查询。
交叉表查询主要用于显示某个字段数据的统计值,比如计数、平均值等。
(6)删除查询。
删除查询就是通过查询来搜索符合条件的记录,然后运行该查询将这些记录从原数据表中删除。
SQL中常用的语句
SELECT语句(查询)
UPDATE语句(字段内容更新)
INSERT语句(插入记录)
DELETE语句(删除记录)
四、非关系数据库的基本概念
非关系数据泛指非关系型的数据库,随着网络技术发展,关系型数据库并不适用于所有的数据,因此出现了不同的非关系型数据库(NoSQL),这些NoSQL非常适合于现代应用程序,如移动、web和游戏等应用程序。
NoSQL并没有彻底否定关系型数据库,而是传统数据库的有效补充,适合存储非结构化的数据,支持海量数据的存储和高并发性的高效读写。
但是NoSQL数据库没有强大的事务管理功能,也不能很好的保证数据的完整性。
4.1、NoSQL数据库的优缺点
-
优点
1)架构灵活
NoSQL数据库通常提供灵活的架构,以实现更快速、更多的迭代开发。灵活的数据模型使NoSQL数据库成为半结构化数据的理想之选。
2)高可扩展性
NoSQL数据库去掉关系数据库的关系型特性,数据之间关联小,非常容易扩展,在架构层面带来了可扩展的能力。
3)大数据量、高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量情况下,同样表现优秀,这利益于它的无关系性,数据库的结构简单。
4)高可用性(高可靠性、高稳足性)
分布式部署,一台机器宕机出问题,不会影响其他机器。
5)分布式计算
由于NoSQL存储的数据关联性并不大,就易于数据的分散在多个服务器上,t也就能存入更多的数据,这也体现了它良好的水平扩展能力
6)低成本
数据库部署简单,基本都是开源软件。 -
缺点
1)不提供SQL支持,学习和使用成本较高;
2) 无事务处理;
3)数据结构相对复杂,复杂查询方面稍欠
4) NoSQL的架构特性决定了其很难保证数据的完整性,适合一些特殊的应用。
NoSQL数据库主要有:键值数据库、列族数据库、文档数据库
图数据库。
1、键值(对)数据库
通过Key-Value键值对的方式来存储数据,其中Key和Value
可以是简单的对象,也可以是复杂的对象。
Key 作为唯一的标识符,用来对value进行查询,在存在大量写操作的情况下,键值数据库比关系数据库有明显的性能优势,键值数据库具有良好的伸缩性理论上讲可以实现数据量的无限扩容。
缺点是查询效率低,无法像关系型数据库一样使用条件过滤(比如WHERE),如果不知道去哪里找数据,就要遍历所有的键,会消耗大量的计算。
常用的键值数据库为Redis,主要应用场景是会话存储和购物车。
2、列族数据库
列式数据库(常见Hbase)起源于Google 的 BigTable,其数据模型可以看作是一个每行列数可变的数据表。
列族数据库以列为单位存储数据。列是列族数据库用于存放单个数值的数据结构,列的每个值都附带时间戳,可以区分值的不同版本。列族是由若干个列所构成的一个集合。
行键用来唯一确定列族数据库中不同行数据区别的标识符(相当于主键)。列族数据库能够在其他列不受影响的情况下,轻松添加一列,查找速度快、可扩展性强、容易进行分布式扩展、复杂性低。非常适合执行分析操作,如进行汇总或计数、大数据分析。
3、文档数据厍
文档数据库(最常见MongoDB)是键值数据库的一种衍生品。存储结构基本形式为键值对,通过键来定位一个文档,在文档数据库中,文档是数据库的最小单位。
文档数据库主要用于存储和检索文档数据,非常适合那些把输入数据表示成文档的应用。比如日志系统,博客系统等。
4、图数据库
图形数据库(常见Neo4j)使用图作为数据模型来存储数据。以图论为基础,图来表示一个对象集合,包括顶点及连接顶点的边,可以高效地存储不同顶点之间的关系。
图形数据库适用于高度相互关联的数据,可以高效地处理实体间的关系,尤其适合于社交网络、依赖分析、模式识别、推荐系统、路径寻找、科学论文引用,以及资本资产集群等场景。