zoukankan      html  css  js  c++  java
  • 数据库01-范式总结

    数据库:文档型sqlite,服务型mysql
    范式:关系模式-一张表的结构 关系-一张实例化了的数据表
        1NF的定义为:每个属性都不可再分
        2NF:消除了非主属性对于码的部分函数依赖(非主属性不能由部分码确定,必须由全部码才能          唯一确定非主属性)
        解决方法:把部分依赖的关系,形成新的表分离
        进步:数据冗余过大    修改异常
        3NF:消除了非主属性对于码的传递函数依赖(非主属性之间存在着主键的关系)
        解决方法:直接把非主传递的属性分成新的表,在原表中去掉非主的非主属性
        进步:数据冗余过大    删除异常
        BCNF:消除主属性对于码的部分与传递函数依赖
    总结:2范式:主和非主的关系解除
            3范式:非主属性之间的解除
            BCDF:主属性之间的解除
    问题所在:
        数据冗余过大 :表重复太多
        插入异常:只要码没有确定,非主属性就不能往表里面写入
        删除异常:一旦把主键删完了,对应的非主属性全部都消失了
        修改异常:一个属性在多个表中都有记录,删除一个表的,别的表中就会有异常
    补充:
        函数依赖 :‘于’代表的是反方向
            完全函数依赖:学号 F→ 姓名
            部分函数依赖:(学号,课名) P→ 姓名
            传递函数依赖: Z 函数依赖于 Y,且 Y 函数依赖于 X (『Y 不包含于 X,且 X 不函数依        赖于     Y』这个前提),那么我们就称 Z 传递函数依赖于 X
        属性:
            “码”:唯一标示确定一条记录的属性(可以是一个字段也可以是多个字段)
            “主属性”:当码是多个对象的时候,其中的任意一个属性就是主属性
            “部分函数依赖”:非主属性由码的一部分就能唯一确定
    数据库Linux下安装:
    安装:sudo apt-get install mysql-server mysql-client
    service mysql start        service mysql stop        service mysql restart
    允许远程连接
    找到mysql配置文件并修改
    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    将bind-address=127.0.0.1注释
    登录mysql,运行命令
    grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
    flush privileges;
    重启mysql


        

  • 相关阅读:
    数据库 Mysql事务详解
    数据库 Mysql内容补充二
    数据库 Mysql内容补充一
    优化Django ORM中的性能问题(含prefetch_related 和 select_related)
    django高级
    百度,谷歌,360,搜狗,神马等蜘蛛IP段
    中国电信、联通、移动、教育IP分布
    sed 给文件每行末尾追加相同字符
    centos7 lvs keepalived做DNS集群负载
    Notepad++ 删除空白行的方法
  • 原文地址:https://www.cnblogs.com/tony-xu999/p/8508188.html
Copyright © 2011-2022 走看看