关系代数,关系演算(偏原理,操作集合(二维表)的)
是一种抽象的数据查询语言
用对关系的运算来表达查询
运算对象:关系
运算符:四类
运算结果:关系
并、查、交
投影、选择
笛卡尔积、连接
重命名
关系运算符分类
传统的集合运算符:∪(并集) ∩(交集)
将关系看成元组的集合
所有的运算对象必须具有相同的结构
专门的关系运算符
选择和投影:σ、π
笛卡尔积、连接:x、⋈
重命名:ρ
辅助专门的关系运算符
比较运算符:<、<=、=>、>、=、<>
逻辑运算符:﹁、∧、 ∨ (非、与、或)
传统的集合运输
先决条件:
两个集合的属性个数必须是相同的
对应属性必须取自同一个域
并:关键字union,两个集合的所有元素
交:关键字intersection,两个集合的公共元素
差:关键字difference,由属于集合A的元素而且不属于集合B的元素组成
专门的关系运算符
投影:用于从集合中选择出若干属性列组成新的关系(类似于过滤器)
πL(R)
L为R中的属性列表
结果为只包含R中某些列的新的关系
结果要去掉重复元组
选择:用于在关系R中选择满足给定条件的各个元组
σC(R)
C:选择条件,是一个逻辑表达式
结果为只包含R中某些元组的新的关系
例:查询信息系(IS系)全体学生信息
σSdept = ‘IS’ (Student)
查询年龄小于20岁的学生信息
σSage < 20(Student)
查询时长至少为100分钟且为‘Fox’公司出品的影片信息
σlength>=100 ∧ studioName=‘Fox‘ (Movies)
σlength >= 100( Movies ) ∩σstudioName=’Fox’(Movies)
笛卡尔积:
R关系:n个属性,k1个元组
S关系:m个属性,k2个元组
列数:n+m
行数:k1*k2
连接:
θ连接
等值连接(θ为=)
自然连接
自然连接是在公共属性(组)上进行的等值连接
两个关系中必须具有公共属性(组)
在结果中把重复的属性列去掉
连接运算从R和S的笛卡尔积R× S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较条件的元组
SQL语言(偏操作)
CRUD省略
索引操作
对应三级模式的内模式(磁盘的存储方式)
建立和删除索引
建立索引是加快查询速度的有效手段
建立索引
DBMS自动建立
主键(primary key)
唯一(unique)
DBA或表的属主(即建立表的人)根据需要建立
建立索引sql语法:
CREATE [UNIQUE|CLUSTERED] INDEX INDEX_NAME ON TABLE_NAME(PROPERTY_NAME [ASC|DESC])
-- 其中UNIQUE和CLUSTERED为可选项,分别是建立唯一索引和聚簇索引,具体解释为:
-- UNIQUE:表示此索引的每一个索引值只对应bai唯一的数据。
-- CLUSTERED:表示要建立的索引时聚簇索引,即索引项的顺序与表中记录的物理顺序一致的索引组织。
-- 聚簇索引(主键):建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降
序存放
-- 即聚簇索引的索引项顺序与表中记录的物理顺序一致
-- 升序ASC,降序DESC(聚簇索引可以指定)
-- 单列索引和多列索引:看索引是在几个列上
-- 也可以创建普通索引(即不指定[UNIQUE|CLUSTERED])
维护索引
DBMS自动完成
使用索引
DBMS自动选择是否使用索引以及使用那些索引
DCL(数据控制语言)
完全性控制:
完整性控制
- 完整性:指数据库中数据的有效性、相关性与相容性
并发控制
- 当多个用户并发地对数据库进行操作时,对他们加以控制、协调,以保证并发操作正确执行,并保持数据库的一致性
恢复:当发生各种类型的故障,使数据库处于不一致状态时,将数据库恢复到一致状态的功能 ,支持事务、提交、回滚等概念
安全性:指保护数据库, 防止不合法的使用所造成的数据泄露和破坏。 (权限管理,GRANT授权和REVOKE回收权利)
嵌入式sql语言
SQL语言的两种使用方式
在终端交互方式下使用,称为交互式SQL
嵌入在高级语言的程序中使用,称为嵌入式SQL
- 高级语言如C、 Java等, 称为宿主语言