第一章 绪论
1.1 数据库系统概述
1.1.1 基本概念
-
数据(Data):数据库中存储的基本对象。
-
数据库(DataBase,DB):长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库具有永久存储、有组织和可共享三个基本特点。
-
数据库管理系统(DataBase Management System,DBMS):主要功能包括:
- 数据定义功能:提供数据定义语言(DDL),对数据对象进行定义。
- 数据组织、存储和管理。
- 数据操纵功能:提供数据操纵语言(DML),实现对数据库的基本操作,增删改查等。
- 数据库的事务管理和运行管理。
- 数据库的建立和维护功能。
-
数据库系统(DataBase System,DBS):由数据库、数据库管理系统、应用系统、数据库管理员构成。
1.1.2 数据库技术的产生和发展
三个阶段:人工管理、文件系统、数据库系统
一、人工管理阶段
特点:
- 数据不保存(用纸带等进行数据保存)
- 应用程序管理数据
- 数据不共享
- 数据不具有独立性
缺点:数据的逻辑结构或无力结构发生变化后,必须对相应的应用程序做相应的修改,加重了程序员的负担。
二、文件系统阶段
特点:
- 数据可以长期保存
- 由文件系统管理数据
缺点:
- 数据共享性差(同一种数据在不同程序中出现,但是互相不共享),冗余度大(很多数据重复)
- 数据独立性差
三、数据库系统阶段
特点:
- 数据结构化
- 数据都共享性高,冗余度低,易扩充
- 数据独立性高
- 数据由DBMS统一管理和控制
1.2 数据模型
数据模型(Data Model):对现实世界数据特征的抽象。
1.2.1 两类数据模型
数据模型应满足三方面要求:
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
根据模型应用的不同目的,分为两类:
一、概念模型(Conceptual Model)
也称信息模型,按用户的观点来对数据和信息建模,主要用于数据库设计。
二、逻辑模型和物理模型
逻辑模型:按计算机系统的观点对数据建模,主要用于DBMS的实现
物理模型:对数据最低层的抽象,描述数据在系统上的表示方法和存取方法。在磁盘和磁带上的存储方式和存取方法是面向计算机系统的。
1.2.2 数据模型的组成要素
一、数据结构
二、数据操作
三、完整性约束
是一组完整性的规则,比如,在某大学的数据库中规定,男性职工退休年龄是60周岁,女性职工的退休年龄是55周岁。
1.2.3 概念模型
概念模型是现实世界到机器世界到一个中间层次。
一、信息世界中的基本概念
- 实体(Entity):客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。比如:一个职工、一个学生、一个部门、一门课、学生的一次选课等都是实体。
- 属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。比如:学生实体可以由学号、姓名、性别、出生年月等属性组成。这些属性组合起来表征了一个学生。
- 码(key):唯一标识实体的属性集称为码。比如:学号是学生实体店码。
- 域(Domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。比如:学号的域为8位整数,学生的性别为(男,女)。
- 实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。比如:学生(学号,姓名,性别,出生年月,所在学院,入学时间)就是一个实体型。
- 实体集(Entity Set):同一类型实体店集合称为实体集。
- 联系(Relationship):实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。
二、两个实体型之间的联系
- 一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中,至多有一个(可以没有)实体与之联系,反之亦然。比如:学校里面,一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。
- 一对多联系(1:n):对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,B中每一个实体,A中至多只有一个实体与之对应。比如一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
- 多对多联系(m:n):比如一门课程有若干学生选修,一个学生可以同时选修多门课程。
三、两个以上的实体型之间的联系
四、单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。
五、概念模型的一种表示方法:实体-联系图(E-R图)
- 实体型:用矩形表示,矩形框内写明实体名。
- 属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
- 联系:用菱形表示,框内写明联系,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
六、一个实例
用E-R图来表示某个工厂物资管理的概念模型。
物资管理涉及的实体有:
- 仓库属性有仓库号、面积、电话号码
- 零件属性有零件号、名称、规格、单价、描述
- 供应商属性有供应商号、姓名、地址、电话号码、账号
- 项目属性有项目号、预算、开工日期
- 职工属性有职工号、姓名、年龄、职称
实体之间的联系如下:
- 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
- 一个仓库有多个职工当仓库保管员,一个职工只能在个仓库工作,因此仓库和职工之间是一对多的联系。
- 职工之间具有领导-被领导关系。即仓库主任领导若干保管员,因此职工实体集中具有一对多的联系。
- 供应商、项目和零件三者之间具有多对多的联系。每个供应商可以供给若干项目多种零件,每个项目可以使用不商供应的零件,每种零件可由不同供应商供给。
实体及属性的E-R图:
实体及联系的E-R图:
完整的E-R图:
1.2.4 最常用的数据模型
层次模型、网状模型、关系模型(应用最广泛的模型)、面向对象模型、对象关系模型
1.2.4 关系模型
一、关系数据模型的数据结构
- 关系(Relation):一个关系对应通常说的一张表
- 元组(Tuple):表中的一行即为一个元组
- 属性(Attribute):表中的一列即为一个属性
- 码(Key):用来唯一确定一个元组
- 域(Domain):属性的取之范围
- 分量:元组中的一个属性值
- 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,...,属性n)
二、关系数据模型的操纵与完整性约束
关系数据模型的操作主要包括查询、插入】删除和更新数据。这些操作必须满足关系的完整性约束条件。
三大类:
- 实体完整性
- 参照完整性
- 用户定义的完整性
三、关系数据模型的优点
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
- 关系模型的概念单一。
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发的建立工作。
1.3 数据库系统结构
1.3.1数据库系统模式的概念
模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。
例:在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录,则2003年有一个学生数据库的实例,该实例包含了2003年学校中所有学生的记录、学校开设的所有课程的记录和所有学生选课的记录。
模式是抽象的概念,实例是按照模式所实现的具体实际。
1.3.2数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式(应用模式\用户模式)、模式(逻辑模式)和内模式(物理模式) 三级构成。
一、模式(数据库怎么存的)
是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。是数据库系统模式结构的中间层。
二、外模式(应用要查什么)
数据库用户能够看见的局部数据的逻辑结构和特征的描述
- 外模式通常是模式的子集,一个数据库可以有多个外模式。
- 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
- 外模式是保证数据库安全性的一个有力措施。
三、内模式(在硬盘上是怎么存的)
一个数据库只有一个内模式。
1.3.3数据库的二级映像功能与数据独立性
一、外模式/模式映像
二、模式/内模式映像
优点:实现物理独立性
当数据库的存储结构改变了,数据库管理员对模式/内模式映像做相应改变,应用程序员不需要关心物理结构的变化。
1.4 数据库系统的组成
一般由数据库、数据库管理系统、应用系统和数据库管理员构成