当前位置: 首页 > news >正文

软考中级_【软件设计师】知识点之【数据库】

一、结构数据模型

  1. 结构数据模型是直接面向数据库的逻辑结构
  2. 包括:
    1. 层次模型、网状模型、关系模型(主要学习)、面向对象模型
    2. 层次模型:
      1. 是一个树结构
      2. 一对多
    3. 网状模型:
      1. 图结构
      2. 多对多
    4. 关系模型
      1. 是一种二维表格结构
        1. 例如:Excel
      2. 每个二维表由行、列组成(称为关系)
      3. 关系模型是对关系的描述
      4. 关系模型是由多个关系模型组成的集合

二、三级模式结构

  1. 包括:
    1. 概念模式
    2. 外模式
    3. 内模式
  2. 概念模式:
    1. 别名:模式
    2. 对应:基本表
  3. 外模式:
    1. 别名:用户模式、子模式
    2. 对应:视图
  4. 内模式:
    1. 别名:存储模式
    2. 对应:存储文件

三、二级映像

/表示为到

  1. 包括:
    1. 模式/内模式映像
    2. 外模式/模式映像
  2. 模式/内模式映像:
    1. 物理独立性
    2. 实现了模式到内模式映像之间的转换
  3. 外模式/模式:
    1. 逻辑独立性
    2. 实现了外模式到模式映像之间的转换

三、关系模型中的基本术语

注意:码=键

四、关系模型中的关系完整性

  1. 三个规则
    1. 实体完整性:主键不能为空
    2. 参照完整性:
      1. 例如:表a中有主键和外键,a中的外键对应b表中的主键,
      2. 这样的话,a表中的外键的值,只能是b表中的主键,或空,不能为其他

3. 用户定义完整性:用户对某一具体的数据制定某种约束检测。

五、笛卡尔积

  1. 符号:✖
  2. 例如:

六、关系代数

符号大全

差解释:

1. 删除B中和A一样的,剩下的就是差

投影

2. 符号:Π
3. 解释:在关系R中选出若干属性列A组成新的关系

选择

