2022年《数据库原理》知识点总结 .pdf
数据库原理知识点总结数据库系统概述一、有关概念1.数据2.数据库 (DB) 3.数据库管理系统 (DBMS) Access 桌面 DBMS VFP SQL Server Oracle 客户机 /服务器型 DBMS MySQL DB2 4.数据库系统 (DBS) 数据库 (DB) 数据库管理系统(DBMS) 开发工具应用系统二、数据管理技术的发展1.数据管理的三个阶段(1)人工管理阶段(2)文件系统阶段(3)数据库系统阶段概念模型一、模型的三个世界1.现实世界2.信息世界 :即根据需求分析画概念模型(即 E-R 图),E-R 图与 DBMS 无关。3.机器世界 :将 E-R 图转换为某一种数据模型,数据模型与DBMS 相关。注意 :信息世界又称概念模型,机器世界又称数据模型二、实体及属性1.实体 :客观存在并可相互区别的事物。2.属性 : 3.关键词 :能唯一标识每个实体又不含多余属性的属性组合。一个表的码可以有多个,但主码只能有一个。4.实体型 :即二维表的结构5.实体集 :即整个二维表三、实体间的联系: 1.两实体集间实体之间的联系1:1 联系、 1:n 联系、 m:n 联系2.同一实体集内实体之间的联系精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结1:1 联系、 1:n 联系、 m:n 联系数据模型一、层次模型 :用树型结构表示实体之间的联系。二、网状模型 :用图结构表示实体之间的联系。三、关系模型 :用二维表表示实体之间的联系。1.重要术语 : 关系 :一个关系就就是一个二维表; 元组 :二维表的一行 ,即实体 ; 关系模式 :在实体型的基础上,注明主码。关系模型 :指一个数据库中全部二维表结构的集合。数据库系统结构数据库系统的 模式结构三级模式1模式 :就是数据库中全体数据的逻辑结构与特征的描述。模式只涉及数据库的结构;模式既不涉及应用程序,又不涉及数据库结构的存储; 外模式 :就是模式的一个子集,就是与某一个应用程序有关的逻辑表示。特点 :一个应用程序只能使用一个外模式,但同一个外模式可为多个应用程序使用。 内模式 :描述数据库结构的存储,但不涉及物理记录。2.两级映象 外模式 /模式映象 :保证数据库的逻辑独立性; 模式 /内模式映象 :保证数据库的物理独立性; 3.两级映象的意义 使数据库与应用系统完全分开,数据库改变时 ,应用系统不必改变。 数据的存取完全由DBMS 管理 ,用户不必考虑存取路径。数据库管理系统1 DBMS 的功能 :负责对数据库进行统一的管理与控制。 数据定义 :即定义数据库中各对象的结构 数据操纵 :包括对数据库进行查询、插入、删除、修改等操作。 数据控制 :包括安全性控制、完整性控制、并发控制、数据库恢复。2.DBMS 的组成 : DDL 语言DML 语言DCL 语言实用程序一、基本概念1.码:能唯一标识元组的属性集。2.候选码 :一个属性集既能唯一标识元组,且又不含有多余属性,一个关系模式可以有多个候选码。3.主码 :任选候选码中的一个。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结4.主属性 :主码中包含的各个属性。5.非主属性 :不包含在主码中的各个属性。6.外码 :设 F 就是关系 R 的一个属性 ,不就是 R 的主码 ,但却就是另一个关系S 的主码 ,则称 F 就是关系 R的外码。关系的数学定义一、域1.定义 :域就是一组具有相同类型的值的集合。2.域的基数 :域中所含数据的个数。二、笛卡尔积1.定义 :给定一组域 D1,D2,D3, 则 D1D2D3 称为笛卡尔积。2.笛卡尔积 D1D2D3 对应一个二维表 ,所含元组的个数等于各个域的基数之积。三、关系1.定义 :笛卡儿积的一部分元组称为关系。2.关系的目 (或度 ):一个关系所含属性的个数。3.关系的性质任意两个元组不能完全相同,但属性名允许重复。四、关系的完整性1.实体完整性 :指关系的所有主属性都不能取空值。注意 :实体完整性不仅仅就是主码整体不能取空值。2.参照完整性 :指一个关系外码的取值必须就是相关关系中主码的有效值或空值。五、专门的关系运算1选择 :从关系 R 中选择满足条件的元组。2.投影 :从关系 R 中选择若干属性组成新的关系,并把新关系的重复元组去掉。3.条件连接 :将两关系按一定条件连接成一个新关系说明 :条件连接 :两关系可以没有公共属性,若有公共属性 ,则新关系含有重复属性。4.自然连接 :将两关系按公共属性连接成一个新的关系,并把新关系的重复属性去掉。说明 : 自然连接 :两关系至少有一个公共属性。 对于 R 的每个元组 ,S 都从第一个元组开始判断,若两元组的公共属性值相同,则产生一个新元组添加到新关系中,最后把新关系中的重复属性去掉。关系数据库规范化理论函数依赖一、有关概念 : 1.函数依赖 : 任给 R(U),U 为属性集 ,x、y 为 U 的子集 ,如果对于 x 的每个值 ,y 有唯一确定的值与之对应,则称 x 决定y,或 y 函数依赖于x。2、 完全函数依赖 : 若 xy, 且对于 x 的所有真子集x , 都有 x y,则称 x 完全决定 y,或 y 完全函数依赖于x。结论 :若 xy, 且 x 只包含一个属性 , 则yxf。3. 部分函数依赖 : 若 xy, 且存在 x 的一个真子集x , 满足 x y, 则称 x 部分决定 y,或 y 部分函数依赖于x。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结4. 传递函数依赖 : 若 xy,y z, 但 y x, 则zxt二、平凡函数依赖与非平凡函数依赖设 xy, 如果 y 就是 x 的子集 ,则该依赖就是平凡的。如果 y 中至少有一个属性不在x 中, 则该依赖就是非平凡的。如果 y 中没有一个属性在x 中, 则该依赖为完全非平凡的。关系模式的规范化一、存在问题 数据冗余大 ; 修改麻烦 ; 插入异常 :应该插入到DB 中的数据插不进去。如:新开课程没有学生选修时,新开课程的课程号、课程名插不进去。 删除异常 :不应该删除的数据被删掉。如选修某门课的学生毕业了,在删除学生信息的同时,把课程信息也删除掉。结论 :一个好的关系模式应满足: 冗余应尽可能少 ; 应尽可能避免插入、删除异常; 消去关系中不合适的属性依赖关系。二、关系模式的规范化1.第一范式 (1NF) 定义 :若关系 R 的所有属性不能再分,则 R1NF 存在问题原因 : 存在非主属性对主码的部分依赖。 解决办法 :消除非主属性对主码的部分依赖, 将关系 R 一分为二 ,将满足完全依赖的属性集组成一个关系;将满足部分依赖的属性集组成另一个关系; 2.第二范式 (2NF) 定义 :若关系 R1NF,且它的每个非主属性都完全依赖于主码, 则称 R2NF 。3.第三范式 (3NF) 定义 :若关系 R2NF,且它的每个非主属性都不传递依赖于主码, 则称 R3NF。4. 结论 若 R1NF,且主码只含一个属性, 则 R 一定为 2NF。 若 R2NF,且只有 01 个非主属性 , 则 R一定为 3NF 。 3NF 一般控制了数据冗余, 一般避免了操作异常。 范式并非越高越好, 适可而止。数据库设计一、数据库设计的步骤 需求分析 :了解分析用户的需要、要求。 概念结构设计 :根据需求分析的结果画概念模型(即 E-R 图)。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结 逻辑结构设计 :将 E-R 图转换为某一种数据模型,并优化。 物理结构设计 数据库实施 数据库运行与恢复概念结构设计一、局部 E-R 图设计1.确定局部范围通常把系统涉及的各个部门或各个主要功能作为局部。2.确定实体与属性 属性就是不能再分的数据项; 联系只发生在两实体之间; 原则上 ,能够作为属性 ,就不要作为实体。二、合并成总体E-R 图1.消除各局部E-R 图的冲突问题。2.按公共实体名合并,生成初步 E-R 图。3.消除冗余的属性与冗余的联系,生成总体 E-R 图。逻辑结构设计一、联系的属性与主码(1) 联系的属性 : 必须包含相关联的各实体型的主码。(2) 联系的主码1:1 联系 : 可以就是相关联的任一实体型的主码。1:n 联系 : 必须就是 n 方实体型的主码。m:n 联系 : 必须就是相关联的各实体型的主码之与。二、 E-R 图向关系模型的转换(1)把每个实体型转换为一个关系模式。(2)1:1 联系 :可以消化到相关联的任一实体型对应的关系模式中。(3)1:n 联系 :可以消化到n 方实体名对应的关系模式中。(4)m:n 联系 :必须转换为一个关系模式,并且不能消化。(5)多元联系 :不能消化物理结构设计与数据库实施1.物理结构设计在逻辑设计的基础上,为每个关系模式选择合适的存储结构与存储方式。选择存储结构 :即决定每个表的记录顺序。选择存取方式 :即决定为哪些属性建立非聚集索引,以便加快查找速度。 一般把经常查询的属性名指定为非聚集索引。2.数据库实施主要工作 : 定义数据库结构 ; 组织数据入库 ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结编写应用程序 ; 数据库试运行 ; 创建与使用数据库一、数据库文件1.一个数据库至少有一个主要数据文件与一个事务日志文件。如果数据库很大,可以使用一个主要数据文件、多个次要数据文件与多个事务日志文件。主数据文件 (、mdf ) 次数据文件 (、ndf ) 事务日志文件 (、 ldf ):用来记录对数据库对象的所有更新操作。2.系统数据库Master 数据库、 Model 数据库二、创建数据库1.打开数据库 : Use 数据库名2.删除数据库 : Drop database数据库名三、修改数据库1.分离与附加数据库2.备份与还原数据库3.数据的导入与导出创建与使用表数据类型1.字符型char(n)、varchar(n)、Text 2.统一码字符型每个英文字母、数字、汉字算1 个字符 ,每个字符占 2 个字节。nchar(n)、nvarchar(n)、ntext 3.整型4.实型 精确数值型 近似数值型5.贷币型6.日期时间型使用对象资源管理器创建与管理表一、创建表1.在一个表中只能定义一个标识字段。2.只有整型与精确数值型(decimal、numeric)字段才能指定为标识字段。3.把某个字段指定为公式字段。用于存放数据库的各类对象精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结二、设置约束1.主键约束 : 每个表中只能有一列或一个组合被指定为主键,主键中的各个列不能为空值。2.外键约束 : 创建外键约束 ,就就是定义两个表的永久关联,这两个表分别称为主键表、外键表。 外键表中外键的值只能就是主键表中主键的有效值或空值。3.唯一性约束 : 主键约束与唯一性约束的区别就是: (1) 在一个表中只能定义一个主键约束,但可定义多个唯一性约束; (2)指定为主键约束的列不能取空值,但指定为唯一性约束的列允许取空值。4.唯一性约束 : 用于限制输入到一列或多列的值的范围,保证数据库的数据完整性。5.默认值约束 : T-SQL 一、 SQL 语言的特点SQL 语言集数据定义、数据查询、数据操纵、数据控制的功能于一体。所有的 DBMS 都支持 SQL 语言。 T-SQL 基础一、创建与使用数据库1.创建数据库create database 数据库名2.使用数据库Use数据库名3.删除数据库drop database数据库名二、定义表1.创建表create table 表名 (属性名类型,属性名类型 ) 指定标识字段 :identity( 标识种子 ,标识增量 ) 指定公式字段 :属性名as 表达式2.删除表drop table 表名 , 表名三、 select语句select */表达式表into 新表 from 表名 ,表名where 条件 group by 属性名 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结having 条件 order by 属性名 Asc/Desc 1.Select 子句 *代表所有属性名 若一个属性名来自多个表,则属性名前须冠以表名,格式为 :表名、属性名 设置表达式的别名: 表达式As 别名 限制查询结果的记录行数: all 返回全部记录top n 返回前面 n 行记录distinct 表示取消重复行说明 :top n 只能放在关键字select 的后面 ; all、distinct 只能放在关键字select或聚合函数的后面。2.Where 子句 in 的格式 :属性名in ( 常量 ,常量 ) like 的格式 :属性名like 通配字符串 在 Where 子句中指定连接: Where 表名 1、 属性名 =表名 2、 属性名3.Order by 子句order by 属性名 1 Asc/Desc, 属性名 2 Asc/Desc 4.聚合函数5.Group by 子句使用 Group by 子句时 ,Select 子句只能使用分组项字段与聚合函数6.Having 子句 Having 子句只能跟在Group by 子句之后 ,且只能使用聚合函数与分组项字段。 where 子句放在 Group by 子句之前 ,甚至可以没有Group by 子句 ;且不能包含聚合函数。7.into 子句功能 :将查询结果保存到新的基表中。一、查询的分类单表查询连接查询嵌套查询五、数据操纵1.insert 语句(1)每次插入一条记录insert into 表名 (属性名表 ) values(表达式表 ) (2)插入子查询的结果精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结insert into 表名 (属性名表 ) update 表名 set 属性名 =值,属性名 =值 where 条件 缺省 where 子句 ,默认为更新全部记录。3.delete 语句delete from 表名 where 条件 T-SQL 程序设计基础一、常量 : 字符型 :由单引号括住整型实型二、变量 : 局部变量 :由用户定义与赋值,以 开头。全局变量 :由系统定义与赋值,以 开头。1、声明局部变量Declare 变量名类型2、给局部变量赋值 使用 set 语句 : Set 变量名 =表达式 使用 select 语句Select 变量名 =表达式 , ,变量名 =表达式from 表名 若表达式中含有属性名,则必须使用from 子句。3、输出表达式的值: 使用 print 语句Print 表达式使用 select 语句Select 表达式 , ,表达式from 表名 4.局部变量的作用域: 只能在声明它的批处理中使用。批处理1.什么叫批处理?一个脚本由一个或多个批处理组成,批处理以 GO 作为结束标志。2.批处理就是脚本的编译单位,当一个批处理中的某个语句出现编译错误,则批处理中的任何语句均无法执行。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结3.当一个批处理中的某个语句出现运行错误,则批处理中当前语句与它之后的语句将无法执行。流程控制语句一、 beginend 语句二、 if-else 语句当逻辑表达式包含子查询时,子查询必须用括号括住。三、 case表达式说明 :case表达式不就是语句,不能单独执行。四、 while 语句2.专用于循环体的语句: Break 强制退出 while 语句 ,执行其后续语句。Continue 返回 while 语句的入口。Break、Continue 必须放在循环体内,并常与 if-else 语句结合使用。二、其它语句1.Return 语句2.存储过程 创建存储过程 删除存储过程函数1.创建函数create function 函数名 (形参名类型 ) returns 类型as begin 函数体End 注: 函数体最后一条语句必须就是return 语句。 两类函数 :标量函数、内嵌表值函数2.执行函数Exec 变量名 1=函数名常量 | 变量名Print 函数名(常量 | 变量名 ) 3.删除函数Drop function 函数名T-SQL 高级应用一、查询的分类单表查询连接查询精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结嵌套查询一、 连接查询 :在 where 子句中指定连接1.内连接 :where 表名 1、属性名 =表名 2、属性名2.自身连接 :给一个表取两个别名,where 子句的格式为 : where 别名 1、属性名 =别名 2、属性名3.左外连接 :where 表名 1、属性名 *= 表名 2、属性名意义 :查询结果包含了表1 的全部记录与表2 满足条件的记录。4.右外连接 :where 表名 1、属性名 =* 表名 2、属性名意义 :查询结果包含了表2 的全部记录与表1 满足条件的记录。三、连接查询 :在 from 子句中指定连接1.内连接 :from 表名 1 inner join 表名 2 on 条件2.左外连接 :from 表名 1 left outer join 表名 2 on 条件3.右外连接 :from 表名 1 right outer join 表名 2 on 条件4.完全外连接 :from 表名 1 full outer join 表名 2 on 条件5.交叉连接四、嵌套查询事务处理1.什么叫事务?事务就是用户定义的一组操作序列。事务就是并发控制的基本单位。一个事务包含的诸操作要么都执行,要么都不执行。1 事务的属性原子性 :指事务中包含的诸操作要么都执行,要么都不执行。一致性 :事务必须使数据库从一个一致性状态变到另一个一致性状态。隔离性 :一个事务的执行不能被其她事务干扰。持久性3.显式定义事务4.在事务内设置保存点使用游标一、游标的概念1 每个表均有一个游标,它可以指向表的任意一条记录。2 移动游标的方法 : 在触发器或存储过程中,使用 SQL 语句定义与使用游标。在前台应用程序中,使用主语言实现对游标的移动。二、 Transact-SQL 游标的使用 : 1、 声明游标精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结Declare 游标名cursor forward_only / scroll global /local read_only for select 语句forward_only( 只进游标 ):只能进行 next 操作 ,缺省为 forward_only 。scroll (滚动游标 ) global /local: 缺省为 :global 2.打开游标open 游标名打开游标时 ,游标指向查询结果集的第一条记录之前。3.提取游标fetch next / prior / first /last from游标名into 局部变量名表 缺省 into 子句 :移动游标 ,并显示当前记录的内容。 含 into 子句 :移动游标 ,并将当前记录各属性值依次赋给局部变量。 缺省游标移动方式,则为 next。4.关闭游标close 游标名5.释放游标索引一、索引的概念 : 如果把数据表比作一本书,那么表的索引就就是这本书的目录。可见,索引使用户能快速访问数据表的特定信息。 索引包括两项 :索引字段值、原记录号 索引必须依附于某个基本表,不能单独存在。二、索引的类型 : 聚集索引 :影响数据表的记录顺序非聚集索引 :不会影响数据表的记录顺序注:一个表只能建立一个聚集索引,但可以建立若干个非聚集索引。三、创建索引1.自动创建索引 : 。如果在数据表的某个属性设置主键约束或唯一约束,则系统将在这些属性上自动创建唯一索引。自动创建的索引随约束的存在而存在,随约束的消失而消失。2.使用 SQL 语句创建索引Create unique clustered/nonclustered index 索引名On 表名 (属性名 asc/desc, 属性名 asc/desc) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结注:若未指定clustered,则创建非聚集索引; 若未指定排序方式,则为 ASC; text,ntext 类型的字段不能指定为索引字段。四、删除索引 : Drop index 索引名 ,索引名视图一、视图的特点 : 视图只有结构 ,没有记录 ,就是虚表 ; 一个视图总对应着一个select 语句 ; 对视图的查询、更新,实际上就是对基本表的查询、更新。二、定义视图 : 1.创建视图 : Create view 视图名(属性名 ,属性名 ) As 子查询with check option 说明 :视图的属性个数必须与子查询中select子句的表达式个数相同。2.删除视图 : Drop view 视图名 ,视图名三、查询视图 : select */表达式表from 视图名 ,视图名where 条件 group by 属性名 order by 属性名 Asc/Desc 四、操纵视图 : 1.向视图插入一条记录insert into 视图名 ( 属性名表 ) values(表达式表 ) 2.修改视图中的数据update 视图名 set 属性名 =值,属性名 =值 where 条件 缺省 where 子句 ,默认为更新全部记录。3.删除视图中的记录delete from 视图名where 条件 触发器一、维护数据完整性的措施: 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结创建约束 ,创建触发器基于一个表创建创建规则 :以单独的对象创建,可以绑定到数据库的所有表中。二、触发器类型 : 1.after 触发器 : 1 Instead of 触发器 : 三、创建触发器 : Create trigger 触发器名On 表名 |视图名For | after | Instead of 触发操作As SQL 语句序列说明 :for 或 after,表示创建 after 触发器。触发操作就是指Insert、update、delete 中的一个或多个。五、删除触发器Drop trigger 触发器名 ,触发器名 。把一个登录名指定为数据库的public 与 db_owner,则登录名对该数据库拥有全部权限。数据库的构建与数据装入(1)图书信息表精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结(2)读者信息表精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结(3)管理员信息表精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结(4)借阅表精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结(5)管理员书籍(6)管理员学生精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 20 页 - - - - - - - - - - 数据库原理知识点总结精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 19 页,共 20 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 20 页,共 20 页 - - - - - - - - - -