收藏 分销(赏)

数据库原理知识点总结1.doc

上传人:快乐****生活 文档编号:4758419 上传时间:2024-10-12 格式:DOC 页数:22 大小:273KB
下载 相关 举报
数据库原理知识点总结1.doc_第1页
第1页 / 共22页
数据库原理知识点总结1.doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述
数据库系统概述 一、有关概念 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: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.删除数据库: 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.把某个字段指定为公式字段。 二、设置约束 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 属性名] [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)插入子查询的结果 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.批处理是脚本的编译单位,当一个批处理中的某个语句出现编译错误,则批处理中的任何语句均无法执行。 3.当一个批处理中的某个语句出现运行错误,则批处理中当前语句和它之后的语句将无法执行。 流程控制语句 一、begin…end语句 二、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 高级应用 一、查询的分类 单表查询 连接查询 嵌套查询 一、 连接查询:在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. 声明游标 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]) 注:①若未指定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 条件] 触发器 一、维护数据完整性的措施: 创建约束,创建触发器基于一个表创建 创建规则:以单独的对象创建,可以绑定到数据库的所有表中。 二、触发器类型: 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)图书信息表 (2)读者信息表 (3)管理员信息表 (4)借阅表 (5)管理员—书籍 (6)管理员—学生
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服