精华内容
下载资源
问答
  • 范式,NF,normal format,就是指对表的结构的要求!目的:1,规范结构!2,减少数据冗余!第一范式,1NF,字段原子性要求字段不能再分,要求字段的原子性第范式,2NF,非部分依赖增加唯一主键即可!ID范式的要求,...

    范式,NF,normal format,就是指对表的结构的要求!目的:1,规范结构!2,减少数据冗余! 第一范式,1NF,字段原子性要求字段不能再分,要求字段的原子性第二范式,2NF,非部分依赖增加唯一主键即可!ID 范式的要求,是逐渐递增!在满足 了 第一范式的前提下,不能出现部分依赖!部分依赖指的是:普通字段对 主键 是完全依赖的,而不应该是依赖主键的一部分!依赖:可以通过那个字段去决定另一个字段 因此,出现主键部分依赖的前提是,出现复合主键!其中代课时间,开始和结束时间,没有部分依赖!称之为完全依赖于主键: 但是,性别,依赖于讲师 字段 即可!讲师字段是主键的一部分!因此称之为性别 部分依赖于 主键因此,该表不符合第二范式! 怎么做?消灭复合主键即可!增加一个唯一字段的主键即可。增加一个与业务逻辑毫无关系的,唯一的ID主键,int unsigned primary key auto_increment 第三范式,3NF,非依赖传递在满足第二范式的前提下,取消传递依赖,就是第三范式! 传递依赖:如果字段B对字段A有依赖,而字段C对字段B存在依赖。则出现了传递依赖!讲师依赖于ID,而性别依赖于讲师。班级依赖于ID,而教室依赖于班级。称之为传递依赖! 解决,要保证所有的字段都完全依赖于主键,而不依赖于其他字段!将独立的实体信息,使用独立的关系(二维表)进行保存!分别增加讲师,班级表,将代课信息内的讲师和班级信息拆分出:总结:每个实体建立一个表,为每个表增加一个主键ID即可!

    一个实体表应该如何设计实体之间的关系的设计多个是体表应该如何设计! 实体之间存在哪些关系?班级,学生两类实体!一对多,多对一,1:N, N:1 班级,讲师两类实体!多对多,M:N 学生常用信息,学生不常用信息一对一,1:1 如何设计?多对一,一对多在多的那端(那个表内),增加一个字段,用于保存于当前记录相关联的一端记录的主键!多对多增加一个专门管理关联的表,使 班级与讲师都与关连表存在联系。从而 是两个实体间有多对多的关系! 因此,一个多对多,会拆分成两个多对一!

    一对一可见,两个表之间存在相同的主键ID即可!

    外键约束约束的作用,是用于保证数据的完整性或者合理性的工具!外键:foreign key,当前表内,指向其他表的主键的字段,称之为外键!外键约束:用于限制相关联的记录在逻辑上保证合理性的约束称之为外键约束! 约束,不是字段。 建立班级表再创建学生表看看删除班级的情况:出现了不合理数据: 此时,可以通过增加外键约束 的方式,来限制以上的操作! 增加外键alter table 表名 add constraint 约束的名字 foreignkey 外键索引名字 (外键字段名) references 关联表名 (关联字段) [操作] 再删除个试试:注意:如果当前的数据,已经不符合所见约束关联,则创建失败! 删除外键alter table table_name drop foreign_key 外键名字! 可以通过 show create table 查看约束的名字:注意,外键约束与索引的关系: 如果需要在某个字段上,增加外键约束,那么需要该字段也同样有索引!如果该字段上,没有索引,此时,mysql会自动在该字段上增加一个普通索引!可以选择指定外键约束的名字:注意上面的外键约束自动建立的索引的名字,与外键的名字相同! 总结:在创建时:1,

    外键 与 相应关联表的主键类型2,

    已有数据,必须满足约束条件才可以!3,

    可以使用constraint 关键字,为外键约束起名字!

    约束操作在对 父表(被关联的表)做操作时,有三种行为:1,

    严格限制,拒绝操作。restrict2,

    置 null,set null3,

    级联操作,cascade以上三个行为操作,会在主表记录被 删除或者 更新时被使用!on delete set nullon update cascade更新时的级联操作:只有在关联表的主键发生变化时,才会影响到从表的关联字段的变化!主表:被关联的从表:发出关联的!

    应该注意的问题:关于,外键约束,只能在当前的 mysql的的 innodb 表类型(引擎)下才会生效!外键,站在 php程序的角度,用到的不多!

    展开全文
  • 原标题:如何将Excel二维表转一维表?01一维表,二维表分别是什么?“维”是指物质在时空中的衡量参数。一维是线,二维是面。三维我是38/24/36,是不是很Nice... 判断数据表是一维表还是二维表最简单的一个方法就是...

    原标题:如何将Excel二维表转一维表?

    01一维表,二维表分别是什么?

    “维”是指物质在时空中的衡量参数。一维是线,二维是面。三维我是38/24/36,是不是很Nice,哇!媲美模特身材了!

    然而Excel表哥的维度,与它们根本一点亲戚关系都没有。那什么是一维表,二维表呢?相信许多表亲们现在都还搞不清楚吧!

    举个栗子,如下图哪个是一维表,哪个是二维表呢?

    f851076f9b023643de981352212d6dcc.png

    判断数据表是一维表还是二维表最简单的一个方法就是看列的内容,看每一列是否是一个独立的参数。如果每一列都是独立的参数那就是一维表,如果有两列及以上都是同类参数那就是二维表。

    在数据关系上来说,二维表有一个很明显的特征,就是列字段中有一部分是相同性质的字段。而一维表没有任何两个字段是相同性质的。

    通过上面的判断依据,很显然:图1左侧的表是一维表,它的类别、产地是两个不同的列参数;而右侧的是二维表,它的1月、2月、3月属于一组性质相同的“月份”参数。

    02 二维转一维有什么用呢?

    在数据统计分析中,要求所有的Table数据都必须是一维,以便于数据能够方便地进行管理。原则上,一维表的数据再加工比二维表的要简单得多,所以我们提倡在做数据管理的时候,基础数据要采用一维表。

    我们举一个简单例子: 从图2可以看出它是个二维统计表,因为表哥录入数据的时候把年份放在列上了,最近老板要求他重新对2008年的各类茶叶的产量进行综合统计,必须一行要一个分类一个年份一个产量,如图3所示,以便后续能够快速进行数据跟踪。

    8383d42b30826f40f34b77f185e75bbc.png

    怎么实现呢?许多表亲们会说,很简单啊,手动复制就可以。但你仔细想想,图2数据较少是比较容易,可如果数据有几千条、几万条呢?手动复制不得累死。因此,我们需要将二维表转为一维表格。

    如果是一维数据表,只需通过单击表头右侧的下拉按钮,在弹出的对话框中的筛选出选中想要的数据,这里选择中2008选项,即可统计出数据。是不是就非常方便了?

    21ce74494401d43579a6ab3bd0ff153b.png

    通过上面的例子可以看出,我们只有把二维表转化为一维表的形式,才能以它为数据源快速地得到其他数据。那么,二维表转化一维表步骤是怎样的呢?下面请看具体操作方法:

    03 EXCEL二维表如何转一维表?

    表哥向我诉苦,说是老板要求真多,“好好的一个表格,非要搞成什么一维表,不是明摆着为难人嘛”。其实二维表转一维表并不难。下面,我就来教教各表亲们如何在Excel 2016中玩转数据改造,将二维表转为一维表。

    我们先来看看二维表改造前的样子。

    1eca5c99f929bb05d6bb42f03eceafca.png

    改造成一维表后,变成如下图所示的效果,怎么实现呢?

    c9fd6aa2eb73745e10663317247c2f5a.png

    那么我们就要对表格的形象进行改造,具体操作方法如下:

    第一步:按快捷键ALT+D→P(此处先按下Alt+D键,然后放掉,再按Alt+P键),在弹出的对话框中按下图进行设置,并单击下一步。

    2727befb3e93f2ce97489d9c4510dbac.png

    第二步:此时,页字段数目选择“创建单页字段”,别犹豫,我们继续下一步改造。

    e66379d9169f0294a51c3afcd0da9f1f.png

    第三步:单击,然后在表格中拖动鼠标选定数据目标区域,再继续下一步。

    47b2519bfcda0d89521aa0637a9a06bb.png

    第四步:选择你改造后表格的位置,“新建工作表”或者“现有工作表”都可以,看您心情。这里我们选择 “新建工作表”。

    c338db23f7bac4d2d2524020ad365e24.png

    第五步:此时,表格已有很大改变,如图8。接下来,见证奇迹的时刻,在表格右侧,在“数据透视表字段”窗格中,一般会自动勾选,如果没勾选,选中“行”“列”“值”三项。

    ca0fefa9d18d55735107c1f6ecdde211.png

    第六步:OK!Excel会自动创建一个新的工作表,基于原二维表形成的一维表。

    da339b1a3f285c58e23d901f51caa438.png

    04 复合表格怎么办?

    然而,并不是所有二维表都这么好对付。这不,表哥又遇到了麻烦。问小编我下图10中这类“产地”比较复杂的远房表格,即常见的混合二维表(又称复合表格),应该怎么将其转换为一维表呢?

    d70189625874786e67698031913874d6.png

    e91889170cb55ea024e6090b27f35131.png

    像这类复合表格,就不得不用出Excel 2016的大招,表格专用“查询编辑器”,下面来看看具体操作方法:

    第一步:首先,单击表格的任意位置或者选中整个表格,再选择“数据”-“从表格”,如下所示。

    ceb549019e32b2542e94bc2486dab361.png

    Excel将自动选择表格区域。然后选中“表包含标题”复选框,单击“确定”按钮,如下所示。

    170e4031c24efa8c13741a91d85f7408.png

    第二步:打开“表11-查询编辑器”。此时,混合表中的数据将自动上载到编辑器中,如下所示。

    dd229e0414c35d3b9d46e888c8838c91.png

    第三步:选中表格中多重数据的区域,如,“产地”列,单击“拆分列”按钮,如下图所示。

    0856b08c879e31d4f55fd699c2a81e99.png

    第四步:因为多重数据中是用顿号进行间隔的,所以这里选择“按分隔符”,如下所示。如果每个标签字符相同,则可以选择“按字符数”。

    4a7b875d3218afb22d89af1c23c88348.png

    第五步:弹出“按分隔符拆分列”对话框,在下拉列表中选择“自定义”选项,在输入框中输入“顿号”,再单击确定。

    280fed22b62ee7e3e969bbd34f4adde9.png

    第六步:此时,将变成如下图所示的表格。这里选中混合表中的产地区域。

    5f2cebbbcce926cc5880d74c9bf7af79.png

    第七步:选择“转换”选项卡,单击“逆透视其他列”按钮。

    0f387ae9c3a49f75d8196e99029616fe.png

    第八步:表格变成如下所示的效果。再选择“属性”列,单击鼠标右键,在弹出的菜单中选择“删除”命令,删除该列。

    0309dd1ec68a90db8e4c6b2ebd8bee87.png

    第九步:选择“开始”选项卡,单击“关闭并上载”按钮,关闭表格查询编辑器。

    fbd60946b7efb71d9265697a908129d0.png

    此时,看看数据,复合二维表已经转换成如下所示的一维表,大功告成。

    5d9584a9024234a201f2207da4d86d63.png

    技巧拓展:

    工作中,表格数据需要改造的种类非常多。那么,根据实际情况表亲们可选择不同的改造的方法和技巧。譬如,对于简单的一维表或二维表数据改造,除了前面介绍的方法之外。表亲们还可以使用行、列互转的方法来快速实现。

    首先选中要转置的源数据区域并复制,鼠标停留在一个空白单元格区域。然后右键选择黏贴——选择性粘贴——转置。或者复制并选择空白单元格之后,直接按Ctrl+Alt+V键,在弹出菜单中勾选“转置”复选框,确定即可完成转置。

    End.

    来源:excel教程

    责任编辑:

    展开全文
  • 范式,NF,normal format,就是指对表的结构的要求!目的:1,规范结构!2,减少数据冗余!第一范式,1NF,字段原子性要求字段不能再分,要求字段的原子性第范式,2NF,非部分依赖增加唯一主键即可!ID范式的要求,...

    范式,NF,normal format,就是指对表的结构的要求!

    目的:1,规范结构!2,减少数据冗余!

    第一范式,1NF,字段原子性

    要求字段不能再分,要求字段的原子性

    afba96b99fd41c13ec34ef07d16b3900.png

    第二范式,2NF,非部分依赖

    增加唯一主键即可!ID

    范式的要求,是逐渐递增!

    在满足 了 第一范式的前提下,不能出现部分依赖!

    部分依赖指的是:普通字段对 主键 是完全依赖的,而不应该是依赖主键的一部分!

    依赖:可以通过那个字段去决定另一个字段

    因此,出现主键部分依赖的前提是,出现复合主键!

    08a9dcc16e018fe7b38d24950b381f8c.png

    其中代课时间,开始和结束时间,没有部分依赖!称之为完全依赖于主键:

    但是,性别,依赖于讲师 字段 即可!

    讲师字段是主键的一部分!因此称之为性别 部分依赖于 主键

    985d92a093e43855de78984eb837c443.png

    因此,该表不符合第二范式!

    怎么做?

    消灭复合主键即可!增加一个唯一字段的主键即可。增加一个与业务逻辑毫无关系的,唯一的ID主键,int unsigned primary key auto_increment

    977f65675d06182843001e0406e11c1b.png

    第三范式,3NF,非依赖传递

    在满足第二范式的前提下,取消传递依赖,就是第三范式!

    传递依赖:如果字段B对字段A有依赖,而字段C对字段B存在依赖。则出现了传递依赖!

    讲师依赖于ID,而性别依赖于讲师。

    班级依赖于ID,而教室依赖于班级。

    a61ef481eb7386d3ac1cb42e08b1700e.png

    称之为传递依赖!

    解决,要保证所有的字段都完全依赖于主键,而不依赖于其他字段!

    将独立的实体信息,使用独立的关系(二维表)进行保存!

    分别增加讲师,班级表,将代课信息内的讲师和班级信息拆分出:

    236eb6ade22b832898070ec35730b0d6.png

    总结:

    每个实体建立一个表,为每个表增加一个主键ID即可!

    一个实体表应该如何设计

    实体之间的关系的设计

    多个是体表应该如何设计!

    实体之间存在哪些关系?

    班级,学生两类实体!

    一对多,多对一,1:N, N:1

    班级,讲师两类实体!

    多对多,M:N

    学生常用信息,学生不常用信息

    一对一,1:1

    如何设计?

    多对一,一对多

    在多的那端(那个表内),增加一个字段,用于保存于当前记录相关联的一端记录的主键!

    0b8e1c96cf240e665108bf7530d61c87.png

    多对多

    61c2254bdfbf197a77bddf9fa1bfb4e2.png

    增加一个专门管理关联的表,使 班级与讲师都与关连表存在联系。从而 是两个实体间有多对多的关系!

    de699a03d45755b04ab37353ebc6af98.png

    因此,一个多对多,会拆分成两个多对一!

    一对一

    cb15a8ada0238b3e83d765da4d63bbb9.png

    可见,两个表之间存在相同的主键ID即可!

    外键约束

    约束的作用,是用于保证数据的完整性或者合理性的工具!

    外键:foreign key,当前表内,指向其他表的主键的字段,称之为外键!

    aa74cd6543ccedd559b23fdbdcdf3554.png

    外键约束:用于限制相关联的记录在逻辑上保证合理性的约束称之为外键约束!

    约束,不是字段。

    建立班级表

    3e6e06f214d765e794a5017a427193f6.png

    再创建学生表

    782e1455290e39575201fb9bbb69a7aa.png

    看看删除班级的情况:

    9c07f1d0b276230183089c28a135dbe9.png

    出现了不合理数据:

    此时,可以通过增加外键约束 的方式,来限制以上的操作!

    增加外键

    alter table 表名 add constraint 约束的名字 foreignkey 外键索引名字 (外键字段名) references 关联表名 (关联字段) [操作]

    d78618be8d6d23bb35aafb2a0fb0095c.png

    再删除个试试:

    8604635fd5cf29ae165b64bbdd372840.png

    注意:如果当前的数据,已经不符合所见约束关联,则创建失败!

    删除外键

    alter table table_name drop foreign_key 外键名字!

    可以通过 show create table 查看约束的名字:

    275ec146f7d280c63e67c622357312c2.png

    注意,外键约束与索引的关系:

    如果需要在某个字段上,增加外键约束,那么需要该字段也同样有索引!如果该字段上,没有索引,此时,mysql会自动在该字段上增加一个普通索引!

    e2c5732d73e3f22cf1f3f3dec0b5f4d2.png

    可以选择指定外键约束的名字:

    87165cd3079fc67a22ee7896fe2a7a18.png

    注意上面的外键约束自动建立的索引的名字,与外键的名字相同!

    总结:在创建时:

    1,外键 与 相应关联表的主键类型

    2,已有数据,必须满足约束条件才可以!

    3,可以使用constraint 关键字,为外键约束起名字!

    约束操作

    在对 父表(被关联的表)做操作时,有三种行为:

    1,严格限制,拒绝操作。restrict

    2,置 null,set null

    3,级联操作,cascade

    以上三个行为操作,会在主表记录被 删除或者 更新时被使用!

    on delete set null

    on update cascade

    6b04080a5de968055e738e6c61a3bc50.png

    bd5a808d0f8637750d0d3089a8734200.png

    更新时的级联操作:

    只有在关联表的主键发生变化时,才会影响到从表的关联字段的变化!

    ef1cf8d3153186bcad0bfe42e3b4b6e3.png

    主表:被关联的

    从表:发出关联的!

    应该注意的问题:

    关于,外键约束,只能在当前的 mysql的的 innodb 表类型(引擎)下才会生效!

    c0b968eab33f141ac86c58a88b9a952b.png

    外键,站在 php程序的角度,用到的不多!

    展开全文
  • 二维表

    2013-04-25 21:39:53
    在关系模型中,数据结构表示为一个二维表,一个关系就是一个二维表(但不是任意一个二维表都能表示一个关系),二维表名就是关系名。表中的第一行通常称为属性名,表中的每一个元组和属性都是不可再分的,且元组的...
    在关系模型中,数据结构表示为一个二维表,一个关系就是一个二维表(但不是任意一个二维表都能表示一个关系),二维表名就是关系名。表中的第一行通常称为属性名,表中的每一个元组和属性都是不可再分的,且元组的次序是无关紧要的。
      常用的关系术语如下:
      记录 二维表中每一行称为一个记录,或称为一个元组。
      字段 二维表中每一列称为一个字段,或称为一个属性。
      域 即属性的取值范围。 
      关键字 在一个关系中有这样一个或几个字段,它(们)的值可以唯一地标识一条记录,称之为关键字(Key)。例如,在学生关系中,学号就是关键字。
      关系模式 对关系的描述称为关系模式,其格式为:
      关系名(属性名1,属性名2,…,属性名n)
      一个关系模式对应一个关系的结构,它是命名的属性集合。
    展开全文
  • 范式,NF,normal format,就是指对表的结构的要求!目的:1,规范结构!2,减少数据冗余!第一范式,1NF,字段原子性要求字段不能再分,要求字段的原子性第范式,2NF,非部分依赖增加唯一主键即可!ID范式的要求,...
  • 范式,NF,normal format,就是指对表的结构的要求!目的:1,规范结构!2,减少数据冗余!第一范式,1NF,字段原子性要求字段不能再分,要求字段的原子性第范式,2NF,非部分依赖增加唯一主键即可!ID范式的要求,...
  • 一、关系(relation)关系就是二维表,二维表的名字就是关系的名字。二、属性(attribute)二维表中的每个列就称为一个属性(或叫字段),每个属性有一个名字,称为属性名。三、值域(domain)二维表中属性的取值范围称为...
  • 二维数据,是一维数据的组合形式,由多个一维数据组合形成 多维数据,由一维数据或者二维数据在新维度上形成的 高维数据,仅利用最基本的二元关系展示数据间的复杂结构 数据的操作周期 存储,在文件中的表现形式...
  • 一般做OA类管理系统,经常涉及到“组织...答案是有的,例如即将要谈到的二维表显示方式,同时也是本随笔的核心内容。  首先来看二维表的显示效果图: 如果看到这里,你觉得这就是你想要的显示效果,或者对此...
  • 哈希是除了数组之外,最常见的数据结构,几乎所有的语言都会有数组和哈希这两种集合元素,有的语言将数组实现成列表,有的语言将哈希称作结构体或者字典,但是它们其实就是两种设计集合元素的思路,数组用于...
  • 在计算机领域有许多伟大的设计理念和思想,例如:在 Unix 中,一切皆文件。在面向对象的编程语言中,一切皆对象。关系数据库同样也有自己的设计思想:在 SQL 中,一切皆...我们在数据库系统中看到的关系就是二维表...
  • 关系模型的数据结构 关系模型... 关系 关系就是二维表它满足以下几个条件 1关系表中的每一列都是不可再分的基本属性有子属性分开了不是关 系表 2 表中的各属性不能重名 3 表中的行列次序并不重要即交换列的前后顺序比如
  • 前言 一直以来对各种数据结构的名称分的不是很清,今天刚醒就收到了学校寄来的教材,里面正好有一本数据结构,...第部分:N数组。 文章主要依据是数据结构的书,也就是下面的这本。 概念之间的关系 首先我大概罗
  • 二维数组与指针的指针深度剖析

    千次阅读 2016-10-09 22:40:06
    其实,在C/c++中没有所谓的二维数组,书面表达就是数组的数组。我猜想是为了表述方便才叫它二维数组。以前认为二位数组是一个二级指针,现在发现理解错了,二维数组名也是个一级指针,指向一个类型并且
  • 二维数组与指针

    2016-11-22 21:34:19
     二位数组,数组指针,指针数组,指针的指针。...其实,在C/c++中没有所谓的二维数组,书面表达就是数组的数组。我猜想是为了表述方便才叫它二维数组。 以前认为二位数组是一个二级指针,现在
  • 关系模型中设计时的约束条件

    千次阅读 2019-02-26 15:27:19
    简而言之,关系就是一张二维表,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系 设计表时,可对表中的一个字段或多个字段的组合设置约束条件,不满足约束条件的数据将被数据库管理...
  • 我们在数据库系统中看到的关系就是二维表(Table),由行(Row)和列(Column)组成。因此,也可以说关系表是由行构成的集合。 关系模型由数据结构、关系操作、完整性约束三部分组成。 关系模型中的数据结构就是...
  • 结构化的数据最明显的特点也是其优点就是可以将其看作一个二维表 mysql:单机型数据库,存储能力有限,他的问题就在与无法分库分表,以及读写隔离;其实解决的方法就是分区,但是他是单机的,所以必然存在局限性...
  • C/C++中二数组和指针关系分析

    万次阅读 多人点赞 2013-10-03 18:02:51
    其实,在C/c++中没有所谓的二维数组,书面表达就是数组的数组。我猜想是为了表述方便才叫它二维数组。  在本文中,我也就叫它二维数组。在C/C++中,二维数组是数组的数组。数组的每一个元素是一个数组。说起来有点...
  • 在上一篇中,我们回顾了数据库领域以及 SQL 的最新发展趋势。 本篇我们将会介绍 SQL 的基本特性以及最重要的一个编程思想:一切都...对于使用者而言,关系就是二维表(Table)。 以下是一个员工信息表,它和 Excel 表
  • 数据分析中关系数据库的设计思想介绍关系数据库的设计思想:在 SQL 中,一切皆...我们在数据库系统中看到的关系就是二维表(Table),由行(Row)和列(Column)组成。因此,也可以说关系表是由数据行构成的集合。   .
  • 在计算机领域有许多伟大的设计理念和思想,例如:在 Unix 中,一切皆文件。在面向对象的编程语言中,一切皆对象。关系数据库同样也有自己的设计思想:在 SQL 中,一切皆...我们在数据库系统中看到的关系就是二维表...
  • 在计算机领域有许多伟大的设计理念和思想,例如:在 Unix 中,一切皆文件。在面向对象的编程语言中,一切皆对象。关系数据库同样也有自己的设计思想:在 SQL 中,一切皆...我们在数据库系统中看到的关系就是二维表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,363
精华内容 545
关键字:

关系就是二维表