数据库原理知识点总结1良心出品必属精品.docx
- 文档编号:24680908
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:32
- 大小:222.11KB
数据库原理知识点总结1良心出品必属精品.docx
《数据库原理知识点总结1良心出品必属精品.docx》由会员分享,可在线阅读,更多相关《数据库原理知识点总结1良心出品必属精品.docx(32页珍藏版)》请在冰豆网上搜索。
数据库原理知识点总结1良心出品必属精品
数据库系统概述
一、有关概念
1.数据
2.数据库(DB)
3.数据库管理系统(DBMS)
Access
桌面DBMSVFP
SQLServer
Oracle
客户机/服务器型DBMSMySQL
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:
1联系、1:
n联系、m:
n联系
数据模型
一、层次模型:
用树型结构表示实体之间的联系。
二、网状模型:
用图结构表示实体之间的联系。
三、关系模型:
用二维表表示实体之间的联系。
1.重要术语:
关系:
一个关系就是一个二维表;
元组:
二维表的一行,即实体;
关系模式:
在实体型的基础上,注明主码。
关系模型:
指一个数据库中全部二维表结构的集合。
数据库系统结构
数据库系统的模式结构
三级模式
1.模式:
是数据库中全体数据的逻辑结构和特征的描述。
模式只涉及数据库的结构;模式既不涉及应用程序,又不涉及数据库结构的存储;
外模式:
是模式的一个子集,是与某一个应用程序有关的逻辑表示。
特点:
一个应用程序只能使用一个外模式,但同一个外模式可为多个应用程序使用。
内模式:
描述数据库结构的存储,但不涉及物理记录。
2.两级映象
外模式/模式映象:
保证数据库的逻辑独立性;
模式/内模式映象:
保证数据库的物理独立性;
3.两级映象的意义
使数据库与应用系统完全分开,数据库改变时,应用系统不必改变。
数据的存取完全由DBMS管理,用户不必考虑存取路径。
数据库管理系统
1.DBMS的功能:
负责对数据库进行统一的管理与控制。
数据定义:
即定义数据库中各对象的结构
②数据操纵:
包括对数据库进行查询、插入、删除、修改等操作。
数据控制:
包括安全性控制、完整性控制、并发控制、数据库恢复。
2.DBMS的组成:
DDL语言
DML语言
DCL语言
实用程序
一、基本概念
1.码:
能唯一标识元组的属性集。
2.候选码:
一个属性集既能唯一标识元组,且又不含有多余属性,一个关系模式可以有多个候选码。
3.主码:
任选候选码中的一个。
4.主属性:
主码中包含的各个属性。
5.非主属性:
不包含在主码中的各个属性。
6.外码:
设F是关系R的一个属性,不是R的主码,但却是另一个关系S的主码,则称F是关系R的外码。
关系的数学定义
一、域
1.定义:
域是一组具有相同类型的值的集合。
2.域的基数:
域中所含数据的个数。
二、笛卡尔积
1.定义:
给定一组域D1,D2,D3,则D1×D2×D3称为笛卡尔积。
2.笛卡尔积D1×D2×D3对应一个二维表,所含元组的个数等于各个域的基数之积。
三、关系
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.完全函数依赖:
若x→y,且对于x的所有真子集x′,都有x′y,则称x完全决定y,或y完全函数依赖于x。
结论:
若x→y,且x只包含一个属性,则
。
3.部分函数依赖:
若x→y,且存在x的一个真子集x′,满足x′→y,则称x部分决定y,或y部分函数依赖于x。
4.传递函数依赖:
若x→y,y→z,但y∕x,则
二、平凡函数依赖与非平凡函数依赖
设x→y,如果y是x的子集,则该依赖是平凡的。
如果y中至少有一个属性不在x中,则该依赖是非平凡的。
如果y中没有一个属性在x中,则该依赖为完全非平凡的。
关系模式的规范化
一、存在问题
数据冗余大;
修改麻烦;
插入异常:
应该插入到DB中的数据插不进去。
如:
新开课程没有学生选修时,新开课程的课程号、课程名插不进去。
删除异常:
不应该删除的数据被删掉。
如选修某门课的学生毕业了,在删除学生信息的同时,把课程信息也删除掉。
结论:
一个好的关系模式应满足:
冗余应尽可能少;
应尽可能避免插入、删除异常;
消去关系中不合适的属性依赖关系。
二、关系模式的规范化
1.第一范式(1NF)
定义:
若关系R的所有属性不能再分,则R∈1NF
存在问题
原因:
存在非主属性对主码的部分依赖。
解决办法:
消除非主属性对主码的部分依赖,
将关系R一分为二,将满足完全依赖的属性集组成一个关系;将满足部分依赖的属性集组成另一个关系;
2.第二范式(2NF)
定义:
若关系R∈1NF,且它的每个非主属性都完全依赖于主码,则称R∈2NF。
3.第三范式(3NF)
定义:
若关系R∈2NF,且它的每个非主属性都不传递依赖于主码,则称R∈3NF。
4.结论
若R∈1NF,且主码只含一个属性,则R一定为2NF。
若R∈2NF,且只有0~1个非主属性,则R一定为3NF。
3NF一般控制了数据冗余,一般避免了操作异常。
范式并非越高越好,适可而止。
数据库设计
一、数据库设计的步骤
①需求分析:
了解分析用户的需要、要求。
②概念结构设计:
根据需求分析的结果画概念模型(即E-R图)。
③逻辑结构设计:
将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.数据库实施
主要工作:
定义数据库结构;
组织数据入库;
编写应用程序;
数据库试运行;
创建和使用数据库
一、数据库文件
1.一个数据库至少有一个主要数据文件和一个事务日志文件。
如果数据库很大,可以使用一个主要数据文件、多个次要数据文件和多个事务日志文件。
主数据文件(.mdf)
次数据文件(.ndf)
事务日志文件(.ldf):
用来记录对数据库对象的所有更新操作。
2.系统数据库
Master数据库、Model数据库
二、创建数据库
1.打开数据库:
Use数据库名
2.删除数据库:
Dropdatabase数据库名
三、修改数据库
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.把某个字段指定为公式字段。
二、设置约束
1.主键约束:
每个表中只能有一列或一个组合被指定为主键,主键中的各个列不能为空值。
2.外键约束:
创建外键约束,就是定义两个表的永久关联,这两个表分别称为主键表、外键表。
外键表中外键的值只能是主键表中主键的有效值或空值。
3.唯一性约束:
主键约束与唯一性约束的区别是:
(1)在一个表中只能定义一个主键约束,但可定义多个唯一性约束;
(2)指定为主键约束的列不能取空值,但指定为唯一性约束的列允许取空值。
4.唯一性约束:
用于限制输入到一列或多列的值的范围,保证数据库的数据完整性。
5.默认值约束:
T-SQL
一、SQL语言的特点
SQL语言集数据定义、数据查询、数据操纵、数据控制的功能于一体。
所有的DBMS都支持SQL语言。
T-SQL基础
一、创建和使用数据库
1.创建数据库
createdatabase数据库名
2.使用数据库
Use数据库名
3.删除数据库
dropdatabase数据库名
二、定义表
1.创建表
createtable表名(属性名类型,…,属性名类型)
指定标识字段:
identity(标识种子,标识增量)
指定公式字段:
属性名as表达式
2.删除表
droptable表名,…,表名
三、select语句
select*/表达式表
[into新表]
from表名,…,表名
[where条件]
[groupby属性名]
[having条件]
[orderby属性名][Asc/Desc]
1.Select子句
*代表所有属性名
若一个属性名来自多个表,则属性名前须冠以表名,格式为:
表名.属性名
设置表达式的别名:
表达式As别名
限制查询结果的记录行数:
all返回全部记录
topn返回前面n行记录
distinct表示取消重复行
说明:
topn只能放在关键字select的后面;
all、distinct只能放在关键字select或聚合函数的后面。
2.Where子句
in的格式:
属性名in(常量,…,常量)
like的格式:
属性名like通配字符串
在Where子句中指定连接:
Where表名1.属性名=表名2.属性名
3.Orderby子句
orderby属性名1[Asc/Desc],属性名2[Asc/Desc]
4.聚合函数
5.Groupby子句
使用Groupby子句时,Select子句只能使用分组项字段和聚合函数
6.Having子句
Having子句只能跟在Groupby子句之后,且只能使用聚合函数和分组项字段。
where子句放在Groupby子句之前,甚至可以没有Groupby子句;且不能包含聚合函数。
7.into子句
功能:
将查询结果保存到新的基表中。
一、查询的分类
单表查询
连接查询
嵌套查询
五、数据操纵
1.insert语句
(1)每次插入一条记录
insertinto表名[(属性名表)]values(表达式表)
(2)插入子查询的结果
insertinto表名[(属性名表)]
update表名set属性名=值,…,属性名=值[where条件]
缺省where子句,默认为更新全部记录。
3.delete语句
deletefrom表名[where条件]
T-SQL程序设计基础
一、常量:
字符型:
由单引号括住
整型
实型
二、变量:
局部变量:
由用户定义和赋值,以@开头。
全局变量:
由系统定义和赋值,以@@开头。
1.声明局部变量
Declare变量名类型
2.给局部变量赋值
①使用set语句:
Set变量名=表达式
②使用select语句
Select变量名=表达式,……,变量名=表达式
[from表名]
若表达式中含有属性名,则必须使用from子句。
3.输出表达式的值:
①使用print语句
Print表达式
②使用select语句
Select表达式,……,表达式
[from表名]
4.局部变量的作用域:
只能在声明它的批处理中使用。
批处理
1.什么叫批处理?
一个脚本由一个或多个批处理组成,批处理以GO作为结束标志。
2.批处理是脚本的编译单位,当一个批处理中的某个语句出现编译错误,则批处理中的任何语句均无法执行。
3.当一个批处理中的某个语句出现运行错误,则批处理中当前语句和它之后的语句将无法执行。
流程控制语句
一、begin…end语句
二、if-else语句
当逻辑表达式包含子查询时,子查询必须用括号括住。
三、case表达式
说明:
case表达式不是语句,不能单独执行。
四、while语句
2.专用于循环体的语句:
Break强制退出while语句,执行其后续语句。
Continue返回while语句的入口。
Break、Continue必须放在循环体内,并常与if-else语句结合使用。
二、其它语句
1.Return语句
2.存储过程
①创建存储过程
③删除存储过程
函数
1.创建函数
createfunction函数名(@形参名类型)returns类型
as
begin
函数体
End
注:
函数体最后一条语句必须是return语句。
两类函数:
标量函数、内嵌表值函数
2.执行函数
Exec@变量名1=函数名常量|@变量名
Print函数名(常量|@变量名)
3.删除函数
Dropfunction函数名
T-SQL高级应用
一、查询的分类
单表查询
连接查询
嵌套查询
一、连接查询:
在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表名1innerjoin表名2on条件
2.左外连接:
from表名1leftouterjoin表名2on条件
3.右外连接:
from表名1rightouterjoin表名2on条件
4.完全外连接:
from表名1full[outer]join表名2on条件
5.交叉连接
四、嵌套查询
事务处理
1.什么叫事务?
事务是用户定义的一组操作序列。
1事务是并发控制的基本单位。
2一个事务包含的诸操作要么都执行,要么都不执行。
1.事务的属性
3原子性:
指事务中包含的诸操作要么都执行,要么都不执行。
4一致性:
事务必须使数据库从一个一致性状态变到另一个一致性状态。
5隔离性:
一个事务的执行不能被其他事务干扰。
6持久性
3.显式定义事务
4.在事务内设置保存点
使用游标
一、游标的概念
1.每个表均有一个游标,它可以指向表的任意一条记录。
2.移动游标的方法:
在触发器或存储过程中,使用SQL语句定义和使用游标。
在前台应用程序中,使用主语言实现对游标的移动。
二、Transact-SQL游标的使用:
1.声明游标
Declare游标名cursor
[forward_only/scroll][global/local]
[read_only]
forselect语句
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])
注:
若未指定clustered,则创建非聚集索引;
若未指定排序方式,则为ASC;
text,ntext类型的字段不能指定为索引字段。
四、删除索引:
Dropindex索引名,…,索引名
视图
一、视图的特点:
视图只有结构,没有记录,是虚表;
一个视图总对应着一个select语句;
对视图的查询、更新,实际上是对基本表的查询、更新。
二、定义视图:
1.创建视图:
Createview视图名[(属性名,…,属性名)]
As子查询
[withcheckoption]
说明:
视图的属性个数必须与子查询中select子句的表达式个数相同。
2.删除视图:
Dropview视图名,…,视图名
三、查询视图:
select*/表达式表
from视图名,…,视图名
[where条件]
[groupby属性名]
[orderby属性名][Asc/Desc]
四、操纵视图:
1.向视图插入一条记录
insertinto视图名[(属性名表)]values(表达式表)
2.修改视图中的数据
update视图名set属性名=值,…,属性名=值[where条件]
缺省where子句,默认为更新全部记录。
3.删除视图中的记录
deletefrom视图名[where条件]
触发器
一、维护数据完整性的措施:
创建约束,创建触发器基于一个表创建
创建规则:
以单独的对象创建,可以绑定到数据库的所有表中。
二、触发器类型:
1.after触发器:
1.Insteadof触发器:
三、创建触发器:
Createtrigger触发器名
On表名|视图名
For|after|Insteadof触发操作
AsSQL语句序列
说明:
for或after,表示创建after触发器。
触发操作是指Insert、update、delete中的一个或多个。
五、删除触发器
Droptrigger触发器名[,触发器名]
。
把一个登录名指定为数据库的public和db_owner,则登录名对该数据库拥有全部权限。
数据库的构建与数据装入
(1)图书信息表
(2)读者信息表
(3)管理员信息表
(4)借阅表
(5)管理员—书籍
(6)管理员—学生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 知识点 总结 良心 出品 精品