美文网首页
数据库三大设计范式

数据库三大设计范式

作者: harrytc | 来源:发表于2019-03-21 21:56 被阅读0次
    第一范式1NF
    表中所有字段都是不可分割的原子值
    create table student2(id int primary key, name varchar(20), address varchar(30));
    insert into student2 values(1, 'Zhangsan', 'Xian’);
    insert into student2 values(2, 'Zhangsi', 'Chengdu’);
    insert into student2 values(3, 'Wangwu', 'Jilin');
    
    
    
    create table student3(id int primary key, name varchar(20), country varchar(30), privence varchar(30), city varchar(30), details varchar(30));
    insert into student3(id , name , country, privence) values(1, ‘Zhangsan','China','Xian');
    insert into student3(id , name , country, privence)  values(2, 'Zhangsi', 'China','Chengdu');
    insert into student3(id , name , country, privence)  values(3, 'Wangwu', 'China','Jilin');
    
    范式设计的越详细对于某些实际操作可能更好,但是不一定都是好处
    
    第二范式2NF
    第二范式要求 必须是满足第一范式的要求,除主键外的每一列都必须完全依赖主键,不完全依赖只可能发生在联合主键的情况下
    create table myorder(
    product_id int, 
    customer_id int,
    product_name varchar(20), 
    customer_name varchar(20), 
    primary key(product_id, customer_id)
    );
    除主键意外的其他列只依赖于主键的部分字段
    
    拆表
    create table myorder(
    product_id int, 
    customer_id int,
    primary key(product_id, customer_id)
    );
    create table product(
    id int primary key;
    name varchar(20);
    );
    
    create table customer(
    id int primary key;
    name varchar(20);
    );
    分成三个表就满足第二范式
    
    第三范式 3NF
    必须先满足第二范式,除主键外的其他键不能有其他依赖,也就是传递依赖
    

    相关文章

      网友评论

          本文标题:数据库三大设计范式

          本文链接:https://www.haomeiwen.com/subject/tkphvqtx.html