数据库设计范式?

/**
 *数据库设计范式?-----------数据库设计的规范!
 *     MySQL  增删改查!
 *
 * 一、第一范式
 *      1.原子性要求【不能再分了!】 ( 范式 事务acid 线程)
 *      2.一致性        undo 数据库缓存
 *      3.隔离性    两个事物之间的隔离级别
 *
 *         列是固定的  行多个 【关系型数据库!】mysql oracle
 *        【非关系型数据库】 是关系型数据库的补充(基于内存!)
 *
 *      两种错误的数据库设计范式!
 *
 *         错误1.   违背了 关系型数据库
 *      id name age tele、tel1、tel2、tel3
 *
 *      错误2.  违背了  原子性要求
 *         id name   tel
 *         1   zs   110,120,119
 *
 *         正确示范!
 *      user用户表  解决一个用户有多个十几号的问题!
 *
 *         uid  name   age
 *         1    张三   12
 *
 *      telephone
 *         id  uid  tele
 *         1    1    110
 *         2    1    120
 *
 * user表中用户zs两个手机号 通过内连接的方式  实现用户的  多个手机号!
 *
 * 二、第二范式  唯一性!
 *
     * 学生选修课  成绩表!
     * id name   age   select  mark
     * 1  张三   12    math    99
     * 2  李四   12    music   99
     * 3  张三   12    java    99
     * 4  李四   12     pe     98
     *
     * 一个zs有多个主键?解决方案  建两表  1.    2.
     *      1.学生表
     *      id  name   age
     *      1   张三   12
 *          2   李四   12
     *      2.成绩表
     *
     *      id  sid 课程  成绩
     *      1    1  math   99
     *      2    2  music  99
     *      3    1  java   99
     *      4    2   pe    98
 *    使用内连接的方式  查询结果
          SELECT s.name,s.age,m.`课程`,m.`成绩`

          FROM studendemo s,mark m

          WHERE s.id=m.sid
 *
 * 3.第三范式 减少冗余!
 * student学生信息表
 * id name age                      gname       classer
 * 1   zs   12                   qy97    luo
 * 2   ss   13                   qy97    luo
 * 3   as   45                   qy97    luo
 * 4   ws   88                   qy97    luo
 *
 * 观察得出  表中的 gname    和   classer  相同信息重复------->冗余
 *
 * 解决方式:新建表 garden
 *
 * id uid gname classer
 * 1   1   qy97   luo
 * 2   2   qy98   luo
 *
 * 通过观察发现  为满足这三种范式,我们基本上都是,创建两张表来解决!
 *
 * 思考?
 * 主表和从表的关系?  那张表应该加外键?
 *
 *
 * 后面的范式要满足前面的要求!
 *
 * 反三范式    ?  在实际开发中 适当的冗余 可以提高开发效率。
 *
 *
 *
 * 练习2
 *
 *我现在的问题是   熟练掌握  数据库设计的三种范式
 *                 理解反三范式的意义!(没有必要,完全墨守成规,一切以实际开发为准  ,怎们简单,怎么设计数据库表)
 *
 *                 设计表  学生  老师
 *
 *                 主键  和未见得区别?
 *                 我有一个学生表  当做主表  id  age  name  tall  sex  (学生特有这些属性)第一范性  原子性  不可分割!  目的 保证数据的唯一性 尽量避免数据的冗余性!
 
 */

猜你喜欢

转载自www.cnblogs.com/ZXF6/p/10779452.html