美文网首页mysql
2020-08-12数据库的设计

2020-08-12数据库的设计

作者: 智障猿 | 来源:发表于2020-08-21 16:23 被阅读0次

多表之间的关系

  • 分类
  1. 一对一
    如:人与身份证
  2. 一对多
    如:部门与员工
  3. 多对多
    如:学生课程
  • 实现方式
  1. 一对多:在多的一方建立外键,指向一的一方的主键。
  2. 多对多:多对多关系的实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键
  3. 一对一:可以在任意一方添加外键指向另一方的主键,且给外键添加唯一约束
  • 案例
    班级与学生(一对多)
    学生与课程(多对多)

①班级表

CREATE TABLE class(
cid INT,
name VARCHAR(20));

②学生表

CREATE TABLE student(
id int PRIMARY KEY,
NAME VARCHAR(10),
cid INT,
CONSTRAINT cls_stu FOREIGN KEY (cid) REFERENCES class(cid));

③课程表

create TABLE course(
id INT PRIMARY KEY,
name VARCHAR(20)
);

④为实现学生与课程多对多关系的中间表

create TABLE m_student_course(
sid int,
cid int,
PRIMARY KEY (sid,cid),-- 联合主键
CONSTRAINT tostudent FOREIGN KEY (sid) REFERENCES student(id),
CONSTRAINT tocourse FOREIGN KEY (cid) REFERENCES course(id)
);

范式

  • 分类
    ①第一范式(1NF):每一列都是不可分割的原子数据项
    ②第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选码(消除非主属性对主码的部分函数依赖)
    ③第三范式(3NF):在2NF的基础上,任何非主属性不依赖于其他非主属性(消除传递依赖)
  • 概念:
    ①函数依赖:A-->B,如果通过A属性(属性组)的值,可以唯一确定B属性的值,称B依赖于A
    ②完全函数依赖:A-->B,如果A是一个属性组,而B属性值的确定需要依赖于A属性组中所有的属性
    ③部分函数依赖:A-->B,如果A是一个属性组,而B属性值的确定只需要依赖于A属性组的某些值
    ④传递函数依赖:A-->B,B-->C如果通过A属性可以确定唯一B的值,通过B属性可以确定唯一C的值,称C传递依赖于A
    ⑤码:如果在一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称这个属性(属性组)为该表的码
    ⑥主属性:码属性组中所有的属性
    ⑦非主属性:除去码属性组中的属性

相关文章

  • 回家

    2020-08-12—2020-08-12

  • 2020-08-12数据库的设计

    多表之间的关系 分类 一对一如:人与身份证 一对多如:部门与员工 多对多如:学生课程 实现方式 一对多:在多的一方...

  • 数据库设计

    第六章 数据库设计 学习重点: 数据库设计的基本步骤; 数据库设计各阶段的具体设计内容; 数据库设计各阶段的设计描...

  • 阿里数据库开发规范:谁还敢说你的数据库设计的“烂”

    数据库设计几个规范: 数据库命名规范、数据库基本设计规范、数据库索引设计规范、数据库字段设计规范、数据库SQL开发...

  • 规范化数据库设计

    规范化数据库设计 为什么需要数据库设计 当数据库比较复杂时我们需要设计数据库 糟糕的数据库设计 : 数据冗余,存储...

  • MySQL 入门(四)

    九、规范化数据库设计 1. 为什么需要数据库设计 当数据库比较复杂时,需要设计数据库; 糟糕的数据库设计:数据冗余...

  • js对象遍历方式

    2020-08-12 一、for in 二、Object.keys(obj)、Object.values(obj)...

  • 数据库设计

    一、数据库设计概念 1. 数据库的生命周期 ①数据库分析与设计阶段包括需求分析、概念设计、逻辑设计和物理设计。②数...

  • 计算机二级java程序语言设计

    公共基础 数据库 数据库设计过程主要包括需求分析、概要结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运...

  • 2018-04-19

    任务2.5 系统数据库设计 什么是数据库设计 数据库设计,是指根据用户需求,在某一具体的数据库管理系统上,设计数据...

网友评论

    本文标题:2020-08-12数据库的设计

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