数据库原理及应用·数据库系统结构

2.1 数据模型的概念

2.1.1 什么是数据模型

数据模型(Data Model) 是对现实世界数据特征的模拟和抽象,用来描述数据是如何组织、存储和操作的。

数据模型应满足如下三个条件:

能比较真实地模拟现实世界

容易为人所理解

便于在计算机上实现

2.1.2 数据模型的分类

2.1.3 数据模型的组成要素

举例:

学生信息(2017010101,李光明,男,19,计算机科学学院,软件工程)

数据结构:其描述的是学生的特征信息,即学生数据的基本结构;

数据操作:主要包括对学生信息的查询、修改、删除数据;

数据的完整性约束:其中的性别信息只能是男或女,年龄一般是在15到40岁之间,这实际就是对性别和年龄的一种约束。

2.2 概念模型------信息世界

2.2.1 信息世界中的基本概念

实体 (Entity):

客观存在并可相互区别的事物称为实体。

可以是具体的人、事、物或抽象的概念,如:张三、汽车、运动、兴趣......
属性 (Attribute):实体所具有的某一特性称为属性。
(Key):唯一标识实体的属性集称为码。
(Domain):属性的取值范围称为该属性的域。
实体集 (Entity Set): 同一类型实体的集合称为实体集。
实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体。

学生实体型:学生(学号,姓名,性别,院系,专业)

实体:学生

属性:学号、姓名、性别、院系;

专业码:学号

性别的域: 男,女

教师实体型: 教师(工号,姓名,性别,院系)

实体:教师

属性:工号、姓名、性别、院系

码:工号

性别的域: 男,女

全体学生是一个实体集

全体教师是一个实体集

学生和教师之间的联系:选课

2.2.2 实体型之间的联系

联系(Relationship):现实世界中事物内部以及事物之间的联系,在信息世界中反映为实体内部的联系和实体之间的联系。

实体内部的联系通常是指组成实体的各属性之间的联系 实体之间的联系通常是指不同实体集之间的联系。

联系分为: 一对一(1:1) 一对多(1:n) 多对多(m:n)

**一对一联系(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。

2.3 概念模型的E-R表示法

2.3.1 概述

E-R方法(实体-联系法)是P.P.S.Chen于1976年提出的,是目前最常用的概念模型描述方法

E-R方法使用的工具称为E-R图,E-R方法描述的结果也称为E-R模型。

2.3.2 E-R图

实体 :用矩形表示,矩形框内写明实体名。

属性 :用椭圆形表示,并用无向边将其与相应的实体连接起来

联系

联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)

联系的属性:联系本身也是一种实体型,也可以有属性。

2.3.3 两个以上实体间的联系

课程、教师与参考书三个实体型:

如果一门课程可以由若干个教师讲授,且使用若干本参考书

而每一个教师可以讲授多门课程

一本参考书可以供多门课程使用


供应商、项目、零件三个实体型:

一个供应商可以供给多个项目多种零件

每个项目可以使用多个供应商供应的零件

每种零件可由不同供应商供给

2.3.4 单个实体型内的联系

职工实体型内部具有领导与被领导的联系

即某一职工(干部)"领导"若干名职工,而一个职工仅被一个职工(干部)直接领导

2.4 概念模型实例分析

案例:实现一个简单的学生选课系统,只涉及对学生、教师、课程的管理。用E-R图表示"学生选课系统"的概念模型。

说明:此系统要求能够记录学生的选课情况、教授的授课情况以及学生、课程、教师的基本信息。 业务需求:

一个教师可以教授多名学生,每个学生可以选修多个教师的课程

一个学生可以选择多门课程,一门课程可以对多个学生开放,且学生选修一门课程就会有一个成绩。

教师与课程:一个教师可以教授多门课程,一门课程同时也可以被多名教师教授。

分析确定实体的基本信息:

学生基本信息:学号、姓名、性别、专业、院系、电话、EMAIL

教师基本信息:工号、姓名、性别、职称、院系、年龄、电话、EMAIL

课程基本信息:课程号,课程名,学分,课程性质

2.5 逻辑模型

2.5.1 逻辑模型概述

逻辑模型(Logical Data Model):从数据的组织方式来描述数据,即用什么样的数据结构来组织数据。

概念数据模型必须转换成逻辑模型,才能在DBMS中实现,因此逻辑模型既要面向用户,又要面向系统

非关系模型:层次模型和网状模型在20世纪70---80年代初非常流行,在数据库系统的初期起了重要作用

