欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

1.1 数据库系统概述

程序员文章站 2022-03-24 13:37:18
# **1.1 数据库系统概述:** ## **1.1.1 数据库的组成**![在这里插入图片描述](https://img-blog.csdnimg.cn/20181224232336368.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naG ......

# **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>