4. 符号:![](https://cdn.nlark.com/yuque/0/2025/png/38516294/1741011697358-5e48b58a-ae55-4dcc-9bdb-5462b55d89f5.png)
5. 含义:从关系R中选择满足条件的元组

6. **注意:在关系代数中a=1和a=‘1’的含义是不一样的**
7. **a=1是比较a列和第一列的数据是否一致**
8. **a='1'是比较a列的元素是否等于字符‘1’**

连接(join)

9. 符号:	![](https://cdn.nlark.com/yuque/0/2025/png/38516294/1741011872559-b9e6ef15-b6a8-4f66-911c-4cb70951ca83.png)
10. 分类:
    1. ![](https://cdn.nlark.com/yuque/0/2025/png/38516294/1741011915166-6d92691e-6735-4152-a56f-86c339424ae5.png)
    2. 等值连接
    3. 自然连接
11. 注意:**笛卡尔积是无条件产生的**
12. **如果使用自然连接,但是列于列之间没有相同属性的话,会触发笛卡尔积现象。**
    1. 例如:![](https://cdn.nlark.com/yuque/0/2025/png/38516294/1741012048607-78ed8a87-e639-4ded-bcc2-a4e77207b3ce.png)
θ连接

等值连接
  1. 等值连接和自然连接的区别:
    1. 等值连接 》》》只需要找到同名列的相同属性元素元组即可
    2. 自然连接》》》需要再删除重复的列

自然连接
  1. 含义:是去除重复属性列的等值连接(常考
  2. 记作:
  3. 注意:如果R和S有多个属性同名,那需要R和S的多个属性值都相同。

外连接

  1. 包含:
    1. 左外连接
    2. 右外连接
    3. 全外连接
左外连接
  1. 符号:
  2. 含义:取出左侧关系与右侧不匹配的元组,用null填充左侧

右外连接
  1. 符号:
  2. 含义:取出右侧关系与左侧比匹配的元组,用null填充左侧

全外连接
  1. 符号:

除(了解)

  1. 符号:➗
  2. 含义:R➗S,删除R中和S相同的元组

七、以上知识点例题

  1. 例题一

  1. 例题二

  1. 例题三

  1. 例题四

  1. 例题五

八、关系代数转SQL

  1. 投影
select * from 表名
  1. 选择
select * from 表明 where 属性 (符号) 属性
  1. 笛卡尔积现象
select a.name,b.name from a,b
  1. 自然连接
select * from a,b where a.name = b.name

  1. 例题1

九、SQL语言

简介:SQL Service 数据库的体系结构是由视图、基本表和存储文件之间结构组成。

SQL的数据定义语言

  1. 创建数据库
create database 数据库名称
  1. 创建表结构
create table 表名称 (
  # 属性
  name char,
  age char(2)
)
  1. 增加表的列
alert table test add f3 int
  1. 修改test表的f3类型为float
alert table test modify f3 float
  1. 删除f3列
alert table test drop f3
  1. 删除test表
drop table  test
  1. 列级完整性约束
    1. not null
    2. unique
    3. default
    4. not null unique
# 创建test表,其中a属性不能为空,且值唯一,b属性默认值为'1'
create table test (
  a int unique not null,
  b char(11) default '1'
  
)
  1. 表级完整性约束(掌握)
    1. 主键约束
    2. 外键约束
    3. 用户自定义约束
create table (
  id int  ,
  age char(11),
  imgId int,
  primary key(id), # 主键
  foreign key(imgId) references img # 外键
  ,
  check(name <=120)  # 用户自定义
)

SQL的数据操作语言

# 插入
insert into 表名称 (列名) values(元组值)
# 删除
delect from 表名称 where 条件
# 修改
update 表名称 set 列名称=想要修改的值  where  条件

SQL的数据查询语言

  1. 完整语法

  1. 投影查询
select * from 表名称
  1. 查询去重复的列
select distinct1  from 表名称
  1. 选择查询
#范围查询
select * from test where between 条件1 and 条件1
#like关键字  _表示一个字符,%表示一个或多个字符
select * from test where like '王_'
# 查询成绩为31,32,33的人
select * from test where cj in (32,31,33)
# 条件逻辑 and or not is
# 排序查询  默认升序 asc  降序为:desc
order by 列名称 desc 
# 查询一学号为降序的S表
select * from s
order by 学号 desc
  1. 聚合函数

查询s表中年龄最大的人
select max(age) from s
  1. 分组
#  group by 列名称
# 解释:把列中值相同的分为一组

  1. 聚合和分组
    1. 因为聚合函数一般只有一个分组,但是如果要显示多列的话加上分组
  2. 执行顺序

  1. 连接查询
# 一般格式
select * from a,b where 条件
# 在sql service中连接分成了内连接(inner join)和外连接(outer join),mysql默认为内连接
# 内连接分为:等值连接、非等值连接、自连接


# 外连接分类:左外连接、右外连接、全外连接
left outer join
right outer join
full outer join

  1. 子查询
    1. 解释 :一个查询中的条件为一个查询
# 例如:在A表中学生编号为105和该同学同岁的人
select * from where age = (select age from A
                          where no ='105')

注意:

all(全部大于)

any(大于最小的)

  1. 带EXISTS测试的子查询

  1. 查询结果的并、交、差计算
    1. 并(union)
      1. 例如A和B表的列1
select1 from A union select1 from B    
2. 交(intersect)
    1. 例如:查A表和B表列1值都相同的
select1 from A intersect select1 from B    
3. 差(except)
    1. 例如:把A表中属于B的删除
select1 from A except select1 from B

例题

SQL控制语句

  1. 数据控制师用户对数据的存储权力
  2. 授权的语句格式
    1. 说明(记):wtth grant option表示了,若指定了此子句,获得的权限用户还可以赋给其他人
grant <权限> [on 对象属性] <对象名> to <用户> [wtth grant optino]
# 例如:将对供应商s,零件p项目j的所有操作权力给用户u1,u2
grant all privileges on table s,p,j to u1,u2 
# 将表s的插入权限给u3
grant inster on table s to u3 
# 数据库s创建表的权力给u4
grant createtab on database S to u4
  1. 回收权限语句(了解)
# 格式:
revoke xxx from 用户
# 例如:将u1、u2在s1,s2表中的所有权限回收
revoke all privileges on table s1,s2 to u1,u2
#例如 将所有用户对表s1的查询权限回收
rovoke select on table s1 from public # public指全体用户

视图

  1. 视图是一张虚拟表
  2. 注意:在视图中,子查询不能使用 ordeer by和distinct(去重)
  3. 创建视图
create view 视图名 as select 查询子查询

  1. 删除
drop 视图表
  1. 例题
    1. 答案:BC

索引(index)

重点记:**内模式**是定义所有的记录类型、索引、和文件的组织方式。

例题

十、关系模式

一个关系模式应当为一个五元组(含关系名):R(U,D,dom,F)

含义解释

  • R:关系名
  • U:一组属性
  • F:U的一组函数依赖
  • D和dom(不做了解)

常常把关系模式看作:R(U,F)

关系数据库的规范化

扩展知识:

函数依赖
1. x函数决定y或y函数依赖于x
2. 记作:x—>y
  1. 平凡函数依赖和非平凡函数依赖

  1. 完全函数依赖

1. 例如:(学号,课程号)—>成绩
2. 解释:需要学号和课程号两个主属性才能推出成绩
  1. 部分函数依赖

1. 例如:(学号,课程号)—>成绩 ,学号->姓名
2. 解释:在候选码中,其中一个真子集就推出了姓名
  1. 传递依赖
    1. 例如:x->y,y-z 所以可以得到:x->z
  2. 伪传递依赖(x,y)->z, zx->b,b->c 可以得出:(x,y)->c
码和推理规则
  1. 码:k为R(u,f)中属性的组合
  2. 候选码:k的任意子集不可能推出u
  3. 全码:主属性(候选码的一个属性)+非主属性
    1. 关系R中的所有属性组合在一起
  4. 推理规则:
    1. 传递率:a->y,y->z 则a->y
    2. 合并原则:a->b,a->x,则 a->bx
    3. 分解规则:a->b,c包含b 则a->c
属性闭包计算

目的:找出可以完全推到出U的元素

技巧:整个右侧,并找到右侧 没有出现的元素

可以找到两个候选码(a1a3)和(a1a2)

注意:当有多个候选码的时候,可以任意选一个作为主键

十一、关系模式的范式

扩展

第一范式(1NF)

要求:第一范式不可再分

问题:不能排除数据冗余和更新(包括删除、修改、插入)异常问题

第二范式(1NF)

要求:满足第一范式,且每个非属性都完全函数依赖候选码

存在问题:可能存在传递函数依赖

分解过程:

第三范式(1NF)

解决第二范式存在的非主属性函数依赖我问题

存在问题:可能存在主属性对码的部分依赖和传递依赖

BC范式(BCNF)

消除主属性对候选码的部分函数依赖和传递依赖

第四范式(1NF)(了解)

总结

  1. 判断部分函数依赖技巧:
    1. 先找到候选码

  1. 判断传递依赖函数技巧

例题

十二、无损连接

  1. 含义:对关系模式分解时,原关系模式下一任合法的关系实例可通过自然连接恢复
    1. 例如:

  1. 保持函数依赖的分解

例题

答案:D

十三、E-R图

别名:概念模型

实体

  1. 形状:矩形

画板

联系

  1. 形状:菱形

画板

  1. 分类:
    1. 一对一:1:1
    2. 一对多: 1:n
    3. 多对多 : n:m

属性

  1. 形状:椭圆
  2. 分类:
    1. 原子属性和复合属性(可再分)
    2. 单值属性和多值属性
      1. 多值案例:一个职员多个亲戚
    3. null属性
    4. 派生属性
      1. 可以从其他属性得来
        1. 例如:A可以通过计算得到B

画板

例题

弱实体

十四、数据库分析与设计(重要)

  1. 数据库设计的策略:自顶向下、自底向上
  2. 设计步骤:

需求分析

主要收集用户的需求,确定系统边界

产生的成果物:数据流程、数据字典、数据字典、系统需求说明书

概念结构设计

通过需求分析成果物,生成对应的E-R图

E-R图之间的冲突
  1. 命名冲突:
    1. 相同含义的属性在不同的E-R图中名称不同(异名同义)
      1. 例如:学生编号和学号
  2. 结构冲突
    1. 同一实体在不同的E-R图中有 不同的属性

例题:

逻辑结构设计

E-R图到关系模式的转换

  1. 一对一关系转换
    1. 方法一:创建一新的关系模式,存放两张表的主键
    2. 方法二(常用):任意选一张表把另一张表的主键加入,作为该表的外键

  1. 一对多关系转换:
    1. 方法一:创建一新的关系模式,存放两张表的主键
    2. 方法二(常用):选关系为多的表把另一张表的主键加入,作为该表的外键
  2. 多对多关系转换:
    1. 创建一新的关系模式,存放两张表的主键

  1. 例题

物理结构设计

数据库实施阶段

数据库运行、维护阶段

例题

十五、事务管理

背4个特性:原子性、一致性、隔离性、持久性

例题:

十六、数据库的备份和恢复

  1. 备份方法

  1. 恢复

  1. 例题

十七、并发控制技术

  1. 分类:
    1. 排它锁,简称:X锁或写锁
    2. 共享锁,简称:S锁或读锁
  2. 排它锁:事务如果加入它,其他事务都不能再给给事务加锁
  3. 共享锁:只能读事务,不能修改事务,其他只能再给它加共享锁
  4. 例题:

十八、分布式数据库

十九:杂题

相关文章:

  • Llama-Factory框架下的Meta-Llama-3-8B-Instruct模型微调
  • CentOS 最新系统安装 Redis 7.0.11 详细指南
  • 重生之数据结构与算法----数组链表
  • 2025-03-06 学习记录--C/C++-PTA 练习8-8 移动字母
  • Android MXPlayer-v1.86.0-wushidi专业版[原团队最后一个版本]
  • 实战案例分享:Android WLAN Hal层移植(MTK+QCA6696)
  • 编程语言介绍:Rust
  • RK3588V2--HYM8563TS RTC 实时时钟适配移植
  • QTday4
  • 谈谈你对 Seata 的理解?
  • 第四章:go 不同进制的区分 for _, r :=range 使用
  • 【入门级篇】保姆级教程:零基础实现DeepSeek本地部署的两种终极方案(附避坑指南)
  • 红果短剧安卓+IOS双端源码,专业短剧开发公司
  • vLLM + Open-WebUI 本地私有化部署 DeepSeek-R1-Distill-Qwen-32B 方案
  • 如火如荼的deepseek,AI初试探!
  • 如何基于LLM及NL2SQL打造对话式智能BI助手
  • 网络与网络安全
  • Springboot-mybatis配置多数据源
  • 加油站小程序实战教程09显示站点信息
  • Z字形字符串转换力扣6
  • 网站建设服务费/黄页大全
  • 广州热点新闻/哈尔滨怎样关键词优化
  • 做代购的流程 韩国网站/中山疫情最新消息
  • 公司网站制作深圳/个人网站
  • 广州建设手机网站/赤峰seo
  • 电子商务网站建设下载/公司网站设计制作