关系模式设计理论

规范化:

一个低级范式,通过模式分解可以转化为若干个高级范式的关系模式,即为规范化。

范式:

目前关系数据库有六种范式,咱们最常用的是第一到第三范式。各范式呈递次规范,越高的范式数据冗余越小。

第一范式:(不再分)

范式的基础,所有范式都必须满足第一范式,其他范式都以第一范式为基础。

第二范式:

第一范式基础上消除部分依赖,要求实体的属性完全依赖于主键。

若存在局部依赖,需将这个属性和候选键的那一部分分离出来形成新的实体。

(学号,姓名,系别,住址,课程,成绩);

存在(学号,课程)——>(姓名,系别,住址,成绩);

需分解为:

学号,课程)——>(成绩)

(学号)——>(姓名,系别,住址)

第三范式:

第二范式基础上消除传递依赖。

(学号)——>(姓名,系别,住址)

若存在同一系别住址相同,即地址依赖于系别,则该函数依赖不符合第三范式。

需分解为:

(学号)——>(姓名,系别)

(系别)——>(住址)

几个范式,递次下来,就会消除冗余,异常 ,及消除了关系模式设计的常见问题......

时间: 2024-11-08 11:39:20

关系模式设计理论的相关文章

关系模式设计理论 - 数据库系统原理

模式设计理论主要包括三方面的内容:数据依赖.范式.模式设计方法.数据依赖研究数据之间的联系,起着核心的作用:范式是关系模式的标准:模式设计方法是自动化设计的基础. 关系模式的设计准则 关系模式的冗余和异常 关系模式的冗余指数据冗余.数据冗余 指同一个数据在系统中多次重复出现,这一直是影响系统性能的大问题.在文件系统中由于文件之间没有联系,一个数据会在多个文件中出现.数据库系统克服了文件系统的这种缺陷. 由于数据冗余,对数据操作时就会引起各种异常:修改异常.插入异常.删除异常.例如,关系模式 R(

关系型数据库:关系模式设计原则

1.范式与数据冗余度从0NF到1NF.2NF.3NF.BCNF.4NF.5NF?数据库设计的过程是个拆分表的过程,拆分的目的是降低数据的冗余度. 数据的冗余度越低,事务持续时间就越短(它不需要额外的操作去维持数据一致性和完整性).与此同时,拆得越细,查询的代价越高(需要更多耗时的连接运算). 2.关系模式的设计原则 如果表(集)主要用于数据更新(Online),表的分解就应该尽可能接近3NF, BCNF从前面的例子看没有必要,至于4NF.5NF更多属于理论研究领域,在实际应 用中无此必要. 如果

数据库复习11——关系模式与范式

数据库复习 CH11 关系模式与范式 11.1 关系模式的设计 数据库模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,关系型数据库的模式又叫关系模式,我所理解的关系模式就是数据库中表结构的定义以及多张表之间的逻辑联系 关系模式的设计就是根据一个具体的应用,把现实世界中的关系用表的形式来表示的逻辑设计过程,不规范的关系模式设计会带来以下的问题: 数据冗余 更新异常 插入异常 删除异常 举ppt中例子说明四种问题,如下表中描述了老师信息(一个老师一个地址,可以教多门课,一门课只有一名老

hibernate中一对多关系模式的设计

hibernate中一对多的关系模式的设计 注解应该交由多的一方维护和管理. 例如:bbs的模块设计 三个表 版块表(category) .主题帖表(topic)和回帖表(msg) 他们之间的对应关系是:一个版块对应多个主题帖,一个主题帖有多个回复贴. 以下是对应的建表语句. CREATE TABLE `category` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, PRIMARY KEY (

数据库系统概论(一)关系数据理论--关系模式

一个关系模式可能存在的问题 1.数据冗余度过大,浪费存储空间 系主任张明不需要重复出现,可以另建立中间表存储各系主任信息 2.更新异常 更新时维护数据完整性代价过大,更换计算机系主任时必须修改每一个学生元祖 3.插入异常 该插入的数据插不进去 4.删除异常 不该删除的信息也删掉了,如把所有学生信息删除,则系主任的信息也被一并删除了 关系模式问题的原因 存在不合理的数据依赖 解决方式是把单一模式分解成多个模式 数据依赖 属性集合U = {Sno,Sdept,Mname,Cno,Grade} U的函

数据库 - 关系模式函数依赖

关系数据库逻辑设计 针对具体问题,如何构造一个适合于它的数据模式 数据库逻辑设计的工具──关系数据库的规范化理论 关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F: 属性间数据的依赖关系集合 数据依赖 一个关系内部属性与属性之间的约束关系 现实世界属性间相互联系的抽象 数据内在的性质 语义的体现 2. 数据依赖的类型 函数依赖(Functional Depende

php模式设计之 工厂模式

承接上篇php模式设计之 单例模式,(虽然好像关系不大).今天讲述第二种基础的模式设计——工厂模式. 那么何为工厂模式? 从名字来看,似乎看不出什么端倪.工厂模式,和生产有关?还是和生产流程有关?难道还和工厂领导有关?和领导秘书有关?秘书...     好了不卖关子了,所谓工厂模式还真和生产有关.生产什么呢?生产出来的是一个实例对象.通过什么设备生产?通过一个工厂类生产.怎么生产呢?工厂类调用自身静态方法来生产对象实例. 工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而

MongoDB 进阶模式设计

转载: http://www.mongoing.com/mongodb-advanced-pattern-design 12月12日上午,TJ在开源中国的年终盛典会上分享了文档模型设计的进阶技巧,就让我们来回顾一下吧: —————————————————————————————————————————————————————————- 从很久以前,我就开始接触开源产品:从最开始的使用.受益者到后来的贡献者,到现在的热情推广者.现在,我是MongoDB的技术顾问.我的职责是为MongoDB的客户和

关系型数据库与Key-value型数据库Mongodb模式设计对比

MongoDb 相比于传统的 SQL 关系型数据库,最大的不同在于它们的模式设计( Schema Design )上的差别,正是由于这一层次的差别衍生出其它各方面的不同. 我们可以简单的认为关系型数据库由数据库.表(table).记录(record)三个层次概念组成,而在构建一个关系型数据库的时候,工作重点和难点都在数据库表的划分与组织上.一般而言,为了平衡提高存取效率与减少数据冗余之间的矛盾,设计的数据库表都会尽量满足所谓的第三范式.相对的,可以认为MongoDb由数据库.集合(collect