数据模型的作用:数据模型是数据库系统的基础,任何一个DBMS都是以某一个数据模型为基础。数据模型的三个要素:数据结构、数据操作、数据完整性约束条件
数据库概念:数据库是长期储存在计算机中、有组织、可共享的大量数据的集合。数据库系统概念:数据库系统是由数据库、数据库管理系统、应用程序、数据库管理员组成的存储、管理、处理和维护数据的系统。数据库系统的特征:①数据结构化(和文件系统的本质区别);②数据独立性高;③数据的共享性高、易扩充、冗余度低;④由数据库管理系统统一管理。
·专门的关系运算> 选择:> 投影:积分投影> 连接:
※对于表意不明确的地方,要加上表名※多做几遍评测平台的题目※写sql语句的注意事项※对于同一个表查询的时候,记得起别名
alter table <表名>[add [column] <新列名><数据类型>[完整性约束]][add<表级完整性约束>][drop [column]<列名>[cascade|restrict]][drop constraint<完整性约束条件>[restrict|cascade]][alter column<列名><数据类型>]
对表的约束(列级约束和表级约束)列级约束有六种:主键Primary key、外键foreign key 、唯一 unique、检查 checck 、默认default 、非空/空值 not null/ null
表级约束有四种:主键、外键、唯一、检查
嵌套查询:子查询不能使用order by语句,order by只能对最终结果进行排序对于查询结果是集合的情况,使用谓词in不相关子查询相关子查询:父查询定义的别名,子查询会用到
数据更新插入数据:如果是数字的话,不要加引号!!!修改数据:update student set sage = 22 where sno = '0501029'删除数据:delete from student where sno = '0501029'
空值的处理向表中插入空值,直接插入NULL,不加引号,像数字一样空值的判断:is null; is not null
视图:命名化的select语句视图的定义存储下来
select * from v_student子查询结果会作为视图结果
select * from视图作用:简化了用户书写SQL的复杂度保证了数据的安全性一定程度上保证数据的逻辑独立性----视图(连接查询、聚集函数)--行列子集视图(来源于单表,视图中包含主键,只是去掉了不重要的属性列,并且去掉的属性列都可以取值为空)
--with check option---视图中,尽量不要带*号
create view v_stu(sno,sname)asselect sno, snamefrom Studentwhere sdept = '计算机'
drop view 删除视图
foreign key(属性) references student(属性)
范式规范化2NF:①每一个非主属性完全依赖于任何一个候选码。②存在问题:插入异常、删除异常、修改复杂3NF:①不存在传递函数依赖。②画有向图,根据图去判断是不是BCNF:①Y非平凡函数依赖X,X有主码。多值依赖:①多值依赖的性质;②多值依赖与函数依赖的区别和BCNF类似,把函数依赖改成多值依赖即可P189:规范化过程
需求分析 -> 概念结构设计 -> 逻辑结构设计 -> 物理结构设计 -> 数据库实施 -> 数据库运行和维护
数据字典:数据项(最小单位)数据结构(数据间组合关系)数据流(数据结构在系统内的传输路径)数据存储(数据结构停留或保存的地方)处理过程
查询处理步骤查询分析(语法)->查询检查(语义,视图,权限,完整性约束->关系代数表达式)->查询优化(代数优化、物理优化)->查询执行
视图消解法:把对视图的操作转换为对基本表的操作,由DBMS完成
选择操作的实现
连接操作的实现
实例分析:eg:求选修了2号课程的学生的姓名。假定数据库中,有1000个学生记录,10000个选课记录,其中选修2号课程的选课记录为50个。
当选择和连接同时存在时,先做选择操作。
begin transaction:commit:rollback:
Atomicity, Consistency, Isolation, Durability