【软考知识点整理】数据库技术

概念汇总

域: 一组具有相同数据类型的值的集合。例:D1 = {小红,小明,小刚}
域的基数: 域中包含值的个数。如上面D1的基数m = 3。
元组: 所有域的所有取值的集合,其实就是数据库表中的任意一行数据。表中有1列就是“1元组”,有2列就是“2元组”,以此类推。
“目”或“度”: 指关系中域的个数,集数据库表中字段的个数。
属性: 数据库表中每列的字段名。
候选码: 能唯一标识一条数据的属性集。
如关系{学号,科目,成绩}中,学号和科目就是候选码。
全码: 关系中所有属性都是候选码,称为全码。
主码: 若一个关系有多个候选码,,则选定其中一个为主码。
如关系{学号,姓名,科目,成绩}中,候选码有{学号,科目}和{姓名,科目},两者都可以选定为主码,主码一旦选定不可更改。
主属性: 候选码中的每个属性都是主属性。

数据操作

5个基本操作

并()、差(-)、笛卡尔积(×)、投影(σ)[Where]、选择(π)[Select]

  • 并()
    两个字段相同的表合并成一个表
  • 差(-)
    R - S表示从关系R中去掉与S相同的元组
  • 笛卡尔积 (×)
    R x S表示将关系R和S所有属性组成新关系,其中的元组按属性进行组合
  • 投影(σ)
    就是SQL语句中的where
  • 选择(π)
    SQL中的select

4个组合操作:

交()、连接(等值联接)、自然连接(RcrossS)、除法(÷)

  • 交()
    两个字段相同的表的元组的交集
  • 连接
    R x S后,满足某个条件的元组的集合
  • 自然连接
    R和S有相同的属性(如B和C),R x S后取where R.B = S.B AND R.C = S.C

数据库设计阶段

  • 需求分析
    形成需求说明文档,数据字典,数据流程图,作为概念结构设计的输入。
  • 概念结构设计
  • 逻辑结构设计
  • 物理结构设计

数据库三级模式结构对照

  • 外模式<->视图
  • 模式<->基本表
  • 内模式<->存储文件

数据的独立性

  • 物理独立性:指内模式(存储文件)发生变化
  • 逻辑独立性:模式发生变化

分布式数据库

  • 分片透明
    用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。
  • 复制透明
    采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。
  • 位置透明
    用户不需要知道数据存放的物理位置。
  • 逻辑透明
    局部数据模型透明,指用户或应用程序不需要知道局部场地使用的哪种数据模型。

数据库范式

参照资料:传送门

  • 第一范式(1nf)
    要求数据库表的每一列都是不可分割的原子数据项。
    例:“家庭信息”列若同时记录了人口和户籍,应该将家庭信息列拆分成“家庭人口”列和“户籍”列,这样才满足1nf。
  • 第二范式(2nf)
    1NF的基础上,非码属性必须完全依赖于候选码。
    第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。
  • 第三范式(3nf)
    在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)。
    第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
  • 巴斯-科德范式(BCNF)
    要在 3NF 的基础上消除主属性对于码的部分与传递函数依赖。
  • 第四范式(4nf)
  • 第五范式(5nf)

armstrong公理

  • 自反律
    若Y⊆X⊆U,则X→Y为F所蕴含;
  • 增广律
    若X→Y为F所蕴含,且Z⊆U,则XZ→YZ为F所蕴含
  • 传递律
    若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含
  • 合并规则
    若X→Y,X→Z,则X→YZ为F所蕴含
  • 伪传递规则
    若X→Y,WY→Z,则XW→Z为F所蕴含
  • 分解规则
    若X→Y,Z⊆Y,则X→Z为F所蕴含

数据库语句

基本语句

select xx, yy from A, B where xxxxx

group by … having …

select xx from A group by xxx having count(yy) > 2

group by子句后面跟一个having子句可以对元组在分组前按照某种方式加上限制。例子中在分组前加上了xxx中的yy的个数大于2.

intersect

[SQL语句 1]
INTERSECT
[SQL语句 2];

和 UNION 指令类似,INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。UNION 是联集,而 INTERSECT 是交集。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值