
计算机四级数据库工程师笔记汇编.pdf
15页第一章引论1、数据模型:数据结构、数据操作、数据完整性约束2、外模式 /模式的映射保持了数据库的逻辑独立性,模式/内模式的映射保持了数据库的物理独立性3、数据库关系系统的功能:数据定义、数据操纵、数据库运行和控制、数据库的建立和维护4、查询处理器包括:DML 编译器、嵌入式DML 预编译器、 DDl 编译器、查询和执行引擎5、存储管理器包括:权限和完整性管理器、事务管理器、文件管理器、缓冲区管理器第二章数据库应用系统生命周期1、软件生命周期:概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶段2、DBAS 组成:与数据访问有关的事务模块、与数据访问无直接关联的应用模块3、DBAS 系统生命周期:项目规划、需求分析、系统设计、实现与部署、运行管理与维护4、数据字典:数据项、数据结构、数据流、数据存储、处理过程5、需求分析:数据与数据处理需求分析、业务规则需求分析、性能需求分析(数据库操作响应时间、系统吞吐量、允许并发访问的最大用户量、每TPS 代价值)、其他需求(存储需求分析、安全性需求分析、备份和恢复需求分析)6、系统设计:概念设计、逻辑设计、物理设计第三章需求分析及功能建模方法1、需求分析的过程:标识问题、建立需求模型(DFD 图和 IDEFO 图) 、需求描述(需求模型和软件需求说明书) 、确认需求2、DFD 构成: 数据流 (有名字的箭头) 、处理(矩形)、数据存储 () 、数据源及数据终点(平行四边形 ) 第四章数据库概念设计及数据建模1、概念设计的依据:需求说明书、功能模型、在需求分析阶段搜集到的各类报表2、概念设计的步骤:确定实体集、确定联系和联系类型、建立有信息模型表示的企业模型、确定实体集属性、对信息模型优化3、数据建模方法:ER 方法、 IDEF1X 方法(数据建模方法)4、ER 建模方法:矩形表示实体,菱形表示联系、椭圆表示属性5、IDEF1X 建模方法:矩形框表示独立实体集,圆角矩形表示从属实体集第五章关系数据库逻辑设计1、部分函数依赖:X 的真子集能函数决定Y,则称 X 部分函数决定Y,否则完全函数决定Y 2、平凡函数依赖:X 函数决定其子集Y,则称 X 决定 Y 为平凡函数依赖平凡函数依赖:右边的属性集是左边属性集的子集时非平凡函数依赖:右边的属性集中至少有一个属性不属于左边的集合时完全非平凡函数依赖:右边的属性集中的属性都不在左边的属性集时3、关于范式第一范式: R 的每个属性都是不可分的数据项(关系中的元组的每个属性都只能取一个值)第二范式: R 的每个非主属性完全函数依赖于码,即不存在非主属性对码的部分函数依赖第三范式: R 中不存非主属性对码的传递函数依赖改进的第三范式:R 中即不存在部分函数依赖,也不存在传递函数依赖于候选码,即一条记录中每个函数依赖的决定放都是候选关键字第六章存储技术与数据库物理设计1、数据库物理设计步骤:逻辑模式调整、文件组织与存取设计、数据分布设计、安全模式设计、确定系统配置、物理模式评估2、各种类型的文件适用:堆文件:数据量少,插入、删除、更新操作频繁顺序文件:用户的查询定义在查找码上散列文件:用户的访问顺序是随机的聚集文件:用户查询经常要进行多表连接第七章数据库应用系统功能设计1、概要设计提供的文件:概要设计说明书、数据库或数据结构设计说明书、组装测试计划等文件2、概要设计侧重于模块的外部功能描述和模块间接口的功能关系,详细设计则是细化概要设计产生的模块的功能,还要制定模块测试方案,其结果是星系设计说明书。
3、概要设计的核心是辨识和设计事务自身的事务处理逻辑第八章关系数据库操作语言SQL 1、数据类型数值型: Bigint 、int、bit(0 或 1)字符串型: char(n)-定长字符串型、varchar(n)-可变长字符串型、text文本型日期时间型: datetime 货币型: money 2、关系表的定义与删除Create table (列级完整性约束定义,表级完整性约束定义 参数: null、 dufult 、unique、check、primary key 、foreign key 【Foreign key (列名)references .(外表列名)】Drop table 表名3、修改表结构Alter table 表名alter column 列名新数据类型add 列名数据类型属性drop column 列名add constraint 约束名约束定义drop constraint 约束名4、数据操作语言Select .from.where.group by .having order by 参数: like 匹配字符:下划线- 匹配任意一个字符百分号 - 匹配 0 个或多个字符- 匹配 中任意一个字符- 不匹配 中任意一个字符Is null Asc 和 Desc Distinct - 消除重复记录Top n ( with ties 表示包含并列的结果)Exists 存在(1)case 测试表达式When 简单表达式1 then 结果表达式1 When 简单表达式2 then 结果表达式2 Else 结果表达式End (2)case When 布尔表达式1 then 结果表达式1 When 布尔表达式2 then 结果表达式2 Else 结果表达式End 5、聚合函数不能用在where 字句中6、查询连接:union 7、由于合函数不能用在where 字句中,因此,当一个列的值与聚合函数的值比较时,不许先用子查询得到聚合函数的结果8、带 exists 的查询是先执行外层查询,然后再执行内层查询,由外层查询的值决定内层查询的结果,内层查询的执行次数由外层查询结果的数量决定由于带exists 的查询只返回真假值,因此在子查询里不必指定查询列表,所以子查询的目标列通常都用 * 。
常称此种子查询为相关子查询9、数据修改插入数据: insert into 表名列名表values 值列表insert into 表名列名表values 子查询语句更新数据: update 表名 set 列名 =表达式where 更新条件删除数据: delete from 表名 where 删除条件10、索引创建索引: create (unique、clustered、unclustered) index 索引名on 表名 (列名 1 顺序,列名 2 顺序)参数: unique- 唯一索引Clustered-聚集索引Unclustered-非聚集索引顺序包括 ASC 和 DESC 删除索引: drop index 索引名11、视图创建视图: create view 视图名视图列表名as select 语句with check option 参数: with check option 表示通过视图进行操作数据时要满足定义视图时指定的where 字句注意: 创建试图时要么指定全部的列,要么全部都省略,省略后视图的列名与查询语句的列相同,下列情况,不能省略(1)目标列不是单纯的属性,是计算函数或列表达式(2)多表连接时选了几个同名的列作为视图的字段(3)需要在视图中为列选择更合适的名字包含分组信息的视图只能用于查询,不能用于修改数据删除视图: drop view 视图名12、视图的作用简化数据查询语句、使用户能从多角度看待同一数据、提高了数据的安全性、提供了一定程度的逻辑独立性第九章事务调度与并发控制1、事务的特征原子性( atomicity ) 、一致性( consistency) 、隔离性( isolation) 、持久性( durability )2、锁的类型互斥锁( exclusive lock ,简称 x 锁) 、共享锁( shared lock,简称 s锁)3、三级加锁协议第十章数据库的运行实施和维护1、数据库的维护工作维护和转储、安全性和完整性控制、性能的检测和改善、重组和重构第十一章故障管理1、故障类型事务内部故障(预期和非预期的事务内部故障)、系统故障、介质故障、计算机病毒故障第十二章SQL2000 数据库管理系统1、系统数据库Master:记录所有系统级信息Msdb:提供对自动执行任务的支持Model :样板数据库,包含所有用户数据库的公共信息Tempdb:临时数据库2、SQl 中数据的存储单位是页,表中的行不能跨页存储,一行数据的大小不能超过一页3、文件主数据文件: mdf 文件辅助数据文件:ndf 文件日志文件: ldf 文件,日志文件最小为512K,但是最好不要小于1M 4、创建数据库Create database 数据库名on (Name=数据库名,Filename=数据库路径及文件名,Size=数据库初始大小,Maxsize=数据库最大大小,Filegrowth= 数据文件的增加量,-0 表示不自动增长)Log on (Name=日志文件名,Filename=日志文件路径及文件名,Size=日志文件初始大小,Maxsize=日志文件最大大小,Filegrowth= 日志文件的增加量)5、删除数据库Drop database 数据库名6、T-SQL 简介注释: - 单行注释/* .*/ 为块注释变量:全局变量以开始局部变量以 开始变量声明: declare 局部变量名数据类型变量赋值: set 局部变量名 =值或者表达式Select 局部变量名 =值或者表达式流程控制语句:begin。
end If 布尔表达式语句块 1 else 语句块 2 While 布尔表达式循环体语句块输出: print 局部变量名 /函数名 /字符串表达式第十三章数据库对象1、存储过程的优点:模块化程序设计、提高性能、减少网络流量、可作为安全机制适用2、创建存储过程:Create procedure 存储过程名参数名数据类型=default output as sql 语句3、执行存储过程:Exec 或者 use 存储过程名实参output 4、注意在执行有输出参数的存储过程时,执行语句变量名后边要加上output 修饰符在调用有输出参数的存储过程时,与输出参数对应的是一个变量,此变量用于保存输出参数返回的结果5、更新和删除数据的存储过程更新:删除:6、自定义函数类型:标量函数、内嵌表值函数、多语句表值函数7、标量函数定义标量函数:Create function (拥有者 .函数名参数as 标量数据类型=default )Returns 返回值类型As begin 函数体return 标量表达式end 例子:调用标量表达式:Select 拥有者名标量函数名(标量参数)8、内嵌表值函数创建内嵌表值函数:Create function 拥有者函数名(参数名数据类型default)Returns table Return (select 语句)内嵌表值函数的使用:内嵌表值函数的使用与视图非常类似,需要放在查询语句的from 子句中,其作用像是带参数的视图9、多语句表值函数创建:Create function 拥有者函数名(参数名数据类型default)Returns 返回变量table As Begin 函数体return End 多语句表值函数调用:其返回的是一个表,因此也是放在select 语句的 from 语句中10、触发器作用:完成比 check 约束更复杂的数据约束、为保证数据库性能而维护的非规范化数据、实现复杂的业务规则11、创建触发器Create trigger 触发器名称On 表名 or 视图名With encryption For|after|instead of As If update (column)Sql 语句注意:可以在一个表上创建多个后触发型触发器,只能建立一个前触发型触发器所有的建立和修改数据库及数据库对象的语句及所有的drop 语句都不能用在触发器中,通常不需要再触发器中返回任何结果后触发型触发器例子:前触发型触发器例子:12、触发器中的两个临时表Deleted 表中存放delete 和 update 语句所。
