1.1 数据库系统概述
# **1.1 数据库系统概述:**
## **1.1.1 数据库的组成**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224232336368.png?x-oss-process=image/watermark,type_zmfuz3pozw5nagvpdgk,shadow_10,text_ahr0chm6ly9ibg9nlmnzzg4ubmv0l3fxxzmzmdmzode5,size_16,color_ffffff,t_70)
## **1.1.2 数据库系统的特点**
**1、数据结构化**
**2、数据的共享性高,冗余度低且易扩充**
**3、数据独立性高**
**4、数据由数据库管理系统统一管理和控制**
数据的整体结构化是数据库的主要特征之一
### **整体结构化:**
1、不再仅仅针对某一个应用,而是**<font color=red>面向全组织</font>**
2、不仅数据内部结构化,整体是结构化的,数据之间具有联系
3、数据记录可以变长
4、<font color=red>**数据的最小存取单位是数据项**</font>
数据面向整个系统,可以被多个用户、多个应用共享使用
### **数据共享的好处**
**1、<font color=red>减少</font>数据冗余,<font color=red>节约</font>存储空间**
**2、避免数据之间的<font color=red>不相容性</font>与<font color=red>不一致性</font>**
**3、使系统<font color=red>易于扩充</font>**
### **物理独立性**
指用户的应用程序与数据库中的数据的物理存储是相互独立的。当数据的物理地址存储改变了,应用程序不用改变。
### **逻辑独立性**
指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。
数据独立性由数据库管理系统的二级映像功能来保证。
# **1.2 数据模型**
## **1.2.1 两类数据模型**
### **数据模型分为两类:(两个不同的层次)**
**(1)概念模型**:也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计
**(2)逻辑模型和物理模型:**
1、逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于dbms实现。
2、物理模型是对数据最底层的抽象,描述数据在内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
客观对象的抽象过程:
### **客观对象的抽象过程:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224232429126.png?x-oss-process=image/watermark,type_zmfuz3pozw5nagvpdgk,shadow_10,text_ahr0chm6ly9ibg9nlmnzzg4ubmv0l3fxxzmzmdmzode5,size_16,color_ffffff,t_70)
## **1.2.2 概念模型**
**基本要求:**
1、较强的语义表达能力
2、简单、清晰、易于用户理解
**概念模型的一种表示方法:**实体-联系方法
**实体:**(例如:对象、事件、人)
1、对业务活动很重要的“事物”,我们必须知道该“事物”的数据
2、一个可以列举出一系列相似事物的名称
3、通常为名词
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224232501559.png?x-oss-process=image/watermark,type_zmfuz3pozw5nagvpdgk,shadow_10,text_ahr0chm6ly9ibg9nlmnzzg4ubmv0l3fxxzmzmdmzode5,size_16,color_ffffff,t_70)
**实例**:实例是实体的一种具体形式
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018122423310547.png)
**属性**:像实体一样,属性用于表示一些对业务活动很重要的信息。(一个属性只有一个值)
1、描述一个实体
2、量化一个实体
3、限定一个实体
4、为实体分类
5、指定了一个实体
<font color=red>注:一个属性只有一个值</font>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224233014754.png)
**易变属性**:属性(如年龄)的值是时常变化的。
**非易变属性**:属性(如订货日期)则几乎不变。
**<font color=red>注:如果可以选择属性,请使用非易变属性。(例如:使用出生日期代替年龄)</font>**
**标识符:**具有一个唯一标识符(uid)
uid是一个属性或多个属性的组合。
**联系**:现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
**实体内部的联系**:通常是指组成实体的<font color=red>各属性之间的联系。</font>
**实体之间的联系**:通常是指<font color=red>不同实体集之间</font>的联系。
实体之间的联系有<font color=red>一对一</font>、<font color=red>一对多</font>、和多对多等多种类型。
**实体-联系方法:**
1、用e-r图来描述现实世界的概念模型
2、e-r方法也称为e-r模型
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018122423295769.png?x-oss-process=image/watermark,type_zmfuz3pozw5nagvpdgk,shadow_10,text_ahr0chm6ly9ibg9nlmnzzg4ubmv0l3fxxzmzmdmzode5,size_16,color_ffffff,t_70)
## **1.2.3数据模型的组成要素**
1、**数据结构:**是对系统静态特性的描述
2、**数据操作**:查询、更新(包括插入、删除、修改)
3、**数据的完整性约束条件**:为了<font color=red>**防止不符合规范的数据**</font>进入数据库,在用户对数据进行插入、修改、删除等操作是,dbms自动<font color=red>**按照一定的约束条件对数据进行监测**</font>,使**<font color=red>不符合规范的数据不能进入数据库</font>**,以**<font color=red>确保数据库中存储的数据正确、有效、相容。</font>**
**① 实体完整性**:规定表的每一行在表中是唯一的实体。(**<font color=red>用主键来实现</font>**)
**②域完整性**:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。(**<font color=red>数据类型来实现</font>**)
**③参照完整性**:是指两个表的主关键字和外键字的数据应一致,保证表之间的数据一致性,防止了数据的丢失或无意义的数据在数据库中扩散。(**<font color=red>用外键来实现</font>**)
**④用户定义的完整性**:针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。(**<font color=red>check或程序来实现</font>**)
## **1.2.4常用的数据模型**
**1、层次模型**:用**<font color=red>树形结构</font>**来表示各类实体以及实体间的联系
特点:结点的双亲是唯一的
只能直接处理一对多的实体联系
每个记录类型可以定义一个排序字段,也称为码字段
任何记录值只有按其路径查看时,才能显示它的全部意义
没有一个子女记录值能够脱离双亲记录值而独立存在
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224232935964.png?x-oss-process=image/watermark,type_zmfuz3pozw5nagvpdgk,shadow_10,text_ahr0chm6ly9ibg9nlmnzzg4ubmv0l3fxxzmzmdmzode5,size_16,color_ffffff,t_70)
**2、网状模型:**
用树形结构来表示各类实体以及实体间的联系
1、允许一个以上的节点无双亲
2、一个节点可以有多于一个的双亲
**3、网状模型与层次模型的区别:**
1、网状模型允许多个节点没有双亲节点
2、网状模型允许节点有多个双亲节点
3、网状模型允许两个节点之间有多种联系(复合联系)
4、网状模型可以更直接地描述现实世界
5、层次模型实际上是网状模型的一个特例
**4、关系模型:**
1、关系:一个关系对应通常说的一张表
2、元组:表中的一行即为一个元组,也叫记录,行
3、属性:表中的一列即为一个属性,给每一个属性起一个名称即为属性名,也叫列或者字段
4、主码:也称码键。表中的某个属性组,它可以唯一的确定一个元组。(主键)
5、域:是一组具有相同数据类型的值的集合。属性取值范围来自某个域。(数据类型)
6、值:元组中的一个属性值。(值)
**<font color=red>关系最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。</font>**
**5、关系的完整性约束条件:**
1、实体完整性
2、域完整性
3、参照完整性
4、用户自定义的完整性
**优点:**
1、建立在严格的数学概念的基础上
2、概念单一
①实体和各类联系都用关系来表示
②对数据的检索结果也是关系
3、关系模型的存取路径对用户透明
①具有更高的数据独立性,更好的安全保密性
②简化了程序员的工作和数据库开发建立的工作
**缺点:**
1、存取路径对用户透明,查询效率往往不如格式化数据模型
2、为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
# **1.3数据库系统的结构**
**数据库系统的结构分为:**
**1、单用户结构**
**2、主从式结构**
**3、分布式结构**
**4、客户-服务器**
**浏览器-应用服务器 / 数据库服务器多层结构等**
## **1.3.1数据库系统模式的概念**
**“型”和“值”的概念:**
**型**:对某一类数据的结构和属性的说明
**值**:是型的一个具体赋值
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224232858824.png)
**模式:**
1、数据库逻辑结构和特征的描述
2、是型的描述,不涉及具体值
3、反映的是数据的结构及其联系
4、模式是相对稳定的
**实例:**
1、模式的一个具体值
2、反映数据库某一时刻的状态
3、同一个模式可以有很多实例
4、实例随数据库中的数据更新而变动
## **1.3.2数据库系统的三级模式结构**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224232821288.png?x-oss-process=image/watermark,type_zmfuz3pozw5nagvpdgk,shadow_10,text_ahr0chm6ly9ibg9nlmnzzg4ubmv0l3fxxzmzmdmzode5,size_16,color_ffffff,t_70)
**模式:也称逻辑模式**
1、数据库中全体数据的逻辑结构和特征的描述
2、所有用户的公共数据视图
<font color=red>一个数据库只有一个模式</font>
**外模式:(也称子模式或用户模式)**
1、数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
2、数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
**内模式:(也称存储模式)**
1、是数据物理结构和存储方式的描述
2、是数据在数据库内部的表示方式
<font color=red>一个数据库只有一个内模式</font>