MySQL:范式定律

第一范式:1NF,数据字段设计时必须满足原子性
1NF要求字段数据是不需要拆分就可以直接应用
如果数据使用的时候需要进行拆分那么就违背1NF

第二范式:2NF,不能存在部分依赖
部分依赖:首先表存在复合主键,其次有的字段不是依赖整个主键,而只是依赖主键中的一部分。
部分依赖解决:让所以非主属性都依赖于一个候选关键词
最简单方式:取消复合主键(一般选用逻辑主键替代,但是本质依然是复合主键做主),所有非主属性的依赖主属性(逻辑主键)。
正确方式:把部分依赖关系独立成表

第三范式:3NF,不能存在传递依赖
传递依赖:字段某个非主属性不直接依赖主属性,而是通过依赖某个其他非主属性而传递到主属性之上
传递依赖解决:让依赖非主属性的字段一依赖字段独立成表

逆规范化:为了提升数据查询的效率而违背范式的规则
逆规范化的目标是为了提升数据访问效率
所谓逆规范化就是减少表之间的关联查询(效率降低),刻意增加数据冗余

实例第三范式:

CREATE DATABASE yx;
CREATE TABLE kc(
 kcid TINYINT PRIMARY KEY,
 kcname VARCHAR (10) NOT NULL,
 kcts VARCHAR (10) NOT NULL,
 kcsjstart DATE NOT NULL,
 kcsjend DATE NOT NULL
);
INSERT INTO kc VALUES
(1,'mysql','任老师','2022-1-1','2022-3-10'),
(2,'seo','杨老师','2022-1-2','2022-3-20'),
(3,'web','罗老师','2022-1-3','2022-3-30'),
(4,'ps','张老师','2022-1-4','2022-4-01');


CREATE TABLE xs(
 xsid TINYINT PRIMARY KEY,
 xsname VARCHAR (10) NOT NULL,
 xsxb ENUM('男','女'),
 xsclass VARCHAR (10),
 xszye VARCHAR (10)
);
INSERT INTO xs VALUES
(11,'李四','男','大数据2101','大数据'),
(12,'周主播','男','网络营销2101','网络诈骗'),
(13,'网易云','女','音乐2101','音乐'),
(14,'莉莉','女','环艺2101','环艺');

CREATE TABLE fs (
  fsfs TINYINT,
  fskc TINYINT,
  fsxs TINYINT,
  PRIMARY KEY (fskc, fsxs),
  CONSTRAINT ss FOREIGN KEY (fskc) REFERENCES kc (kcid),
  CONSTRAINT s FOREIGN KEY (fsxs) REFERENCES xs (xsid)
) ;

INSERT INTO fs VALUES
(59,1,11),
(66,2,12),
(77,3,13),
(88,4,14);
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值