数据库学习笔记(第1节)
一.数据库基础概念1.数据库数据库管理系统数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库管理系统DBMS管理数据库的软件系统负责数据定义、插入、删除、查询、事务、恢复和权限等功能。2.数据库的特点结构化存储数据按一定规则组织表、字段、关系不是杂乱无章的文件持久化数据存在磁盘断电不丢失共享性多用户、多程序可以同时访问冗余可控相比 Excel、txt 文件重复数据大幅减少独立性数据存储和上层应用程序分离改存储结构不用改业务代码。3.数据库常见分类1关系型数据库数据用二维表存储表之间通过主键、外键建立关系使用 SQL 操作。例子MySQL、Oracle、SQL Server、PostgreSQL、SQLite2非关系型数据库KV 型Redis缓存文档型MongoDB图数据库Neo4j社交关系、拓扑时序数据库InfluxDB、Prometheus监控指标二.数据模型1.什么是数据模型数据模型是对现实世界数据特征的抽象、描述工具用来定义数据怎么组织、数据之间有什么联系、有哪些约束。作用把现实业务学生、课程、订单转换成计算机能存储识别的数据结构。2.概念模型面向用户、业务不关心数据库怎么存只描述业务实体和关系。给人看核心工具E-R 图实体 - 联系模型组成三要素实体客观存在事物矩形表示如学生、课程、商品属性实体特征椭圆如学号、姓名、价格联系实体间关系菱形分三类3. 逻辑模型描述数据在 DBMS 中的组织结构程序员、DBA 使用我们平时学的数据库类型都属于逻辑模型。给DBMS看)主流四类层次模型、网状模型、关系模型、面向对象模型层次模型树形结构表示实体及其联系网状模型图结构表示实体及其联系关系模型二维表表示实体及其联系面向对象模型对象和类表示实体及其联系4.物理模型物理模型描述数据在存储介质上的组织结构给磁盘看与具体的DBMS相关包括文件结构索引方式数据存取路径存储分配参数三.关系模型1.关系模型的三大核心核心含义作用结构 Structure数据用关系表组织定义与物理存储方式无关定义数据如何表示操作 Manipulation提供声明式接口SQL和内部过程化语言关系代数用户声明需要什么数据DBMS 负责执行完整性 Integrity通过约束主键、外键、CHECK 等保证数据有效避免非法数据进入数据库2.关系模型核心术语关系整张二维表一张表就是一个关系表名 关系名元组表中一行代表一条完整记录如上两行两条学生元组属性表中一列代表实体的特征列名 属性名学号、姓名域某一列属性允许的取值范围例年龄域是 0~100学号域是 8 位数字字符串分量某一行某一列交叉的单个数据单元格内容关系模式对表结构的描述格式关系名(属性1,属性2,…)示例学生 (学号姓名年龄班级号)主键主码能唯一标识每一行元组的属性 / 属性组合值不能重复、不能为空。单属性主键学号复合主键选课表 (学号课程号)外键外码本表某一列引用另一张表的主键用来建立两张表的关联。例学生表的班级号引用班级表的主键班级号班级号就是外键。候选码能唯一标识元组的最小属性集主键是人为选定的其中一个候选码。3.关系数据结构关系数据库由多个关系(表)组成每个关系具有以下性质列是同质的(同一列中的分量是同一类型的数据)不同的列可出自同一个域列的顺序无所谓任意两个元组的候选码不能相同行的顺序无所谓分量必须取原子值(不可再分)4.关系操作关系操作包括查询操作选择、投影、连接、除、并、交、差更新操作插入、删除、修改关系操作的特点是集合操作方式即操作的对象和结果都是集合。5.关系完整性关系模型中有三类完整性约束实体完整性主码不能取空值参照完整性外码要么取空值要么等于被参照关系的主码值用户定义的完整性针对具体应用的数据约束四.关系代数并∪两表所有数据去重差−只留第一张独有的数据交∩两表都存在的数据笛卡尔积 ×所有行两两配对连接的底层选择 σ筛选行对应 where投影 π筛选列自动去重对应 select连接⋈等值连接按字段相等匹配保留重复列自然连接同名字段等值匹配删掉重复列最常用左 / 右 / 全外连接保留单边 / 两边无匹配数据缺值填 null除 ÷查询 “选了全部 XX” 的数据难点