数据库系统概论王珊萨师煊第一章.docx
《数据库系统概论王珊萨师煊第一章.docx》由会员分享,可在线阅读,更多相关《数据库系统概论王珊萨师煊第一章.docx(34页珍藏版)》请在冰点文库上搜索。
![数据库系统概论王珊萨师煊第一章.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/1d81e366-4bfd-4c06-80d4-80e0e89a0fa5/1d81e366-4bfd-4c06-80d4-80e0e89a0fa51.gif)
数据库系统概论王珊萨师煊第一章
数据库的地位
●数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支。
●数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。
●数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。
●是学习动态网站课程的必不可少的知识;
●在毕业设计、专升本考试、以后的工作中都能用到;
一、数据(Data)是数据库中存储的基本对象
●数据的定义
¡描述事物的符号记录
●数据的种类
¡文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等
●数据的特点
¡数据与其语义是不可分的
●数据的含义称为数据的语义,数据与其语义是不可分的。
¡例如93是一个数据
语义1:
学生某门课的成绩
语义2:
某人的体重
语义3:
某个年级的学生人数
语义4:
请同学给出。
。
。
●学生档案中的学生记录
(李明,男,197205,江苏南京市,计算机系,1990)
¡语义:
学生姓名、性别、出生年月、籍贯、所在院系、
入学时间
¡解释:
李明是个大学生,1972年5月出生,江苏南京市人,1990年考入计算机系
请给出另一个解释和语义
二、数据库的定义
¡数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
●数据库的基本特征
¡数据按一定的数据模型组织、描述和储存
¡可为各种用户共享
¡冗余度较小
¡数据独立性较高
¡易扩展
三、数据库管理系统
●什么是DBMS
¡位于用户与操作系统之间的一层数据管理软件。
¡是基础软件,是一个大型复杂的软件系统
●DBMS的用途
¡科学地组织和存储数据、高效地获取和维护数据
DBMS的主要功能
¡数据定义功能
提供数据定义语言(DDL)
定义数据库中的数据对象
¡数据组织、存储和管理
分类组织、存储和管理各种数据
确定组织数据的文件结构和存取方式
实现数据之间的联系
提供多种存取方法提高存取效率
¡数据操纵功能
提供数据操纵语言(DML)
实现对数据库的基本操作(查询、插入、删除和修改)
DBMS的主要功能
¡数据库的事务管理和运行管理
数据库初始数据装载转换
数据库转储
介质故障恢复
数据库的重组织
性能监视分析等
¡数据库的建立和维护功能(实用程序)
数据库在建立、运行和维护时由DBMS统一管理和控制
保证数据的安全性、完整性、多用户对数据的并发使用
发生故障后的系统恢复
¡其它功能
DBMS与网络中其它软件系统的通信
两个DBMS系统的数据转换
异构数据库之间的互访和互操作
四、数据库系统
●什么是数据库系统(DatabaseSystem,简称DBS)
在计算机系统中引入数据库后的系统构成数据库系统。
●数据库系统的构成
¡数据库
¡数据库管理系统(及其开发工具)
¡应用系统
¡数据库管理员
数据库系统
1.1.2数据管理技术的产生和发展
●什么是数据管理
¡对数据进行分类、组织、编码、存储、检索和维护
¡数据处理的中心问题
●数据管理技术的发展过程
¡人工管理阶段(20世纪40年代中--50年代中)
¡文件系统阶段(20世纪50年代末--60年代中)
¡数据库系统阶段(20世纪60年代末--现在)
●数据管理技术的发展动力
¡应用需求的推动
¡计算机硬件的发展
¡计算机软件的发展
一、人工管理阶段
●时期
¡20世纪40年代中--50年代中
●产生的背景
¡应用需求科学计算
¡硬件水平无直接存取存储设备
¡软件水平没有操作系统
¡处理方式批处理
●特点
¡数据的管理者:
用户(程序员),数据不保存
¡数据面向的对象:
某一应用程序
¡数据的共享程度:
无共享、冗余度极大
¡数据的独立性:
不独立,完全依赖于程序
¡数据的结构化:
无结构
¡数据控制能力:
应用程序自己控制
二、文件系统阶段
●时期
¡20世纪50年代末--60年代中
●产生的背景
¡应用需求科学计算、管理
¡硬件水平磁盘、磁鼓
¡软件水平有文件系统
¡处理方式联机实时处理、批处理
●特点
数据的管理者:
文件系统,数据可长期保存
数据面向的对象:
某一应用程序
数据的共享程度:
共享性差、冗余度大
数据的结构化:
记录内有结构,整体无结构
数据的独立性:
独立性差,数据的逻辑结构改变必须
修改应用程序
数据控制能力:
应用程序自己控制
文件系统中数据的结构
●记录内有结构。
●数据的结构是靠程序定义和解释的。
●数据只能是定长的。
¡可以间接实现数据变长要求,但访问相应数据的应用程序复杂了。
●文件间是独立的,因此数据整体无结构。
¡可以间接实现数据整体的有结构,但必须在应用程序中对描述数据间的联系。
●数据的最小存取单位是记录。
三、数据库系统阶段
●时期
¡20世纪60年代末以来
●产生的背景
¡应用背景大规模管理
¡硬件背景大容量磁盘、磁盘阵列
¡软件背景有数据库管理系统
¡处理方式联机实时处理,分布处理,批处理
1.1.3数据库系统的特点
●数据结构化
●数据的共享性高,冗余度低,易扩充
●数据独立性高
●数据由DBMS统一管理和控制
数据结构化
●整体数据的结构化是数据库的主要特征之一
●整体结构化
¡不再仅仅针对某一个应用,而是面向全组织
¡不仅数据内部结构化,整体是结构化的,数据之间具有联系
数据的共享性高,冗余度低,易扩充
●数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。
●数据共享的好处
¡减少数据冗余,节约存储空间
¡避免数据之间的不相容性与不一致性
¡使系统易于扩充
数据独立性高
●物理独立性
¡指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。
当数据的物理存储改变了,应用程序不用改变。
●逻辑独立性
¡指用户的应用程序与数据库的逻辑结构是相互独立的。
数据的逻辑结构改变了,用户程序也可以不变。
●数据独立性是由DBMS的二级映像功能来保证的
数据由DBMS统一管理和控制
●DBMS提供的数据控制功能
¡
(1)数据的安全性(Security)保护
保护数据,以防止不合法的使用造成的数据的泄密和破坏。
¡
(2)数据的完整性(Integrity)检查
将数据控制在有效的范围内,或保证数据之间满足一定的关系。
¡(3)并发(Concurrency)控制
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
¡(4)数据库恢复(Recovery)
将数据库从错误状态恢复到某一已知的正确状态。
1.2数据模型
●在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
●通俗地讲数据模型就是现实世界的模拟。
●数据模型应满足三方面要求
¡能比较真实地模拟现实世界
¡容易为人所理解
¡便于在计算机上实现
1.2.1两大类数据模型
●数据模型分为两类(分属两个不同的层次)
(1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
(2)逻辑模型和物理模型
▪逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
▪物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
▪客观对象的抽象过程---两步抽象
▪现实世界中的客观对象抽象为概念模型;
▪把概念模型转换为某一DBMS支持的数据模型。
1.2.2数据模型的组成要素
●数据结构
●数据操作
●完整性约束条件
●什么是数据结构
¡描述数据库的组成对象,以及对象之间的联系
●描述的内容
¡与数据类型、内容、性质有关的对象
¡与数据之间联系有关的对象
●数据结构是对系统静态特性的描述
●数据操作
¡对数据库中各种对象(型)的实例(值)允许执行的
操作及有关的操作规则
●数据操作的类型
¡查询
¡更新(包括插入、删除、修改)
●数据操作是对系统动态特性的描述
●数据的完整性约束条件
¡一组完整性规则的集合。
¡完整性规则:
给定的数据模型中数据及其联系所具有的制约和储存规则
¡用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
1.2.3概念模型
●信息世界中的基本概念
●两个实体型之间的联系
●两个以上实体型之间的联系
●单个实体型内的联系
●概念模型的一种表示方法
●一个实例
●概念模型的用途
●概念模型用于信息世界的建模
●是现实世界到机器世界的一个中间层次
●是数据库设计的有力工具
●数据库设计人员和用户之间进行交流的语言
●对概念模型的基本要求
●较强的语义表达能力
●能够方便、直接地表达应用中的各种语义知识
●简单、清晰、易于用户理解
一、信息世界中的基本概念
(1)实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
(2)属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
(3)码(Key)
唯一标识实体的属性集称为码。
(4)域(Domain)
属性的取值范围称为该属性的域。
(5)实体型(EntityType)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型
(6)实体集(EntitySet)
同一类型实体的集合称为实体集
(7)联系(Relationship)
¡现实世界中事物内部以及事物之间的联系在信息世界
中反映为实体内部的联系和实体之间的联系。
¡实体内部的联系通常是指组成实体的各属性之间的联系
三、两个以上实体型之间的联系
●两个以上实体型之间一对多联系
¡若实体集E1,E2,...,En存在联系,对于实体集Ej(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,...,Ei-1,Ei+1,...,En之间的联系是一对多的
五、概念模型的一种表示方法
●实体-联系方法(E-R方法)
¡用E-R图来描述现实世界的概念模型
¡E-R方法也称为E-R模型
●联系
v联系的本身:
v用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1、1:
n或m:
n)
六、一个实例
用E-R图表示某个工厂物资管理的概念模型
●实体
¡仓库:
仓库号、面积、电话号码
¡零件:
零件号、名称、规格、单价、描述
¡供应商:
供应商号、姓名、地址、电话号码、帐号
¡项目:
项目号、预算、开工日期
¡职工:
职工号、姓名、年龄、职称
●实体之间的联系如下:
(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。
仓库和零件具有多对多的联系。
用库存量来表示某种零件在某个仓库中的数量。
(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。
(3)职工之间具有领导-被领导关系,即仓库主任领导若干保管员。
职工实体型中具有一对多的联系
(4)供应商、项目和零件三者之间具有多对多的联系
1.2.4最常用的数据模型
●非关系模型
¡层次模型(HierarchicalModel)
¡网状模型(NetworkModel)
●关系模型(RelationalModel)
●面向对象模型(ObjectOrientedModel)
●对象关系模型(ObjectRelationalModel)
1.2.7关系模型
●关系数据库系统采用关系模型作为数据的组织方式
●1970年美国IBM公司SanJose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
●计算机厂商新推出的数据库管理系统几乎都支持关系模型
¡关系(Relation)
一个关系对应通常说的一张表
¡元组(Tuple)
表中的一行即为一个元组
¡属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名
¡主码(Key)
表中的某个属性组,它可以唯一确定一个元组。
¡域(Domain)
属性的取值范围。
¡分量
元组中的一个属性值。
¡关系模式
对关系的描述
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系,年级)
例1
学生、系、系与学生之间的一对多联系:
学生(学号,姓名,年龄,性别,系号,年级)
系(系号,系名,办公地点)
例2
学生、课程、学生与课程之间的多对多联系:
学生(学号,姓名,年龄,性别,系号,年级)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
二、关系数据模型的操纵与完整性约束
●数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合
¡查询
¡插入
¡删除
¡更新
●关系的完整性约束条件
¡实体完整性
¡参照完整性
¡用户定义的完整性
三、关系数据模型的存储结构
●实体及实体间的联系都用表来表示
●表以文件形式存储
¡有的DBMS一个表对应一个操作系统文件
¡有的DBMS自己设计文件结构
四、关系数据模型的优缺点
●优点
¡建立在严格的数学概念的基础上
¡概念单一
●实体和各类联系都用关系来表示
●对数据的检索结果也是关系
¡关系模型的存取路径对用户透明
●具有更高的数据独立性,更好的安全保密性
●简化了程序员的工作和数据库开发建立的工作
●缺点
¡存取路径对用户透明导致查询效率往往不如非
关系数据模型
¡为提高性能,必须对用户的查询请求进行优化
增加了开发DBMS的难度
1.3数据库系统结构
●从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
●从数据库最终用户角度看(数据库系统外部的体系结构),数据库系统的结构分为:
¡单用户结构
¡主从式结构
¡分布式结构
¡客户/服务器
¡浏览器/应用服务器/数据库服务器多层结构等
1.3.1数据库系统模式的概念
●“型”和“值”的概念
¡型(Type)
对某一类数据的结构和属性的说明
¡值(Value)
是型的一个具体赋值
例如
学生记录型:
(学号,姓名,性别,系别,年龄,籍贯)
一个记录值:
(900201,李明,男,计算机,22,江苏)
●模式(Schema)
¡数据库逻辑结构和特征的描述
¡是型的描述
¡反映的是数据的结构及其联系
¡模式是相对稳定的
●实例(Instance)
¡模式的一个具体值
¡反映数据库某一时刻的状态
¡同一个模式可以有很多实例
¡实例随数据库中的数据的更新而变动
例如:
在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录
¡2003年的一个学生数据库实例,包含:
Ø2003年学校中所有学生的记录
Ø学校开设的所有课程的记录
Ø所有学生选课的记录
¡2002年度学生数据库模式对应的实例与
2003年度学生数据库模式对应的实例是不同的
1.3.2数据库系统的三级模式结构
●模式(Schema)
●外模式(ExternalSchema)
●内模式(InternalSchema)
●一、模式(也称逻辑模式)
¡数据库中全体数据的逻辑结构和特征的描述
¡所有用户的公共数据视图,综合了所有用户的需求
●一个数据库只有一个模式
●模式的地位:
是数据库系统模式结构的中间层
¡与数据的物理存储细节和硬件环境无关
¡与具体的应用程序、开发工具及高级程序设计语言无关
●模式的定义
¡数据的逻辑结构(数据项的名字、类型、取值范围等)
¡数据之间的联系
¡数据有关的安全性、完整性要求
●二、外模式(也称子模式或用户模式)
¡数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
¡数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
●外模式的地位:
介于模式与应用之间
¡模式与外模式的关系:
一对多
●外模式通常是模式的子集
●一个数据库可以有多个外模式。
反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
●对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同
¡外模式与应用的关系:
一对多
●同一外模式也可以为某一用户的多个应用系统所使用
●但一个应用程序只能使用一个外模式
●外模式的用途
¡保证数据库安全性的一个有力措施
¡每个用户只能看见和访问所对应的外模式中的数据
●内模式(也称存储模式)
¡是数据物理结构和存储方式的描述
¡是数据在数据库内部的表示方式
●记录的存储方式(顺序存储,按照B树结构存储,
按hash方法存储)
●索引的组织方式
●数据是否压缩存储
●数据是否加密
●数据存储记录结构的规定
●一个数据库只有一个内模式
1.3.3数据库的二级映像功能与数据独立性
●三级模式是对数据的三个抽象级别
●二级映象在DBMS内部实现这三个抽象层次的联系和转换
¡外模式/模式映像
¡模式/内模式映像
一、外模式/模式映象
●模式:
描述的是数据的全局逻辑结构
●外模式:
描述的是数据的局部逻辑结构
●同一个模式可以有任意多个外模式
●每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
●映象定义通常包含在各自外模式的描述中
保证数据的逻辑独立性
¡当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
¡应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
二、模式/内模式映象
●模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。
¡例如,说明逻辑记录和字段在内部是如何表示的
●数据库中模式/内模式映象是唯一的
●该映象定义通常包含在模式描述中
保证数据的物理独立性
¡当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变
¡应用程序不受影响。
保证了数据与程序的物理独立性,简称数据的物理独立性。
¡数据库模式
¡即全局逻辑结构是数据库的中心与关键
¡独立于数据库的其他层次
¡设计数据库模式结构时应首先确定数据库的逻辑模式
¡数据库的内模式
¡依赖于它的全局逻辑结构
¡独立于数据库的用户视图,即外模式
¡独立于具体的存储设备
¡将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率
¡数据库的外模式
¡面向具体的应用程序
¡定义在逻辑模式之上
¡独立于存储模式和存储设备
¡当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动
¡设计外模式时应充分考虑到应用的扩充性
¡特定的应用程序
¡在外模式描述的数据结构上编制的
¡依赖于特定的外模式
¡与数据库的模式和存储结构独立
¡不同的应用程序有时可以共用同一个外模式
¡数据库的二级映像
¡保证了数据库外模式的稳定性
¡从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改
●数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去
●数据的存取由DBMS管理
¡用户不必考虑存取路径等细节
¡简化了应用程序的编制
¡大大减少了应用程序的维护和修改
1.4数据库系统的组成
●数据库
●数据库管理系统(及其开发工具)
●应用系统
●数据库管理员
●硬件平台及数据库
●软件
●人员
一、硬件平台及数据库
●数据库系统对硬件资源的要求
(1)足够大的内存
¡操作系统
¡DBMS的核心模块
¡数据缓冲区
¡应用程序
(2)足够大的外存
¡磁盘或磁盘阵列
Ø数据库
¡光盘、磁带
Ø数据备份
(3)较高的通道能力,提高数据传送率
二、软件
●DBMS
●支持DBMS运行的操作系统
●与数据库接口的高级语言及其编译系统
●以DBMS为核心的应用开发工具
●为特定应用环境开发的数据库应用系统
三、人员
●数据库管理员
●系统分析员和数据库设计人员
●应用程序员
●用户
1.数据库管理员(DBA)
具体职责:
●1.决定数据库中的信息内容和结构
●2.决定数据库的存储结构和存取策略
●3.定义数据的安全性要求和完整性约束条件
●4.监控数据库的使用和运行
●周期性转储数据库
●数据文件
●日志文件
●系统故障恢复
●介质故障恢复
●监视审计文件
●5.数据库的改进和重组
●性能监控和调优
●定期对数据库进行重组织,以提高系统的性能
●需求增加和改变时,数据库须需要重构造
2.系统分析员和数据库设计人员
●系统分析员
¡负责应用系统的需求分析和规范说明
¡与用户及DBA协商,确定系统的硬软件配置
¡参与数据库系统的概要设计
●数据库设计人员
¡参加用户需求调查和系统分析
¡确定数据库中的数据
¡设计数据库各级模式
3.应用程序员
●设计和编写应用系统的程序模块
●进行调试和安装
4.用户
用户是指最终用户(EndUser)。
最终用户通过应用系统的用户接口使用数据库。
●1.偶然用户
¡不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息
¡企业或组织机构的高中级管理人员
●2.简单用户
¡主要工作是查询和更新数据库
¡银行的职员、机票预定人员、旅馆总台服务员
●3.复杂用户
¡工程师、科学家、经济学家、科技工作者等
¡直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序
1.5小结
●数据库系统概述
¡数据库的基本概念
¡数据管理的发展过程
●数据模型
¡数据模型的三要素
¡概念模型,E-R模型
¡三种主要数据库模型
●数据库系统的结构
¡数据库系统三级模式结构
¡数据库系统两层映像系统结构
●数据库系统的组成
课堂