1
什么是数据库、数据库管理系统、数据库系统、数据库管理员?¶
数据库(DB) | 数据库就是信息的集合或者说数据库是由数据库管理系统管理的数据的集合 |
数据库管理系统(DBMS) | 数据库管理系统是一种操纵和管理数据库的大型软件,通常用于建立、使用和维护数据库 |
数据库系统(DBS) | 数据库系统通常由软件、数据库、和管理员组成 |
数据库管理员(DBA) | 数据库管理员负责全面管理和控制数据库系统 |
什么是元组、码、候选码、主码、外码、主属性、非主属性?¶
元组 | 元组是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库系统中的每条记录)就是一个元组,每列就是一个属性。在二维表中,元组也称为行 |
码 | 码就是能唯一标识实体的属性,对应表中的列 |
候选码 | 若关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何子集都不能再标识,则称该属性组为候选码 |
主码 | 主码也叫主键。主码是从候选码中选出来的。一个实体集中只能由一个主码,但可以有多个候选码 |
外码 | 外码也叫外键。如果一个关系中的一个属性是另外一个关系中的主码,则这个属性为外码 |
主属性 | 候选码中出现过的属性称为主属性 |
非主属性 | 不包含在任何一个候选码中的属性称为非主属性 |
主键和外键有什么区别?¶
主键 | 主键用于唯一标识一个元组,不能有重复,不允许为空。一个表只能有一个主键 |
外键 | 外键用来和其它表建立联系,外键是另一个表的主键,外键是可以有重复的,可以是空值。一个表可以有多个外键 |
为什么不推荐使用外键和级联?¶
- 增加了复杂性
- 增加了额外工作
- 外键还会因为需要请求对其它表内部加锁而容易出现死锁情况
- 对分库分表不友好
数据库范式?¶
第一范式(1NF) | 属性不可再分,1NF 是所有关系型数据库的最基本要求 |
第二范式(2NF) | 1NF 的基础上,消除了非主属性对于码的部分函数依赖 |
第三范式(3NF) | 2NF 的基础上,消除了非主属性对于码的传递函数依赖 |
DROP
、TRUNCATE
、DELETE
的区别?¶
类型 | 用途 | 速度 | |
---|---|---|---|
DROP |
DDL | 丢弃数据 | 1 |
TRUNCATE |
DDL | 清空数据 | 2 |
DELETE |
DML | 删除数据 | 3 |
数据库设计通常分为哪几部?¶
-
需求分析:分析用户的需求,包括数据、功能、性能需求
-
概念结构设计:主要采用 E-R 模型进行设计,包括画 E-R 图
-
逻辑结构设计:通过将 E-R 图转换成表,实现从 E-R 模型到关系模型的转换
-
物理结构设计:主要是为所设计的数据库选择合适的存储结构和存取路径
-
数据库实施:包括编程、测试和试运行
-
数据库运行和维护:系统的运行和数据库的日常维护