2024年最新【软考笔记——软件设计师】(四(1),2024年最新2024字节跳动春招技术面试题

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 问题一 就是补全图中缺失的部分
  • 看题目描述 那种一个 对 多个 or 多对多 or 一对一 (一 :用数字1 写在线上即可 多:* 这个符号写线上 , 中间的菱形 写动作的名字 如果题目有改写为联系1 or 联系2 则写联系x)

问题二

  • 就是写缺失的候选码 : 找信息里面的补上, 再看该实体是否与其他实体有联系 , 则要加上另外一个实体的主键作为该实体的外键约束
  • 主键和外键的区别 :
  • 主键 看原文 + 看题目描述 如果出现xx和xx唯一识别xxx 则这多个主键和另外的外键需要一起(xx,xx,xx) 作为主键 否则就只有一个主键
  • 外键就是相对于主键 的其他外键

问题三

  • 题目要求补上缺失的“弱实体” 则要去图中画上实体 以及联系 , 修改"实体"的关系模式 :就是在实体的候选码中增添码,并且修改为主键约束 or 外键 约束 (主键约束 是______ 外键约束是 _ _ _ _ _ )

问题四

多背 那些错误冗余什么的

概念数据模型 (看看就行)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 层次模型 :树结构
  • 网状模型:图结构

关系模型 (主要)

在这里插入图片描述
在这里插入图片描述

三级模式结构

  • 外模式 (也称子模式or用户模式)对应 外部视图
  • 概念模式(也称模式) 对应 对应DMBS(数据库管理系统)中的基本表
  • 内模式 (也称存储模式)对应 数据库里面的 存储文件
    在这里插入图片描述

两级映像

在这里插入图片描述

关系模型的基本术语

  • 码 == 键
  • 这个主属性的描述有问题,其实说白了就是所有候选键都是主属性,其他都是非主属性
    元组就是表中一行数据,属性就是表中的列表名称在这里插入图片描述

完整性约束

在这里插入图片描述

关系代数符

在这里插入图片描述

在这里插入图片描述

集合运算符

在这里插入图片描述

  • 投影和选择的符号别搞混淆
  • 投影默认第i列 下标映射为数值i
    在这里插入图片描述
    在这里插入图片描述
  • 选择就是选中符合条件的指定的行然后把它们拼在一起组成新的关系
  • 表示查找的值 需要用单引号括起来 , 如果是数字的话就表示行的关系
    加上其他符号 or and …
    • 在这里插入图片描述

连接 Join

  • 符号在这里插入图片描述
θ连接 西塔

在这里插入图片描述

  • 连接其实就是在两个关系的笛卡尔积中选择符合条件的行**,而上面这种连接其实就是用比较运算符来进行比较**
    在这里插入图片描述
    这上面的字母比较是比较26字母先后顺序
等值连接
  • 等值连接就是笛卡尔积中某一列和另外一列相等就符合要求,然后选择出来就行了
    在这里插入图片描述
自然连接

在这里插入图片描述

在这里插入图片描述

  • 自然连接的条件是看有哪些公共的属性(其实就是列名一样),像上图明显A和C是两个关系中都有的公共属性,所以就是在笛卡尔积中找R.A=S.A并且R.C=S.C(也就是两个关系职中A和C必须同时相等才是符合要求的,如果有三个公共属性,那么这三个公共属性要求在两个关系中都相同,以此类推),符合这个条件的就找出来
左外连接

在这里插入图片描述
在这里插入图片描述

右外连接

在这里插入图片描述

全外连接
  • 全外连接是自然连接的结果加左右外连接的结果

逻辑运算符

  • 这里与和或是用来连接上面选择或者投影的条件的连接词,与就是and,或就是or,或只要两边条件有一方满足就可以了这里与和或是用来连接上面选择或者投影的条件的连接词,与就是and,或就是or,或只要两边条件有一方满足就可以了

关系代数转SQL语句

投影状SQL语句

在这里插入图片描述

选择转SQL语句

在这里插入图片描述

笛卡尔积转SQL语句

在这里插入图片描述

自然连接转SQL语句

  • 先把它的关系代数变形为上面等价的笛卡尔积表达式,然后在转SQL
    在这里插入图片描述

SQL语句

SQL语句的分类

在这里插入图片描述

数据定义语句(DDL)

  • 1、 建立数据库
create datebase 数据库名

  • 2、建立基本表
    在这里插入图片描述
    3、 修改基本表结构
    在这里插入图片描述
alter table test modify f3 float ;

  • 修改不是指的修改列的表名,而是指的修改列的类型,一般用上面modify来进行修改
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • primary key是主键约束(功能和not null unique 一样)
  • foreign key是外键约束(上面的外键约束语句意思是对sid设置外键约束并且参照S表中的sid)
  • check 是用户自定义完整性约束(上面语句意思是检查成绩是否在0-100范围内,也就是在表中插入数据的时候成绩这一列会有一个自动检查成绩范围的约束,不在这个范围就会报错)

数据操纵语言(DML)

在这里插入图片描述
在这里插入图片描述

数据查询语言(DQL)

在这里插入图片描述

投影查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

排序查询

在这里插入图片描述
在这里插入图片描述

  • 注意上面红色画出来的语句不是说课程号和分数都是降序排列,这里课程号没有指明是什么排序,那就是默认的升序,分数指明了是降序排序,但是这里是多条件排序,所以是先按课程号进行升序排序,如果课程号相同,那就按分数降序排序
聚合函数查询(注意聚合函数只会返回一个结果值)

在这里插入图片描述
在这里插入图片描述

  • 上面这句是验证分数的平均值,也就是AVG集合函数
    在这里插入图片描述
    • 指的一提的是上面这样写是没问题的,可以进行加减乘除运算(这是我的知识漏洞)
      同时要注意count(*)count(列表名)的区别,区别就是count(*)会把null也算作一个值,会把null这条记录进行统计,而count(列表名)就直接忽视null的记录,不会把这条记录进行统计。

在这里插入图片描述

  • 这是查询课程号的数量并且去重
    在这里插入图片描述
  • 数据分组
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    分组后
    在这里插入图片描述
  • 所谓的分组就是把属性值相同的分为一组,例如上面是按课程号分组的,那么课程号中相同的值就会被分作一组,分组主要用于聚合函数查询只能返回一个值,如果想看具体的情况就使用分组
  • 这里要注意havingwhere的使用区别,区别就是如果拼接的条件里用到了聚合函数,那就只能用 having ,不能用where
    在这里插入图片描述
    在这里插入图片描述
内连接

在这里插入图片描述
在这里插入图片描述

非等值连接

在这里插入图片描述

自连接

在这里插入图片描述

外连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

子查询(先子查询再主查询)

在这里插入图片描述

在这里插入图片描述

数据控制语言 (DCL)

  • SQL访问控制
    在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述

视图

视图的创建与删除

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 如果插入的不满足条件的话, 那么就会插入失败 不显示 。
  • with check option 就是用来判断是否操作成功的 , 如果去修改原视图的判断(where) 语句的内容 就会报错, 如果加了with check option的话就意味着这个视图的增改删操作必须要满足where 后面的条件才可以进行操作,不然就会报错

索引

在这里插入图片描述
在这里插入图片描述

关系模式

  • 因为通过单个关系 是没办法确定一个元组 , 因为内容不唯一性 。
  • 这里的箭头可以理解为决定的意思,例如学号—>姓名,可以理解为学号决定姓名
    在这里插入图片描述

关系数据库的规范化

函数依赖

  • 真子集
    在这里插入图片描述
    在这里插入图片描述
    完整函数依赖就是一个组合里的任何真子集不能够决定依赖关系,例如(学号,课程号)----->成绩这是一个组合关系的函数依赖,表示学号和课程号两个一起决定成绩,这其中任何子集不能单独来确定这个依赖关系,例如学号不能单独决定成绩,课程号也是不能单独决定成绩,这就是完整函数依赖,如果不是一个组合,就是一一对应的函数依赖关系那一定是完整函数依赖,例如学号---->姓名这样的就是完整函数依赖,它不是一个组合,(学号,课程号)----->成绩这样的才是一个组合,这里还要理解真子集的含义,例如(A,B,C)的真子集有(A),(B),©,(A,B),(A,C),(B,C)跟数学里的概念是一样的部分函数依赖就是一个组合里任意真子集能够决定依赖关系,例如(学号,课程号)---->姓名这个组合关系的函数依赖中,单一个学号就能够决定姓名了,也跟就不需要课程号,所以这就是部分函数依赖。

码和推理规则

  • 如果只有一个候选键那就是主键,有多个候选键那就挑一个做主键
    在这里插入图片描述

属性的闭包运算 (求主键)

  • 如果包含 u 里面的全部元素, 则为闭包
  • 技巧 直接看 F中箭头右边 所有存在的字母 一般不存在的就为主键 然后就是各种尝试
    在这里插入图片描述
  • 做题技巧:但凡出现在箭头右边的都不可能是候选键,例如上面这题箭头右边有B和C,那直接排除,剩下一个A,也就是这个A一定是候选键或者候选键中一定要有A,然后发现A不能单独推出U,所以就试一下AC和AB能不能推出
    然后主属性是指候选键包含的属性那就是主属性,例如上面的AC和AB为候选键,那主属性就有ABC
  • 上图 蓝色就为主键 红色为推出来的内容
    在这里插入图片描述

范式

在这里插入图片描述

第一范式

在这里插入图片描述
上面这个是不符合第一范式,因为它的工资可以再进行细分,要符合第一范式那就变成下面这样就可以了
在这里插入图片描述

  • 第一范式说白了就是看属性列表能不能在继续分,能继续分那就不符合第一范式
    然后第一范式会有数据冗余和 更新异常(包括修改,删除,插入异常)这些问题并存在部分函数依赖
    数据冗余容易理解,例如上图画出来的可以看出是内容是一样的,那就重复了很多次这就是数据冗余
  • 更新异常中的修改异常,好比修改红色框中的张三为张四,那就必须把所有的张三都改成张四,如果只改一条就会出现问题,查询学号为001的数据的时候那姓名可能是张三也可能是张四,这就是修改异常

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

是内容是一样的,那就重复了很多次这就是数据冗余

  • 更新异常中的修改异常,好比修改红色框中的张三为张四,那就必须把所有的张三都改成张四,如果只改一条就会出现问题,查询学号为001的数据的时候那姓名可能是张三也可能是张四,这就是修改异常

[外链图片转存中…(img-ZUDKTORb-1715667557273)]
[外链图片转存中…(img-KuC4F6mB-1715667557273)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值