关系模型(Relational Data Model):

以严格的数学理论为基础:谓词逻辑(predicate logic)、集合论(set theory)

目前主流的数据库系统都是基于"关系模型"

面向对象模型:目前数据库技术的研究方向

2.5.2 关系模型的基本概念

1970年,IBM的研究员E.F.Codd博士发表《大型共享数据银行的关系模型》一文,提出了关系模型的概念,奠定了关系数据库的基础。关系数据库系统采用关系模型作为数据的组织方式。 目前,计算机厂商新推出的数据库管理系统几乎都支持关系模型。

关系(Relation):一个关系对应通常说的一张表

元组(Tuple):表中的一行即为一个元组

属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名

关系模式:对关系的描述,例如:关系名(属性1,属性2,...,属性n)

用关系模式描述学生、课程、学生与课程之间的多对多联系。

学生(学号,姓名,性别,院系,专业,年龄,电话,EMAIL)

课程(课程号,课程名,学分,课程性质)

选课(学号,课程号,成绩)

2.6 数据库系统的三级模式

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

1975年,ANSI/SPARC(美国国家标准协会/标准规划和需求委员会)提出数据库的三级模式结构/

2.6.2 概念模式

概念模式:

数据库中全体数据的逻辑结构和特征的描述

所有用户的公共数据视图,综合了所有用户的需求

一个数据库只有一个模式

2.6.3 外模式

外模式:数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征描述。

一个数据库可以有多个外模式

外模式是保证数据库安全性的一个有力措施。

2.6.4 内模式(存储模式)

是数据物理结构和存储方式的描述

是数据在数据库内部的表示方式:

记录的存储方式(顺序存储,按照B树结构存储, 按hash方法存储)

索引的组织方式

数据是否压缩存储

数据是否加密

数据存储记录结构的规定

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

对于下表的学生基本信息,分配宿舍的部门关心的属性可能是:学号、姓名和性别,学院教学管理人员关心的属性可能是学号、姓名、院系、专业,设计该数据库的三级模式。

根据用户需求,该数据库可以分别为两类用户建立外模式:

宿舍部(学号,姓名,性别)

院部(学号,姓名,院系、专业)

概念模式

内模式:顺序存储、数据不压缩存储,MD5加密。

2.7 数据库的二级映像与数据独立性

2.7.1 概述

为了能够在数据库系统内部实现三级模式的联系和转换,数据库管理系统在三个模式之间提供了两级映像。

2.7.2 外模式/概念模式映像

外模式/概念模式映象

模式:描述的是数据的全局逻辑结构

外模式:描述的是数据的局部逻辑结构

每一个外模式,数据库系统都有一个外模式/模式映象。外模式/模式映象定义了该外模式与概念模式之间的对应关系 。映象定义通常包含在各自外模式 的描述中。

保证数据的逻辑独立性。

概念模式/内模式映象

定义了数据全局逻辑结构与存储结构 之间的对应关系。如,说明逻辑记录和字段在内部是如何表示的。数据库中模式/内模式 映象是唯一 的。该映象定义通常包含在模式描述 中。

保证数据的物理独立性。

对于下标的学生基本信息,分配宿舍的部门关心的属性可能是:学号、姓名和性别,学院教学管理人员关心的属性可能是学号、姓名、院系、专业。

外模式

根据用户需求,该数据库可以分别为两类用户建立外模式:

宿舍部(学号,姓名,性别)

院部(学号,姓名,院系、专业)

概念模式

内模式

顺序存储、数据不压缩存储,MD5加密。

关系模式增加"爱好"属性,即:学生基本信息(学号、姓名、年龄、性别,院系、专业,爱好)

"宿舍部":不关心学生的"爱好",外模式"宿舍部"不需要变化;

院部需要了解学生的"爱好",数据库管理员调整"院部"的外模式,添加"爱好"属性,即:院部(学号,姓名,院系、专业,爱好)

相关推荐
YGGP22 分钟前
【每日八股】Redis篇(二):数据结构
数据结构·数据库·redis
愉悦的麻婆豆腐32 分钟前
Neo4j使用neo4j-admin导入csv数据方法
数据库·neo4j
夜泉_ly3 小时前
MySQL -安装与初识
数据库·mysql
qq_529835354 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New7 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6757 小时前
数据库基础1
数据库
我爱松子鱼7 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo7 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser8 小时前
【SQL】多表查询案例
数据库·sql
Galeoto8 小时前
how to export a table in sqlite, and import into another
数据库·sqlite