1.1.1认识数据库
-
数据与信息
数据:是对客观事物、事件的记录与描述,也是对客观事物的逻辑归纳。
信息=数据+语义
-
数据处理与数据管理
-
- 目的:从大量原始数据抽取和推导有价值信息,作为决策依据。
- 借助计算机科学保存和管理复杂数据,便于充分利用信息资源。
-
数据处理:将数据转换成信息,对数据进行采集、管理、加工、变换和传输等活动。
-
- 数据管理:数据处理的核心。包括数据的分类、组织、编码、存储、维护、检索。
1.1.2数据库、数据库管理系统、数据库系统
-
- 数据库:database DB,储存在计算机内,有组织的,可共享的相关数据的集合。
- 数据库管理系统:database management system DBMS。建立、运用、管理、维护数据库,并对数据库进行统一控制的系统软件。常见数据库管理系统:SQL、server、MySQL、access。
- 数据库系统:database system DBS。指在计算机系统中引入数据库后的系统。简称:数据库
其中数据库用户:开发、管理、使用数据库的人。
包括:系统分析员(确定应用系统的需求分析和规范说明,他和最终用户,数据库管理员确定系统的硬件配置,参与数据库的概要设计)、数据库设计员(确定数据库的数据和设计数据库的各级模式)、应用程序员(编写使用数据库的应用程序)、数据库管理员(负责数据库的总体信息控制)、最终用户(利用系统的接口或查询语言访问数据库)等。
1.1.3数据库技术发展
1.人工阶段(20世纪50中)
-
- 数据不保存
- 无专门的数据管理软件
- 数据不共享
- 数据不具独立性
- 文件系统阶段(50--60)新特点:数据以文件形式长期储存。
- 数据共享性差、冗余度较大
- 数据不一致性
- 数据独立性差
- 数据间联系弱
- 数据库系统阶段
用户与应用程序不需建立数据文件,从数据库存取其中的数据子集,该子集通过DBMS从数据库中经过映射形成的逻辑文件
-
- 数据结构化
- 数据共享性高,冗余度小
- 数据独立性高
- 数据的物理独立性。数据库物理结构发生变化,通过修改映射使逻辑结构不受影响,进而用户逻辑结构及应用程序不必改变。
- 数据的逻辑独立。。。。使用户应用程序不变。
- 有统一的数据管理与控制功能
1.2.1数据模型:对现实世界数据特征的抽象描述。现实世界数据-->抽象数据库,需经过现实世界、信息世界、计算机世界3三个阶段。数据库系统的核心和基础。
- 数据模型组成要素
- 数据结构。实体与实体间联系的表达和实现;
- 数据操作。允许对数据库中数据执行操作的集合,包含相应的操作规则;
- 数据完整约束。给出数据及联系应具有的制约和依赖规则;
- 数据模型的类型
- 概念模型(信息模型)。信息世界中的模型。第一级抽象,E-R图。不涉及信息在计算机中的表示和处理方法
- 逻辑模型。计算机世界中的模型,第二级抽象
- 物理模型。对数据最底层的模型。计算机原理。描述数据在磁盘/磁带上的存储方式和存取方法。
1.2.2概念模型
- 相关术语
- 实体entity。客观存在and相互区别的事物。
- 属性attribute。实体具有某一特性。
- 实体型 entity type。实体名+属性集合。学生(学号,姓名,年龄)
- 实体集 entity set。同型集体的集合。
- 码 key。键/关键字/关键码。在实体型中能唯一标识一个实体属性/属性集
- 域 domain。某属性取值范围。
- 联系 relationship。学号与姓名间。
- 概念模型中实体型之间的联系
- 1:1
- 1:N
- M:N
- 概念模型E-R方法
1.2.3逻辑模型
- 层次模型(用树形结构来表示)自上而下的关系
- 特点:一个模型只有一个节点/没有双亲结点/根节点
- 其他结点只有一个根节点
- 父子结点,1:N 关系
- 优点:数据结构简单清晰、提供良好完整性支持,结构间联系简单,查询效率高。
- 缺点:不能直接表示两个以上实体型间的复杂联系,/M:N关系
- 网状模型
- 允许一个以上结点多个根节点
- 允许一个节点没有根节点
- 允许两个结点间多种关系
- 缺点:数据结构复杂。
- 关系模型
- 数据结构是一张规范化的二维表。每个二维表都可称为关系。
- 有更严格的数学理论依据,结构简单易懂,高独立性,安全保密性。
- 面向对象模型
- 抽象、封装、继承、多态性
- 更完整地描述现实世界的数据结构,具有丰富的表达能力。
1.3数据系统的结构
- 数据库系统的三级模式结构
- 外部体系结构:从用户使用数据库的角度划分:单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器等
- 内部体系结构:从逻辑上分为:外模式、模式、内模式 三级抽象模式结构,并提供外模式/模式、模式/内模式二级映像。
- 对用户言:外模式==用户模式,模式==概念模式,内模式==物理模式
- 模式:也称概念模式/概念视图。是数据库中全体数据的逻辑结构和特征的描述,处于三级模式的中间层,不涉及数据的物理存储和硬件环境,与开发工具及程序设计语言无关。
- 一个数据库只有一个模式,模式是数据的逻辑表示,它描述了数据库中存储的具体数据及其之间存在的联系。
- 外模式:又称子模式/用户模式。是三成最外层,是数据用户能够看到并允许使用的那部分数据的逻辑结构和特征的描述,是数据库用户的数据视图。
- 外模式是模式的子集。一个数据可以有多个外模式。
- 内模式:又称存储模式/物理模式。
注意:一个数据库系统中,实际存在的只有物理级数据库(内模式),是访问数据的基础。
- 数据库系统的二级映像
- 外模式/模式映像
- 同一个模式可以有多个外模式
- 模式/内模式映像
- 只有一个,唯一。
- 定义了全局的逻辑结构和存储结构
- 外模式/模式映像
1.4数据库领域的新技术
1.4.1云数据库与分布式数据库
- 云数据库
- Cloud database。被优化/部署到一个虚拟计算机环境中的数据库
- 优点:
- 按照储存容量/带宽需求付费
- 云的可移植性。(只要一个有效字符串就可使用)
- 实现按需扩展。
- 高可用性。
- 分布式数据库
- Distributed database 指数据分别存储在计算机网络中的各台计算机上的数据库。
1.4.2大数据与主动数据库
- 大数据
- Big data。也称海量数据/巨量数据。
- 4V:数据规模volume/ 快速的数据流转velocity/ 多样的数据类型variety/价值密度低value。
- 关键技术
- 大数据采集
- 大数据预处理
- 大数据储存与管理
- 大数据分析与挖掘
- 大数据可视化展现
- 主动数据库
- 没有用户干预下,主动对系统内部/外部发生的事情做出反应的数据库
- 最大特点
- 让数据库系统具有主动服务的功能,并以一种统一的机制来实现各种主动服务需求。
1.4.3数据仓库与数据挖掘
- 数据仓库
- 面向主题的、集成的、相对稳定的、反映历史变化的数据集合,通常用于辅助决策支持。
- 数据挖掘==(知识发现)
- 直接挖掘
- 建立一个模型
- 间接挖掘
- 寻找某种关系
- 直接挖掘
第二章
2.1关系模型
2.1.1关系模型的基本概念
- 只包含单一的数据结构--关系
- 关系
- Relation,由行和列组成的二维表。
- 属性
- 二维表中的列称为属性attribute。每个 属性对应表中的一个字段,属性名==字段名;属性值==字段值。
- 二维表中列的个数称关系的元数。N列N元关系。
- 域domain
- 一组有相同数据类型的集合。(值域)包含值的个数称为域的基数。(m表示)D={男,女},M=2
- 元组
- Tuple。二维表中的行。即记录值。
- 分量。Component。一个元祖中每一个属性值。N元关系的每个元祖就有N个分量。
- 关系模式。二维表的结构。//二维表的框架(表头结构)
- 关系数据库。关系模式是型。关系式它的值。
- 笛卡尔积:关系是笛卡尔积的任意子集,有意义的子集,没有意义的不能称为关系。
- 关系的性质
- 关系可以看成二维表,但不是所有的二维表都有关系。
- 列是同质的,每一列的分量都必须来自同一个域且必须同一个类型的数据。
- 不同属性可以来自同一个域,但不同属性有不同的名字
- 列的顺序可以变化
- 元组的顺序可以变化,但不能出现相同元组
- 关系中的分量不可再分
- E-R图与关系模式的转换(是概念模型-->逻辑模型)
- 转换过程:实体与实体之间的转换。实体名==关系名,实体属性==关系属性。
- 三种转换:1:1联系。
- 1:N联系:(在多的一段加入“一”那那端实体)
- N:N联系:为两端的码加上联系自身的属性。
2.2关系模型的完整性约束
关系模型中三类完整性约束:
- 实体完整性
- 每个关系必须有主码。Null:“不存在”“不知道”
必须的完整约束性条件,称为关系的两个不变性
- 参照完整性
- 用户定义完整性
2.2.1 关系的码
1. 候选码。
某属性/集的值可以唯一确定一个元组。具有唯一性、最小性
- 主码
- 如果关系中有多个候选码,可选任意一个作为元组的标识。
- 每个关系必须选择一个主码,选定后不能随意改变。
- 主属性与非主属性
- 主属性:包含在任一候选码中的属性。
- 全码:关系的候选码是所有属性的集合。
- 外码
- 外码:/外键/:R1中的主码还在R2中。R2的外码。
- 关系代数
- 关系操作采用集合操作方式。即操作的对象和结果都是集合。
- 关系代数是关系模型最重要的数据操作语言。对关系的代数运算表达查询,是抽象的查询语句。
- 关系代数中的运算符:
- 集合运算符 (交并差、笛卡尔积)二元运算符、参加运算的关系必须符合相容关系。(都是N元关系)
- 专门的关系运算符 (选择(单目运算)、投影(单目)、连接(二目运算)、除(二目))
- 等值连接
- 相等的属性可以是相同属性,也可是不同属性
- 自然连接
- 属性必须相同,只能用于两个关系中有公共属性的情况。
- 把重复的列去掉。
- 自然连接是去掉重复列的等值连接。
- 等值连接
- 逻辑运算符 (与或非)
- 比较运算符
传统的集合运算:
①并union:(U)实现记录的添加/插入
②差 difference:(-)R-S,保留R,删S。
③交intersection (∩)R-S=R-(R-S)
④广义笛卡尔积,N元关系与M元关系得到M+N元关系(列)。M*N个元组(行)。
- 认识SQL
- SQL的发展
- SQL是最成功、影响最广泛的关系数据库语言。
- 逐渐成为了集数据查询语言,数据操纵、数据定义、数据控制的关系数据库标准语言。
- SQL特点
- 综合能力强
- 非过程化:实现过程与存取路径的选择都由系统自动完成。
- 面向集合:操作对象和结果都是元组的集合
- 使用方式灵活:即可做独立语言,又可嵌入式语言。前者独立联机交互,在窗口输入命令即可。后者能嵌入多种高级程序语言中调用。
- 简洁易用。
- SQL的发展
功能 | 动词命令 |
数据查询 | Select |
数据操纵 | Insert、update、delete |
数据定义 | Create、drop、alter |
数据控制 | Grant、remove |
-
- 数据库文件 (组成)
- 数据文件
- 数据库用来存放数据库数据+数据库对象的文件。一个数据库可有多个数据文件,一个数据文件只属于一个数据库。
- 主数据文件:存储启动信息+部分/全部数据 后缀:.mdf
- 其他数据文件(次数据文件):储存主数据文件为储存的其他数据,.ndf
- 日志文件
- 由一系列日志记录组成,记录数据库更新情况+用户对数据库的修改操作。
- 当文件损坏,可以分析出错的原因;
- 当数据丢失,可用日志文件恢复数据库。
- 每个数据库至少有一个日志文件 .ldf
- 数据文件
- 数据库文件 (组成)
-
- 数据的操纵
- 插入数据
- Insert into《表名》values《值》
- 修改数据
- Update 《表名》set 列名=‘’ where
- 删除数据
- Delete from 表名 where +条件
- 单表查询
- Select (all/distinct+列名 as+新名)from+表 where+条件 group by+列名 having+条件 order by +列名 ASC/DESC
- Distinct:表示去掉重复值
- 无条件查询与条件查询
- 无条件:select from ==相当于只对关系做投影动作。投影会删除重复行,所以。无条件时,要加上distinct
- 条件查询
- 字符串中的通配符
- % 表任意多个字符。
- - 表一个字符
- 【】【A G】% A到G为首的字符串
- 【^】相反
- 空值查询
- Is not null
- 字符串中的通配符
- 聚合函数
- Count(列的值)
- Count(*)元组的值
- 注意:count(*)无法使用distinct。如果不设置列别名,结果是无列名。
- 分组查询
- Group by
- 连接查询
- 内连接查询
- Inner join +表 on+条件
- 外连接查询
- 左外连接
- 右外连接
- 全外连接 full join
- 交叉查询
- Cross join + 表名
- 自连接查询
- 内连接查询
- 嵌套查询
- 普通子查询
- =any === in
- 》any === 》min
- 相关连接查询
- 》《all ===not in/not existS
- 普通子查询
- 插入数据
- 数据的操纵
- 视图
- 视图
- 视图是一个数据库对象,是从一个/多个表中导出来的虚拟表。是一条select语句对应的结果集,结果集的名字就是视图。
- 视图本身不包含任何数据,数据库存储的就是它的定义。
- 优点与作用
- 只可以提取用户需要的数据,便于管理与使用。
- 提供对数据安全保护的机制
- 提供了一定的逻辑独立性。
- 视图对应了三级模式中的外模式,逻辑结构变化,需要修改视图的定义即可外模式不变。
- 创建视图
- Create view +名+(列名)as select 语句
- As指定视图要执行的操作
- Select 御酒可以是任意查询语句,但不包含order by 和 distinct
- 删除视图
- Drop view + 名
- 修改视图
- Alter view + 名+列名 as select语句
- Insert into +名 +values
- Update + 名 set 。。。where。。。
- 索引
- 索引是一个单独的,储存在磁盘上的数据结构目录,包含所有记录的引用指针。就是一个目录。
- 特点
- 查询速度快
- 唯一性
- 建立在外码上的索引可加速表间连接,得益于实现数据的参照完整性
- 减少分组和排序的查询所使用的时间。
- 缺点
- 索引会占用物理储存空间,要额外物理储存文件
- 维护需要时间
- 索引的类型(提升查询速度,降低更新速度)
- 聚集索引
- 确定数据储存的顺序,表内数据按照聚集索引键值的顺序储存。
- 物理储存只有一个,所以一个数据表只能包含一个聚集索引。
- 对主键约束自动创建聚集索引
- 非聚集索引
- 字典的部首目录
- 其他索引
- 唯一索引:聚集/非聚集索引
- 视图索引:视图上建立的索引
- 全文索引:快速查询某个字符出现的位置
- 设计索引注意
- 索引并非越多越好,占磁盘空间和大量维护开销
- 经常查询的列可建立索引,避免不必要的数据
- 数据量小的不用
- 不同值较少的列不用:男/女
- 聚集索引
- 创建与删除索引
- Create unique index on
- 删除索引
- Drop index +名 on +数据表/视图
- 修改和查看
- Alter index+名 on
- 修改索引名称:EXEC sp_rename <表名/视图名.索引名>,<新索引名>
- 视图
第一章习题
- 数据共享的含义:多种应用、多种语言、多个用户覆盖地使用数据集合
- 数据库的概念模型独立于:具体的机器和DBMS
- 三级模式中:外模式:是用户与数据库接口,是应用程序可见的数据描述
- 一个关系只有一个主码
- 应用数据库的目的是为了解决:共享数据
- 数据特点:数据结构化、最小的冗余度和较高的独立性
- 五种基本运算:并、差、选择、投影、乘积
- 共同属性值的元祖连在一起:连接
- 三级模式结构中,描述数据库中全体数据的全逻辑结构和特征:模式
- 数据的物理独立性是指:用户的数据和数据在磁盘中的存储方式相互独立
- 数据库的数据项之间和记录之间都存在联系
- 计算机中支持数据库各种操作的软件系统叫:数据库管理系统
- 数据库管理系统DBMS的工作包括:为定义的数据库提供操作平台、对已定义的数据库进行管理、定义数据库
- 数据管理的任务:数据存储、数据编码
- 数据模型三要素:完整性约束、数据结构、数据操作
- 属于现实世界中事物或个体的特征的不同抽象与表述:属性、列、字段
- 关系操作的特点:所有操作都是集合操作
- 关系数据库中实体完整性的实现是靠:主键、主关系键、主码 保证
- 数据库的三级模式通过两级映像来建立联系,同时保证了数据独立性,外模式/模式保证了:数据的逻辑独立
- 关系数据库中参照完整性规则的实现靠 :外键、外码、外关系键 来保证
第二章习题
- SQL sever 数据库文件组的用途:方便SQL server管理组织文件、方便SQLserver管理组织数据表、不能管理组织日志文件
- Model数据库:自动创建表对象
- 除法:exists
- SQLserver数据库文件的逻辑名称作用是:方便SQLserver管理数据文件
- 去掉重复:distinct
- Alter table : 修改字段长度
- Create database中,用来指定文件逻辑名称的是:name
- 数据表数据在数据库的所有数据文件是随机存放的
- Master:保存SQLserver系统配置信息
- SQLserver中,数据库由文件组成,不包括:备份文件。
- Varchar类型的实际存储空间与实际存放的字符有关,与定义无关
- SQL server 数据库次要数据文件的名称等信息存储在:主数据文件
- 索引项的顺序与表中记录的物理顺序一致的索引,称为:聚集索引
- SQL server 的数据库物理上是由数据文件和日志文件组成的
- Create database 命令创建数据库时,filename选项定义是:物理文件名
第三章习题
- 候选关键字的属性可以一个或多个
- AB1对1:A <---->B
- 概念模型的优点:独立于操作系统和DBMA
- 关系规范化中的删除操作异常是指:不该删除的数据被删除
- ER图中的主要元素是:实体型、联系、属性
- 最常用的数据模型是:实体联系模型
- 关系规范化中插入操作异常是指:应该插入的数据未被插入
- 局部ER图合并成全局图时会出现合并冲突:结构冲突、命名冲突、属性冲突
- 关于数据库逻辑设计的任务,创建数据库逻辑结构说明
- 3NF:一定消除了插入和删除异常
- 关系模式R的属性全部属性是主属性,则R的最高范式必定是:3NF
- 关系模式中的关系模式至少是1NF
- 关系模式R中函数依赖X-->Y的语义是:在R的每一关系中,若两个元组的X值相等,则Y也相等。
- 如果两个实体之间的联系是M/N,进一步处理正确的是:需要引入第三个交叉关系
- 数据流程图DFD是用于描述规范化数据库设计方法中的需求分析阶段的工具
- ER图合并冲突后,依靠各设计者之间 讨论协商 解决
- “为哪些表,在哪些字段上建立什么样的索引”数据库物理结构设计阶段
- 数据库实施阶段包括两项重要的工作,一项是数据的载入、一项是 应用程序的编码和调试。