数据库(一)—— 数据库系统绪论

一、数据库系统概述

1、数据库的4个基本概念

数据、数据库、数据库管理系统、数据库系统

① 数据

数据是数据库中存储的基本对象。

什么是数据?描述事物的符号记录被称为数据。

记录是计算机中表示或存储数据的一种格式或一种方法。

数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。

② 数据库

数据库,是存放数据的仓库。

数据库数据具有永久存储、有组织和可共享三个基本特点。

严格地讲,数据库是存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型描述、组织和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

③ 数据库管理系统

数据库管理系统和操作系统一样,是计算机的基础软件。它的主要功能包括以下几个方面:

a. 数据定义功能

数据库管理系统提供数据定义语言(DDL),它可以方便的对数据库中的对象的组成和结构进行定义。

b. 数据的组织、存储和管理

数据组织和存储的基本目标是提高存储空间的利用率和方便存取。

c. 数据操纵功能

数据库管理系统提供数据操纵语言(DML),它可以操纵数据,实现对数据库的基本操作,如增删查改。

d. 数据库的事务管理和运行管理

数据库在建立、运用和维护时统一由数据库管理系统进行管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

e. 数据库的建立和维护功能

它包括数据库的初始输入、转换功能,数据库的转储、恢复功能,数据库的重组织和性能监视、分析功能等。

f. 其他功能

数据库管理系统与网络中其他软件通信的功能,一个数据库管理系统与另一个数据库管理系统的数据转换功能。

2、数据管理技术的产生和发展

        数据管理是指对数据分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。数据的处理是指对各种数据进行收集、处理、加工和传播的一系列活动的总和。

数据管理三个阶段的比较
  人工管理阶段 文件系统阶段 数据库系统阶段
应用背景 科学计算 科学计算、数据管理 大规模数据管理
硬件背景 无直接存取存储设备 磁盘、磁鼓 大容量磁盘、磁盘阵列
软件背景 没有操作系统 有文件系统 有数据库管理系统
处理方式 批处理 联机实时处理、批处理 联机实时处理、分布处理、批处理
       
数据库的管理者 用户(程序员) 文件系统 数据库管理系统
数据面向的对象 某一应用程序 某一应用 企业、跨国组织等
数据的共享程序 无共享、冗余度极大 共享性差、冗余度大 共享性高、冗余度小
数据的独立性 不独立、完全依赖于程序 独立性差 具有高度的物理独立性和一定的逻辑独立性
数据的结构化 无结构 记录内有结构、整体无结构 整体结构化、用数据模型描述
数据控制能力 应用程序自己控制 应用程序自己控制 由数据管理系统提供数据安全性、完整性、并发控制和恢复能力

3、数据库系统的特点

① 数据结构化

        数据库系统实现数据的整体结构化,数据库的数据不在仅仅针对某一应用,而是面向整个组织或企业,不仅数据内部是结构化的,而且整体是结构化的,数据之间是有联系的。

② 数据的共享度高、冗余度低且易扩充

        数据共享可以大大减少数据冗余,节约存储空间,还能避免数据之间的不相容性与不一致性。

        由于数据是面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。

③ 数据独立性高

        数据独立性包括数据的物理独立性和逻辑独立性。

        物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。

        逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。

④ 数据由数据库管理系统统一管理和控制

数据库管理系统提供以下几下方面的控制功能:

a. 数据的安全性保护

数据的安全性是指保护数据以防止不合法的使用造成数据泄密和破坏。

b. 数据的完整性检查

数据的完整性是指数据的正确性、有效性、相容性。

c. 并发控制

它是对多用户的并发操作加以控制和协调。

d. 数据库恢复

数据库管理系统必须具有将数据库从错误状态恢复到某一已知的正确状态的功能。

总结:

        数据库是长期存储在计算机内有组织、大量、共享的数据集合。它可以提供各种数据共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运行和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。

二、数据模型

