数据库内模式怎么表示,数据库模式图怎么画

首页 > 机动车 > 作者:YD1662023-11-03 22:31:07

三级模式-两级映射

内模式、概念模式、外模式。

内模式指内部视图。(主要关注数据的存放)

概念模式指表DBA视图等。

外模式指用户视图。

外模式 ->通过外模式-概念模式映射 到

概念模式 ->概念模式-内模式映射 到 内模式

E-R模型

数据库内模式怎么表示,数据库模式图怎么画(1)

方框 表示实体、椭圆表示属性、菱形表示联系。

学生和课程 中间有一层联系,就是选课,所以是菱形。

M和N表示多对多的关系,一个学生可以选择多门课,一门课也可以被多个学生选择。

集成方式:

1. 多个局部E-R图一次集成。

2. 逐步集成,用累加的方式一次集成两个局部E-R。

集成产生的冲突及解决办法:

属性冲突、包括属性域冲突和属性取值冲突。

命名冲突、包括同名异义和异名同义。

结构冲突、不同抽象级别(比如老师即是表又是另一个表里的字段)。

E-R模式转换关系模式

一个实体转一个关系模式

1对1则 有两个关系模式,这个联系可以记录在实体A也可以记录在实体B。

1对N则 联系也可以记录在单个那边,也可以记录在n那边。至少两个关系模式。

(比如 部门和员工,正常把联系记录在员工那边,因为部门对员工是1对多,只要在员工表加部门号就可以解决)

M对N则 多对多至少转三个关系模式,算上联系可以转四个。

关系代数

并:两个集合并在一起,两个集合都有的只显示一次。

交:相同的才显示。

差:也就是把相同部分减掉,取剩下的并。

笛卡尔积:就是两个集合相乘。3*3至少9条对应的数据。

连接:指两个集合某个字段等值连接。

规范化理论-价值与用途

非规范化的情况下存在 数据冗余、更新异常、插入异常、删除异常。

超键:唯一标识元组。

超键和候选键的区别,超键存在冗余属性。

比如学号 和姓名 性别,他们都可以确定性别,学号 姓名 不能是候选键,因为学号 和姓名都能分别确定性别,他有冗余属性。

候选键:也是唯一标识元组。(没有冗余属性)

主键:候选键和主键区别,候选键有多个,主键只能有一个。

外键:其他表关系额主键。

将关系模式的函数依赖用“有向图”的方式表示。

入度为0的属性,并以该属性集合为起点,遍历有向图,若能遍历所有节点,则该属性是候选键。

若没有入度为0的属性,尝试找中间节点,即有入度也有出度。

数据库内模式怎么表示,数据库模式图怎么画(2)

例题1里,因为A1可以遍历全部节点,所以候选关键字是A1。

例题2的ABD->E意思是三条线合并指向E,而不是单独指向E

单独指向代表A->E,B->E,D->E

例题2的候选码是组合键ABCD

例题3中没有入度为0的属性,A和B都是候选关键字。不能写成AB。

必考-范式

1NF、2NF、3NF、BCNF。

1NF:属性值必须是不可以继续拆分的原子值。

消除非主属性对候选键的部分依赖

则就到了2NF

消除非主属性对候选键的传递依赖

则就到了3NF

消除主属性对候选键额传递起来

则就到了BCNF

逐步越来越优化、解决插入异常、删除异常、数据冗余等。

(主属性:候选关键字)

第一范式如何达到了,必须字段不可分,比如有字段学校名称,高级职称,这种显然不满足1NF,这时候把高级职称改为教授,副教授,则满足,因为不可拆分的原子值。

第二范式,必须每一个非主属性完全依赖主键(不存在部分依赖)。

数据库内模式怎么表示,数据库模式图怎么画(3)

如图SNO和CNO必须组合起来才是主键,因为学生会对应多门学科,所以学生和学科组合在一起才是主键。

而CREDIT学分则是对应学科就能确定,所以他是部分依赖,需要拆分。

导致数据冗余,更新异常等问题。

这时候插入也会有问题

比如向录入C08学科的学分,但是不能录入,因为学科和学生在这个表里强绑定,必须有学生学习才能录入学分,显然这是不合理的。

更新也会有问题

如果只更新两条会导致问题,所以每次更新学分要更新很多没必要的数据。

删除异常

这时候这届学生毕业,把学生数据清空,导致了学分也消失。

这里主属性就是SNO和CNO,非主属性就是剩下的两个。

数据库内模式怎么表示,数据库模式图怎么画(4)

如图主键只有单属性,这时候肯定满足2FN,因为不存在部分依赖。

这种解决办法就是把DNO和DNAME和LOCATION拆分出来独立建表。

数据库内模式怎么表示,数据库模式图怎么画(5)

重点,这里S是到不了T的,必须S学生和J课程的组合才能到T老师。

所以S是不能做候选键的,必须是SJ做候选键

其中ST也可以做候选键,虽然S不能到T,但是T可以到J,所以也可以遍历完。

所以 这里主属性 STJ都属于。

那么这是不是BCNF呢

上面知道SJ->T ST由T>J

这里SJ是候选键,而T不是候选键,所以这里不是BCNF。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.