# 数据库绪论
## 数据管理的三个阶段
### 人工管理阶段
### 文件系统阶段
### 数据库系统阶段
## 基本术语
### 数据（Data）
* 计算机用来描述事物的记录（文字．图形．图像．声音）
* 数据的形式本身并不能完全表达其内容，需要经过语义解释。数据与其语义是不可分的
### 数据库（Database，简称DB）
* 数据库是长期存储在计算机内有结构的大量的共享的数据集合。
### 数据库管理系统（DBMS）
* 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
* 数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。
* 数据库系统（DBS）
    * 数据库系统是指在计算机系统中引入数据库后的系统构成，一般由数据库、数据库管理系统（及其开发工具）、应用系统、数据库管理员和用户构成。 
### 数据冗余度：
* 指同一数据重复存储时的重复程度。 
### 数据的安全性（Security）
* 数据的安全性是指保护数据，防止不合法使用数据造成数据的泄密和破坏，使每个用户只能按规定，对某些数据以某些方式进行访问和处理。 
### 数据的完整性（Integrity）
* 数据的完整性指数据的正确性、有效性和相容性。即将数据控制在有效的范围内，或要求数据之间满足一定的关系。 
### 并发（Concurrency）控制
* 当多个用户的并发进程同时存取、修改数据库时，可能会发生相互干扰而得到错误的结果并使得数据库的完整性遭到破坏，因此必须对多用户的并发操作加以控制和协调。
### 数据库恢复（Recovery）
* 计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏也会影响数据库中数据的正确性，甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态（亦称为完整状态或一致状态）的功能。
## 数据库的三要素
### 数据（描述事物的符号记录，数据库里面存储的内容） 
### 存储器（外存，一般是硬盘，数据库的载体）
### 数据库管理系统（DBMS，数据库的管理软件）
## 数据模型
### 模型
* 是现实世界特征的模拟和抽象
### 数据模型
* 也是一种模型，它是现实世界数据特征的抽象，表示实体以及实体间的联系
* 一个用于描述数据、数据间关系、数据语义和数据约束的概念工具的集合
### 两级模型的抽象
* 一是概念模型
    * （也称信息模型，用于信息世界的建模），它是按用户的观点来对数据和信息建模，主要用于数据库设计。这类模型强调其语义表达能力，要能够较方便、直接地表达应用中的各种语义知识，这类模型应为概念简单、清晰、易于用户理解，是用户和数据库设计人员之间进行交流的语言。
* 二是数据模型
    * （如层次、网状、关系模型，用于机器世界），它是按计算机系统的观点对数据建模，主要用于DBMS的实现。这类模型通常需要有严格的形式化定义，而且常常会加上一些限制或规定，以便于机器上的实现。还通常有一组严格定义了语法和语义的语言，人们可以使用它来定义、操纵数据库中的数据。
### 数据模型的三要素
* （1） 数据结构
    * 数据结构是所研究的对象类型（Object Type）的集合。这些对象是数据库的组成部分。一般可分为两类：一类是与数据类型、内容、性质有关的对象，如网状模型中的数据项、记录，关系模型中的属性、关系等；一类是与数据之间联系有关的对象，如网状模型中的系型（Set Type）等。
* （2） 数据操作
    * 数据操作是指对数据库中各种对象（型）的实例（值）允许执行的操作的集合。数据库主要有检索和更新（插入、删除、修改）两大类操作。
    *  数据结构是对系统静态特性的描述，数据操作是对系统动态特性的描述。
* （3） 数据的约束条件
    * 数据的约束条件是完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则，用以限定符合数据模型的数据状态以及状态的变化，以保证数据的正确、有效、相容。
### 概念模型
* 实体（Entity）
    * 客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物，也可以是抽象的概念或联系，如学生、部门、课程、银行帐户、选课、订货、演出、比赛等。
*  属性（Attribute）
    * 实体所具有的某一特性称为属性。如学生实体可以由学号、姓名、性别、出生年月、系、入学时间等属性组成
* 码（关键字，Key）
    * 唯一标识实体的（最小的）属性集称为码。例如学号学生实体的码
* 域（Domain）
    * 属性的取值范围称为该属性的域。例如学号的域为8位整数，姓名的域为字符串集合，，性别的域为（男，女）。
* 实体型（Entity Type）
    * 具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻划同类实体，称为实体型。例如：学生（学号，姓名，性别，出生年月，系，入学时间）
* 实体集（Entity Set）
    * 同型实体的集合称为实体集。例如，全体学生就是一个实体集。
* 联系（Relationship）
    * 在现实世界中，事物内部以及事物之间是有联系的，这些联系在信息世界中反映为实体（型）内部的联系和实体（型）之间的联系。〖组成实体的各属性之间以及不同实体集之间的联系〗
