通过Internet及浏览器处理的数据库,应该是主从结构式处理
第一章 数据库基本概念
1.数据库的4个基本概念:数据、数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)
其他概念:数据库管理员(DBA)
2.数据库系统的特点:
(1)数据结构化(数据库系统与文件系统的本质区别)
(2)数据的共享性高、冗余度低且易扩充
(3)数据独立性高---数据独立性(用户的应用程序与数据库中数据的物理存储是相互独立的)和逻辑独立性(用户的应用程序与数据库的逻辑结构是相互独立的)
(4)数据由数据库管理系统统一管理和控制
DBS的核心是DBMS,DBMS的核心是DB,DB的核心是数据模型
3.数据模型:对现实世界数据特征的抽象,是数据库系统的核心和基础
(1)概念模型(信息模型):按用户的观点来对数据和信息建模
(2)逻辑模型和物理模型
(3)数据模型的组成要素:数据结构、数据操作和数据的完整性约束条件
4.数据库系统的三级模式结构:模式、外模式和内模式---分别对应概念级、用户级和物理级
(1)模式(逻辑模式):一个数据库只有一个模式,它是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图---决定数据库管理系统(DBMS)功能
(2)外模式(子模式/用户模式):是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
(3)内模式(存储模式):一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
概念模式决定存储结构
5.数据库的二级映像功能
(1)外模式/模式映像---模式变,外模式不变,保证了数据的逻辑独立性
(2)模式/内模式映像---内模式变,模式不变,保证了数据的物理独立性
数据独立性分为逻辑独立性和物理独立性
6 | 数据库中可能存在不一致的数据,主要有以下三个原因: (1)数据冗余; (2)并发控制不当; (3)故障或者错误 |
7.层次模型:不能直接表示多对多关系
面向对象模型:每一个对象都有一个唯一的标识
关系数据模型:完整性约束、数据结构和数据操作
8.表间关系:数据库中表之间的关系一般定义为一对多的关系,一对一关系是一对多中特殊的关系,多对多关系可以被转化为一对多关系实现,即,表间的关系都可以定义为一对多的关系
9.SQLServer2008
(1)身份验证模式有Windows身份验证模式和混合模式(SQLSever和Windows身份验证模式)
(2)支持的安装方式有无人值守安装、本地安装和远程安装三种
10.新建的数据库至少包含日志文件和主要数据文件
第二章 关系数据库基本理论
一个给定的应用领域中,所有关系的集合构成一个关系数据库
1.关系模型要求关系必须是规范化的,规范条件中最基本的是:关系的每一个分量必须是一个不可分的数据项
在一个关系中,不能有完全相同的元组
2.关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性
(1)实体完整性:
(2)参照完整性
(3)用户定义的完整性
3.关系代数的运算
(1)传统的集合运算(二目运算):并、差、交、笛卡尔积
注:参与差运算的两个关系属性数目必须相同
(2)专门的集合运算
1)选择(σ):在关系R中选择满足给定条件的诸元组
2)投影(π):从R中选择出若干属性列组成新的关系
3)连接(join):从两个关系的笛卡尔积中选取属性间满足一定条件的元组
等值连接:选取属性值相等的元组
自然连接(特殊的等值连接):要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。
4)除
(3)五种基本运算:并、差、选择、投影和笛卡尔积
4.关系数据理论:
(1)函数依赖:
只出现在→左边的一定是候选码(成员)
只出现在→右边的一定不是候选码
→左右都不出现的一定是候选码
(2)范式:
1NF:关系中的每个属性都不可再分
2NF:在1NF的基础上消除非主属性对码的部分函数依赖
3NF:在2NF的基础上消除非主属性对码的传递函数依赖
BCNF:在3NF的基础上消除主属性对码的部分和传递函数依赖
5 | 数据库设计存在的问题:数据冗余、插入异常、删除异常、修改异常---规范化的原因 插入异常:该插入的没插入 |
6.并行数据库常用的划分技术:轮转法、散列分布和范围分布---使查询处理时间最小化
7.元数:关系模型中属性的个数,即列数
第三章 数据库完整性
数据库的完整性是指数据的正确性和相容性
1.数据的正确性:数据符合现实世界语义
数据的相容性:数据库同一对象在不同关系表中的数据是符合逻辑的
2.实体完整性:基本属性中主属性不能取空值
---用PRIMARY KEY定义(列级定义主码PK/表级定义主码PK)
违约处理:拒绝插入或修改
3.参照完整性---用FOREIGN KEY定义(表级定义外码FK)
违约处理:
(1)拒绝执行---默认策略
(2)级联操作---删除或修改参照表中的所有导致不一致的元组
(3)设置为空值---将参照表中的所有造成不一致的元组的对应属性设置为空值
4.完整性约束
(1)命名子句:CONSTRAINT---可以灵活地增加(ADD)、删除(DROP)一个完整性约束条件
(2)完整性约束主要有三种子句:主键子句、检查子句和外键子句
注:在关系模型的完整性约束中,引用完整性规则要求不允许引用不存在的元组
5.触发器(事件-条件-动作规则):用户定义在关系表上的一类由事件驱动的特殊过程
(1)唤醒调用触发器以响应INSERT、UPDATE或DELETE语句
(2)建立触发器:CREATE TRIGGER
(3)删除触发器:DROP TRIGGER
第四章 关系数据库标准语言SQL(结构化查询语言)
1.数据定义
(1)定义模式:CREATE SHCEMA---AUTHORIZATION
2.空值与另一个值的算术运算结果为空值
空值与另一个值的比较运算结果为UNKNOWN
3 | 视图是定义在多张表上的虚表,所以视图的定义功能强于基本表 视图中数据更新有诸多限制,且不能定义在多张表上,操作功能弱于基本表 控制功能两者相当 |
4.数据库管理系统的功能(SQL语言)
(1)DDL定义:
-WITH ENCRYPTION:进行加密
-WITH CHECK OPTION:保证通过视图进行的修改
注:子模式DDL用来描述数据库的局部逻辑结构
(2)DML操纵:SELECT、INSERT、UPDATE---SET、DELETE---FROM
-DELETE:删除一个或多个元组,不允许*操作
-TRUNCATE(截断):一次性删除表中所有数据
-SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值
(3)DCL控制:
(4)DQL查询:
-IF(A1,A2,A3):如果A1为真值(或非0),那么返回A2;如果A1为假值(或0),那么返回A3
-WHERE子句作用于基本表或视图,从中选择满足条件的元组
-HAVING短语作用于组,从中选择满足条件的组
-CASCADE(级联):相关视图和约束一并被删除
(5)SQL语言的标准库函数COUNT、SUM、AVG、MAX和MIN等,不允许出现在WHERE子句中
5.数字字段最大存储空间为8B
第五章 数据库对象(数据库的组成部分)
1.常见的对象有:表、索引、视图、图表、默认值、规则、触发器(生效条件:插入、更改、删除)、存储过程、用户、系列等
2.窗体组成部分:窗体页脚、窗体页眉、页面页脚、页面页眉、主体
3.数据库的登录用户一般是指数据库管理员用户
第六章 数据库安全
1.数据库的不安全因素:
(1)非授权用户对数据库的恶意存取和破坏
(2)数据库中重要或敏感的数据被泄露
(3)安全环境的脆弱性
2.常用的用户身份鉴别方法:
静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别
3.存取控制机制主要包括定义用户权限和合法权限检查两部分
(1)自主存取控制(C2级)
(2)强制存取控制(B1级)
4.数据库信息的运行安全采取的4项主要措施:
风险分析、审计跟踪、备份与恢复、应急
第七章 并发控制
1.并发操作带来的数据不一致性:丢失修改、不可重复读、读“脏”数据
2.并发控制的主要技术:封锁、时间戳、乐观控制法和多版本并发控制(MVCC)等
3.封锁类型
(1)排他锁(写锁/X锁):允许读取和修改,不允许其他事务加任何类型的锁,不允许其他事务读取和修改
(2)共享锁(读锁/S锁):允许读取,不允许修改,只允许其他事务加共享锁,其他事务可以读取,不可以修改
4.死锁的预防:一次封锁法、顺序封锁法
5.可串行化(并发事务正确调度的准则)调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些食物时的结果相同
6.冲突操作:不同的事务对同一个数据的读写操作、写读操作和写写操作
注:不同事务的冲突操作和同一事务的两个操作是不能交换的
7.冲突可串行化调度---可串行化调度的充分不必要条件
一个调度A在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度B,如果B是串行的,则称调度A为冲突可串行化的调度。
8.两段锁协议---可串行化调度的充分不必要条件
(1)第一阶段(扩展阶段)---获得封锁:可以申请锁,不能释放锁
(2)第二阶段(收缩阶段)---释放封锁:可以释放锁,不能申请锁
第八章 备份与恢复
1.事务(并发控制的基本单位):用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位
2.事务的ACID特性(数据库管理系统中事务所具有的四个特性):
原子性---事务管理子系统、一致性---完整性子系统、隔离性---并发控制子系统、
持续性(永久性)---恢复管理子系统
3.事务ACID特性可能遭到破坏的因素:
(1)多个事务并行运行时,不同事务的操作交叉执行
(2)事务在运行过程中被强行停止
4.数据库事务的隔离级别(由低到高):读未提交->读已提交->可重复读->可串行化
5.故障的种类:
(1)事物内部的故障:大多是非预期的,是不能由应用程序处理的
解决方法:事务撤销(UNDO)---事务未提交
(2)系统故障(软故障):指造成系统停止运转的任何事件,使得系统要重新启动
解决方法:撤销所有未完成的事务,重做(REDO)所有已提交的事务
(3)介质故障(硬故障),即外存故障
(4)计算机病毒
6.恢复的实现技术(恢复的基本原理---冗余):
(1)数据转储---转存数据冗余一般是日志文件和数据库后备副本
静态转储:无运行事务时进行的转储操作
动态转储:转储期间允许对数据库进行存取或修改
海量转储:每次转储全部数据库
增量转储:每次只转储上一次转储后更新过的数据
(2)登记日志文件
两条原则(保证数据库是可恢复的):
1)登记的次序严格按并发事务执行的时间次序
2)必须先写日记,后写数据库
注:事务故障的恢复是由系统自动完成的,对用户是透明的
7.具有检查点的恢复技术:在日志文件中增加一类新的记录---检查点记录,增加一个重新开始文件
,并让恢复子系统在登录日志文件期间动态地维护日志
8.灾难恢复操作可以分为三类:全盘恢复(系统恢复)、个别文件恢复和重定向恢复
9.数据恢复的方式有数据备份和日志文件
第九章 数据库应用系统设计
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
建立一个数据库,需要经过概念设计和物理设计阶段。
数据库设计的基本步骤:
1.需求分析阶段:数字字典、全系统中数据项、数据结构、数据流、数据存储的描述
2.概念结构设计阶段:概念模型(E-R图)、数据字典
(1)E-R图:提供了表示实体型(矩形)、属性(椭圆形)和联系(菱形)的方法
(2)在开发一个大型信息系统时,最经常采用的策略是自顶向下地进行需求分析,然后再自底向上地设计概念结构。即首先设计各子系统的分E-R图,然后将它们集成起来,得到全局E-R图。
(3)E-R图的集成:
1)合并E-R图,生成初步E-R图
E-R图之间的合并冲突主要由三类:属性冲突、命名冲突和结构冲突
2)消除不必要的冗余,设计基本E-R图
(4)概念模型是现实世界到机器世界的一个中间层次,独立于具体的机器和DBMS
(5)概念结构设计有四种方法:自顶向下、自底向上、逐步扩张和混合策略
(6)视图设计一般有三种设计次序:自顶向下、自底向上和由内向外
3.逻辑结构设计阶段:某种数据模型(关系、非关系)
E-R模型向关系模型的转换(一般原则:一个实体型转换为一个关系模式)
关系模式:即对关系结构的描述
(1)1:1联系:可转换成一个独立的关系模式,也可以与任意一端对应的关系模式合并
(2)1:n联系:可转换为一个独立的关系模式,也可以与n端对应的关系模式合并
(3)m:n联系:转换为一个关系模式
(4)三个或三个以上实体间的一个多元联系:转换为一个关系模式
(5)具有相同码的关系模式可合并
4.物理结构设计阶段:存储安排、存储方法选择、存储路径建立
(1)数据库的物理设计通常分为两步:
1)确定数据库的物理结构:确定数据的存放位置、确定系统配置
2)对物理结构进行评价
(2)关系模式存取方法选择:
1)B+树索引存取方法的选择
2)hash索引存取方法的选择
3)聚簇存取方法的选择
5.数据库实施阶段:创建数据库模式、装入数据、数据库试运行
6.数据库运行和维护阶段:性能监测、转储/恢复、数据库重组和重构
7.结构化程序设计方法主要由三种基本结构组成:顺序结构、循环结构和选择结构
需求分析---数据流图
概念设计---E-R图
逻辑设计---关系模式
物理设计---索引