一、数据库系统概述
1、数据是描述事物的符号记录,是指用物理符号记录下来的、可鉴别的信息。
2、数据库(Database,DB)通俗的被称为存储数据的仓库,严格意义讲,是长期存储在计算机中有组织、可共享的数据集合,且数据库的数据按一定的数据模型组织、描述和存储,具有较小冗余度、较高的数据独立性,系统易于扩展,并可以被多个用户共享。
特点:永久存储,有组织的,可共享的。
3、数据库管理系统(Database Management System,DBMS)是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。
主要功能:数据定义功能,数据操纵功能,数据库的运行管理功能,数据库的建立和维护功能,数据组织、存储和管理功能,其他功能
4、数据库系统(Database System,DBS)是指在计算机中引入数据库技术之后的系统
5、数据库管理技术经历了人工管理、文件系统和数据库系统三个阶段
6、人工管理阶段特点:数据不保存,应用程序管理数据,数据面向应用
7、文件系统阶段,是将数据的逻辑结构和物理结构分离。提供了物理数据独立性,不能实现数据的普通共享。
8、数据库系统阶段,特点有数据集成,数据共享性高,数据冗余小,数据一致性,数据独立性高,实施统一管理与控制(数据的安全性,数据的完整性,并发控制,故障恢复),减少应用程序开发与维护的工作量。
9、数据库系统结构,三级模式结构指模式、外模式、内模式构成。
10、模式也称概念模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
11、外模式也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
12、内模式也称存储模式,是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。
13、三级模式结构的两层映像与数据独立性
外模式/模式映像:外模式不受概念模式的变化影响,保证了数据与程序的逻辑独立性。
模式/内模式映像:概念模式不受内模式变化的影响,保证了数据与程序的物理独立性。
14、客户/服务器结构(B/S),浏览器/服务器结构(C/S)
15、数据模型通常由数据结构、数据操作、数据约束三要素组成。
数据结构描述的是系统的静态特性,即数据对象的数据类型、内容、属性以及数据对象之间的连续。
数据操作描述的是系统的动态特性,是对各种对象的实例允许执行的操作集合,包括操作及有关操作规则。
数据约束描述数据结构中数据间的语法和语义关联,包括相互制约与依存关系以及数据动态变化规则,以保证数据的正确性、有效性与相容性。
16、数据模型分两类:一概念层数据模型,二逻辑层数据模型和物理层数据模型。
17、概念层模型,信息世界包含 实体,属性,码或键,域,实体型,实体集,联系;
概念模型表示,实体用矩形框表示,写实体名称,属性用椭圆表示,用无向边与实体连接,联系用菱形表示,写联系名称,用无向边与实体连接,并在无向边旁标上联系的类型(1:1、1:N、或M:N),联系如果有属性,也用无向边连接。
18、逻辑层数据模型,包括层次模型(例:组织机构),网状结构,关系结构,面向对象模型。
19、物理层数据模型,物理模型的设计目标是提高数据库性能和有效利用存储空间。

二、关系数据库
1、表,关系,列,属性,行,元组,分量,码或键,超码或超键,候选码或候选键,主码或主键,全码或全键,主属性和非主属性,外码或外键,参照关系和被参照关系,域,数据类型,关系模式,关系数据库。
2、关系操作,查询Query和插入Insert,删除Delete,修改Update两大操作。查询操作包括选择,投影,连接,除,并,差,交,笛卡尔积等。
3、关系操作能力,代数方式和逻辑方式
4、关系的完整性约束:实体完整性约束,参照完整性约束,用户定义完整性约束,关系模型完整性约束
5、关系模式的问题:数据冗余,更新异常,插入异常,删除异常
6、X函数决定Y或Y函数依赖于X,X->Y,X称为决定因素。完全函数依赖,部分函数依赖,传递函数依赖
7、X为U的子集,若有完全函数依赖X->U,X为R的一个候选关键字。
8、第一范式:设R为任一给定关系,如果R中每个列与行的交点处的取值都是不可再分的基本元素,则R为第一范式
9、第二范式:设R为任一给定关系,若R为1NF,且其所有非主属性都完全函数依赖于候选关键字,则R为第二范式
10、第三范式:设R为任一给定关系,若R为2NF,且其每一个非主属性都不传递函数依赖于候选关键字,则R为第三范式
11、BCNF:设R为任一给定关系,X,Y为其属性集,F为其函数依赖集,若R为3NF,且其F中所有函数依赖X->F(Y不属于X)中的X必包含候选关键字,则R为BCNF