## 联系的种类
### 1对1联系
* 定义：若对于实体集A中的每一个实体，实体集B中至多有一个实体与之联系，反之亦然，则称实体集A与实体集B具有一对一联系，记为1:1。
### 1对多联系
* 定义：若对于实体集A中的每一个实体，实体集B中有n个实体(n≥0)与之联系，反之，对于对于实体集B中的每一个实体，实体集A中至多只有一个实体与之联系，则称实体集A与实体集B具有一对多联系，记为1:n
### 多对多联系
* 定义：若对于实体集A中的每一个实体，实体集B中有n个实体(n≥0)与之联系，反之，对于对于实体集B中的每一个实体，实体集A中也有m个实体(m≥0)与之联系，则称实体集A与实体集B具有多对多联系，记为m:n
## 概念模型的表示方法
### E-R图
* 使用长方形来表示实体型，框内写上实体名
* 椭圆型表示实体的属性，并用无向边把实体和属性连接起来
* 用菱形表示实体间的联系，菱形框内写上联系名，用无向边把菱形分别与有关实体相连接，在无向边旁标上联系的类型，若实体之间联系也具有属性，则把属性和菱形也用无向边连接上
* 
## 基本数据模型
### 层次模型(Hierarchical Model)
* 最早使用的一种模型
* 数据结构是一棵有向树
* 特点
    * (1) 有且仅有一个结点无双亲，该结点称为根结点。
    * (2) 其他结点有且只有一个双亲
### 网状模型(Network Model)
* 数据结构是一个有向图
* 特点
    * （1）有一个以上的结点没有双亲
    * （2）结点可以有多于一个的双亲
* 能表示实体之间的多种复杂联系
### 关系模型(Relational Model)
* 关系模型是用二维表格结构来表示实体及实体之间的联系的模型
* 数据结构是一个“二维表框架”组成的集合
* 关系模型概念简单,清晰,用户易懂易用,有严格的数学基础
* 大多数数据库系统都是关系型的
* 主要术语
    * 关系：一个关系对应于我们平常讲的一张表
    * 元组：表中的一行称为一个元组
    * 属性：表中的一列称为属性，每列的名称为属性名
    * 主码：表中的某个属性组，它们的值唯一的标识一个元组
    * 域：属性的取值范围
    * 分量：元组中的一个属性值
    * 关系模式：对关系的描述，用关系名（属性名1，属性名2，…，属性名n）来表示
* 特点
    * 1. 概念单一：
        * 实体或实体之间的联系都用关系表示
        * 用户的观点里，数据的逻辑结构就是表
    * 2. 关系必须是规范化的关系
        * 指在关系模型中，每一个关系模式要满足一定的要求或者称为规范条件
        * 其最基本的要求是每一个分量是一个不可分的数据项，也就是说，不允许表中还有表。
    * 3. 用户对数据的检索操作不过是从原来的表中得到一张新的表
        * 在用户眼中，无论是原始数据还是结果数据，都是同一种数据结构——二维表。
        * 数据操作是集合操作，即操作对象和操作结果都是若干元组的集合，而不象非关系模型中那样单记录的操作方式。
        * 把存取路径向用户隐藏起来，提高了数据的独立性。
## 数据库系统的体系结构
### 三层模式：外模式、模式、内模式 
* 外模式
    * 又称为用户模式，是数据库用户和数据库系统的接口，是数据库用户的数据视图，是数据库用户可以看见和使用的局部数据的逻辑结构和特征的描述
    * 一个数据库通常都有多个外模式。一个应用程序只能使用一个外模式，但同一外模式可为多个应用程序所用
* 模式
    * 可细分为概念模式和逻辑模式，是所有数据库用户的公共数据视图，是数据库中全部数据的逻辑结构和特征的描述。 
    *     •一个数据库只有一个模式。模式不但要描述数据的逻辑结构，还要描述数据之间的联系、数据的完整性、安全性要求。 
* 内模式
    * 又称为存储模式，是数据库物理结构和存储方式的描述，是数据在数据库内部的表示方式。 
    *     •一个数据库只有一个内模式。内模式并不涉及物理记录，也不涉及硬件设备。
### •二层映象功能：外模式/模式映象和模式/内模式映象 
* 三层模式关系
    * 数据库模式是数据库的核心和关键，外模式通常是模式的子集。数据按外模式的描述提供给用户，按内模式的描述存储在硬盘上，而模式介于外、内模式之间，既不涉及外部的访问，也不涉及内部的存储，从而起到隔离作用，有利于保持数据的独立性，内模式依赖于全局逻辑结构，但可以独立于具体的存储设备
* 映象
    * 是一种对应规则，说明映象双方如何进行转换。 
* 外模式/模式映象
    * 作用：把描述局部逻辑结构的外模式与描述全局逻辑结构的模式联系趣来
    * 当模式改变时，只要对外模式/模式映象做相应的改变，使外模式保持不变，则以外模式为依据的应用程序不受影响，从而保证了数据与程序之间的逻辑独立性，也就是数据的逻辑独立性 
* 模式/内模式映象
    * 作用：把描述全局逻辑结构的模式与描述物理结构的内模式联系起来
    * 当内模式改变时，比如存储设备或存储方式有所改变，只要模式/内模式映象做相应的改变，使模式保持不变，则应用程序就不受影响，从而保证了数据与程序之的物理独立性。
*XMind: ZEN - Trial Version*