一、计算机基础
自然连接
属性列相同只显示一次
属性列相同的行相同的记录
A | B | C | A | C | D |
---|---|---|---|---|---|
a | b | c | a | c | d |
b | a | d | d | f | g |
c | d | e | b | d | g |
d | f | g |
{% asset_img jiagou1.png %}{% asset_img jiagou59.png %}
{% asset_img jiagou2.png %}{% asset_img jiagou60.png %}{% asset_img jiagou61.png %}
1、先找出从未在右边出现过的属性,必然是候选键之一。
2、以该属性位基础,根据依赖集依次扩展,看能否遍历所有属性,将无法遍历的加入候选键中。
{% asset_img jiagou3.png %}
操作系统
{% asset_img jiagou4.png %}
{% asset_img jiagou5.png %}
{% asset_img jiagou6.png %}
{% asset_img jiagou7.png %}
文件管理
{% asset_img jiagou8.png %}
一级间接索引,保存一个索引表,代表5个地址项,对应5个物理块
二级间接索引,保存5个索引表,每个索引表代表5个物理块
{% asset_img jiagou9.png %}
最大长度:6 4 + 1024 4 + 1024 1024 4 = 4198424
一级间接索引是一个磁盘索引块4k,每个地址项大小4字节,所以一共4*1024B/4B=1024块地址项
直接索引:对应逻辑块号0-5
一级间接索引:6-1029
二级间接索引:1030-
计算机网络
{% asset_img jiagou10.png %}
{% asset_img jiagou11.png %}
{% asset_img jiagou12.png %}
二、信息系统基础
三、信息安全
四、软件工程
五、系统分析
{% asset_img jiagou13.png %}
六、系统设计
七、数据库
{% asset_img jiagou14.png %}
{% asset_img jiagou15.png %}
{% asset_img jiagou16.png %}
{% asset_img jiagou17.png %}
{% asset_img jiagou18.png %}
{% asset_img jiagou19.png %}
八、系统架构设计
九、软件可靠性设计
4/5/6/7/8 案例题
十、大数据架构设计
十一、未来信息技术
十二、运筹学
十三、知识产权
十四、案例分析
架构设计方向
{% asset_img jiagou20.png %}
{% asset_img jiagou21.png %}
{% asset_img jiagou22.png %}
a需求、b安全性、c可用性、d需求、e可用性、f性能、g可修改、h安全性、i可修改、j性能、k需求、l需求
{% asset_img jiagou23.png %}
{% asset_img jiagou24.png %}
{% asset_img jiagou25.png %}
{% asset_img jiagou26.png %}
{% asset_img jiagou27.png %}
{% asset_img jiagou28.png %}
{% asset_img jiagou29.png %}
{% asset_img jiagou30.png %}
{% asset_img jiagou31.png %}
{% asset_img jiagou32.png %}
{% asset_img jiagou33.png %}
{% asset_img jiagou34.png %}
{% asset_img jiagou35.png %}
{% asset_img jiagou36.png %}
{% asset_img jiagou37.png %}
{% asset_img jiagou38.png %}
{% asset_img jiagou39.png %}
{% asset_img jiagou40.png %}
{% asset_img jiagou41.png %}
{% asset_img jiagou42.png %}
{% asset_img jiagou43.png %}
{% asset_img jiagou44.png %}
{% asset_img jiagou45.png %}
{% asset_img jiagou46.png %}
{% asset_img jiagou47.png %}
{% asset_img jiagou48.png %}
{% asset_img jiagou49.png %}
{% asset_img jiagou50.png %}
{% asset_img jiagou51.png %}
{% asset_img jiagou52.png %}
{% asset_img jiagou53.png %}
{% asset_img jiagou54.png %}
论文
{% asset_img jiagou55.png %}
质量属性
性能、安全性、可修改性,可用性
质量特性
敏感点:为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点:指影响多个质量特性,并对多个质量特性来说都是敏感点的质量特性。
风险:不以标准术语出现。某些做法有一些隐患可能导致一些问题。
非风险:某些做法是可行的,可接受的。
Redis
string、hash、set、zset、list
为了保证数据的一致性,读写数据的基本操作步骤为:
读数据
1、根据key读缓存;
2、读取成功则直接返回;
3、若key不在缓存中,根据key读数据库;
4、读取成功后,写缓存;
5、成功返回。
写数据
1、根据key值写数据库;
2、成功后更新缓存key值;
3、成功返回。
过期策略
策略 | 描述 | 优点 | 缺点 |
---|---|---|---|
定时删除 | 在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除 | 保证内存被尽快释放 | 1、若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,会延误业务的执行<br/>2、定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重 |
惰性删除 | key过期的时候不删除,每次从数据库获取key的时候去检查是否过期,若过期,则删除,返回null。 | 删除操作只发生在从数据库取出key的时候发生,而且只删除当前key,对CPU时间的占用比较少。 | 若大量的key在超出超时时间后,很久一段时间内,都没有被请求过,那么可能发生内存泄露(无用的垃圾占用了大量的内存) |
定期删除 | 每隔一段时间执行一次删除过期key操作 | 1、通过限制删除操作的时长和频率,来减少删除操作对CPU时间的占用(避免"定时删除"的缺点)<br/>2、定期删除过期key(避免"惰性删除"的缺点) | 1、在内存使用方面,不如"定时删除"<br/>2、在CPU时间方面,不如"惰性删除" |
内存淘汰机制 | 机制 | 描述 | | --- | --- | | volatile-lru<br/>最近最少使用 | 从已设置过期时间的key中,移出最近最少使用的key进行淘汰 | | volatile-lfu<br/>最不经常使用 | 从已设置过期时间的key中选择最不经常使用的进行淘汰。 | | volatile-random<br/>随机淘汰算法 | 从已设置过期时间的key中随机选择key淘汰。 | | volatile-ttl<br/>生存时间淘汰 | 从已设置过期时间的key中,移出将要过期的key。 | | allkeys-lru | 从所有key中选择最近最少使用的进行淘汰 | | allkeys-lfu | 从所有key中选择最不经常使用的进行淘汰。 | | allkeys-random | 从所有key中随机选择key进行淘汰 |
数据持久化
RDB内存快照(RedisDataBase) | AOF日志(Append Only Flie) | |
---|---|---|
说明 | 把当前内存中的数据集快照写入磁盘(数据库中所有键值对数据)。恢复时是将快照文件直接读到内存里。 | 通过持续不断地保存Redis服务器所执行的更新命令来记录数据库状态,类似mysql的binlog。恢复数据时需要从头开始回放更新命令。 |
磁盘刷新频率 | 低 | 高 |
文件大小 | 小 | 大 |
数据恢复效率 | 高 | 低 |
数据安全 | 低 | 高 |
Redis缓存异常问题
1、缓存穿透
{% asset_img jiagou56.png %}{% asset_img jiagou62.png %}
2、缓存雪崩
{% asset_img jiagou57.png %}{% asset_img jiagou63.png %}
3、缓存击穿
{% asset_img jiagou58.png %}{% asset_img jiagou64.png %}