1、1第第1章章 数据库系统数据库系统概论概论1.1 数据库系统数据库系统1.2 数据模型数据模型1.3 关系关系数据库数据库1.4 数据库设计数据库设计1.5 大大数据简介数据简介SQL Server 数据库库技术与应用 21.1 数据库系统数据库系统1.1.数据数据:数据(Data)是事物的符号表示,数据可以是数字、文字、图像、声音等。2.2.数据库数据库:数据库(Database)是以特定的组织结构、存放在计算机的存储介质中的相互关联的数据集合。3.3.数据库管理系统数据库管理系统:数据库管理系统(Data Base Management System,DBMS)是在操作系统支持下的系统软件
2、,它是数据库应用系统的核心组成部分,它的主要功能如下:数据定义功能:提供数据定义语言定义数据库和数据库对象。数据操纵功能:提供数据操纵语言对数据库中数据进行查询、插入、修改、删除等操作。数据控制功能:提供数据控制语言进行数据控制,即提供数据的安全性、完整性、并发控制等项功能 数据库建立维护功能:包括数据库初始数据的装入、转储、恢复和系统性能监视、分析等项功能。SQL Server 数据库库技术与应用 31.1 数据库系统数据库系统4.数据库系统数据库系统数据库系统(Database System,DBS)是数据库应用系统的简称,数据库系统由数据库、操作系统、数据库管理系统、应用程序、用户、数据
3、库管理员组成,如图1.1所示。SQL Server 数据库库技术与应用 41.1 数据库系统数据库系统数据库应用系统分为客户-服务器模式(C/S)和三层客户-服务器(B/S)模式。(1)C/S模式应用程序直接与用户打交道,数据库管理系统不直接与用户打交道,因此,应用程序称为前台,数据库管理系统称为后台。因为应用程序向数据库管理系统提出服务请求,所以称为客户程序(Client),而数据库管理系统向应用程序提供服务,所以称为服务器程序(Server),上述操作数据库的模式称为客户-服务器模式(C/S),如图1.2所示。SQL Server 数据库库技术与应用 51.1 数据库系统数据库系统(2)B
4、/S模式基于Web的数据库应用采用三层客户-服务器模式(B/S),第一层为浏览器,第二层为Web服务器,第三层为数据库服务器,如图1.3所示。SQL Server 数据库库技术与应用 61.2 数据模型数据模型1.层次模型层次模型用树状层次结构组织数据,树状结构每一个结点表示一个记录类型,记录类型之间的联系是一对多的联系。层次模型有且仅有一个根结点,位于树状结构顶部,其它结点有且仅有一个父结点。某大学按层次模型组织数据的示例如图1.4所示。SQL Server 数据库库技术与应用 71.2 数据模型数据模型2.网状模型网状模型采用网状结构组织数据,网状结构每一个结点表示一个记录类型,记录类型之
5、间可以有多种联系,按网状模型组织数据的示例如图1.5所示。SQL Server 数据库库技术与应用 81.2 数据模型数据模型3.关系模型关系模型采用关系的形式组织数据,一个关系就是一张二维表,二维表由行和列组成,按关系模型组织数据的示例如图1.6所示。SQL Server 数据库库技术与应用 91.2 数据模型数据模型SQL Server 数据库库技术与应用 101.3 关系数据库关系数据库关系数据库采用关系模型组织数据,关系数据库是目前最流行的数据库,关系数据库管理系统(Relational Database Management System,RDBMS)是支持关系模型的数据库管理系统。
6、1.关系数据库基本概念关系数据库基本概念 关系:关系就是表(Table),在关系数据库中,一个关系存储为一个数据表。元组:表中一行(Row)为一个元组(Tuple),一个元组对应数据表中的一条记录(Record),元组的各个分量对应于关系的各个属性。属性:表中的列(Column)称为属性(Property),对应数据表中的字段(Field)。SQL Server 数据库库技术与应用 111.3 关系数据库关系数据库 域:属性的取值范围。关系模式:对关系的描述称为关系模式,格式如下:关系名(属性名1,属性名2,属性名n)候选码:属性或属性组,其值可唯一标识其对应元组。主关键字(主键):在候选码中
7、选择一个作为主键(Primary Key)外关键字(外键):在一个关系中的属性或属性组不是该关系的主键,但它是另一个关系的主键,称为外键(Foreign Key)。SQL Server 数据库库技术与应用 121.3 关系数据库关系数据库在图1.3中,学生的关系模式为 学生(学号,姓名,性别,出生日期,专业,总学分)主键为学号。成绩的关系模式为 成绩(学号,课程号,成绩)2.关系运算关系运算关系数据操作称为关系运算,投影、选择、连接是最重要的关系运算,关系数据库管理系统支持关系数据库和投影、选择、连接运算。SQL Server 数据库库技术与应用 131.3 关系数据库关系数据库(1)选择选择
8、(Selection)指选出满足给定条件的记录,它是从行的角度进行的单目运算,运算对象是一个表,运算结果形成一个新表。【例1.1】从学生表中选择专业为计算机且总学分在50分以上的行进行选择运算,选择所得的新表如表1.1所示。SQL Server 数据库库技术与应用 141.3 关系数据库关系数据库(2)投影投影(Projection)是选择表中满足条件的列,它是从列的角度进行的单目运算。【例1.2】从学生表中选取姓名、性别、专业进行投影运算,投影所得的新表如表1.2所示。SQL Server 数据库库技术与应用 151.3 关系数据库关系数据库(3)连接连接(Join)是将两个表中的行按照一定
9、的条件横向结合生成的新表。选择和投影都是单目运算,其操作对象只是一个表,而连接是双目运算,其操作对象是两个表。【例1.3】学生表与成绩表通过学号相等的连接条件进行连接运算,连接所得的新表如表1.3所示。SQL Server 数据库库技术与应用 161.4 数据库设计数据库设计1.4.1 需求分析需求分析需求分析阶段是整个数据库设计中最重要的一个步骤,它需要从各个方面对业务对象进行调查、收集、分析,以准确了解用户对数据和处理的需求,需求分析中的结构化分析方法采用逐层分解的方法分析系统,通过数据流图、数据字典描述系统。数据流图:数据流图用来描述系统的功能,表达了数据和处理的关系。数据字典:数据字典
10、是各类数据描述的集合,对数据流图中的数据流和加工等进一步定义,它包括数据项、数据结构、数据流、存储、处理过程等。SQL Server 数据库库技术与应用 171.4 数据库设计数据库设计1.4.2 概念结构设计概念结构设计为了把现实世界的具体事物抽象、组织为某一DBMS支持的数据模型,首先将现实世界的具体事物抽象为信息世界某一种概念结构,这种结构不依赖于具体的计算机系统,然后,将概念结构转换为某个DBMS所支持的数据模型。需求分析得到的数据描述是无结构的,概念设计是在需求分析的基础上转换为有结构的、易于理解的精确表达,概念设计阶段的目标是形成整体数据库的概念结构,它独立于数据库逻辑结构和具体的
11、DBMS,描述概念结构的工具是E-R模型。E-R模型即实体-联系模型,在E-R模型中:SQL Server 数据库库技术与应用 181.4 数据库设计数据库设计 实体:客观存在并可相互区别的事物称为实体,实体用矩形框表示,框内为实体名。实体可以是具体的人、事、物或抽象的概念,例如,在学生成绩管理系统中,“学生”就是一个实体。属性:实体所具有的某一特性称为属性,属性采用椭圆框表示,框内为属性名,并用无向边与其相应实体连接。例如,在学生成绩管理系统中,学生的特性有学号、姓名、性别、出生日期、专业、总学分,它们就是学生实体的6个属性。实体型:用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例
12、如,学生(学号,姓名,性别,出生日期,专业,总学分)就是一个实体型。SQL Server 数据库库技术与应用 191.4 数据库设计数据库设计 实体集:同型实体的集合称为实体集,例如全体学生记录就是一个实体集。联系:实体之间的联系,可分为一对一的联系、一对多的联系、多对多的联系。实体间的联系采用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向边将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即11、1n或mn。如果联系也具有属性,则将属性与菱形也用无向边连上。1一对一的联系(一对一的联系(1:1)例如,一个班只有一个正班长,而一个正班长只属于一个班,班级与正班长两个
13、实体间具有一对一的联系。2一对多的联系(一对多的联系(1:n)例如,一个班可有若干学生,一个学生只能属于一个班,班级与学生两个实体间具有一对多的联系。SQL Server 数据库库技术与应用 201.4 数据库设计数据库设计3多对多的联系(多对多的联系(m:n)例如,一个学生可选多门课程,一门课程可被多个学生选修,学生与课程两个实体间具有多对多的联系。实体之间的三种联系如图1.7所示。SQL Server 数据库库技术与应用 211.4 数据库设计数据库设计【例1.4】设学生成绩系统有学生、课程、教师实体如下:学生:学号、姓名、性别、出生日期、专业、总学分课程:课程号、课程名、学分教师:教师编
14、号、姓名、性别、出生日期、职称、学院上述实体中存在如下联系:(1)一个学生可选修多门课程,一门课程可为多个学生选修。(2)一个教师可讲授多门课程,一门课程可为多个教师讲授。要求设计该系统的E-R图。SQL Server 数据库库技术与应用 221.4 数据库设计数据库设计 SQL Server 数据库库技术与应用 设计的学生成绩系统E-R图如图1.8所示。231.4 数据库设计数据库设计1.2.3 逻辑结构设计逻辑结构设计为了建立用户所要求的数据库,必须将概念结构转换为某个DBMS所支持的数据模型,由于当前主流的数据模型是关系模型,所以逻辑结构设计是将概念结构转换为关系模型,即将E-R模型转换
15、为一组关系模式。1(1:1)联系的)联系的E-R图到关系模式的转换图到关系模式的转换用学校和校长之间的联系为例,一个学校只有一个校长,一个校长只在一个学校任校长,属于一对一关系(下划线“_”表示该字段为主键)。(1)每个实体设计一张表。学校(学校编号,名称,地址)校长(校长编号,姓名,职称)SQL Server 数据库库技术与应用 241.4 数据库设计数据库设计(2)任选一表,其中的主键在另一个表中充当外键。选择校长表中的主键在学校表中充当外键,设计以下关系模式。学校(学校编号,名称,地址,校长编号)校长(校长编号,姓名,职称)2(1:n)联系的)联系的E-R图到关系模式的转换图到关系模式的
16、转换以班级和学生之间的联系为例。一个班级中有若干名学生,每个学生只在一个班级中学习,属于一对多关系。(1)每个实体设计一张表。班级(班级编号,教室号,人数)学生(学号,姓名,性别,出生日期,专业,总学分)SQL Server 数据库库技术与应用 251.4 数据库设计数据库设计(2)选“1”端表,其主键在“n”端表中充当外键。选择班级表中的主键在学生表中充当外键,设计以下关系模式。班级(班级编号,教室号,人数)学生(学号,姓名,性别,出生日期,专业,总学分,班级编号)3(m:n)联系的)联系的E-R图到关系模式的转换图到关系模式的转换以学生和课程之间的联系为例。一个学生可以选多门课程,一门课程
17、可以有多个学生选,属于多对多关系。(1)每个实体设计一张表。学生(学号,姓名,性别,出生日期,专业,总学分)课程(课程号,课程名,学分)SQL Server 数据库库技术与应用 261.4 数据库设计数据库设计(2)产生一个新表,“m”端和“n”端的主键在新表中充当外键。选择学生表中的主键和在课程表中的主键在新表选课表中充当外键,设计以下关系模式。学生(学号,姓名,性别,出生日期,专业,总学分)课程(课程号,课程名,学分)选课(学号,课程号,分数)SQL Server 数据库库技术与应用 271.4 数据库设计数据库设计【例1.5】设计学生成绩系统的逻辑结构设计学生成绩系统的逻辑结构,即设计学
18、生成绩系统的关系模式。选课联系与讲课联系都是多对多的联系,它们都转换为关系,选课关系的属性有分数,讲课关系的属性有上课地点。选课关系实际上是成绩关系,将选课关系改为成绩关系。学生成绩管理系统的关系模式设计如下:学生(学号,姓名,性别,出生日期,专业,总学分)课程(课程号,课程名,学分)成绩(学号,课程号,分数)教师(教师编号,姓名,性别,出生日期,职称,学院)讲课(教师编号,课程号,上课地点)SQL Server 数据库库技术与应用 281.4 数据库设计数据库设计为了程序设计方便,将汉字表示的关系模式改为英文表示的关系模式:student(stno,stname,stsex,stbirthd
19、ay,speciality,tc)对应学生关系模式 course(cno,cname,credit)对应课程关系模式 score(stno,cno,grade)对应成绩关系模式 teacher(tno,tname,tsex,tbirthday,title,school)对应教师关系模式 lecture(tno,cno,location)对应讲课关系模式 SQL Server 数据库库技术与应用 291.4 数据库设计数据库设计1.4.4 物理结构设计物理结构设计数据库在物理设备上的存储结构和存取方法称为数据库的物理结构,它依赖于给定的计算机系统,为逻辑数据模型选取一个最适合应用环境的物理结构,
20、就是物理结构设计。数据库的物理结构设计通常分为2步:确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;对物理结构进行评价,评价的重点是时间和空间效率。SQL Server 数据库库技术与应用 301.4 数据库设计数据库设计1.4.5 数据库实施数据库实施数据库实施包括以下工作:建立数据库 组织数据入库 编制与调试应用程序 数据库试运行 SQL Server 数据库库技术与应用 311.4 数据库设计数据库设计1.4.6 数据库运行和维护数据库运行和维护数据库投入正式运行后,经常性维护工作主要由DBA完成,内容如下:数据库的转储和恢复 数据库的安全性、完整性控制 数据库性能的监督、
21、分析和改进 数据库的重组织和重构造 SQL Server 数据库库技术与应用 MySQL数据库技术与应用321.5.1 大数据的基本概念大数据的基本概念1.大数据的概念大数据的概念目前在学术界和工业界对于大数据的定义,尚未形成标准化的表述,比较流行的提法如下。维基百科(Wikipedia)定义大数据为”数据集规模超过了目前常用的工具在可接受的时间范围内进行采集、管理及处理的水平“。美国国家标准技术研究院(NIST)定义大数据为”具有规模大(Volume)、多样化(Variety)、时效性(Velocity)、和多变性(Variability)特性,需要具备可扩展性的计算架构来进行有效存储、处理
22、和分析的大规模数据集”。概况上述情况和定义可以得出:大数据(Big Data)指海量数据或巨量数据,需要以新的计算模式为手段,获取、存储、管理、处理并提炼数据以帮助使用者决策。1.5 大大数据简介数据简介MySQL数据库技术与应用332.大数据的特点大数据的特点大数据具有4V+1C的特点:(1)巨量(Volume):存储和处理的数据量巨大,超过了传统的GB(1GB=1024MB)或TB(1TB=1024GB)规模,达到了PB(1PB=1024TB)甚至EB(1EB=1024PB)量级,PB级别已是常态。(2)多样(Variety):数据的来源及格式多样,数据格式除了传统的结构化数据外,还包括半
23、结构化或非结构化数据,比如用户上传的音频和视频内容。而随着人类活动的进一步拓宽,数据的来源更加多样。(3)快速(Velocity):数据增长速度快,而且越新的数据价值越大,这就要求对数据的处理速度也要快,以便能够从数据中及时地提取知识,发现价值。(4)价值(Value):需要对大量数据进行处理,挖掘其潜在的价值。(5)复杂(Complexity):对数据的处理和分析的难度增大。1.5 大大数据简介数据简介MySQL数据库技术与应用341.5.2 大数据的处理过程大数据的处理过程大数据的处理过程包括数据的采集和预处理,大数据分析,数据可视化。1.数据的采集和预处理数据的采集和预处理大数据的采集一
24、般采用多个数据库来接收终端数据,包括智能终端、移动APP应用端、网页端、传感器端等。数据预处理包括数据清理、数据集成、数据变换和数据归约等方法。(1)数据清理目标是达到数据格式标准化,清除异常数据和重复数据、纠正数据错误。(2)数据集成将多个数据源中的数据结合起来并统一存储,建立数据仓库。(3)数据变换通过平滑聚集、数据泛化、规范化等方式将数据转换成适用于数据挖掘的形式。1.5 大大数据简介数据简介MySQL数据库技术与应用35(4)数据归约寻找依赖于发现目标的数据的有用特征,缩减数据规模,最大限度地精简数据量。2.大数据分析大数据分析大数据分析包括统计分析、数据挖掘等方法。(1)统计分析统计
25、与分析使用分布式数据库或分布式计算集群,对存储于其内的海量数据进行分析和分类汇总。统计分析、绘图的语言和操作环境通常采用R语言,它是一个用于统计计算和统计制图的、免费和源代码开放的优秀软件,(2)数据挖掘数据挖掘与统计分析不同的是一般没有预先设定主题。数据挖掘通过对提供的数据进行分析,查找特定类型的模式和趋势,最终形成模型。数据挖掘常用方法有分类、聚类、关联分析、预测建模等。1.5 大大数据简介数据简介MySQL数据库技术与应用36 分类:根据重要数据类的特征向量值及其他约束条件,构造分类函数或分类模型,目的是根据数据集的特点把未知类别的样本映射到给定类别中。聚类:目的在于将数据集内具有相似特
26、征属性的数据聚集成一类,同一类中的数据特征要尽可能相似,不同类中的数据特征要有明显的区别。关联分析:搜索系统中的所有数据,找出所有能把一组事件或数据项与另一组事件或数据项联系起来的规则,以获得预先未知的和被隐藏的信息。预测建模:一种统计或数据挖掘的方法,包括可以在结构化与非结构化数据中使用以确定未来结果的算法和技术,可为预测、优化、预报和模拟等许多业务系统所使用。3.数据可视化数据可视化通过图形、图像等技术直观形象和清晰有效地表达数据,从而为发现数据隐含的规律提供技术手段。1.5 大大数据简介数据简介MySQL数据库技术与应用371.5.3 大数据的技术支撑大数据的技术支撑大数据的技术支撑有:
27、计算速度的提高、存储成本的下降和对人工智能的需求,如图1.9所示。图1.9 大数据技术支撑的三大因素1.5 大大数据简介数据简介MySQL数据库技术与应用38(1)计算速度的提高在大数据的发展过程中,计算速度是关键的因素。分布式系统基础架构Hadoop的高效性,基于内存的集群计算系统Spark的快速数据分析,HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了并行计算,从而大幅度地提高了计算效率。大数据需要强大的计算能力支撑,中国国家工信部电子科技情报所所做的大数据需求调查表明:实时分析能力差、海量数据处理效率低等是目前中国企业数据分析处理面临的主要难题。(2)存储成本的下降新
28、的云计算数据中心的出现,降低了企业的计算和存储成本,例如,建设企业网站,通过租用硬件设备的方式,不需要购买服务器,也不需要雇用技术人员维护服务器,并可长期保留历史数据,为大数据做好基础工作。1.5 大大数据简介数据简介MySQL数据库技术与应用39(3)对人工智能的需求大数据让机器具有智能,例如,Google的AlphaoGo战胜世界围棋冠军李世石,阿里云小Ai成功预测出”我是歌手”的总决赛歌王。1.5.4 NoSQL数据库数据库在大数据和云计算时代,很多信息系统需要对海量的非结构化数据进行存储和计算,NoSQL数据库应运而生。1.1.传统关系数据库存在的问题传统关系数据库存在的问题随着互联网
29、应用的发展,传统关系数据库在读写速度、支撑容量、扩展性能、管理和运营成本方面存在以下问题。(1)读写速度慢关系数据库由于其系统逻辑复杂,当数据量达到一定规模时,读写速度快速下滑,即使能勉强应付每秒上万次SQL查询,硬盘I/O也无法承担每秒上万次SQL写数据的要求。1.5 大大数据简介数据简介MySQL数据库技术与应用40(2)支撑容量有限Facebook和Twitter等社交网站,每月能产生上亿条用户动态,关系数据库在一个有数亿条记录的表中进行查询,效率极低,致使查询速度无法忍受。(3)扩展困难当一个应用系统的用户量和访问量不断增加时,关系数据库无法通过简单添加更多的硬件和服务节点来扩展性能和
30、负载能力,该应用系统不得不停机维护以完成扩展工作。(4)管理和运营成本高企业级数据库的License价格高,加上系统规模不断上升,系统管理维护成本无法满足上述要求。同时,关系数据库一些特性,例如,复杂的SQL查询、多表关联查询等,在云计算和大数据中却往往无用武之地,所以,传统关系数据库已难以独立满足云计算和大数据时代应用的需要。1.5 大大数据简介数据简介MySQL数据库技术与应用412.NoSQL的基本概念的基本概念NoSQL数据库泛指非关系型的数据库,NoSQL(Not Only SQL)指其在设计上和传统的关系数据库不同,常用的数据模型有Cassandra、Hbase、BigTable、
31、Redis、MongoDB、CouchDB、Neo4j等。NoSQL数据库具有以下特点:(1)读写速度快、数据容量大。具有对数据的高并发读写和海量数据的存储。(2)易于扩展。可以在系统运行的时候,动态增加或者删除节点,不需要停机维护。(3)一致性策略。遵循BASE(Basically Available,Soft state,Eventual consistency)原则,即Basically Available(基本可用),指允许数据出现短期不可用;Soft state(柔性状态),指状态可以有一段时间不同步;Eventual consistency(最终一致),指最终一致,而不是严格的一致
32、。1.5 大大数据简介数据简介MySQL数据库技术与应用42(4)灵活的数据模型。不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式,当插入数据时,并不需要预先定义它们的模式。(5)高可用性。NoSQL数据库将记录分散在多个节点上,对各个数据分区进行备份(通常是3份),应对节点的失败。3.NoSQL的种类的种类随着大数据和云计算的发展,出现了众多的NoSQL数据库,常用的NoSQL数据库根据其存储特点及存储内容可以分为以下4类:(1)键值(Key-Value)模型一个关键字(Key)对应一个值(Value),简单易用的数据模型,能够提供快的查询速度、海量数据存储和高
33、并发操作,适合通过主键对数据进行查询和修改工作,例如Redis模型。1.5 大大数据简介数据简介MySQL数据库技术与应用43(2)列存储模型按列对数据进行存储,可存储结构化和半结构化数据,对数据进行查询有利,适用于数据倉库类的应用,代表模型有Cassandra、Hbase、BigTable。(3)文档型模型该类模型也是一个关键字(Key)对应一个值(Value),但这个值是以Json或XML等格式的文档进行存储,常用的模型有MongoDB、CouchDB。(4)图(Graph)模型将数据以图形的方式进行存储,记为G(V,E),V为结点(node)的结合,E为边(edge)的结合,该模型支持图
34、结构的各种基本算法,用于直观地表达和展示数据之间的联系,如Neo4j模型。1.5 大大数据简介数据简介MySQL数据库技术与应用444.NewSQL的兴起的兴起现有NoSQL数据库产品大多是面向特定应用的,缺乏通用性,其应用具有一定的局限性,已有一些研究成果和改进的NoSQL数据存储系统,但它们都是针对不同应用需求而提出的相应解决方案,还没有形成系列化的研究成果,缺乏强有力的理论、技术、标准规范的支持,缺乏足够的安全措施。NoSQL数据库以其读写速度快、数据容量大、扩展性能好,在大数据和云计算时代取得迅速发展,但NoSQL不支持SQL,使应用程序开发困难,不支持应用所需ACID特性,新的NewSQL数据库将SQL和NoSQL的优势结合起来,代表的模型有VoltDB、Spanner等。1.5 大大数据简介数据简介