🎈目录🎈
🍖三、数据库管理系统(DateBase Management System,DBMS)
🍎一、模式
🍩二、软件
🍩三、人员
1.1 数据库系统概述
1.1.1 数据、数据库、数据库管理系统、数据库系统
一、数据(Data)
数据是数据库中存储的基本对象。
【定义】描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图形、图像、声音、语言等,数据有多种表示形式,它们都可以经过数字化后存入计算机。
二、数据库(DataBase,简称DB)
数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库具有永久存储、有组织和可共享三个基本特征。
三、数据库管理系统(DateBase Management System,DBMS)
数据库管理系统的主要功能包括:
1.数据定义功能
DBMS提供数据定义语言(Data Definition Language,DDL语言),用户通过它可以方便的对数据库中的数据对象进行定义。
2.数据组织、存储和管理
DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。
3.数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML语言),用户可以使用DML操纵数据,实现对数据的基本操作,如 查询、插入、删除和修改 等。
4.数据库的事务管理和运行管理
数据库在建立、运用和维护时由DBMS统一管理,统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用,以及发生故障后的系统恢复。
5.数据库的建立和维护功能
数据库初始数据的输入、转换功能、数据库的转储,恢复功能,数据库的重组织功能和性能监视、分析功能等。
四、数据库系统(DataBase System,DBS)
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
1.1.2 数据管理技术的产生与发展
数据管理技术经历了 人工管理、文件系统、数据库系统3个阶段。
一、人工管理阶段
人工管理数据具有如下特点:
- 数据不保存(当时是纸带打孔,0 1)
- 应用程序管理数据(当时程序与数据是在一起的,就像现在的单机游戏)
- 数据不共享(纸带打完孔就扔了)
- 数据不具有独立性(与程序是绑定在一起的)
缺点:数据的逻辑结构或物理结构发生改变后,必须对应用程序作相应的修改,这就加重了程序员的负担。
二、文件系统阶段
用文件系统管理数据具有以下特点:
- 数据可以长期保存
- 有文件系统管理数据
缺点:
- 数据共享性差,冗余度大
- 数据独立性大
三、数据库系统阶段
用数据库系统管理数据具有如下特点:
- 数据结构化
- 数据的共享性高,冗余度低,易扩充
- 数据独立性高
- 数据由DBMS统一控制和管理
1.2 数据模型
【定义】数据模型 也是一种模型,它是对现实世界数据特征的抽象。数据模型就是现实世界的模拟。
1.2.1 两类数据模型
数据模型应满足三方面要求:
- 能比较真实的模拟世界
- 容易为人所理解
- 便于在计算机上实现
根据模型应用的不同目的,可分为两类:
第一类是概念模型。
概念模型 也称信息模型,它是按用户的观点对数据和信息建模,主要用于数据库设计。
第二类是逻辑模型和物理模型。
- 逻辑模型:主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等。它是按计算机系统的观点对数据建模,主要用于 DBMS 的实现。
- 物理模型 是对数据最底层的抽象,他描述数据在系统内部的表示方法和存取方法,在磁盘或磁带上的存储方式和存储方法,它是面向计算机系统(硬件)的。
1.2.2 数据模型的组成要素
数据模型通常由 数据结构、数据操作 和 完整性约束 三部分组成。
一、数据结构
数据结构描述数据库的组成对象已经对象之间的联系(是什么样的逻辑关系:层次模型、网状模型、关系模型等等)。数据结构 是 所描述对象类型的集合,是对系统 静态特性 的描述。
二、数据操作
数据库主要有 查询 和 更新(包括 插入、删除、修改)两大类操作。数据操作 是对系统 动态特性 的描述。
三、数据的完整性约束条件
数据的完整性约束条件是一组完整性规则。
【例】在关系模型中,任何关系必须满足 实体完整性 和 参照完整性 两个条件。
1.2.3 概念模型
概念模型 是 现实世界 到 机器世界 的一个中间层次,表现为:
- 概念模型用于信息世界的建模
- 现实世界到信息世界的第一层抽象
- 数据库设计人员进行数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
概念模型要求:
- 具有较强的语义表达能力
- 能够方便、直接地表达应用中的各种语义知识
- 简单、清晰、易于用户理解
一、信息世界中的基本概念
1.实体
客观存在并可以相互区别的事物称为实体。实体 可以是 具体的事、物,也可以是 抽象的概念或联系。
【例】一个职工、一个学生、一个部门、一门课、学生的一次选课等都是实体。
2.属性
实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
【例】学生实体 可以由学号、姓名、性别、出生年月日、所在院系、入学时间等属性组成。(20100124666,张三,20000606,计算机学院,2008)这些属性组合起来表征了一个学生。
3.码
唯一表示实体的属性集称为码。
【例】学号是学生实体的码。
4.域
域是一组具有相同 数据类型 的值的集合。属性的取值范围来自某个域。
【例】性别的域为(男,女);若教授的退休年龄是60岁,教授在职的话,年龄的域小于60岁并且是整数;考试的成绩满分是100分,那么这个成绩的域是[0,100]。
5.实体型
具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
【例】学生(学号、姓名、性别、出生年月日、所在院系、入学时间)就是一个实体型。
6.实体集
同一类型实体的集合称为实体集。
【例】 全体学生就是一个实体集。
7.联系
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反应为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性,实体之间的联系通常是指不同实体集之间的联系。
二、两个实体之间的联系
1. 一对一联系(1:1)
如果对于实体集A中的每一个实体,实体集B中 至多 有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有 一对一联系,记为1:1 。
【例】学校里面,一个班级只有一个正班长,而一个班长只在一个班级中任职,则班级与班长之间具有一对一联系。
2. 一对多联系(1:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系;反之,对于实体集B中的每一个实体 ,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。
【例】一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间有一对多联系。
3. 多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系;反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m>=0)与之联系,则称实体集A与实体集B有多对多联系,记为m:n。
【例】一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生有多对多的联系。
三、两个以上实体型之间的联系
两个以上实体型之间也存在着一对一、一对多、多对多联系。
若实体型E1,E2,...,En之间存在联系,对于实体型Ei(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则说Ei与E1,E2,...,E i-1, E i+1,...,En之间的联系是一对多的。
【例】对于课程、教师与参考书3个实体型;如果一门课程可以由若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用;则课程与教师、参考书之间的联系是一对多的。
【例】有3个实体型:供应商、项目、零件。一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给。由此可以看出 供应商、项目、零件 三者之间是多对多的联系。
四、单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一 、一对多、多对多的联系。
【例】职工实体型内部具有领导与被领导的联系,即某一职工(干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系。
五、概念模型的一种表示方法:实体-联系图(E-R图)
E-R图提供了表示实体型、属性和联系的方法。
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆形表示,并用无向边将其与相应的实体型相连接起来。
【例】学生实体具有学号、姓名、性别、出生年份、系、入学时间等属性。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n,或 m:n)。
【注意】如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
【例】如果用“供应量”来描述联系“供应”的属性,表示某供应商供应了多少数量的零件给某个项目。那么这3个实体及其之间联系的E-R图如下。(当然,供应商、项目、零件自己的属性把省掉了;这个主要侧重的是 联系 自身所有的属性)。
六、一个实例
用E-R图来表示某个工厂 物资管理 的概念模型。
物资管理涉及的实体有:
- 仓库属性 有 仓库号、面积、电话号码
- 零件属性 有 零件号、名称、规格、单价、描述
- 供应商属性 有 供应商号、姓名、地址、电话号码、账号
- 项目属性 有 项目号、预算、开工日期
- 职工属性 有 职工号、姓名、年龄、职称
实体之间的联系如下:
- 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此 仓库与零件 具有多对多的联系。用库存量来表示某种零件在在某个仓库中的数量。
- 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,因此 仓库与职工 之间是一对多的联系。
- 职工之间具有领导与被领导的关系,因此 职工实体集 自身具有一对多的联系 。
- 供应商、项目、零件三者之间具有多对多的联系。
完整的E-R图:
1.2.4 最常用的数据模型
目前,数据库领域中 最常用的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象模型、面向关系模型。(重点研究的是:关系模型——表格)。
1.2.5 关系模型
一、关系数据模型的数据结构
关系:一个关系对应通常所说的 一张表, 如下表中的这张学生登记表。
元组:表中的一行即为一个元组
属性:表中的一列即为一个属性,给每一个属性起一个名称即为属性名。
【例】下表有6列,对应6个属性(学号、姓名、年龄、性别、系名和年级):
学号 | 姓名 | 年龄 | 性别 | 系名 | 年级 |
2005004 | 王小明 | 19 | 女 | 社会学 | 2005 |
2005006 | 黄大鹏 | 20 | 男 | 商品学 | 2005 |
2005008 | 张文斌 | 18 | 女 | 法律 | 2005 |
... | ... | ... | ... | ... | ... |
码:也称码键。表中的某个属性组(某一列),它可以唯一确定一个元组;如上表中的学号,可以唯一确定一个学生,也就成为本关系的码。
域:属性的取值范围,如人的年龄一般在0~150岁之间。
分量:元组中的一个属性值。
关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,...,属性n)。 如:学生登记表(学号,姓名,年龄,性别,系名,年级)。
【例】:学生、课程、学生与课程之间的多对多联系在关系模型中可以如下表示:
学生(学号,姓名,年龄,性别,系名,年级)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
二、关系数据模型的操纵与完整性约束
关系数据模型的操作主要包括查询、插入、删除和更新数据,这些操作必须满足关系的完整性约束条件。
关系的完整性约束条件包括三大类:
- 实体完整性
- 参照完整性
- 用户自定义的完整性
三、关系数据模型的优点
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
- 关系模型的概念单一。
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库的开发建立的工作。
1.3 数据库系统结构
1.3.1 数据库系统模式的概念
模式 是数据库中 全体数据的 逻辑结构和特征 的描述,同一个模式可以有很多实例。
【例】在学生选课数据库模式中,包含学生记录、课程记录、学生选课记录。则2003年有一个学生数据库的实例,该实例包括了2003年学校中所有学生的记录(如果该校有10000个学生,则有10000个学生记录)、学校开设的所有课程的记录和所有学生选课的记录。
1.3.2 数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成。
一、模式
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言(如C,COBOL,FOR-TRAN)无关。
二、外模式
外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用相关的数据的逻辑表示。
【注意】
- 外模式通常是模式的子集,一个数据库可以有多个外模式。(看到的数据是数据库中的数据一部分)。
- 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
- 外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
三、内模式
内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构存储方式的描述,是数据在数据库内部的表示方式。(就是存储在C盘、D盘还是哪个位置)。
1.3.3 数据库的二级映像功能与数据独立性
数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式和存储方式。
数据库管理系统在这三级模式之间提供了两层映像:
外模式/模式映像
模式/内模式映像
两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
一、外模式/模式映像
模式描述的是数据的全局逻辑结构,外模式描述的事实数据的局部逻辑结构。
当模式改变时,由数据管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
二、模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
【例】当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对 模式/内模式映像 作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
1.4 数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。
一、硬件平台及数据库
硬件资源要求:
- 要有足够大的内存,存放操作系统、DBMS的核心模块、数据库缓冲区和应用程序。
- 有足够大的磁盘或磁盘阵列等设备存放数据库,有足够的磁带(或光盘)做数据备份。
- 要求系统有较高的通道能力,以提高数据传送率。
二、软件
数据库系统的软件主要包括:
- DBMS。DBMS是为数据库的建立、使用和维护配置的系统软件。
- 支持DBMS运行的操作系统。
- 具有与数据库接口的高级语言级编译系统,便于开发应用程序。
- 以DBMS为核心的应用开发工具。
- 为特定应用环境开发的数据库应用系统。
三、人员
开发、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图:
1.数据库管理员(DataBase Administrator,DBA)
需要有专门的管理机构来监督和管理数据库系统。 DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统。具体职责包括:
- 决定数据库中的 信息内容和结构 ,数据库中要存放哪些信息,DBA都要参与决策。
- 决定数据库的 存储结构 和 存取策略。
- 定义数据的 安全性要求 和 完整性约束条件。
- 监控数据库的使用和运行。
- 数据库的改进和重组重构。
2.系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。
数据库设计人员负责数据库中数据的确定,数据库各级模式的设计。
3.应用程序员
应用程序员负责设计和编写应用系通过的程序模块,并进行调试和安装。
4.用户
这里用户是指最终用户。最终用户通过应用系统的用户接口使用数据库。