数据模型是对现实世界的模拟,它用来描述数据、组织数据和对数据进行操作。数据模型是数据库系统的核心和基础。

数据模型要满足三方面的要求:

① 能比较真实的模拟现实世界;

② 容易为人所理解;

③ 便于在计算机上实现。

1、两类数据模型

第一类:概念模型

        它是按用户的观点对数据和信息进行建模,主要用于数据库设计。

第二类:逻辑模型和物理模型

        逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型和对象关系数据模型、半结构化数据模型等,它是按计算机系统的观点对数据进行建模,主要用于数据库管理系统的实现。

        物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法(或者是磁盘和磁带上的存储方式和存取方法),它是面向计算机系统的,由数据库管理系统来完成物理模型的具体实现。

        为了把现在世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,人们首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,它不是某一个数据库管理系统支持的数据模型,而是概念级的模型,然后再把概念模型转换为计算机上某一数据库管理系统支持的数据模型。

2、概念模型

① 实体(entity)

客观存在并可相互区别的事物称之为实体。

② 属性(attribute)

实体所具有的某一特性称之为属性。

③ 码(key)

唯一标识实体的属性集称为码。

④ 实体型(entity type)

用实体名及其属性名来抽象和刻画同类实体,称为实体型。例如:学生。

⑤ 实体集(entity set)

同一类型实体的集合,称为实体集。例如:全体学生。

⑥ 联系(relationship)

实体之间的联系通常是指不同实体集之间的联系。

实体内部的联系通常是指组成实体的各属性之间的联系。

实体之间的联系有一对一、一对多和多对多等多种类型。

E-R方法是表示实体之间联系的一种表示方法,也被称为E-R模型图。

3、数据模型的组成要素

数据模型是严格定义的一组概念的集合,数据模型通常由数据结构、数据操作和数据的完整性条件三部分组成。

① 数据结构

数据结构描述数据库对象以及对象之间的联系,是对系统静态特性的描述。

② 数据操作

数据操作是对数据库各种对象的实体允许执行的操作的集合,包括操作及其有关的操作规则,它是对系统动态特性的描述。

③ 数据的完整性约束条件

数据的完整性约束条件是一组完整性规则。

完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

4、常用的数据模型

数据库领域常用的逻辑数据模型有:

● 层次模型(hierarchical model)

● 网状模型(network model)

● 关系模型(relational model)

● 面向对象数据模型(object oriented data model)

● 对象关系数据模型(object relational data model)

● 半结构化数据模型(semistructure data model)

其中,层次模型和网状模型统称为格式化模型。

在格式化模型中,实体用记录来表示,实体的属性对应记录的数据项(字段),实体之间的联系转换成记录之间的两两联系。在格式化模型中,数据结构的基本单位是基本层次联系。基本层次联系是指两个记录之间的一对多(包括一对一)的联系。

① 层次模型

层次模型用树形结构来表示各类实体以及实体之间的联系,它只能处理一对多的实体联系。

a. 层次模型之间的数据结构

● 有且只有一个结点没有双亲结点,这个结点称为根结点;

● 根以外的其他结点有且只有一个双亲结点。

层次模型的基本特点:任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

b. 层次模型的数据操纵与完整性约束

        层次模型的数据操纵主要有查询、插入、删除和更新。进行插入操作时,如果没有相应的双亲结点值就不能插入它的子女结点值。进行删除操作时,如果删除双亲结点值,那么相应的子女结点值也会被同时删除。

c. 层次模型的优缺点

优点主要有:

● 层次模型的数据结构比较简单、清晰;

● 层次数据库的查询效率高。

缺点主要有:

● 现实世界中有很多关系是非层次性的,如果结点之间具有多对多联系,不适合用层次模型来表示;

● 如果一个结点具有多个双亲结点,用层次模型表示就很笨拙,对插入和删除的操作限制比较多,应用程序的编写也会很复杂;

● 查询子女结点必须通过双亲结点;

