数据库基础知识

一、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 基础上消除了非主属性对于码的传递函数依赖

  • 基本上解决了数据冗余过大、插入异常、修改异常、删除异常的问题

  • 传递函数依赖:

(学号,姓名,系名,系主任):学号 -> 系名,系名 -> 系主任

则 系主任 传递函数依赖于 学号

 


 

posted @   youlooou  阅读(999)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示