《软件技术基础》之《数据库基础》
重要的数据库系统概念
数据
数据是一种符号序列,它的内容是事物特性的反映。
数据是对现实世界的事物采用计算机能够识别、存储和处理的方式进行描述,或者说是计算机化的信息。
数据的类型:
- 不仅包括数字、字母、文字和其他特殊字符;
- 而且还包括图形、图像、声音等多媒体数据。
数据的语义描述:
一条数据(结构化数据):(余颖,女,20,四川,销售部,2008,3000)
语义解释:
余颖是公司职员,女,20岁,四川人,2008年进入公司,月薪3000元;
不懂语义则无法解释!
数据库
定义:数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合。
特征:
- 数据按一定的数据模型组织、描述和储存;
- 可为各种用户共享;
- 冗余度较小;
- 数据独立性较高;
- 易扩展。
数据库管理系统
定义:数据库管理系统(Database Management System,简称DBMS)是一个能够让用户定义、创建和维护数据库以及控制对数据库访问的软件系统。
组成:查询处理器和存储管理器。
查询处理器:
- DDL编译器
- DML 编译器
- 嵌入式DML的预编译器
- 查询运行核心程序
存储管理器:
- 授权和完整性管理器
- 事务管理器
- 文件管理器
- 缓冲区管理器
功能:
- 数据库定义功能:提供数据定义语言(DDL,Data Define Language)对各级数据模式精确定义;
- 数据操纵功能:提供对数据库中的数据进行追加、插入、修改、删除、检索等操作。;
- 数据库运行控制功能:提供数据控制语言(DCL,Data Control Language)。数据库的恢复、并发控制、完整性控制、安全性控制;
- 数据库的维护功能:包括数据库的初始数据的载入、转换功能、数据库的转储功能、数据库的重组织功能和性质监视、分析功能等;
- 数据字典:数据字典(DD,Data Dictionary)。DD中存放着数据库三级结构的描述。对于数据库的操作都要通过查阅DD进行;
数据库系统
定义:数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。
注:在不引起混淆的情况下常常把数据库系统简称为数据库。
组成:
- 硬件系统
- 数据库集合
- 数据库管理系统及相关软件
- 数据库管理员(DBA)
- 用户
关系数据库
实体与表
什么是实体:在数据库系统中,一个实体可以是一个人、一个地方、一个事件或一个我们将要为其收集数据的物体。例如,在学校中,实体可能是学生、教师员工、课程等。所有的学生可以组成一个实体集。
实体的属性:每个实体都有某些称为属性的特征,如学生实体可能包含以下属性:学生学号、姓名、性别、入学时间、专业方向等。每个属性必须恰当地命名,以便让用户能够知道它的内容,如学生实体,属性姓名可以存储为STU_NAME,性别可以存储为STU_SEX。
表:
- 表是二维结构,它包括行和列;
- 一个表包括一组相关的实体——实体集;
- 有时,术语实体集和表经常互换使用。
数据列表:
电子表格可对数据进行简单处理,但存在一定问题:
修改操作问题:更改部分数据可能会造成前后信息不一致。
解决方案:用关系表分解
-
将多个主题数据进行拆分,每个主题数据放在一个表中;
-
多个表之间通过关系进行关联;
-
对上面的关系表进行数据行插入、更新和删除,不会出现电子表格中数据操作异常现象。
关系列表
关系数据库使用表来组织数据元素,每一个表对应于一个应用实体集,而每行则代表实体的一个事例。如医院管理系统中医生实体集对应数据库中的表Doctor,该表中的每一行则代表不同的医生。
联系通过将来自于一个表的行标识符(医生编号)出现在一个表示诊断的行中,从而建立了该诊断与这个医生之间的联系。这种表之间通过属性进行联系,构成了关系列表,是关系数据库的一个基础。
数据库系统是用一种称为关系的表来组织数据的。表的各列以属性开始,属性是列的入口。
数据管理技术
数据管理技术的3个发展阶段
- 人工管理阶段
- 文件系统管理阶段
- 数据库系统管理阶段
数据库系统在计算机系统中的位置
数据管理技术体系结构
组成:
- 硬件系统
- 数据库集合
- 数据库管理系统相关软件
- 数据库管理员
- 用户
数据库管理系统及相关软件
- 数据库管理系统(DBMS)是为数据库建立、使用和维护而配置的软件,是数据库系统的核心组成部分;
- 为满足自描述的需求,DBMS还要存储元数据,也就是关于数据的数据;
- 此外支持数据库管理系统运行的操作系统、系统开发软件都是系统软件的组成。
数据库管理员
- 需要专人来对数据库进行管理,这个人称为数据库管理员(DBA);
- 数据库管理员负责数据库系统建立、维护和管理;
- 决定数据库中的信息内容和结构;
- 决定数据库的存储结构和存取策略;
- 定义数据的安全性要求和完整性约束条件;
- 监控数据库的使用和运行:周期性转储数据库:数据文件+日志文件、系统故障恢复、介质故障恢复、监视审计文件;
- 数据库的改进和重组:性能监控和调优、数据重组;
- 数据库重构。
用户
- 一类是最终用户,主要对数据库进行联机查询或通过数据库应用系统提供的界面来使用数据库,这些界面包括菜单、表格、图形和报表;
- 另一类是专业用户,即应用程序员,他们负责设计应用系统的程序模块,对数据库进行操作。
数据库系统结构分类:
根据计算机系统的结构不同,数据库系统结构可分为:
- 集中式
- 客户机/服务器式
- 并行式
- 分布式
- 基于互联网
数据库的三级模式结构
“型” 和“值” 的概念
型(Type):对某一类数据的结构和属性的说明。
值(Value):是型的一个具体赋值。
模式(Schema)
- 是型的描述;
- 反映的是数据的结构及其联系;
- 模式是相对稳定的。
模式的一个实例(Instance)
- 是模式的一个具体值;
- 反映数据库某一时刻的状态;
- 同一个模式可以有很多实例;
- 随数据库中的数据的更新而更新。
三级模式结构
- 内模式(Internal Schema)
- 概念模式(Conceptual Schema)
- 外模式(External Schema)
三级模式的示例:
三级模式的特点:
概念模式
也称模式或逻辑模式,是数据库的总框架。
- 数据库中全体数据的逻辑结构和特征的描述;
- 所有用户的公共数据视图,综合了所有用户的需求;
- 一个数据库只有一个概念模式。
概念模式的地位:
- 是数据库系统模式结构的中间层;
- 与数据的物理存储细节和硬件环境无关;
- 与具体的应用程序、开发工具及高级程序设计语言无关。
概念模式的定义:
- 数据的逻辑结构(数据项的名字、类型、取值范围等);
- 数据之间的联系;
- 数据有关的安全性、完整性要求;
- DBMS提供数据定义语言(DDL)来描述逻辑模式。
- 表结构的定义。
外模式
也称子模式、用户模式、视图。
- 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述;
- 不同用户需求不同,看待数据的方式也可以不同,对数据保密的要求也可以不同,使用的程序设计语言也可以不同,因此不同用户的外模式的描述可以使不同的;
- 数据库用户的数据视图,是模式的子集或变形,与某一应用有关的数据的逻辑表示;
- sql定义的视图。
外模式的地位:
- 介于模式与应用之间;
- 模式与外模式的关系:一对多;
- 外模式通常是模式的子集;
- 一个数据库可以有多个外模式,反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求;
- 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同;
Q:如何理解外模式与应用的“一对多”关系?
A:同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
外模式的用途:是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据。
内模式
也称存储模式。一个数据库只有一个内模式。
- 是数据物理结构和存储方式的描述;
- 是数据在数据库内部的表示方式:记录的存储方式、索引的组织方式、数据是否压缩存储、数据是否加密、数据存储记录结构的规定;
- 要修改存储数据库的结构(例如,用倒排文件代替多链表),那么仅仅需要把这些修改反映在内模式中。
记录的存储方式示例:
顺序存储,按照B树结构存储,按hash方法存储…
外模式/概念模式映射
- 定义外模式与模式之间的对应关系;
- 每一个外模式都对应一个外模式/概念模式映象;
- 映象定义通常包含在各自外模式的描述中。
作用:保证数据的逻辑独立性
- 当模式改变时,数据库管理员(DBA)修改有关的外模式/概念模式映象,使外模式保持不变;
- 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性;
- 数据库系统投入使用后,可能有必要修改模式(如增加新关系、属性、改变类型),这时数据库管理员(DBA)需要重新定义外模式/概念模式映象,但是现存外模式、应用程序不变。
概念模式/内模式映射
- 概念模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的;
- 数据库中概念模式/内模式映象是唯一的;
- 该映象定义通常包含在模式描述中。
作用:保证数据的物理独立性
- 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改概念模式/内模式映象,使概念模式保持不变;
- 应用程序不受影响,保证了数据与程序的物理独立性;
- 当内模式发生变化时,需要重新定义概念模式/内模式映象,但是概念模式、外模式和建立在外模式上的应用程序保持不变。