sql 范式

原创 2015年07月11日 09:21:16

范式,英文 normal from ,直接翻译就是通用的形式。也就是在数据库设计中的通用设计标准。


在说明一个范式前先声明几个概念。表中的关键字。

一张表总会有好几个字段,其中有某些字段是有一定作用的,叫做关键字,关键字有几种:公共关键字,主关键字,外关键字,候选关键字。

公共关键字就是在表中能够共同表示同样的意思的几部分;

主关键字,也会简称主键,主键可以代表这张表的存在;

外关键字,也会简称外键,就是在这张表中可以通过这个外键找到对应的其他表,在语法中要加上一个映射;

候选关键字就是加入表中有几部分都可以作为关键字,选好其中一个作为主键,那么其他的几个就是候选关键字了。

create table test(

  a int primary key,

 b varchar(3)

);

其中表test就是主键

create table test1(

 a int primary key ,

 b varchar(3),

 test_id int,

 foreign key(test_a) test(a)

);

其中a 是主键,test_id 是外键,外键的映射在下一句中  foreign key(test_a) test(a) ,表明这个外键对应表test的主键。

对于这几个关键字就好比美国选总统一样,所有参加被选举的人一起就是公共关键字,最后当上总统那个就是代表美国的人,即主键,参选但是没被选上的就是候选关键字,如果总统刚选上就死掉了,这个候选人就有资格继续参选,如果有某些国家的外加大使在那里看着,这个人就可以当做外键了。


函数依赖:函数依赖是 一种依赖关系,这种关系没有绝对的存在,要看具体的环境,函数依赖就是一张表中,里面的某些字段是有关联的,其他的一个或几个的存在可以决定其他的字段的存在,这个比如表 test(name,address,identity,factory_address),对于这张表大部分的情景下都可以认为是一个人的name,可以决定他的  address, identity  的存在,所以存在依赖(name)->(address,identity),这就是函数依赖。


在sql中一般有  几种范式  第一范式(1NF),第二范式(2NF),第三范式(3NF),BC范式,(还有第四范式和第五范式,这两个不提)。

    第一范式:就是表的中字段的设计要符合原子性,原子性就是不可分开,比如一个字段  名字,名字有名和姓 的存在,所以这个字段就是不符合原子性的。

    第二范式:表中所有的字段都必须和主键有依赖关系,如果主键是组合主键(多个关键字组合形成主键),也必须是同时和组合主键中的所有字段有依赖关系,不能只和主键中部分字段有依赖关系。这样可以看到,如果主键只是一个字段的话,那表就符合第二范式。如果出现不符合第二范式的字段的情况,可将该字段分离出来。

    第三范式:在第二范式的基础上不存在传递依赖(X->Y,Y->Z),如果出现这种情况可以将原来的表(X,Y,Z),分离为两张表,表1(X,Y),表2(Y,Z)。

    BC范式:在第三方式的基础上,候选关键字不存在相互依赖的关系,比如在一种情景中有(X,Y)->(R,Z),(R,Y)->(X,Z),这样(X,Y)和(R,Y)就属于候选关键字,但注意到有这样的关系X->R  和R->X,这样就不符合第三范式了。


sql 三大范式

数据库设计三大范式 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满...
  • huchunbin
  • huchunbin
  • 2015年07月30日 14:18
  • 2094

SQLSERVER三大范式

1 第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表的每一列...
  • pengpegV5yaya
  • pengpegV5yaya
  • 2013年01月15日 15:07
  • 3770

Sql Server三范式的理解

关系模型原理的核心是“规范化”,规范化是把数据库组织成在保持存储数据完整性的同时最小化冗余数据的结构过程。规范化的数据库是符合关系模型规则的数据库,通常把这些规则称为范式。         范式是符...
  • jyhye
  • jyhye
  • 2012年03月09日 19:13
  • 4586

SQL数据库优化三范式

========================================================== 要保证数据库的效率,要做好以下四个方面的工作: ① 数据库设计 ② sql语...
  • c622724
  • c622724
  • 2012年12月23日 11:07
  • 981

SQL 第一范式、第二范式、第三范式、BCNF(鲍依斯-科得范式)--从零认识范式

首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构...
  • qq_31780525
  • qq_31780525
  • 2017年01月14日 01:51
  • 214

数据库之四种常见四种设计范式详解

Normal07.8 磅02falsefalsefalseEN-USZH-CNX-NONEMicrosoftInternetExplorer4
  • Xviewee
  • Xviewee
  • 2008年07月08日 20:50
  • 1029

巴克斯-诺尔范式语法说明

今天在看《》一书时返现一个
  • Joyhen
  • Joyhen
  • 2014年11月09日 16:39
  • 2437

数据库的四个范式之间的区别

在创建一个数据库的过程中,必须依照一定的准则,这些准则被称为范式,从第一到第六共六个范式,一般数据库设计只要遵循第一范式,第二范式,和第三范式就足够了。满足这些规范的数据库是简洁的、结构明晰的,同时,...
  • hsd2012
  • hsd2012
  • 2016年03月30日 19:47
  • 2283

bcnf范式

bcnf范式的一个易懂的说明,只适合菜鸟,欢迎围观。
  • u013049248
  • u013049248
  • 2014年10月11日 12:15
  • 1924

SQL那些事儿(六)--数据库三大范式

一、基本概念 函数依赖: 通俗描述: 描述一个学生的关系,可以有学号(SNO),姓名(SNAME),系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因此当学...
  • xcymorningsun
  • xcymorningsun
  • 2016年10月09日 10:29
  • 275
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql 范式
举报原因:
原因补充:

(最多只允许输入30个字)