第一章 绪论
文章目录
1.1数据库系统概述
1.1.1数据、数据库、数据库管理系统、数据库系统
- 数据
数据是数据库中存储的基本对象。 - 数据库
数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库数据的三个基本特点:
- 永久存储
- 有组织
- 可共享
- 数据库管理系统
数据库管理系统的主要功能包括:
- 数据定义功能。DBMS提供数据定义语言(DDL),用户通过它可以方便地对数据库中的数据对象进行定义。
- 数据组织、存储和管理。DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。
- 数据操纵功能。DBMS提供数据操纵语言(DML),用户可以使用DML操纵数据,实现对数据库的基本操作。
- 数据库的事务管理和运行管理。数据库的建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
- 数据库的建立和维护功能。数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能。
- 数据库系统
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
数据库系统在整个计算机系统的地位:
1.1.2数据管理技术的产生和发展
数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段。
- 人工管理阶段
人工管理数据具有如下特点:
- 数据不保存。
- 应用程序管理数据。
- 数据不共享。
- 数据不具有独立性。
缺点:数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,这就加重了程序员的负担。
- 文件系统阶段
用文件系统管理数据具有如下特点:
- 数据可以长期保存。
- 由文件系统管理数据。
缺点:
- 数据共享性差,冗余度大。
- 数据独立性差。
- 数据库系统阶段
用数据库系统管理数据具有如下特点:
- 数据结构化。
- 数据的共享性高,冗余度低,易扩充。
- 数据独立性高。
- 数据由DBMS统一管理和控制。
三个阶段的特点及其比较如下:
人工管理阶段 | 文件系统阶段 | 数据库系统阶段 | ||
背景 | 应用背景 | 科学计算 | 科学计算、数据管理 | 大规模数据管理 |
硬件背景 | 无直接存取存储设备 | 磁盘、磁鼓 | 大容量磁盘、磁盘阵列 | |
软件背景 | 没有操作系统 | 有文件系统 | 有数据库管理系统 | |
处理方式 | 批处理 | 联机实时处理、批处理 | 联机实时处理、分布处理、批处理 | |
特点 | 数据的管理者 | 用户(程序员) | 文件系统 | 数据库管理系统 |
数据面向的对象 | 某一应用的程序 | 某一应用 | 现实世界(一个部门、企业、跨国组织等) | |
数据的共享程度 | 无共享、冗余度极大 | 共享性差、冗余度大 | 共享性高、冗余度小 | |
数据的独立性 | 不独立,完全依赖于程序 | 独立性差 | 具有高度物理独立性和一定的逻辑独立性 | |
数据的结构化 | 无结构 | 记录内有结构,整体无结构 | 整体结构化,用数据模型描述 | |
数据控制能力 | 应用程序自己控制 | 应用程序自己控制 | 由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
1.2数据模型
数据模型也是一种模型,它是对现实世界数据特征的抽象。数据模型就是现实世界的模拟。
1.2.1两类数据模型
数据模型应满足三方面要求:
- 能比较真实地模拟现实世界。
- 容易为人所理解。
- 便于在计算机上实现。
根据模型应用的不同目的,可分为两类:
第一类是概念模型。
- 概念模型也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
第二类是逻辑模型和物理模型。
- 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现。
- 物理模型是对数据最低层的抽象,它描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。是面向计算机系统的。
1.2.2数据模型的组成要素
数据模型通常由数据结构、数据操作和完整性约束三部分组成。
- 数据结构
数据结构描述数据库的组成对象以及对象之间的联系。数据结构是所描述的对象类型的集合,是对系统静态特性的描述。 - 数据操作
数据库主要有查询和更新(包括插入、删除、修改)两大类操作。数据操作是对系统动态特性的描述。 - 数据的完整性约束条件
数据完整性约束条件是一组完整性规则。
在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。
1.2.3概念模型
概念模型是现实世界到机器世界的一个中间层次,表现为:
- 概念模型用于信息世界的建模。
- 现实世界到信息世界的第一层抽象。
- 数据库设计人员进行数据库设计的有力工具。
- 数据库设计人员和用户之间进行交流的语言。
概念模型要求:
- 具有较强的语义表达能力。
- 能够方便、直接地表达应用中的各种语义知识。
- 简单、清晰、易于用户理解。
- 信息世界中的基本概念
- 实体:客观存在并可相互区别的事物成为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。
- 属性:实体所具有的某一特性成为属性。一个实体可以由若干个属性来刻画。
- 码:唯一标识实体的属性集成为码。
- 域:域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
- 实体型:具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
- 实体集:同一类型实体的集合称为实体集。
- 联系:在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。
- 两个实体型之间的联系
- 一对一联系(1:1)
如果对于实体集A中的每一个实体,实体机B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。 - 一对多联系(1:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。 - 多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。
- 两个以上的实体型之间的联系
两个以上的实体型之间也存在着一对一、一对多、多对多联系。 - 单个实体型内的关系
同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。 - 概念模型的一种表示方法:实体-联系图(E-R图)
E-R图提供了表示实体型、属性和联系的方法。
实体型:用矩形表示,矩形框内写明实体名。
属性:用椭圆表示,并用无向边将其与相应的实体型连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)
如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
例:用E-R图来表示某个工厂物资管理的概念模型。
物资管理设计的实体有:
1)仓库属性有仓库号、面积、电话号码。
2)零件属性有零件号、名称、规格、单价、描述。
3)供应商属性有供应商号、姓名、地址、电话号码、账号。
4)项目属性有项目号、预算、开工日期。
5)职工属性有职工号、姓名、年龄、职称。
实体之间的联系如下:
1)一个仓库可以存放多走零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,因此仓库和职工之家是一对多的联系。
3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员,因此职工实体集中具有一对多的联系。
4)供应商、项目和零件三者之间具有多对多的联系。即一个供应商可以供给若干项目多种零件,每个项目可由不同供应商供给。
实体及属性的E-R图:
实体及其联系的E-R图:
完整的E-R图:
1.2.4最常用的数据模型
目前,数据库领域中最常用的逻辑数据模型有:层次模型、网状模型、关系模型、面向对象模型、对象关系模型。
1.2.5关系数据模型
- 关系数据模型的数据结构
关系:一个关系对应通常说的一张表。
元组:表中的一行即为一个元组。
属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名。
码:也称为码键。表中的某个属性组,它可以唯一确定一个元组。
域:属性的取值范围。
分量:元组中的一个属性值。
关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)。 - 关系数据模型的操纵与完整性约束
关系数据模型的操作主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。
关系的完整性约束条件包括三大类:
- 实体完整性。
- 参照完整性。
- 用户定义的完整性。
- 关系数据模型的优点
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
- 关系模型的概念单一。
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作。
1.3数据库系统结构
1.3.1数据库系统模式的概念
模式是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。
1.3.2数据库系统的三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
- 模式
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言(如C,COBOL,FOR-TRAN)无关。 - 外模式
外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 - 内模式
内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
外模式通常是模式的子集,一个数据库可以有多个外模式。
同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
1.3.3数据库的二级映像功能与数据独立性
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。
数据库管理系统在这三级模式直接提供了两层映像:
- 外模式/模式映像
- 模式/内模式映像
两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
- 外模式/模式映像
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。
当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序时依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 - 模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所以,模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
1.4数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员构成。
- 硬件平台及数据库
硬件资源要求:
- 要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序。
- 有足够大的磁盘或磁盘阵列等设备存放数据库,有足够的磁带(或光盘)作数据备份。
- 要求系统有较高的通道能力,以提高数据传送率。
- 软件
数据库系统的软件主要包括:
- DBMS。DBMS是为数据库的建立、使用和维护配置的系统软件。
- 支持DBMS运行的操作系统。
- 具有与数据库接口的高级语言以及编译系统,便于开发应用程序。
- 以DBMS为核心的应用开发工具。
- 以特定应用环境开发的数据库应用系统。
- 人员
开发、管理和使用数据库系统的人员主要是:数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图:
- 数据库管理员
需要有专门的管理机构来监督和管理数据库系统。DBA则是这个机构的一个(组)人员,负责全面管理和控制数据库系统。具体职责包括:
①决定数据库中的信息内容和结构,数据库中要存放哪些信息,DBA要参与决策。
②决定数据库的存储结构和存取策略。
③定义数据的安全性要求和完整性约束条件。
④监控数据库的使用和运行。
⑤数据库的改进和重组重构。 - 系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件配置,并参与数据库系统的概要设计。
数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。 - 应用程序员
应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。 - 用户
这里用户是指最终用户。
最终用户通过应用系统的用户接口使用数据库。
ps:欢迎大家提问与交流。