数据库系统概述(一)数据库系统概述、E-R图以及数据库映像结构

201 阅读10分钟

第一章 绪论

1.1 数据库系统概述

1.1.1 基本概念

  • 数据(Data):数据库中存储的基本对象。

  • 数据库(DataBase,DB):长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库具有永久存储、有组织和可共享三个基本特点。

  • 数据库管理系统(DataBase Management System,DBMS):主要功能包括:

    • 数据定义功能:提供数据定义语言(DDL),对数据对象进行定义。
    • 数据组织、存储和管理。
    • 数据操纵功能:提供数据操纵语言(DML),实现对数据库的基本操作,增删改查等。
    • 数据库的事务管理和运行管理。
    • 数据库的建立和维护功能。
  • 数据库系统(DataBase System,DBS):由数据库、数据库管理系统、应用系统、数据库管理员构成。

1.1.2 数据库技术的产生和发展

三个阶段:人工管理、文件系统、数据库系统

一、人工管理阶段

特点:

  1. 数据不保存(用纸带等进行数据保存)
  2. 应用程序管理数据
  3. 数据不共享
  4. 数据不具有独立性

缺点:数据的逻辑结构或无力结构发生变化后,必须对相应的应用程序做相应的修改,加重了程序员的负担。

二、文件系统阶段

特点:

  1. 数据可以长期保存
  2. 由文件系统管理数据

缺点:

  1. 数据共享性差(同一种数据在不同程序中出现,但是互相不共享),冗余度大(很多数据重复)
  2. 数据独立性差
三、数据库系统阶段

特点:

  1. 数据结构化
  2. 数据都共享性高,冗余度低,易扩充
  3. 数据独立性高
  4. 数据由DBMS统一管理和控制

1.2 数据模型

数据模型(Data Model):对现实世界数据特征的抽象。

1.2.1 两类数据模型

数据模型应满足三方面要求:

  1. 能比较真实地模拟现实世界
  2. 容易为人所理解
  3. 便于在计算机上实现

根据模型应用的不同目的,分为两类:

一、概念模型(Conceptual Model)

也称信息模型,按用户的观点来对数据和信息建模,主要用于数据库设计。

二、逻辑模型和物理模型

逻辑模型:按计算机系统的观点对数据建模,主要用于DBMS的实现

物理模型:对数据最低层的抽象,描述数据在系统上的表示方法和存取方法。在磁盘和磁带上的存储方式和存取方法是面向计算机系统的。

1.2.2 数据模型的组成要素

一、数据结构
二、数据操作
三、完整性约束

是一组完整性的规则,比如,在某大学的数据库中规定,男性职工退休年龄是60周岁,女性职工的退休年龄是55周岁。

1.2.3 概念模型

概念模型是现实世界到机器世界到一个中间层次。

一、信息世界中的基本概念
  1. 实体(Entity):客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。比如:一个职工、一个学生、一个部门、一门课、学生的一次选课等都是实体。
  2. 属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。比如:学生实体可以由学号、姓名、性别、出生年月等属性组成。这些属性组合起来表征了一个学生。
  3. 码(key):唯一标识实体的属性集称为码。比如:学号是学生实体店码。
  4. 域(Domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。比如:学号的域为8位整数,学生的性别为(男,女)。
  5. 实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。比如:学生(学号,姓名,性别,出生年月,所在学院,入学时间)就是一个实体型。
  6. 实体集(Entity Set):同一类型实体店集合称为实体集。
  7. 联系(Relationship):实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。
二、两个实体型之间的联系
  1. 一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中,至多有一个(可以没有)实体与之联系,反之亦然。比如:学校里面,一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。
  2. 一对多联系(1:n):对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,B中每一个实体,A中至多只有一个实体与之对应。比如一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
  3. 多对多联系(m:n):比如一门课程有若干学生选修,一个学生可以同时选修多门课程。
三、两个以上的实体型之间的联系

image.png

四、单个实体型内的联系

同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。

image.png

五、概念模型的一种表示方法:实体-联系图(E-R图)
  • 实体型:用矩形表示,矩形框内写明实体名。
  • 属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。

image.png

  • 联系:用菱形表示,框内写明联系,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

image.png

六、一个实例

用E-R图来表示某个工厂物资管理的概念模型。

物资管理涉及的实体有:

  1. 仓库属性有仓库号、面积、电话号码
  2. 零件属性有零件号、名称、规格、单价、描述
  3. 供应商属性有供应商号、姓名、地址、电话号码、账号
  4. 项目属性有项目号、预算、开工日期
  5. 职工属性有职工号、姓名、年龄、职称

实体之间的联系如下:

  1. 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
  2. 一个仓库有多个职工当仓库保管员,一个职工只能在个仓库工作,因此仓库和职工之间是一对多的联系。
  3. 职工之间具有领导-被领导关系。即仓库主任领导若干保管员,因此职工实体集中具有一对多的联系。
  4. 供应商、项目和零件三者之间具有多对多的联系。每个供应商可以供给若干项目多种零件,每个项目可以使用不商供应的零件,每种零件可由不同供应商供给。

实体及属性的E-R图:

image.png

实体及联系的E-R图:

image.png

完整的E-R图:

image.png

1.2.4 最常用的数据模型

层次模型、网状模型、关系模型(应用最广泛的模型)、面向对象模型、对象关系模型

1.2.4 关系模型

一、关系数据模型的数据结构
  • 关系(Relation):一个关系对应通常说的一张表
  • 元组(Tuple):表中的一行即为一个元组
  • 属性(Attribute):表中的一列即为一个属性
  • 码(Key):用来唯一确定一个元组
  • 域(Domain):属性的取之范围
  • 分量:元组中的一个属性值
  • 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,...,属性n)
二、关系数据模型的操纵与完整性约束

关系数据模型的操作主要包括查询、插入】删除和更新数据。这些操作必须满足关系的完整性约束条件。

三大类:

  1. 实体完整性
  2. 参照完整性
  3. 用户定义的完整性
三、关系数据模型的优点
  1. 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
  2. 关系模型的概念单一。
  3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发的建立工作。

1.3 数据库系统结构

1.3.1数据库系统模式的概念

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。

例:在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录,则2003年有一个学生数据库的实例,该实例包含了2003年学校中所有学生的记录、学校开设的所有课程的记录和所有学生选课的记录。

模式是抽象的概念,实例是按照模式所实现的具体实际。

1.3.2数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统是由外模式(应用模式\用户模式)、模式(逻辑模式)和内模式(物理模式) 三级构成。

image.png

一、模式(数据库怎么存的)

是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。是数据库系统模式结构的中间层。

二、外模式(应用要查什么)

数据库用户能够看见的局部数据的逻辑结构和特征的描述

  1. 外模式通常是模式的子集,一个数据库可以有多个外模式。
  2. 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
  3. 外模式是保证数据库安全性的一个有力措施。
三、内模式(在硬盘上是怎么存的)

一个数据库只有一个内模式。

1.3.3数据库的二级映像功能与数据独立性

一、外模式/模式映像
二、模式/内模式映像

优点:实现物理独立性

当数据库的存储结构改变了,数据库管理员对模式/内模式映像做相应改变,应用程序员不需要关心物理结构的变化。

1.4 数据库系统的组成

一般由数据库、数据库管理系统、应用系统和数据库管理员构成