关系逻辑

Github搬运(本人的)数据库系统概念与实现(一)

假如想象 提交于 2020-01-08 01:12:17
数据库系统 何为数据库系统,根据《耶鲁大学》的《数据库系统概念》我们可以知道,数据库系统是一些互相关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合 数据库系统的主要目的是为用户提供数据的抽象视图,换言之,数据库系统隐藏了关于数据存储和维护的一些细节。 数据抽象 由于许多数据库系统的用户并不会对数据库进行专业化的操作,所以身为数据库系统的开发人员应该通过以下几个层次来为用户屏蔽复杂性,以简化用户和数据库系统的交互操作 物理层 此为数据库最低层次的抽象,描述了数据实际上是怎么存储的,物理层详细描述复杂的底层数据结构 逻辑层 描述了数据库中存储什么数据以及这些数据间存在什么样的关系,因此逻辑词就可以通过少量相对简单的结构描述了整个数据库 虽然在物理层方面会涉及很多复杂的底层数据结构但逻辑词的用户不比知道这样的复杂性,这被称为 物理数据独立性 (physical data independence) 数据库管理员使用抽象的逻辑层必须确定数据库中应该保存哪些信息 视图层 描述了整个数据库的一部分,由于一个大型数据库中所存储的信息的多样性,有些时候,用户并不会关注所有的信息,而只需访问数据库的一部分 视图层抽象的定义正是为了使这样的用户与数据库系统的交互更加简单,数据库系统可以为同一数据库提供多个视图 总结 数据库系统为数据库开发者屏蔽了许多物理层的最底层的存储细节

DolphinScheduler源码分析

六月ゝ 毕业季﹏ 提交于 2020-01-07 17:13:16
DolphinScheduler源码分析 技术框架 所有模块均采用比较流行的SprintBoot框架 架构图 重要概念 流程定义 在DolphinScheduler中,作业的DAG被命名为“流程定义”。 挺不可思议的。 流程实例 流程实例是流程定义的实例化,可以通过手动启动或定时调度生成,流程定义每运行一次,产生一个流程实例。流程实例由Master解析流程定义生成。 任务实例 任务实例是流程定义中任务节点的实例化,标识着具体的任务执行状态。 居然没有作业的概念,直接上来任务实例的概念,真是匪夷所思。 定时 DAG的触发频率。与DAG概念隔离,单独创建、单独管理,一个DAG可以没有与之对应的定时。 架构说明 Quartz 内部对Quartz进行了一个封装,org.apache.dolphinscheduler.server.quartz.QuartzExecutors仅仅提供增加、删除作业的基础功能。其作业的状态等信息保存在数据库中以QRTZ_开头的表。 为了将实际作业的定义与Quartz隔离,抽象了一个ProcessScheduleJob类,用它来创建JobDetail。 该类仅仅是根据流程定义的定时等信息创建了一个CommandType.SCHEDULER类型的Command对象,然后插入了数据库,并没有的执行任务的具体逻辑。 MasterSchedulerThread

Spring AOP原理及简单应用

偶尔善良 提交于 2020-01-07 11:52:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> AOP 应用: 1. 监控系统重要API的调用事件,用来监控系统的性能。 2.Authentication 权限 3. Caching 缓存 4. Context passing 内容传递 5. Error handling 错误处理 6. Lazy loading 懒加载 7. Debugging  调试 8. logging, tracing, profiling and monitoring 记录跟踪 优化 校准 9. Performance optimization 性能优化 10. Persistence  持久化 11. Resource pooling 资源池 12. Synchronization 同步 13. Transactions 事务 ...... 相信只要使用过Spring框架的,大家对于AOP都不陌生,尤其提起它就能立刻随口说出,一般用在日志处理、异常处理、权限验证等方面。但刚开始接触难免会有各种各样的疑惑,今天抽时间,按照之前的理解整理了一份关于Spring AOP的简单教程,希望能够帮助大家尽快的了解它的实现过程及原理。首先来明确几个概念: JointPoint 系统在运行之前,AOP的功能模块需要织入到OOP的功能模块中。要进行这种织入过程

微服务全流程分析

