数据库部分
1. 关系型数据库的三范式
关系型数据库在设计表时要遵循的规范
- 第一范式:数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。(保持数据的原子性)列的不可分割
- 第二范式:要求数据库表中的每个行必须可以被唯一区分看。为实现区分通常要加上一个列,以存储各个实例的唯一标识。(主键)
- 第三范式:要求一个数据库表中不包含已在其它表中已包含的非主键关键字信息。(使用外键关联)。在满足第二范式的基础上,在实体中不存在非主键属性传递函数依赖于主键属性。(表中字段[非主键]不存在对主键的传递依赖)。
- 反三范式:
为了效率可以设置重复或者可以推倒出的字段。
2. 事务的四个基本特征 (ACID特性)
事务是并发控制的单位,是用户定义一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。
- 原子性:表示事务内操作不可分割,要么都成功,要么都失败。
- 一致性:要么都成功,要么都失败,失败了要对前面的操作进行回滚。
- 隔离性:一个事务开始后,不能受其他事务干扰。
- 持久性/持续性:表示事务开始了就不能终止。
3. MySQL数据库的默认最大连接数
为什么需要最大连接数,服务器上的数据库只能支持一定数目同时连接,这个时候我们设置最大连接数(最多同时服务多少连接)。在数据库安装时会有一个默认的最大连接数为100。
4. MySQL和Oracle的分页
-
MySQL使用关键字limit来分页,
limit offset,size
表示从多少索引去多少位。"select * from students order by id limit "+pageSize*(pageNumber-1)+","+pageSize;
Oracle 一般三层嵌套查询
"select * from
(select * ,rownum rid from
(select * from students order by postime desc)
where rid <= "+pageSize*pageNumber+") t
where t>"+pageSize*(pageNumber-1);