一、数据库系统的数据模型
1、概念数据模型&结构数据模型
概念数据模型 | 结构数据模型 |
---|---|
面向用户,并不依赖具体的计算机系统和数据库管理系统 | 面向计算机系统,用于DBMS的实现 |
现实世界到信息世界的第一层抽象,强调语义表达功能 | 用于DBMS的实现 |
⭐ ER模型
1)能帮助建模人员用一种简单的方法描述现实世界中的数据及数据之间的联系。
2)可以描述实体集之间一对一,一对多和多对多联系,也可以描述一个实体集记录之间的联系。
3)基本思路:分类识别客观事物,将具有相同数据特征的事物抽象为实体集。
⭐ 关系模型
1)关系模型中的关系是一个二维表,表中的一行对应关系中的一个元组。
2)关系模型是建立在集合论的基础上处理和表示数据,关系模型中数据存取对用户是透明的。
3) 模式分解
① 分解使得一个关系变为多个关系,常用于关系模式规范化。
② 一般情况下可以减少部分数据冗余,但不恰当的分解也可能增加冗余。
③ 分解通常涉及属性少的查询执行效率更高。
④ 分解通常使得简单的更新事务执行效率高。
4)关系&关系模型
关系 | 关系模型 |
---|---|
关系是动态的,随用户对数据库的操作而变化(概念) | 描述关系的静态结构,是稳定的(逻辑) |
5) 关系模式语言
① 分为关系代数语言、关系演算语言和兼具两者双重特点的语言,如SQL。
② 所有语言的共同特点:非过程化的集合操作语言。
③ “create table…”语句用于定义关系表的结构及数据完整性约束。
④ 查询数据表时SQL语句不会检查数据的完整性约束,delete操作会检查。
6)码
主码 | 外码 |
---|---|
不能为空且具有唯一性 | 可能为被参照关系中已存在的主码值或者空值 |
7)完整性约束
① 实体完整性 & 数据库完整性
实体完整性 | 数据库完整性 |
---|---|
要求每个表都有唯一标识符 | 数据的一致性、正确性和相容性。(应用触发器、事务隔离级别) |
② 实体完整性 & 参照完整性 & 用户自定义完整性
③用户自定义完整性
二、SQL的四种语言
SQL语言是非过程化语言,不要求用户指定数据的存放方法,也不需要了解具体的数据存放方式,故具有完全不同底层结构的不同数据库系统
可以使用相同的结构化查询语言作为数据输出和管理的接口。
1、数据库执行SQL语句的操作步骤:
先解析编译后,处理优化,最后执行返回结果。