计算机三级数据库技术 第3章「数据库结构设计」

前言:本章的内容比较重要,其中ER图的知识对应的是最后三道大题的第一道

如发现内容错误,评论区轰炸


3.1

1. ER模型

实体:客观存在并可相互区分的事物(比如张三就是一个实体)

实体集:现实的和抽象事物的集合(张三的所有同班同学)

属性:用来描述一个实体集的各种特征(学生的学号、姓名、出生日期等)

每个属性的取值范围称为

:唯一标识每一个实例的属性或属性组(比如学号可以唯一标识每一个学生,或者科目和学号放在一起能定位某个学生某一门的成绩)

 

2. ER的联系

一对一联系(张三只能有一个学号,而这个学号只能锁定张三)

一对多联系(一个教室可以有很多学生,但是张三只能在有一个教室上课)

多对多联系(一个老师可以教很多个学生,而一个学生也可以有好几门课的老师)

 

3. ER图

ER方法中用矩形框表示实体集,矩形框上写上实体集的名称(学生、老师等都为实体集)

 

ER模型用菱形框表示联系,联系名写在菱形框内(比如学生拥有某门课程)

 

实体集的属性椭圆或圆角矩形框表示(学生的姓名、班级、电话等都为属性)

 

一个用来理解的小例子(简单的ER图, 并不规范),学生和老师是两个实体集所以用矩形框表示,学生和老师之间的联系用的菱形框,姓名和学号等都是属性对应的是椭圆

 

4. IDEF1X数据建模方法

独立实体集:每个实例否能被唯一标识,而不是取决于与其他实体间的联系,用矩形框表示

从属实体集:每个实例依赖于与其他实体集的联系,用圆角矩形框表示

 

5. IDEF1X的联系

标定型联系:下面的实体需要上面两个双亲才能唯一标识

 

非标定型联系:每个实例可以自己唯一标识

 

分类联系:一个实体集可以分类为多个子实体集

 

非确定联系:任一个实体的实例对应另一个实体的n个实例(多对多关系)

 

3.2

数据库的逻辑设计的任务是把数据库概念设计的结果——ER转换为具体的数据库管理系统支持的数据模型(ER图转化为关系模式)

 

1. 一对一

1:1关系转化的时候,可以任选一个转化后的关系实体附加另一个实体集的主键,这里在学生关系里面加入卡号

关系1:学生(学号,班级,学生姓名,性别,卡号)

关系2:学生卡(卡号,余额,权限等级)

 

2. 一对多

1:n的转化方式有点类似1:1,只不过附加的哪一项必须在n端的实体关系上

关系1:顾客(顾客编号,姓名,性别)

关系2:信用卡(卡号,机构,余额,顾客编号)

 

3. 多对多

这里把之前学生老师的图拿过来

上文说过这个图并不规范,首先是每个实体集的主键要用下划线标识出来,比如学生的学号和老师的姓名。然后要标识出来他们的联系,一对一就是1:1,一对多是1:n,多对多是m:n,这里对这张图进行一下修改

接下来进行关系模式的转化,m:n的情况下需要吧他们的联系单独列出来,联系的里面包括两个实体的主键以及联系自己拥有的元素

关系1:学生(学号,班级,学生姓名,性别)

关系2:教师(教师编号,教师姓名,职位,年龄,教学等级)

关系3:教育(学号教师编号,方式,科目)

 

4. 有时候我们会遇到一种特殊的形式——实体和联系之间的联系

这个操作方法还是和之前差不多

关系1:学生(学号,性别,姓名,方法)

3.3

索引最主要分为有序索引散列索引,书中展开讲解了几种不同的有序索引

 

有序索引:索引文件由索引记录组成,每个记录中记载这一个索引项,索引项为了定位要查找的数据的位置

 

1. 聚集索引(一个表只能有一个):数据记录的排列顺序与索引文件中索引项的顺序一致,否则就称为非聚集索引

 

2. 稠密索引:数据文件的每个查找码在索引文件中都有对应的记录,否则称为稀疏索引

 

3. 主索引:在文件的主码属性集上建立的索引

辅索引:在非主码上建立的索引

 

4. 唯一索引:可以确保索引列不包括重复的值

 

5. 单层索引和多层索引:多层索引理解起来就是建立索引的索引,就类似文件夹外面再建一个文件夹(用B数和B+树可构成多层索引)

 

散列索引:使用一个散列函数,不用管它长啥样,反正扔进去一个查找词,它能直接吐出来需要的内容地址

 

选择适合文件结构的原则:

如果数据量少,增删改查频繁,就可以用堆文件组织

要是查找条件定义在查找码上,可以使用顺序文件

如果是基于散列域值的等值匹配,或者访问是随机的,可以使用散列文件

 

3.X 补充知识 

1. 数据模型的三要素为数据结构数据操作数据完整性

 

2. 三级模式和两层映像

 

外模式和模式构成逻辑独立性(视图)

模式和内模式构成物理独立性

 

3. 我们经常会遇到这样一种题,给定实体集和各种关系求关系模式个数的

要是正常写可能还要思考一会儿,但是我们可以直接上大招

关系模式个数 = 实体集数 + 多对多个数

就比如这道题4个实体集,一个三元和一个一元总共2个多对多,直接加起来就是6,屡试不爽

 

4. 规范化:逻辑阶段对关系模式进行规范化(拆表)

去规范化:物理阶段进行去规范化

 

这么看来又是规范又是去规范的,到底图个啥呢?主要是逻辑阶段只是考虑理论上的规范程度,比如在逻辑阶段理论上可以达到3NF,但是到物理阶段发现2NF效率更高,这时候就可以进行合表等操作进行优化

 

函数依赖:函数依赖研究一个实体集的属性之间的关系

 

完全函数依赖

设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X

部分函数依赖

设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X

传递函数依赖

设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X

这里只是给出了大概的定义,如果需要加深理解的可以查找有关数据库范式的文章进一步了解,这些书上没有解释,但是关于范式的内容考试也是有几率考到的,需要搞懂最基本的1NF、2NF和3NF

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值