范式

面试题录:数据库篇

醉酒当歌 提交于 2019-11-30 02:37:17
1、数据库三大范式 数据库设计的三大范式 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就叫做范式。 范式就是符合某一种设计要求的总结,要想设计一个结构合理的关系型数据库,必须满足一定的范式。 三大范式: 第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了; 第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF; 第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF。 理解: 第一范式 1、每一列属性都是不可再分的属性值,确保每一列的原子性 2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。 第二范式 1、每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。 2、一个人同时订几个房间,就会出来一个订单号多条数据,这样子联系人都是重复的,就会造成数据冗余。我们应该把他拆开来。 第三范式 1、数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。像:a–>b–>c

数据库相关

偶尔善良 提交于 2019-11-29 21:51:18
数据库设计:名词提炼法;名词考虑表或字段,动词考虑关系。 表结构 字段类型、是否允许为null、是否有默认值 索引设计 数据库引擎的选择 1.关系型数据,长期存储 2.主键 唯一标识、行号、不会重复 不能以业务数据作为主键 自增id, 3.纵向字段转成横向数据 用户选择的频道可以是多个,如果用户表存储多个频道数据,容易造成空间浪费 把纵向的字段转成横向的数据 节约空间存储 4.json数据 mysql5.7版本后,json数据支持,类似于python字典,LONGTEXT 数据相对固定,变化较小,建议使用json; 如果是mysql5.7版本之前的,建议选择另创建一张表; 5.范式 三范式 1.字段不重复、原子性、不可以分割 2.满足第1范式的基础上,必须要有主键依赖 3.满足第1、2范式的基础上,非主字段之间没有依赖关系 6.反范式 利用空间换时间 利用表的字段来存储冗余数据,可以节省查询时间。 实名认证 活体认证、至少存储1张图片 7.字段类型 tinyint/bigint/int int(10),int(20),int(50),tinyint(20) 字段数据类型的大小,是由括号外的类型决定,括号里面表示显示的宽度。 8.字符串 char,mobile,查询效率较高,容易浪费空间。 varchar,mobile,查询效率较低,存储节约空间。 9.索引 特殊的数据结构

【编程范式】函数式基础图示

倖福魔咒の 提交于 2019-11-29 13:37:47
函数式 起源于范畴论。其诞生就是「学术领域」影响「编程领域」的结果。 函数式就是要求用面向本质的、纯的函数,来完成求值的功能。是一种数学运算。 基本运算方式:「柯里化」与「合成」 函数式编程有两个最基本的运算:合成和柯里化。 数学运算要求「无状态编程」,函数本身不能有可保留的变量。 要求做到一个输入产生一个输出,同样的输入产生同样的输出。 柯里化(Curry)与合成(Compose)可以让多参数和多步骤的函数集合,生成一个单入单出的新函数。 详细资料 GitBook:函数式编程指南 阮一峰:函数式基础 来源: https://www.cnblogs.com/mazhaokeng/p/11518678.html

数据库设计的三大范式2

筅森魡賤 提交于 2019-11-29 04:42:50
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个: 1 .第一范式 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。 第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式,如下表所示。 用户信息表 编号 姓名 性别 年龄 联系电话 省份 城市 详细地址 1 张红欣 男 26 0378-23459876 河南 开封 朝阳区新华路23号 2 李四平 女 32 0751-65432584 广州 广东 白云区天明路148号 3 刘志国 男 21 0371-87659852 河南 郑州 二七区大学路198号 4 郭小明 女 27 0371-62556789 河南 郑州 新郑市薛店北街218号 上表所示的用户信息遵循了第一范式的要求

数据库三大范式和五大约束

