数据:是数据库中储存的基本对象。描述事物的符号记录称为数据
数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合。具有永久储存、有组织、可共享三个基本特点
数据库管理系统:是位于用户和操作系统之间的一层数据管理软件
数据库系统:是指在计算机系统中引入数据库后的系统
数据库管理系统的主要功能:数据定义功能,数据组织存储和管理,数据操纵功能,数据库的事务管理和运行管理,数据库的建立和维护功能
数据管理的三个阶段:人工管理阶段,文件系统阶段,数据库系统阶段
数据库系统的特点:数据结构化;数据的共享性高,冗余度,易扩充;数据独立性高;数据由DBMS统一管理和控制
两类数据模型:概念模型、逻辑模型和物理模型
数据模型的组成要素:数据结构,数据操作,数据的完整性约束条件
实体:客观存在且可相互区别的事物
两个实体间的联系:一对一,一对多,多对多
E-R图:矩形为实体,椭圆为属性,菱形为联系
常用数据模型:层次模型,网状模型,关系模型,面向对象模型,对象关系模型
数据库系统模式:是数据库中全体数据的逻辑结构和特征的描述
三级模式结构:外模式,模式,内模式
二级应向功能:为了能够在系统内部实现三个抽象层次的联系和转换,提供了两层映像:外模式/模式映像,模式/内模式映像
数据库系统的组成:硬件平台及数据库,软件,人员(DA的职责,系统分析员和数据库设计人员,应用程序员和用户)
域:一组具有相同数据类型的值的集合
候选码:若关系中的某一属性组的值能唯一的标示一个元组,则为该属性组的候选码
码:若一个关系有多个候选码,则选定其中一个为主码
属性:候选码的诸属性成为主属性
非主属性、非码属性:不包括在任何候选码中的属性
全码:在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码
关系的特点:1.列是同质的2.不同的列可出自同一个域,称其中的每一列为一个属性,不同
的属性要给予不同的属性名3.列的顺序无所谓4.任意两个元组的候选码不能相同5.行的顺序无所谓6.分量必需取原子值
关系数据库:所有实体及实体之间联系的关系的集合构成一个关系数据库
关系操作:查询、插入、删除和修改
查询操作:选择,投影,并,差,笛卡尔积,交,连接,除
关系操作的特点:集合操作方式
关系的完整性:实体完整性,参照完整性,用户定义完整性
关系代数
●传统的集合运算:并、差、交和笛卡尔积
●专门的关系运算:选择、投影、连接(等值连接、自然连接和外连接)和除
●逻辑运算: 非,∧与,∨或
●概念及用法:元组、象集
SQL的特点:综合统一,高度非过程化,面向集合的操作方式,以同一种语法结构提供多种使用方式,语言简单,易学易用
创建和删除表
CREATE TABLE<;表名>
(<;列名><;数据类型>[<;列级完整性约束条件>]
[,<;列名><;数据类型>[<;列级完整性约束条件>]]…
[,<;表级完整性约束条件>]);
–<;表名>:所要定义的基本表的名字
–<;列名>:组成该表的各个属性(列)
–<;列级完整性约束条件>:涉及相应属性列的完整性约束条件
–<;表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件
DROP TABLE<;表名>;
修改表
ALTER TABLE<;表名>
[ADD<;新列名><;数据类型>[完整性约束]]
[DROP<;完整性约束名>]
[MODIFY<;列名><;数据类型>];
–<;表名>:要修改的基本表
–ADD子句:增加新列和新的完整性约束条件
–DROP子句:删除指定的完整性约束条件
–MODIFY子句:用于修改列名和数据类型
创建和删除索引
CREATE[UNIQUE][CLUSTER]INDEX<;索引名>ON<;表名>(<;列名>[<;次序>][,<;列名>[<;次序>]]…);
–用<;表名>指定要建索引的基本表名字
–索引可以建立在该表的一列或多列上,各列名之间用逗号分隔
–用<;次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC
–UNIQUE表明此索引的每一个索引值只对应唯一的数据记录
–CLUSTER表示要建立的索引是聚簇索引
DROP INDEX<;索引名>;
创建和删除视图
视图定义与作用
CREATE VIEW
<;视图名>[(<;列名>[,<;列名>]…)]
AS<;子查询>
[WITH CHECK OPTION];
DROP VIEW<;视图名>;
sql约束条件大于0查询
SELECT[ALL|DISTINCT]<;目标列表达式>
[,<;目标列表达式>]…FROM<;表名或视图名>[,<;表名或视图名>]…
[WHERE<;条件表达式>]
[GROUP BY<;列名1>[HAVING<;条件表达式>]]
[ORDER BY<;列名2>[ASC|DESC]];
连接查询:等值连接,非等值连接,自身连接,外连接,多表连接。
•[<;表名1>.]<;列名1><;比较运算符>[<;表名2>.]<;列名2>
比较运算符:=、>、<、>=、<=、!=
•[<;表名1>.]<;列名1>BETWEEN[<;表名2>.]<;列名2>AND[<;表名2>.]<;列名3>嵌套查询:子查询,相关和不相关,子查询谓词(IN,比较,ALL,EXISTS)集合查询:UNION,INTERSECT,MINUS
插入数据
INSERT INTO<;表名>[(<;属性列1>[,<;属性列2>…)]
VALUES(<;常量1>[,<;常量2>]…)
修改数据
UPDATE<;表名>SET<;列名>=<;表达式>[,<;列名>=<;表达式>]…
[WHERE<;条件>];
删除数据
DELETE FROM<;表名>
[WHERE<;条件>];
数据控制
完整性,安全性,并发,恢复
–GRANT语句的一般格式:
GRANT<;权限>[,<;权限>]...
[ON<;对象类型><;对象名>]
TO<;用户>[,<;用户>]...
[WITH GRANT OPTION];
–REVOKE语句的一般格式为:
REVOKE<;权限>[,<;权限>]...
[ON<;对象类型><;对象名>]
FROM<;用户>[,<;用户>]...;
代价模型
•集中式数据库
•单用户系统
总代价=I/O代价+CPU代价
•多用户系统
总代价=I/O代价+CPU代价+内存代价
•分布式数据库
总代价=I/O代价+CPU代价[+内存代价]+通信代价
查询优化准则
•选择运算应尽可能先做
–目的:减小中间关系
•在执行连接操作前对关系适当进行预处理
–按连接属性排序
–在连接属性上建立索引
•投影运算和选择运算同时做
–目的:避免重复扫描关系
•将投影运算与其前面或后面的双目运算结合
–目的:减少扫描关系的遍数
•某些选择运算+在其前面执行的笛卡尔积===>连接运算