三、数据库设计
1、数据库生命周期,两个阶段,数据库分析与设计阶段(需求分析、概念设计、逻辑设计和物理设计),数据库实现与操作阶段(数据库的实现、操作与监督、修改与调整)
2、数据库设计两个目标,满足应用功能需求和良好的数据库性能
3、数据库设计内容,数据库结构设计,数据库行为设计
4、设计方法:直观设计法,规范设计方法(新奥尔良设计方法,基于E-R模型的数据库设计方法,基于第三范式的设计方法),计算机辅助设计法
5、数据库设计过程:需求分析阶段,结构设计阶段,其包括概念结构设计、逻辑结构设计和物理结构设计;行为设计阶段,其包括功能设计、事务设计和程序设计;数据库实施阶段,其包括加载数据库数据和调试运行应用程序;数据库运行和维护阶段。
6、设计的基本步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行和维护。
7、概念结构设计方法:E-R图,实体用矩形框表示,写实体名称,属性用椭圆表示,用无向边与实体连接,联系用菱形表示,写联系名称,用无向边与实体连接,并在无向边旁标上联系的类型(1:1、1:N、或M:N),联系如果有属性,也用无向边连接。
两个实体型之间的联系:一对一(1:1),一对多(1:N),多对多(M:N)
两个以上的实体型之间联系:
单个实体型内的联系
8、局部信息结构设计:确定局部范围,选择实体,选择实体的关键字属性,确定实体间联系,确定实体的属性
9、全局信息结构设计,冲突表现:属性冲突(属性域冲突,属性取值单位冲突),命名冲突(同名异议,异名同义),结构冲突(在这儿为实体,在那儿为属性;在不同E-R图中个数和类型不同;联系在不同E-R图中有不同类型)
10、逻辑结构设计方法:E-R图向关系模型的转换,数据模型的优化,设计用户子模式,
11、物理设计方法:建立索引,建立聚焦

四、SQL与关系数据库基本操作
1、数据定义语言(DDL):create(创建),alter(修改),drop(删除)
2、数据操纵语言(DML):select(查询),insert(添加),update(更新),delete(删除)
3、数据控制语言(DCL):grant(授权),revoke(收回)
4、MySQL两种构架方式:LAMP(Linux+Apache+MySql+PHP/Perl/Python),WAMP(Windows+Apache+MySql+PHP/Perl/Python)
5、掌握:常量,变量,运算符,表达式,内置函数
6、掌握:创建、选择、修改、删除数据库;创建、更新、重命名、删除、查看表;
7、索引:优点索引提高数据的访问效率,提高查询速度,缺点占用空间,降低更新速度;分类:普通索引,唯一索引,主键
8、掌握:索引的创建,查看,删除
9、数据更新:插入数据,修改数据,删除数据
10、数据查询:select ,from ,where ,group by ,having,order by ,limit
case when then else end,count , sum ,max ,min等,交叉连接,内连接,外连接,比较运算(=,>,<,<>,等),between ...and ,in, is null ,子查询,exist
11、视图(view),是虚拟表,引用真实表,不存储数据。优点集中分散数据,简化查询语句,重用SQL语句,保护数据安全,共享所需数据
12、掌握:创建、删除、修改,查看,更新(insert,update,delete),查询视图

五、数据库编程
1、存储过程,优点增强SQL语言的功能和灵活性,良好的封装性,高性能,减少网络流量,确保数据的安全和数据的完整性
2、掌握:创建存储过程,局部变量,set,select..into,流程控制,游标(声明游标,打开游标,读取数据,关闭游标),调用存储过程(call xxxx),删除存储过程
3、掌握:创建函数,调用函数(select xx_func() from table),删除函数

六、数据库安全与保护
1、数据库完整性是指数据库中数据的正确性和相容性,加在数据库数据之上的语义约束条件就是数据库完整性约束。
2、作用对象:列(类型,取值范围,精度,格式等),元组(开始时间小于等于结束时间),表(表关联)
3、定义与实现:实体完整性通过主键约束和候选键约束实现的;参照完整性,通过创建表或更新表时,定义一个外键来实现;用户定义的完整性,非空约束,check约束和触发器
4、命名完整性约束:constraint;更新完整性约束:alter table add constraint xxx
5、触发器,对表操作就自动执行。掌握:创建、删除触发器
6、掌握:创建、删除、修改用户账号,修改用户口令
8、掌握:权限授予,权限的转移,权限的撤销
9、事务:是用户定义的一个数据操作序列,完整的工作单元,不可分隔,全执行或者全不执行。
10、事务特征:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability),简称ACID
原子性:是整体,不可分隔
一致性:全执行或全不执行
隔离性:不被其他事务干扰
持续性:提交后数据的改变就是永久的
11、并发问题:丢失更新,不可重复读,读“脏”数据,
12、解决并发问题:封锁,时间戳,乐观控制法和多版本并发控制
13、封锁类型有排他锁(Exclusive Lock,X锁),共享锁(Shared Lock,S锁),一般写操作要求X锁,读操作要求S锁。
14、封锁颗粒度,描述封锁的数据单元的大小
15、封锁级别,0级封锁(没用),1级封锁(防止丢失更新的发生),2级封锁(还防止读脏数据),3级封锁(防止不可重复读,严格封锁,串行化)
16、活锁,最简单处理办法“先来先服务”;死锁,循环锁住,预防方法:一次性锁请求,锁请求排序,序列号处理,资源剥夺
17、可串行性
18、两段封锁法:发展或加锁阶段,收缩或释放锁阶段
19、备份与恢复。原因:计算机硬件故障,计算机软件故障,病毒,人为误操作,自然灾害,盗窃。
备份:select into...outfile 恢复:load data...infile