14:34
属性:表的列
域:属性的范围
笛卡尔积: 所有集合所有数X一遍
目或度:关系表属性的数量
候选码:唯一属性标识
主码:主键
外码:外键
主属性:候选码里的都叫主属性
全码:所有属性都是候选码,称为全码
关系的三种形式:
基本关系,基本表,基表;实际存在的表
查询表:查询结果对应表
视图表:由基本表或导出的表 虚表 并不独立存储
关系模式:
R(U,D,dom,F) 表名(属性,域,属性对域的映射,是、依赖关系集合)
简记为R(U)
完整性约束:
实体完整性:主键不能为空
参照完整性:外键值只能为空或者外键表值
用户定义完整性:应用环境约束
关系运算:
σ 选择
π投影
▷◁连接
÷除
逻辑运算符 ¬¬
五种基本代数:
并U
差R-S
广义笛卡尔积
RxS
投影πa(R) 是R的属性列集合
选择:σf(R)从关系R中选择满足条件的值集合
分解:分解无损联结 分解保持函数依赖 分解无损联结 又要保持函数依赖
事物 transaction 开始 begin transaction 提交commit 回滚rollback
原子性:要么都做要么都不做
一致性:事物的结果保持状态变化
隔离性:事物互相不影响
持久性:提交则永久更新
σ_(1≦6) (R) R中 第一列小于6的所有值
Select * from R where 列一 《=6
扩展关系代数运算:
交:∩
连接:▷◁
有条件的连接
⬚(“在此处键入公式。” )
R▷◁S=
r与S对应列 加去重 拼接
广义投影:
join拼接
外链接
去重拼接
左外链接:
取出任何没关系的组,右组以null拼接
右外链接
全外链接
SQL数据库语句:
SQL特点:
综合统一。分为模式定义语言和综合操作语言
高度非过程化:只用告诉怎么做
面向集合:
两种使用方法:输入sql指令 或者嵌入高级语言
语言简洁
支持三级模式
SQL由以下组成:
数据定义语言DDL
交互式数据操作语言:DML
事物控制:事物的开始和结束
嵌入式sql和动态sql
完整性
权限管理
Sql
创建表:create table 表名(
Sname int(11) primary ;
)
约束 名:主键primary 外键 foreign references 唯一unique
修改和删除表:
Alter 表名 add
Sname int(11) primary ;
Drop 约束;
Modify 列明 数据类型
删除表DROP table 表名;
索引 create unique intex 索引名 on 表(列名 次序,,,)
drop index 表名
视图的删除和创建;
Create view 视图名(列表名)
As select 查询子句 with check option
Select 貌似不用复习了把
SQL数据更新:
插入:
Insert into 表名(字段名,)values();
或查询语句
删除
Delete from 表名 where ;
修改
Update 表名 set 列名 where
访问控制:
Grant 权限 on 对象名 to用户
Grant insert tale to user1 with grant option with grant option 允许赋给其他人
收回权限 revoke
Exec sql 嵌入式sql
关系数据库的规范化:
第一范式:
无重复列 每列不重复 不可再分
缺点 :数据冗余 、操作不一致、插入异常、删除异常
第二范式:
非主属性完全依赖主关键字
其它属性完全依赖主键
第三范式:
属性不依赖其它非主属性
数据的备份与恢复:
故障类型;
事物内部故障、系统故障、介质故障、电脑病毒
备份方法:
静态转储(转储期间不能干任何事)
动态转储(可以存取修改)
海量转储和增量转储
日志文件
恢复方法:
反向扫描日志文件
对事物更新进行逆操作
继续反向扫描查找其它更新操作
并发控制:
并发的问题:
丢失修改、不可重复读 、读脏数据
并发控制技术:
上锁、 排它锁、共享锁
三级封锁:
一级封锁:防丢失修改 单事物读取一段排它锁
二级封锁 :读数据之前上共享锁,读完后释放
三级封锁:不重复读 读数据前上锁 读完后 提交事物后才解锁 活锁424