● 由于结构严密,层次趋于程序化。

② 网状模型

a. 网状模型的数据结构

● 允许一个以上的结点无双亲;

● 一个结点可以有多于一个的双亲。

层次模型实际上是网状模型的一个特例。层次模型中子女结点与双亲结点之间的联系是唯一的,而在网状模型中这种联系不唯一。因此要为每个联系命名,并指出与联系有关的双亲记录和子女记录。

b. 网状模型的数据操纵与完整性约束

● 支持记录码的概念,码即唯一标识记录的数据项的集合,比如:学号;

● 保证一个联系中双亲记录和子女记录是一对多的联系;

● 可以支持双亲记录和子女记录之间的某些约束条件,比如:有些子女记录要求有双亲记录存在才能插入,双亲记录删除时连同删除。

c. 网状模型的优缺点

优点主要有:

● 能够更直接的描述现实世界,比如一个结点可以有多个双亲结点,结点之间有多种联系;

● 具有良好的性能,存取效率高。

缺点主要有:

● 结构比较复杂;

● DDL、DML比较复杂,并且要嵌入某一高级语言中,用户不易掌握;

● 由于记录之间的联系是通过存取路径来实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。

③ 关系模型

a. 关系模型的数据结构

从用户观点看,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表。

● 关系:一个关系对应一张表;

● 元组:表中的一行即为一个元组;

● 属性:表中的一列即为一个属性,给每一个属性起一个名称即为属性名;

● 码:表中的属性组,它可以唯一确定一行(元组);

● 域:它是一组具有相同数据类型值的集合,属性的取值范围来自某个域;

● 分量:元组中的一个属性值,关系中的每一个分量必须是一个不可分的数据项;

● 关系模式:对关系的描述,一般表示为关系名(属性1,属性2,....,属性n)。

b. 关系模型的数据操纵与完整性约束

关系模型的数据操纵主要是插入、删除、查询和更新数据。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系。

关系的完整性约束主要包括:实体完整性、参照完整性、用户定义的完整性。

c. 关系模型的优缺点

优点主要是:

● 它是建立在严格的数据概念基础上的;

● 关系模型的概念单一,数据结构简单、清晰;

● 关系模型的存取路径对用户透明,具有更高的数据独立性、更好的安全保密性,简化了程序员的工作。

缺点主要是:

● 由于存取路径对用户是透明的,查询效率往往不如格式化数据模型;

● 增加了开发数据库管理系统的难度。

三、数据库系统的结构

数据库系统通常采取三级模式结构,这是数据库系统内部的系统结构。

1、数据库系统模式的概念

        在数据模型中有“型”(type)和“值”(value)的概念,型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。

        模式(schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的具体值称为模式的一个实例。

        模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

2、数据库系统的三级模式结构

① 模式

       模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。

② 外模式

        外模式也称子模式或用户模式,它是数据库用户能看见并使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,同一外模式也可以为同一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

③ 内模式

        内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式,一个数据库只有一个内模式。

3、数据库的二级映像功能和数据的独立性

        数据库管理系统是三级模式之间提供了两层映像:外模式/模式映像、内模式/模式映像,这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

① 外模式/模式映像

        对于一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是就数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

② 模式/内模式映像

        数据库只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的关系。当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作出相应改变,可以使用模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。

四、数据库系统的组成

1、硬件平台和数据库

① 要有足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序;

② 有足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的光盘作数据备份;

③ 系统要有较高的通道能力,提升数据的传送率。

2、软件

① 数据库管理系统;

② 支持数据库管理系统运行的操作系统;

③ 具有与数据库对口的高级语言及其编译系统;

④ 以数据库管理系统为核心的应用开发工具;

⑤ 为特定环境开发的数据库应用系统。

3、人员

主要包括数据库管理员、系统分析员、数据库设计人员、应用程序员和最终用户。



猜你喜欢

转载自blog.csdn.net/alexshi5/article/details/79686473