一、DB/DBSM/DBS
1. 数据库DataBase(DB)
-
是信息的集合;或是由DBSM管理的数据的集合
2. 数据库管理系统Database Management System(DBSM)
-
是一种操纵和管理DB的大型软件,通常用于建立、使用、维护DB
3. 数据库系统Data Base System(DBS)
-
通常由软件、DB和数据管理员组成
二、元组/码/候选码/主码(键)/外码(键)/主属性/非主属性
1. 元组tuple
-
是关系数据库中的基本概念:
-
关系是一张表,
-
表中的每行(即数据库中的每条记录)就是一个元组,在二维表里元组也称为行
-
每列就是一个属性
2. 码
- 是唯一能标识实体的属性,对应表中的列
3. 候选码
-
若关系中的某一属性或属性组的值能唯一标识的一个元组,而其任何子集都不能再标识,则该属性组为候选码
-
例如:学号、姓名+班级 都属于候选码(可以区分学生实体)
4. 主码/主键
-
从候选码中选出;一个实体集只能有一个主码,但可有多个候选码
- 不允许重复,不允许为空
5. 外码/外键
-
如果一个关系中的一个属性,是另外一个关系中的主码,则这个属性为外码
- 用来和其他表建立联系,可以重复,可以为空值,可以有多个
- 好处:
- 保证了数据库数据的一致性和完整性
- 级联操作方便,减轻程序代码量
- 不推荐使用原因:
- 增加复杂性
- 每次做 DELETE 或者 UPDATE 都必须考虑外键约束,开发复杂, 测试数据不便;
- 外键的主从关系是定的
- 增加额外工作
- 数据库需要增加维护外键的工作,如当做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,保证数据的的一致性和正确性
- 对分库分表不友好
- 分库分表下外键是无法生效的
- 增加复杂性
6. 主属性
- 候选码中出现过的属性
- 关系:工人(工号、身份证、姓名、性别、部门、年龄)
- 候选码:工号、身份证、姓名+部门
- 主属性:工号、身份证、姓名、部门
7. 非主属性
- 不包含在任何一个候选码中的属性
- 如:性别、年龄
三、实体联系图Entity Relationship Diagram(ER图)
1. 概念
- 提供了表示实体类型、属性和联系的方法
2. 要素
-
实体:现实世界的业务对象 或 逻辑对象,使用矩形框表示;如:学生、老师、课程
-
属性:某个实体拥有的属性,用来描述组成实体的要素,使用椭圆形表示;如:学号、姓名、课程编号
-
联系:实体与实体之间的关系,包括业务关联关系、通过数字表示实体之间的数量对照关系
四、数据库范式
1. 第一范式 1NF
-
属性不可再分
-
属性(对应于表中的字段)不能再被分割,即这个字段只能是一个值
-
是所有关系型数据库的最基本要求,创建的表一定满足
2. 第二范式 2NF
- 在 1NF 基础上消除了非主属性对码的部分函数依赖
- 增加了一个列(即主键),非主属性都依赖于主键
-
函数依赖:
在X值确定的情况下,必能确定Y,那么Y 函数依赖于 X,记作X -> Y
- 部分函数依赖:
(学号,身份证)-> (姓名);(学号)-> (姓名);(身份证)-> (姓名)
则 姓名 部分依赖于 学号+身份证
3. 第三范式 3NF
-
在 2NF 基础上消除了非主属性对于码的传递函数依赖
-
基本上解决了数据冗余过大、插入异常、修改异常、删除异常的问题
-
传递函数依赖:
(学号,姓名,系名,系主任):学号 -> 系名,系名 -> 系主任
则 系主任 传递函数依赖于 学号
标签:候选,非主,数据库,实体,基础知识,姓名,属性 From: https://www.cnblogs.com/yy528/p/17275708.html