Ch 1
什么是数据库系统?
什么是数据模型、数据抽象?
模型:
关系模型 mysql看到的就是关系模式图,使用广泛
实体-联系模型 E-R图的就是E-R模型,设计时候用得多
半结构化数据模型 特性:同一个数据项可以有多种类型数据。JSON、XML相关,期中估计不考
基于对象的数据模型 面向对象相关,期中估计不考
抽象:
物理层:在电脑上怎么存的
逻辑层:平常操作mysql就是这层
视图层:用户只需要部分数据,所以搞个视图(比如触发器啥的肯定不在这层)
- 什么是DML、DDL
DDL:Data-Definition Language
例如create
DML:Data-Manipulation Language
例如select
- 数据库设计的过程
刻画需求
概念设计
逻辑设计
物理设计
- 存储管理器与查询管理器部件包括哪些
存储管理器:
权限及完整性管理器
事务管理器
文件管理器
缓冲区管理器
数据文件
数据字典
索引
查询处理器:
DDL解释器
DML编译器
查询执行引擎 用于把DML编译器编出来的东西执行
- 事务是什么?干什么用?ACID是什么?
完成单一逻辑功能的操作集合,要么都发生要么都不发生。
Atomicity/Consistency/Isolation/Durability
其中隔离性:事务之间互相察觉不到对方正在运行(避免两边同时修改读取造成问题)
- 数据库体系结构有哪些
集中式 – 都在本地
C/S – 两层(前端、后台)、三层(前端、业务逻辑、后台)
并行
分布式
Ch2+Ch6 关系
关系模式、关系实例
关系模式->设计表
关系实例->打开表
超码、候选码、主码、外码
超码:候选码的超集
候选码:极小的超码
(上面是循环定义,看懂就行)
主码:谁都懂
外码:r1中这列取值必须是r2中某列取值
参照完整性约束、外码约束
参照完整性约束又称作引用完整性约束?外码约束是它的一种。但别的引用完整性约束经常不被支持
关系查询语言
命令式 关注程序执行的步骤,过程清晰,控制能力强
函数式 – 关系代数 可以将程序逻辑封装成函数,相较于声明式可以更精确地控制程序执行步骤,相对于声明式又更为清晰简洁
声明式 只需要描述所需的数据,不需要给具体操作 注重结果而不关心程序执行过程,简洁易用
关系代数
$$
\sigma 选择(where)\
\Pi 投影(select后面跟的)\
\times 笛卡尔积(,)\
\rho_x(E)更名(as)\
并、差\\
上面的是基本关系运算\
\bowtie_{\theta}内连接(innerjoinon)\
\bowtie自然内连接(naturalinnerjoin)\
\larr赋值\
交
$$
Ch3-5 SQL
SQL的组成
包括了几个部分
- DDL
- DML
- 完整性
- 视图定义
- 嵌入式SQL和动态SQL
- 授权
SQL的各种语句
表格定义
1 | create table department |
改变表的设计
alter table xxx drop xx;
alter table xxx add xx;
alter table xxx modify xx int unique not null;
alter table xxx add constraint CCC foreign key(xx) references yy;
删除表drop xxx;
插入insert into xxx(x,y,z) values(xx,yy,zz);insert into select * from yyy;
更新update xxx set x=xx where y=yy;
视图create view XXX as select x from xxx;
断言create assertion AAA check(blabla)
事务-begin end
完整性约束
integrity constraint
create table blablablabla check(ass)
级联删除 on delete cascade
自定义类型
create type Dollars as numeric(12,2) final;
//int x;
cast(x to numeric(12,2))类型转换
模式
create schema
授权
grant select on department to Richard with grant option;
grant update(xxx) on department to Richard;
revoke select on department from Richard cascade/restrict;
create role instructor;