zoukankan      html  css  js  c++  java
  • MySQL的设计

    1.多表之间的关系

    1. 分类
    • 一对一

      实现方式:可以在任意一方添加外键,指向另一方的主键。并且让外键唯一

      比如:人和身份证的关系

    • 一对多(多对一)

      实现方式:在多的一方建立外键,指向一的一方的主键

      比如:一个部门有多个员工,一个员工只能对应一个部门

    • 多对多的关系

      实现方法:借助中间表,完成多对多

      比如:一个学生可以选很多课程,一个课程也可以被许多学生选

    2.数据库设计的范式

    概念:设计数据库时需要遵循的规范。

    分类:

    1. 第一范式:每一列都是不可分割的原子数据项

      存在问题:

      数据冗余严重(重复数据太多)

      添加新的数据,数据不合法

      数据删除,部分数据也会起删除

    2. 第二范式:在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)

      (1)函数依赖:A—>B,如果通过A的属性(属性值)的值,可以确定唯一的B属性的值。则称B依赖于A。

      例如:学号—>姓名 ,(学号,课程名称)—>分数

      (2)完全函数依赖:A—>B,如果A是一个属性组,则B属性值得确定需要依赖于A属性中所有得属性值。

      例如:(学号,课程名称)—>分数

      (3)部分函数依赖:A—>B,如果A是一个属性组,则B的属性值的确定只需要依赖于A属性组中某一些值即可。

      例如:(学号,课程名称)—>姓名

      (4)传递函数依赖:A—>B,B—>C,如果通过A属性(属性组)的值,可以确定唯一B属性的值,再通过B属性(属性组)的值可以确定唯一的C属性的值,则称C传递函数依赖于A。

      例如:学号—>系名,系名—>系主任

      (5)码:如果在一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称该属性(属性组)为该表的码。

      例如:该表中码为:(学号,课程名称)

      主属性:码属性组中的所有属性

      非码属性:除过码属性组的属性

      存在问题:

      添加新的数据,数据不合法

      数据删除,部分数据也会 起删除

    3. 第三范式:zhushux在2NF基础上,任何非主属性不依赖于其他非主属性(在2NF基础上消除传递依赖)

    3.数据库备份与还原

    1.命令行的方式

    语法:

    备份:mysqldump -u用户名 -p密码 数据库的名称>保存路径

    还原:

    1.登录数据库

    2.创建数据库

    3.使用数据库

    4.执行文件 source 文件路径

  • 相关阅读:
    测试
    扫描法作业
    线索二叉树【C语言】
    【数据结构】循环列表的基本操作
    【数据结构】C语言栈的基本操作
    [数据结构】【c语言】链表的创建和遍历
    PXC(Percona XtraDB Cluster)集群的安装与配置
    mysql数据库主从及主主复制配置演示
    基于keepalived双主模型的高可用LVS
    keepalived高可用反向代理的nginx
  • 原文地址:https://www.cnblogs.com/cwstd/p/14033048.html
Copyright © 2011-2022 走看看