知识点总结-2020/7/29
-
什么是数据模型?数据模型的三要素?
- 数据模型是数据特征的抽象。从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供了一个抽象的框架。数据模型所描述的内容有三部分:数据结构、数据操作和数据约束。
-
什么是外键?怎样创建外键?
- 外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束,用来建立和加强两个表数据之间的连接。
# 添加外键
alter table `表名` add constraint `外键名` foreign key `本表字段名` references `外表表名` `外表主键名`;
# 插入、删除数据时外键能保证相同数据在两个表中的完整、统一性
# 修改主表,则外键保证从表中外键关联数据也被修改
# 删除外键
alter table `表名` drop foreign key `外键名`;
-
关系模式规范化理论(关系范式)
- 第一范式(属性不可再分): 列/属性/字段具有原子性,不可再分
- 第二范式(非主属性完全依赖主属性): 满足第一范式的基础上,表必须拥有主键,且主键外的列/属性/字段必须完全依赖于主键中的
列/属性/字段,而不能部份依赖 - 第三范式(非主属性直接依赖主属性): 满足第二范式的基础上,表中非主键列/属性/字段必须直接依赖于主键,而不能传递依赖: 非主键A 依赖 非主键B 依赖主键
-
关系数据库特点
- 数据结构化
- 高共享、低冗余、易扩充
- 数据独立性高(物理独立性、逻辑独立性)
- 数据由DBMS统一管理和控制
-
关系数据库“数据独立性”
- 物理独立性: 数据的存储结构完全由DBMS管理,与上层用户应用程序相互独立
- 逻辑独立性: 数据的逻辑结构完全由DBMS管理,与上层用户应用程序相互独立
-
正则表达式regexp
-
不同模型下实体间联系的表示
- 关系模型: 表
- 层次模型: 树(指针链接)
- 网状模型: 图(指针链接)
-
case函数、case搜索函数
case...when..then..end
# 执行搜索
select `filed_name1`,
{case `filed_name1`
when `filed__name1_value1` then `filed_name2_value1`
when `filed__name1_value2` then `filed_name2_value2`
end
}`filed_name2`
from `table_name`;
- 主键(primary key)、外键(foreign key)区别
- 主键表示同一关系中各字段数据间的关系(字段/属性间关联)
- 外键表示两个关系中基于相同主键字段的联系(关系间关联)
-
数据库“存储过程”——(例: DAO层接口或Mybatis的mapper.xml)
存储过程是指一组完成特定任务的SQL语句集,经编译存储在数据库中,用户通过调用对应名称的存储过程并给出参数(如果需要)来执行。 -
数据库三级模式结构——外模式、模式、内模式
- 内模式(Internal Schema, 物理存储模式):
- 数据物理结构和存储方式的描述(数据怎样存储、索引怎样存储)
- DBMS的基础(实现数据共享、降低数据冗余、提高存取效率)
- 具有唯一性(一个数据库只有一个内模式)
- 模式(Schema,逻辑模式):
- 以某一种数据模型(关系/网状/层次)为基础
- 定义了数据的逻辑结构(数据项及其类型/数据之间的联系/安全性和完整性要求)
- 具有唯一性
- 外模式(External Schema, 子模式/用户模式):
- 可以有多个外模式
- 用户数据视图
- 保证数据安全性
- 数据库关系规范化操作异常
- 插入异常: 该插入的数据未被插入
- 删除异常: 不能删除的数据被删除
- 更新异常: 由于数据冗余带来的更新时为维护完整性、统一性而做的大量操作
- 数据冗余: 同样的数据大量重复出现在不同文件中
- 视图设计的三种方式
- 自顶向下。先全局框架,然后逐步细化
- 自底向上。先局部概念结构,再集成为全局结构
- 由里向外。先核心结构,再向外扩张
-
数据操作: 自然连接、投影、选择、交集
-
SQL插入语句
# 插入新行
insert into `table_name` (`filed_name1`,...,`filed_name3`) values(....)
# 向表一中插入表二查询结果
select `filed_name1`...
into `table_name1`
from `table_name2`
where ...