数据库第一章
第一章 绪论
数据库的 4 个基本概念
数据(data)
定义:描述事物的符号记录
语义:数据的含义成为数据的语义,数据与其语义是不可分的。
数据库(DataBase,DB)
定义:长期储存在计算机内、有组织的、可共享的大量数据的集合。
基本特征:
- 数据按一定的数据模型组织、描述和储存
- 冗余度(redundancy)较小
- 数据独立性(data independency)较高
- 易扩展性(scalability)
- 可为各种用户共享
数据库管理系统(Database Management System, DBMS)
- 位于用户和操作系统之间的一层数据管理软件
- 是基础软件,是一个大型复杂的软件系统
用途:科学地组织和存储数据、高效地获取和维护数据
主要功能:
数据定义功能:提供数据定义语言(Data Definition Language,DDL);定义数据库中的数据对象
数据组织、存储和管理:分类组织、存储和管理各种数据;确定组织数据的文件结构和存取方式;实现数据之间的联系;提供多种存取方法来提高存取效率
数据操纵功能:提供数据操纵语言(Data Manipulation Language,DML);实现对数据库的基本操作(增删改查)
数据库的事务管理和运行管理:数据库在建立、运行和维护时由数据库管理系统统一管理和控制;保证数据的安全性、完整性、多用户对数据的并发使用;发生故障后的系统恢复
数据库的建立和维护功能:数据库初始数据的装载和转换;数据库转储、恢复功能;数据库的重组织;性能监视、分析等
其它:
数据库管理系统与网络中其它软件系统的通信
数据库管理系统系统之间的数据转换
异构数据库之间的互访和互操作
数据库系统(Database System,DBS)
构成:数据库、数据库管理系统(及其应用开发工具)、应用程序、数据库管理员(DBA)
特点:
数据结构化
数据库系统实现整体结构化,是数据库系统和文件系统的本质区别
整体结构化:指数据库中的数据不再仅仅针对某一个应用,而是面向整个
组织或企业;不仅数据内部是结构化的,而且整体是结构化的、数据之间是具有联系的。数据的共享性高,冗余度低且易扩充
数据面向整个系统,可以被多个用户、多个应用共享使用。
数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。
使得数据库系统弹性大,易于扩充
数据独立性高
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
数据独立性由数据库管理系统的二级映像功能来保证。
数据由数据管理系统统一管理和控制
数据库管理系统提供的数据控制功能:
- 数据的安全性(Security)保护:保护数据以防止不合法的使用造成的数据的泄密和破坏。
- 数据的完整性(Integrity)检查:保证数据的正确性、有效性和相容性。
- 并发(Concurrency)控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。
- 数据库恢复(Recovery):将数据库从错误状态恢复到某一已知的正确状态(完整状态、一致状态)。
数据管理
数据模型
数据模型是对现实世界数据特征的抽象,用以抽象、表示和处理现实世界中的数据和信息
数据模型应满足三方面要求:
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
数据模型是数据库系统的核心和基础
可以把模型划分为两个不同的层次:
一、概念模型(conceptual model),也称信息模型。按用户的观点来对数据和信息建模, 主要用于数据库设计。
二、逻辑模型:按计算机系统的观点对数据建模,用于 DBMS 实现。主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。
物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法。
客观对象的抽象过程:两步抽象
现实世界中的客观对象抽象为概念模型
- 将现实世界抽象为信息世界
把概念模型转换为特定DBMS支持的数据模型
- 将信息世界转换为机器世界
数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件
数据结构:描述数据库的组成对象以及对象之间的联系。一类与对象的类型、内容、性质有关;另一类与数据之间的联系有关。是对系统静态特性的描述。
数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
主要有查询和**更新(包括插入、删除、修改)**两大类操作。
对操作的定义:操作的确切含义、操作符号、操作规则(如优先级);实现操作的语言
是对系统动态特性的描述
数据的完整性约束条件:一组完整性规则的集合
完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
数据模型对完整性约束条件的定义:反映和规定必须遵守的基本的通用的完整性约束条件。提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
概念模型
概念模型实际上是现实世界到机器世界的一个中间层次,用于信息世界的建模
基本要求:较强的语义表达能力;简单、清晰、易于用户理解
信息世界的基本概念
实体(Entity):客观存在并可相互区别的事物。可以是具体的人、事、物或抽象的概念
属性(attribute):实体所具有的某一特性
码(Key):唯一标识实体的属性集
实体型(Entity Type):用实体名及其属性名来抽象和刻画同类实体,称为实体型。例如:学生(学号,姓名,性别,出生年月,所在院系,入学时间)
实体集(Entity Set):同一类型实体的集合称为实体集。例如全体学生
联系(Relationship):实体(型)内部的联系和实体(型)之间的联系。
实体之间的联系通常是指不同实体集之间的联系,有一对一、一对多和多对多等多种类型。
实体内部的联系通常是指组成实体的各属性之间的联系
实体-联系方法(Entity-Relationship Approach)
用 E-R 图来描述现实世界的概念模型
E-R方法也称为E-R模型
例子:
逻辑模型
常用的数据模型:
- 格式化模型
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relation Model)
- 对象模型
- 面向对象数据模型(Object Oriented Data Model)
- 对象关系数据模型(Object Relational Data Model)
关系模型的数据结构
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
关系模型中的术语:
关系(Relation):一个关系对应通常说的一张表
元组(Tuple):表中的一行即为一个元组
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组
域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量:元组中的一个属性值。
关系模式:对关系的描述
关系名(属性1,属性2,…,属性n)
学生(学号,姓名,年龄,性别,系名,年级)
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
关系模型的操作与完整性约束
关系模型的数据操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件
关系的完整性约束条件:
- 实体完整性
- 参照完整性
- 用户定义完整性
关系模型中的数据操作是集合操作,操作对象和操作结果都是关系;其存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”。
关系模型的优缺点:
优点:
- 建立在严格的数学概念的基础上
- 概念单一:实体和各类联系都用关系来表示;对数据的检索结果也是关系
- 关系模型的存取路径对用户透明:具有更高的数据独立性,更好的安全保密性;简化了程序员的工作和数据库开发建立的工作
缺点:
存取路径对用户透明,查询效率往往不如格式化数据模型
为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度
NoSQL
数据库系统的结构
从数据库应用开发人员角度:数据库通常采用三级模式结构,是数据库系统内部的系统结构
从数据库最终用户角度,数据库系统的结构分为:
单用户结构
主从式结构
分布式结构
客户-服务器
浏览器-应用服务器/数据库服务器多层结构等
是数据库系统外部的体系结构
模式与实例
模式(schema)是数据库中全体数据的逻辑结构和特征的描述,只涉及型的描述,不涉及具体的值。
模式的一个具体值称为模式的一个实例(instance)。同一个模式可以有多个实例。
模式相对稳定,实例相对变动。
数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成
模式(schema)
也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
一个数据库只有一个模式
模式是数据库系统模式结构的中间层:与数据的物理存储细节和硬件环境无关;与具体的应用程序、开发工具和高级程序设计语言无关
模式实际上是数据库数据在逻辑级上的视图。
模式的定义:
- 数据的逻辑结构(数据项的名字、类型、取值范围等)
- 数据之间的联系
- 数据有关的安全性、完整性要求
数据库管理系统提供模式数据定义语言(模式 DDL) 来严格地定义模式。
外模式(External Schema)
也称子模式或用户模式。
是数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
外模式介于模式与应用之间:
模式与外模式的关系:一对多
外模式通常是模式的子集,一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同
外模式与应用的关系:一对多
同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模
式中的数据,数据库中的其余数据是不可见的。内模式(Internal Schema)
内模式也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
数据库的二级映像与数据独立性
三级模式是对数据的三个抽象级别
二级映像在数据库管理系统内部实现这三个抽象层次的联系和转换
- 外模式/模式映像
- 模式/内模式映像
外模式/模式映像
- 模式:描述的是数据的全局逻辑结构
- 外模式:描述的是数据的局部逻辑结构
- 同一个模式可以有任意多个外模式
- 每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
- 映象定义通常包含在各自外模式的描述中
- 保证数据的逻辑独立性
- 当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变
- 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
模式/内模式映像
模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系
该映象定义通常包含在模式描述中
保证数据的物理独立性
- 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。
- 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的逻辑模式。
数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图,即外模式,也独立于具体的存储设备。将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。
数据库的外模式面向具体的应用程序,定义在逻辑模式之上,独立于存储模式和存储设备。
当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动。设计外模式时应充分考虑到应用的扩充性。
特定的应用程序是在外模式描述的数据结构上编制的,依赖于特定的外模式,与数据库的模式和存储结构独立。不同的应用程序有时可以共用同一个外模式。
数据库的二级映像保证了数据库外模式的稳定性;从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。
数据与程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去;由于数据的存取由数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
数据库系统的组成
硬件平台及数据库
数据库系统对硬件资源的要求:
- 足够大的内存
- 足够大的磁盘或磁盘阵列等设备
- 较高的通道能力,提高数据传送率
软件
- 数据库管理系统
- 支持数据库管理系统运行的操作系统
- 与数据库接口的高级语言及其编译系统
- 以数据库管理系统为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统
人员