余生颓废 提交于 2020-01-07 11:09:25
转眼已经2020,距离微服务这个词落地已经过去好多年!(我记得2017年就听过这个词)。然而今天我想想什么是微服务,其实并没有一个很好的定义。为什么这样说,按照微服务的定义: 微服务架构就是将一个庞大的业务系统按照业务模块拆分成若干个独立的子系统,每个子系统都是一个独立的应用,它是一种将应用构建成一系列按业务领域划分模块的,小的自治服务的软件架构方式,倡导将复杂的单体应用拆分成若干个功能单一、松偶合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发,及持续集成与交付活动。 根据这个定义,不难看出其实就是对复杂的业务系统统一做逻辑拆分,保持逻辑上的独立。那么逻辑上独立就是一个服务这样做真的是好吗,如何界定:小、独,还有要做一个事情,完成单一的业务,单一的功能要拆分出来,为了独立而独立会不会导致拆的过细?不同人有不同的见解,我们今天一起探讨微服务的过去和未来。 微服务缘起 在没有微服务之前,我们最早的架构模式就是 MVC 模式,把业务逻辑分为:表示层,业务逻辑层,数据访问层。MVC模式随着大前端的发展,从一开始的前后端不分离,到现在的前后端分离逐渐演进。这种演进好的一点是剥离了不同开发语言的开发环境和部署环境,使得开发较为便利,部署更直接。然而问题是:这种模式仍然是单体应用模式,如果有一个改动需要上线,你不得不因为这个改动去考虑更多

Mycat 快速入门

故事扮演 提交于 2020-01-07 07:04:31
什么是Mycat 至于什么是Mycat,可能在不同的角色下有不同的理解。对MySQL架构有过了解的话,都知道MySQL实际上是由Server层和存储引擎层组成的。所以 对于DBA来说 ,Mycat 就是 MySQL 的Server层。而 Mycat 后面连接的 MySQL Server,就好象是 MySQL 的存储引擎。因此,Mycat 本身并不存储数据,数据是在后端的 MySQL 上存储的,因此数据的可靠性 以及事务等依旧是 MySQL 保证的。 对于开发人员来说 ,Mycat基本等同于MySQL。因为完全可以使用连接MySQL的方式去连接Mycat,除了默认端口不同之外,连接方式上没有区别。所以Mycat对于开发人员来说是透明的,只不过在SQL的使用上有一些限制。 而对于架构师来说 ,Mycat 是一个数据库中间件,可以用作读写分离、分表分库以及容灾备份等。对于使用Mycat的应用来说,其隐藏了数据库的存储逻辑。让我们无需在代码上去对读写分离等存储逻辑进行控制,从而达到不修改应用代码的前提下,扩展数据库架构。 由于Mycat是国内的开源项目,有非常完善且丰富的中文文档。所以本文就不对基础概念进行赘述了,建议参考 Mycat权威指南在线版 或到 Mycat官网 中了解更多关于Mycat的内容。 什么是数据库中间件 数据库中间件,就是介于数据库与应用之间

哈罗出行数据挖掘实习生电面题 (一面二面)

