1、数据库的模式
三级模式:外模式\用户模式 ——概念模式 ———内模式
两级独立性:物理独立性:当数据的物理存储改变时,应用程序不需要改变;逻辑独立性:当数据的逻辑结构发生变化时,应用程序不需要改变。一般来说,后者较难实现。
外模式如提供给用户的视图。
概念模式就是存储的基本表
内模式就是存储文件
2、关系模型
包含在任何候选关键字(候选键)的属性被称为主属性。反之则被称为非主属性。候选键有很多个(组),但是主键只有一个(组),在候选键中进行选择。如果两个关系具有公共属性,且在一个关系中这些公共属性是主键,那么则称这些公共属性为另一个关系的外键。
第一范式:所有属性只包含原子值,不能继续分割
数据冗余:表中的数据有多余的部分
更新异常(修改异常):比如说一个学生转系,就要更改很多个字段才行。
插入异常:比如说学校新建了一个系,但是并没有招收学生,就无法插入系
删除异常:比如说删除了一个系的所有学生,但是
第二范式:每个非键属性完全依赖于主属性时。不能有非键属性不能被主属性所唯一决定的情况。如果满足第一范式且只有一个主属性,那么一定满足第二范式,因为不可能出现组合关键字的情况。如果满足第一范式有多个主属性,如果有一个非属性,只依赖于主属性中的一个或者是部分而非全部主属性,则认为不满足第二范式。可以减轻数据冗余,更新异常,插入异常和删除异常等等。根据这些原则我们将生面的表改进为如下
注意仍然有问题
数据冗余
更新异常:修改一个学生的系只需要修改系名和系主任,有改进
删除异常:删除某个系全部学生系信息丢失,无改进
插入异常:插入新的系但没有学生会失败,无改进。
第三范式:第三范式,不存在非主属性传递依赖于主属性。可以消除数据冗余,更新异常,插入异常和删除异常等等。
3、数据库访问接口:开放的数据库互联有ODBC,由微软提出,支持SQL,对数据库的操作不依赖于数据库种类,sql server,oracle,access都可以使用。JAVA使用JDBC和数据库连接。
4、数据库的控制功能:
主要有并发控制。
失误具有原子性,一致性,隔离性,持久性。
同样要进行封锁并解决死锁问题。
为了保证数据库安全性,需要对数据进行备份。主要有如下方式:
物理备份,在数据库管壁(冷备份)或运行的情况下(热备份),保存数据库文件
逻辑备份,采用数据库自带的工具进行数据库导入和导出,但是速度较慢
也可以采用日志文件进行恢复数据。
5、数据库的建模和设计
规划
需求分析:确定系统边界,采用数据流图描述业务流程
概念设计:生成E-R图
逻辑设计:转化为数据模型 —关系规范化—-设计用户模式
物理设计
6、分布式数据库系统
C:一致性。分布式系统中所有数据备份在同一时刻值是否相同
A:可用性。在一部分节点故障后,是否可以正常响应客户端的读写请求。指在一定时间内向客户端返回结果。
P:分区容忍性。当集群中某些节点无法联系时,系统能否正常工作。指集群被分割为若干孤立区域。由于网络硬件一定会出现延迟和丢包的问题,所以分区容忍性必须要实现。
以上三者无法同时满足。上述三点是NoSQL数据库设计的准则。因为NoSQL数据库通常注意的是性能和扩展性,而不是强一致性。
7、数据仓库技术
联机事务处理:操作人员
联机分析处理:决策人员
对略微不一致的数据进行纠正称为数据清洗
8、数据挖掘技术
数据挖掘可以自动找出数据仓库中的模式和关系
常用的分析方法有:关联分析,序列分析,分类分析,聚类分析,预测方法,时间序列分析
9、数据库和事务
数据库正确执行事务的四个基本要素为
A 原子性,要么完成,要么都不完成
C 一致性
I 隔离性
D 持久性
事务的隔离界别:
脏读:另一个事务读取了其他事务尚未提交的更改
不可重复读:同一个事务连续两次读取值不一样
幻读:当涉及对整张表的修改时,其他事务向表中添加了数据,导致表中还有没修改的数据。
可以设置为一下隔离界别
READ_UNCOMMITTED 会出现脏读、不可重复读、幻读 ( 隔离级别最低,并发性能高 )
READ_COMMITTED 会出现不可重复读、幻读问题(锁定正在读取的行)
REPEATABLE_READ 锁定所读取的所有行,可能会引起幻读
SERIALIZABLE 保证所有的情况不会发生(锁表)