妖精的绣舞 提交于 2019-11-28 23:59:39
数据库的三大范式: 第一范式:数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值。 第二范式:先满足第一范式,实体中每一行的所有非主属性都必须完全依赖于主键。 第三范式:先满足第二范式,实体中的属性不能是其他实体中的非主属性。即数据库中每一列数据都和主键直接相关,而不能间接相关。 下面举例来解释三大范式。 例如用户信息表中有 地址 这个属性,如果 地址 属性中 城市 部分需要被经常访问,那么就要 地址 这个属性重新拆分为省份、城市、详细地址等多个部分,这样设计才算满足了数据库的第一范式。 假如有个订单信息表,这个表是以 订单编号 和 商品编号 作为联合主键。这个表中商品名称、单位等信息不与该表的主键相关,而仅仅是与商品编号相关。合理的做法是将这张表中商品信息分离到另一个表中,将订单号也分离到另一个表中,这样才算满足数据库的第二范式。 例如在设计一个订单表,可以将客户编号作为一个外键和订单表建立相应的关系,不可以在订单表中添加关于客户其他信息的字段,这样才算满足数据库的第三范式。 数据库中的五大约束: 主键约束(Primay Key Constraint)唯一性,非空性 唯一约束(Unique Constraint)唯一性,可以空,但只能有一个 默认约束(Default Constraint)该数据的默认值 外键约束(Foreign Key Constraint

effective java 3th 序

浪子不回头ぞ 提交于 2019-11-28 21:54:35
正本基本是自己翻译,翻译绝对有错误,就是这么自信,看的时候,自己注意下,如果感觉有语句不通,那么可能就是我翻译的出现了问题,可以自己翻找原文对比下。 其中自己的见解,我写在脚注中。 在 1997 年, James Gosling ( java 之父),将刚诞生的 java 描述为 蓝领语言 1 ,它是非常简单的。与此同时, C++ 之父 Bjarne Stroustrup 描述 C++ 是一门 多范式 的语言,设计的思路,故意不同于那些只支持单一方式实现程序的语言 2 。 Stroustrup 警告: java 的相对简单性和大部分的新语言一样,它的简单性,一部分是幻觉,一部分是功能的不完善,所以看起来比较简洁、简单 3 。随着时间的推移, java 的规模和复杂性将显著增加。以后 java 的规模将会成倍或者三倍的增加,以及增加其依赖的实现和扩展。 现在,二十年过去了,公平的说, James Gosling 和 Bjarne Stroustrup 说的都是正确的。随着 java 添加了对许多东西的抽象表示:添加并行执行、添加迭代器、对时间和日期类的重构, java 变得又大又庞杂。 尽管随着 java 平台的发展,我的热情减退了一些,但我依然喜欢 java 。考虑到 java 日益增加的复杂性和规模,对最新的最佳实践的需求变得更加尖锐。我尽我最大的可能为大家提供了一个最佳实践 —

数据库范式

爷,独闯天下 提交于 2019-11-28 17:53:52
数据库范式      设计关系 数据库 时,遵从不同的规范 要求 ,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 范式简介      范式来自英文Normal form,简称NF。要想设计—个好的关系,必须使关系满足一定的约束条件,此约束已经形成了规范,分成几个等级,一级比一级要求得严格。满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。   目前 关系数据库 有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、 第四范式 (4NF)和 第五范式 (5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。 各类范式       1、第一范式(1NF):   所谓第一范式(1NF)是指在 关系模型 中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时

范式-范式:范式 百科

不羁岁月 提交于 2019-11-28 17:32:29
ylbtech-范式-范式:范式 百科 范式(paradigm)的概念和理论是美国著名 科学哲学家托马斯·库恩(Thomas Kuhn) 提出并在 《科学革命的结构》(The Structure of Scientific Revolutions) (1970)中系统阐述的。 它指的是 一个共同体成员所共享 的 信仰、价值、技术 等等的集合。指常规科学所赖以运作的 理论基础和实践规范 ,是从事某一科学的 研究者群体所共同遵从 的 世界观和行为方式 。开展科学研究、建立科学体系、运用科学思想的 坐标、参照系与基本方式 ,科学体系的 基本模式、基本结构与基本功能 。 1. 返回顶部 1、 中文名:范式 外文名:paradigm 类 型:科学哲学概念 提 出:托马斯·库恩 定义出处:经济学的形而上学 目录 1 定义 2 特点 3 评论 2、 2. 返回顶部 1、 定义 开展科学研究、建立科学体系、运用科学思想的坐标、参照系与基本方式,科学体系的基本模式、基本结构与基本功能。 范式概念是 库恩 范式理论 的核心,而范式从本质上讲是一种理论体系。库恩指出: “按既定的用法,范式就是一种公认的模型或模式。” “我采用这个术语是想说明,在科学实际活动中某些被公认的范例——包括定律、理论、应用以及仪器设备统统在内的范例——为某种科学研究传统的出现提供了模型。”在库恩看来,范式是一种对 本体论

Java 面对对象的三大特性

半腔热情 提交于 2019-11-28 16:02:48
面向对象分析(OOA)         面对对象分析是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA 与结构化分析有较大的区别。OOA 所强调的是在系统调查资料的基础上,针对 OO 方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。 面向对象设计(OOD) 面向对象 设计(Object-Oriented Design,OOD)方法是 OO 方法中一个中间过渡环节。其主要作用是对 OOA 分析的结果作进一步的规范化整理,以便能够被 OOP 直接接受。 面向对象设计(OOD)是一种软件设计方法,是一种工程化规范。这是毫无疑问的。按照 Bjarne Stroustrup 的说法,面向对象的编程范式(paradigm)是[Stroustrup, 97]: 1) 决定你要的类; 2) 给每个类提供完整的一组操作; 3) 明确地使用继承来表现共同点。 由这个定义,我们可以看出:OOD 就是“根据需求决定所需的类、类的操作以及类之间关联的过程”。 OOD 的目标是管理程序内部各部分的相互依赖。为了达到这个目标,OOD 要求将程序分成块,每个块的规模应该小到可以管理的程度,然后分别将各个块隐藏在接口(interface)的后面,让它们只通过接口相互交流。比如说,如果用 OOD 的方法来设计一个服务器-客户端(client-server)应用