感情迁移 提交于 2020-01-06 23:39:38
(一面) 1、先自我介绍一下自己的背景和接触的项目 ; 2、如果一个数据没有明显的相关性 还能放进去LSTM吗; 3、说一下过拟合解决办法; 4、说一下你最熟悉的一个模型; 5、说一下神经网络中怎么解决过拟合; 6、集成方法中的bagging和boosting的区别; 7、随机梯度下降和其他优化方法的区别; 8、口述逻辑回归公式;逻辑回归有什么优化方法吗;逻辑回归为啥用log 9如果你对你的SQL打分打多少分。有用户ID 和时间 怎么写语句找到时间差 ; 10、白噪声 然后就是实习时间 要求一周4天 我说10号前估计只能3天 后面可以天天来 (估计凉 (二面) 1、线性回归的系数和高斯分布的均值 方差有什么关系吗(求解答) 2、xgboost和GBDT区别 3、综合面 比如平时兴趣爱好 、10点上班7点下班 6点半给你个任务 你怎么办、我看你修了机器学习和数据挖掘 你能讲讲学了哪些模型吗 4、你是控制科学与工程的学生,你能说说你在这块和科班的有啥优缺点吗 5、x是常量 y是递增的 可以去拟合吗 来源: CSDN 作者: 南瓜风槐 链接: https://blog.csdn.net/qq_39785597/article/details/103847615

mycat的schema.xml 配置文件详情

夙愿已清 提交于 2020-01-06 20:17:19
文章目录 一、概念与图示 二、schema 标签:逻辑数据库 2.1、属性列表 2.2、其他注意事项: 2.2.1、dataNode属性 2.2.2、checkSQLschema 属性 2.2.3、sqlMaxLimit 属性 2.3、table 标签——逻辑表 2.3.2、childTable 标签 三、dataNode 标签:分片信息,也就是分库相关配置 四、dataHost 标签:物理数据库,真正存储数据的数据库 4.1、heartbeat标签 4.2、writeHost 标签、 readHost 标签 一、概念与图示 schema.xml 是 Mycat对应的物理数据库和数据库表的配置。 schema.xml 配置的几个术语与其关系图示: 二、schema 标签:逻辑数据库 schema 标签用于定义 MyCat 实例中的逻辑库。 MyCat 可以有多个逻辑库,每个逻辑库都有自己的相关配置,可以使用 schema 标签来划分这些不同的逻辑库。 ps:如果不配置 schema 标签,所有的表配置,会属于同一个默认的逻辑库。 < schema name = " USERDB " checkSQLschema = " false " sqlMaxLimit = " 100 " dataNode = " dn1 " > </ schema > < schema name = "

转载ui自动化测试的深刻认识

霸气de小男生 提交于 2020-01-06 17:08:32
我发现了,大家极度关心自动化测试,尤其是UI自动化测试,虽然现在作为专项测试,离开这些越来越远了,但总能遥想以前,我总能想起自己做nokia的WindowsLive的ui自动化,做web的自动化测试,后面加入腾讯,写过pc的自动化,作为早期的终端测试,做android的自动化,然后mac的,然后ios。 先不说有多少成功经验,但是确实有一些感悟,现在分享给大家,希望能帮助大家思考,少走弯路。 *UI自动化测试的真实价值 图片发自简书App 测试生命中三大幻觉: 今天能发布 明天能发布 UI自动化实现了,测试就可以不用测了 正正是第三点赋予了ui自动化测试错误的价值。让UI自动化测试验证UI, 利用图片比较去做自动验证,甚至利用截图定位按钮。真是找死的节奏呀。 现在我带大家认识下它的真正价值。 验证逻辑而非UI UI的验证会引入大量的不稳定因素。换句话说,像当年的测试大牛段念说的,你跑过了UI自动化,你就相信没问题了吗?不会相信,原因是啥?因为聪明的你会发现,你验证的东西越多,例如界面的每个按钮,颜色,排布,互联网应用变化最大的就是UI, 你的用例就越不稳定,所以你最终肯定不会验证全部UI。那结果就是"然并卵"了, 你根本不会相信这个用例真的通过了。因此给大家定个UI自动化能做的,验证逻辑(另外一种说法,说这种叫功能自动化)。什么叫验证逻辑?例如验证qq是否登录成功,验证到了好友列表

Spring实现AOP的多种方式

本秂侑毒 提交于 2020-01-06 05:54:23
AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术。AOP是OOP的补充,是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP可以分为静态织入与动态织入,静态织入即在编译前将需织入内容写入目标模块中,这样成本非常高。动态织入则不需要改变目标模块。Spring框架实现了AOP,使用注解配置完成AOP比使用XML配置要更加方便与直观。 上一篇随笔中已经详细讲了代理模式 。 一、基于XML配置的Spring AOP 在讲注解实现AOP功能前先用前面学习过的使用xml配置Spring AOP功能,这样是为了对比以便更好的理解。 1.1、新建一个Maven项目,添加引用,项目的pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven

完整的IT项目开发流程

萝らか妹 提交于 2020-01-05 10:13:22
一般情况下,企业开发软件时会按照基线和定制两块并行方式执行项目开发工作。无论什么公司,都需要遵从一套成熟的产品研发过程体系,才能做出质量较好的产品。因此,如果出现项目较多的情况,应该合理地安排基线和定制之前的里程碑,让基线产品能够尽量多地收集用户的通用型需求,为定制项目进度实现技术支撑,减少定制项目中大量更改代码、需要新增模块情况发生。此外,产品研发过程体系也需要按照业务实际时间要求变化,不要拘泥于一定要按照瀑布方式,或是敏捷方式进行管理,凡事都需要找到契合自己的方式。 【这里以一个基线产品开发过程作为流程解释基础,需要注意的是,以下说描述的各个阶段,在项目执行前要明确各个阶段的目标、指定计划、及时沟通,并确保各个时期所有成员对项目理解一致】 项目启动会 项目启动会的目标是明确该产品开发项目的目标。目标不是孤立存在的,目标与计划相辅相成,目标指导计划,计划的有效性影响着目标的达成。所以在执行目标的时候,考虑清楚自己的行动计划,怎么做才能更有效地完成目标,是每个人都要详情清楚的问题,否则,目标越是不清晰或是过高,都会影响项目的实际结果。 项目启动会需要说明项目目标、阶段划分、组织结构、管理流程等关键事项,并将这些内容写入 PPT(最好是有固定格式和范文,让团队内部或者公司内部共同遵守规范),需要大家达成一致。对于关键角色任命,事前也需要听取相关领导和项目主要干系人的意见。 用户需求