1. 数据库基础

技术发展

先后经历 人工管理、文件系统、数据库系统 等3个阶段

 

人工管理阶段

  • 数据 不保存、不共享、不具有独立性

  • 使用 应用程序管理数据

 

文件系统阶段

  • 数据长期保存、共享性差、独立性差

  • 数据冗余

  • 文件系统管理数据

 

数据库系统阶段

  • 长期保存、多用户、多应用程序共享数据

  • 数据库系统管理数据

 

 

 

系统组成

 

 

 

 

 

体系结构

数据库三级模式结构

模式

  • 也称逻辑模式概念模式,用于描述全体数据的逻辑结构和特征

  • 位于三级结构中间层

  • 1 个数据库只有 1 个模式

 

外模式

  • 也称为用户模式

  • 是数据库用户能看到的局部数据,是数据库用户的数据视图

  • 外模式是模式的子集

  • 1个数据库可有n个外模式

外模式是保护数据安全性的一个有力措施

 

内模式

  • 也称为存储模式

  • 数据物理结构存储方式的描述

  • 1个数据库只有1个内模式

 

 

三级模式之间的映射

外模式 - 模式

同一个模式 任意多个外模式,对于每个外模式,数据库系统都存在一个 外模式 - 模式 映射

 

模式 - 内模式

只有一个模式对应一个内模式,所以模式 - 内模式 是唯一的

 

 

 

数据模型

概念

  • 数据模型是数据库系统的核心与基础,是描述 数据与数据之间的联系、数据含义、数据一致性约束的概念性工具集合

  • 数据库模型由数据结构、数据操作、完整性约束组成

 

数据结构:对数据库系统的静态描述,描述包括数据类型、性质、数据之间的相互关系

数据操作:对数据库系统的动态描述,是对数据库各种对象实例的操作

完整性约束:定义数据模型中数据及其联系所具有的制约依存规则

 

 

常见的数据模型

常见的数据模型主要有层次模型、网状模型、关系模型

 

层次模型

树型结构表示实体类型及实体之间联系

  • 每棵树有且仅有一个无双亲节点:根

  • 树中除根外的所有节点有且只有一个双亲

 

网状结构

有向图结构表示实体类型与实体间联系

  • 用网状模型编写应用程序极其复杂,数据独立性差

 

关系模型

二维表来描述数据,关系模型数据结构简单、清晰,很高的数据独立性

 

关系模型基本术语

  • 关系:一个二维表就是一个关系

  • 元祖:二维表的一行,表中的记录

  • 属性:二维表的一列,用类型和值表示

  • 域:每个属性的取值范围,例如性别的域为{男、女}

 

关系模型数据约束

  • 实体完整性约束:主键属性不能为空值

  • 参照完整性约束:关系之间的基本约束

  • 用户自定义完整性约束:具体属性的数值要求

 

关系数据库的规范化

关系数据库的规范化理论认为:关系数据库中的每个关系都要满足一定的范式。可分为5个等级。

一般情况下,满足到第三范式即可 (NF 是Normal Form 缩写)

 

第一范式 1NF

没有多余的重复字段

冗余字段

符合第一范式的例子


不符合第一范式的例子 


 这里有多个昵称,不符合第一范式

 

第二范式 2NF

在第一范式的前提下,每个非主键的字段都要依赖主键字段

主键 -- 非主键 关系


符合第二范式但不符合第三范式的例子 

 

第三范式 3NF 

主键 -- 非主键 -- 非主键

在第二范式基础上,主键和非主键的对应关系:a->b 而不是 a -> b -> c(主键 - 非主键 - 非主键)

第三范式要求,去除传递依赖

简单一点来说,即一个表只处理一个事情

例子:

 

 

 

 

关系数据库的设计原则

  1. 最大限度的共享最小冗余度(不是禁止冗余,要在业务与数据表中做最好的权衡)

  2. 新增、修改数据时保证数据的一致性正确性

  3. 保证数据和使用数据的应用程序之间的独立性

 

 

实体与关系

实体是指客观存在并且可以相互区分的事物,实体即可以是实际事物,也可以是抽象的事物

数据库中实体的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在并行处理、实时性、数据处理和速度方面都有较好的性能

 

 

 

思维导图

 

猜你喜欢

转载自www.cnblogs.com/xiyuan/p/10532743.html