1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-10 00:41:37 +08:00

Compare commits

...

4 Commits

Author SHA1 Message Date
Guide
5980a01a5d [docs update]添加 ORM 框架 MyBatis-Flex] 2023-07-25 23:22:17 +08:00
Guide
f28b7a72ec [docs update]typo 2023-07-25 23:21:54 +08:00
Guide
3c6011797a
Merge pull request #2089 from ShiboLu-Stan/patch-1
Update basis.md
2023-07-25 23:20:09 +08:00
ShiboLu-Stan
ddb4b630cd
Update basis.md
函数依赖与 -》函数依赖于
2023-07-25 21:41:37 +08:00
7 changed files with 8 additions and 7 deletions

View File

@ -63,7 +63,7 @@ ER 图由下面 3 个要素组成:
一些重要的概念:
- **函数依赖functional dependency**若在一张表中在属性或属性组X 的值确定的情况下,必定能确定属性 Y 的值,那么就可以说 Y 函数依赖于 X写作 X → Y。
- **部分函数依赖partial functional dependency**:如果 X→Y并且存在 X 的一个真子集 X0使得 X0→Y则称 Y 对 X 部分函数依赖。比如学生基本信息表 R 中(学号,身份证号,姓名)当然学号属性取值是唯一的,在 R 关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖(学号,身份证号);
- **部分函数依赖partial functional dependency**:如果 X→Y并且存在 X 的一个真子集 X0使得 X0→Y则称 Y 对 X 部分函数依赖。比如学生基本信息表 R 中(学号,身份证号,姓名)当然学号属性取值是唯一的,在 R 关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖(学号,身份证号);
- **完全函数依赖(Full functional dependency)**:在一个关系中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖。比如学生基本信息表 R学号班级姓名假设不同的班级学号有相同的班级内学号不能相同在 R 关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级);
- **传递函数依赖**:在关系模式 R(U)中,设 XYZ 是 U 的不同的属性子集,如果 X 确定 Y、Y 确定 Z且有 X 不包含 YY 不确定 XXY∩Z=空集合,则称 Z 传递函数依赖(transitive functional dependency) 于 X。传递函数依赖会导致数据冗余和异常。传递函数依赖的 Y 和 Z 子集往往同属于某一个事物,因此可将其合并放到一个表中。比如在关系 R(学号 , 姓名, 系名,系主任)中,学号 → 系名,系名 → 系主任,所以存在非主属性系主任对于学号的传递函数依赖。。

View File

@ -35,7 +35,7 @@ CAP 理论的提出者布鲁尔在提出 CAP 猜想的时候,并没有详细
**什么是网络分区?**
分布式系统中,多个节点之的网络本来是连通的,但是因为某些故障(比如部分节点网络出了问题)某些节点之间不连通了,整个网络就分成了几块区域,这就叫 **网络分区**
分布式系统中,多个节点之的网络本来是连通的,但是因为某些故障(比如部分节点网络出了问题)某些节点之间不连通了,整个网络就分成了几块区域,这就叫 **网络分区**
![partition-tolerance](https://oss.javaguide.cn/2020-11/partition-tolerance.png)

View File

@ -340,7 +340,7 @@ public final native void notifyAll()
*/
public final native void wait(long timeout) throws InterruptedException
/**
* 多了 nanos 参数,这个参数表示额外时间(以毫微秒为单位,范围是 0-999999。 所以超时的时间还需要加上 nanos 毫秒。。
* 多了 nanos 参数,这个参数表示额外时间(以纳秒为单位,范围是 0-999999。 所以超时的时间还需要加上 nanos 纳秒。。
*/
public final void wait(long timeout, int nanos) throws InterruptedException
/**

View File

@ -88,7 +88,7 @@ ThreadFactory threadFactory = new ThreadFactoryBuilder()
ExecutorService threadPool = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.MINUTES, workQueue, threadFactory)
```
**2、自己实现 `ThreadFactor`。**
**2、自己实现 `ThreadFactory`。**
```java
import java.util.concurrent.Executors;

View File

@ -34,7 +34,8 @@ icon: "xitongsheji"
### 数据库框架
- [MyBatis-Plus](https://github.com/baomidou/mybatis-plus) : [MyBatis-Plus](https://github.com/baomidou/mybatis-plus)(简称 MP是一个 [MyBatis](http://www.mybatis.org/mybatis-3/) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
- [MyBatis-Plus](https://github.com/baomidou/mybatis-plus) : [MyBatis](http://www.mybatis.org/mybatis-3/) 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
- [MyBatis-Flex](https://gitee.com/mybatis-flex/mybatis-flex):一个优雅的 MyBatis 增强框架,无其他任何第三方依赖,支持 CRUD、分页查询、多表查询、批量操作。
- [Redisson](https://github.com/redisson/redisson "redisson")Redis 基础上的一个 Java 驻内存数据网格In-Memory Data Grid,支持超过 30 个对象和服务:`Set`,`SortedSet`, `Map`, `List`, `Queue`, `Deque` ......,并且提供了多种分布式锁的实现。更多介绍请看:[《Redisson 项目介绍》](https://github.com/redisson/redisson/wiki/Redisson%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D "Redisson项目介绍")。
### 数据同步

View File

@ -25,7 +25,7 @@ tag:
> 关于 Spring IOC 的理解,推荐看这一下知乎的一个回答:<https://www.zhihu.com/question/23277575/answer/169698662> ,非常不错。
**控制反转怎么理解呢?** 举个例子:"对象 a 依赖了对象 b当对象 a 需要使用 对象 b 的时候必须自己去创建。但是当系统引入了 IOC 容器后, 对象 a 和对象 b 之就失去了直接的联系。这个时候,当对象 a 需要使用 对象 b 的时候, 我们可以指定 IOC 容器去创建一个对象 b 注入到对象 a 中"。 对象 a 获得依赖对象 b 的过程,由主动行为变为了被动行为,控制权反转,这就是控制反转名字的由来。
**控制反转怎么理解呢?** 举个例子:"对象 a 依赖了对象 b当对象 a 需要使用 对象 b 的时候必须自己去创建。但是当系统引入了 IOC 容器后, 对象 a 和对象 b 之就失去了直接的联系。这个时候,当对象 a 需要使用 对象 b 的时候, 我们可以指定 IOC 容器去创建一个对象 b 注入到对象 a 中"。 对象 a 获得依赖对象 b 的过程,由主动行为变为了被动行为,控制权反转,这就是控制反转名字的由来。
**DI(Dependency Inject,依赖注入)是实现控制反转的一种设计模式,依赖注入就是将实例变量传入到一个对象中去。**

View File

@ -276,7 +276,7 @@ public interface TransactionStatus{
### 事务属性详解
实际业务开发中,大家一般都是使用 `@Transactional` 注解来开启事务,但很多人并不清楚这个注解里面的参数是什么意思,有什么用。为了更好的在项目中使用事务管理,强烈推荐好好阅读一下下面的内容。
实际业务开发中,大家一般都是使用 `@Transactional` 注解来开启事务,很多人并不清楚这个参数里面的参数是什么意思,有什么用。为了更好的在项目中使用事务管理,强烈推荐好好阅读一下下面的内容。
#### 事务传播行为