1. 数据库基础
先后经历 人工管理、文件系统、数据库系统 等3个阶段
人工管理阶段
-
数据 不保存、不共享、不具有独立性
-
使用 应用程序管理数据
文件系统阶段
-
数据长期保存、共享性差、独立性差
-
数据冗余大
-
文件系统管理数据
数据库系统阶段
-
长期保存、多用户、多应用程序共享数据
-
数据库系统管理数据
系统组成
体系结构
数据库三级模式结构
模式
-
也称逻辑模式或概念模式,用于描述全体数据的逻辑结构和特征
-
位于三级结构中间层
-
1 个数据库只有 1 个模式
外模式
-
也称为用户模式
-
是数据库用户能看到的局部数据,是数据库用户的数据视图
-
外模式是模式的子集
-
1个数据库可有n个外模式
外模式是保护数据安全性的一个有力措施
内模式
-
也称为存储模式
-
数据物理结构和存储方式的描述
-
1个数据库只有1个内模式
三级模式之间的映射
外模式 - 模式
同一个模式 任意多个外模式,对于每个外模式,数据库系统都存在一个 外模式 - 模式 映射
模式 - 内模式
只有一个模式对应一个内模式,所以模式 - 内模式 是唯一的
数据模型
概念
-
数据模型是数据库系统的核心与基础,是描述 数据与数据之间的联系、数据含义、数据一致性约束的概念性工具集合
-
数据库模型由数据结构、数据操作、完整性约束组成
数据结构:对数据库系统的静态描述,描述包括数据类型、性质、数据之间的相互关系
数据操作:对数据库系统的动态描述,是对数据库各种对象实例的操作
完整性约束:定义数据模型中数据及其联系所具有的制约依存规则
常见的数据模型
常见的数据模型主要有层次模型、网状模型、关系模型
层次模型
树型结构表示实体类型及实体之间联系
-
每棵树有且仅有一个无双亲节点:根
-
树中除根外的所有节点有且只有一个双亲
网状结构
有向图结构表示实体类型与实体间联系
-
用网状模型编写应用程序极其复杂,数据独立性差
关系模型
二维表来描述数据,关系模型数据结构简单、清晰,很高的数据独立性
关系模型基本术语
-
关系:一个二维表就是一个关系
-
元祖:二维表的一行,表中的记录
-
属性:二维表的一列,用类型和值表示
-
域:每个属性的取值范围,例如性别的域为{男、女}
关系模型数据约束
-
实体完整性约束:主键属性不能为空值
-
参照完整性约束:关系之间的基本约束
-
用户自定义完整性约束:具体属性的数值要求
关系数据库的规范化
关系数据库的规范化理论认为:关系数据库中的每个关系都要满足一定的范式。可分为5个等级。
一般情况下,满足到第三范式即可 (NF 是Normal Form 缩写)
第一范式 1NF
没有多余的重复字段
冗余字段
符合第一范式的例子
不符合第一范式的例子
这里有多个昵称,不符合第一范式
第二范式 2NF
在第一范式的前提下,每个非主键的字段都要依赖主键字段
主键 -- 非主键 关系
符合第二范式但不符合第三范式的例子
第三范式 3NF
主键 -- 非主键 -- 非主键
在第二范式基础上,主键和非主键的对应关系:a->b 而不是 a -> b -> c(主键 - 非主键 - 非主键)
第三范式要求,去除传递依赖
简单一点来说,即一个表只处理一个事情
例子:
关系数据库的设计原则
-
最大限度的共享、最小的冗余度(不是禁止冗余,要在业务与数据表中做最好的权衡)
-
新增、修改数据时保证数据的一致性和正确性
-
保证数据和使用数据的应用程序之间的独立性
实体与关系
实体是指客观存在并且可以相互区分的事物,实体即可以是实际事物,也可以是抽象的事物
数据库中实体的3种关系
一对一
表A中存在1条数据与表B中有且只有1条数据相匹配
一对多
表A存在1条数据与表B中的多条数据匹配
多对多
表A的多条数据与表B的多条数据匹配,需要建立第3个表(称为连接表)来实现
连接表包含两个表的主键列
常见关系数据库
Access数据库
Microsoft Office 中包含Access数据库,核心是Microsoft Jet 数据库引擎
SQL Server数据库
微软开发的大型关系数据库系统
优势有2点:
-
统一开发环境:SQL Server2005与VS2005拥有统一的开发环境。高版本未知
-
.net框架集成:SQL Server 2005包含.NET Framework 2.0。高版本未知
Oracle数据库
美国甲骨文公司提供的分布式数据库为核心的软件产品
Oracle是全世界使用最为广泛的关系型数据库
Oracle在并行处理、实时性、数据处理和速度方面都有较好的性能