标签: normalization

将flatfiles加载到规范化的MySQL数据库中

将数据从flatfiles加载到MySQL数据库,然后通过外键创建表之间的关系的最快方法是什么?

例如......我有一个平面文件格式:

[INDIVIDUAL]   [POP]  [MARKER]  [GENOTYPE]

"INDIVIDUAL1", "CEU", "rs55555","AA"  
"INDIVIDUAL1", "CEU", "rs535454","GA"  
"INDIVIDUAL1", "CEU", "rs555566","AT"  
"INDIVIDUAL1", "CEU", "rs12345","TT"  
...  
"INDIVIDUAL2", "JPT", "rs55555","AT"  
Run Code Online (Sandbox Code Playgroud)

我需要加载到四个表中:

IND (id,fk_pop,name)  
POP (id,population)  
MARKER (id,rsid)  
GENOTYPE (id,fk_ind,fk_rsid,call)  
Run Code Online (Sandbox Code Playgroud)

具体来说,如何以缩放的方式填充外键?这些数字在1000多个人的范围内,每个人有100万+基因型.

mysql performance normalization load-data-infile

4
推荐指数
2
解决办法
2142
查看次数

单表中的列太多 - 它是否是正常的形式?

规范化表应该具有较少数量的列,并且可以尽可能具有引用字段.这是正确的方法吗?列数和良好的规范化过程之间是否存在任何关系?

sql-server normalization

4
推荐指数
3
解决办法
4242
查看次数

c ++ opengl:如何找到四元组的规范化向量?

任何人都可以协助我找到四元标准化的正确公式吗?

使用c ++和opengl.

谢谢!

c++ opengl math geometry normalization

4
推荐指数
2
解决办法
6498
查看次数

具有1对多关系的数据库设计效率限制为1到3

这是在mysql中,但它是一个数据库设计问题.如果你有一对多的关系,比如银行客户到银行账户,通常你会有记录银行账户信息的表有一个跟踪账户和客户之间关系的外键.现在这遵循第三种常规形式,并且是一种被广泛接受的方式.

现在让我们假设您将限制用户只有3个帐户.当前的数据库实现将支持这一点,没有什么需要改变.但另一种方法是在帐户表中有3列,其中包含3个相应帐户的ID.顺便说一句,这违反了数据库设计的第一种正常形式.

问题是以这种方式记录用户帐户关系的优点和缺点是什么?

更新

不幸的是,我不负责数据库设计.当我在数据库中看到类似的关系时,我问我的老板,数据库设计师,为什么他选择这样做.我没有真正得到一个明确的答案,或者我理解的答案有合理的理由支持它."当你使用数据库分配时,这是一种非常常见的关系,这就是你如何做到的." 我要求更多澄清.......没有把我带到任何地方并使他成为防守者.

非常感谢你们这些帖子,我真的找不到任何甚至谈到这样做的书.我发现有很多书告诉我以正确的方式做到这一点,但没有多少人给出一个破坏的例子然后解释为什么它会吮吸.

sql database-design data-modeling normalization

4
推荐指数
2
解决办法
1225
查看次数

规范化数据以从1到10进行缩放

我有以下数据集:

A   B   N
1   3   10
2   3   5
3   3   1
3   6   5
10  10  1
20  41  5
20  120 9
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个excel函数,它将A和B归一化为N,从1到10.

在上面的例子中它将是

1 of 3 is best so N = 10
2 of 3 is in the middle N = 5
3 of 3 is worst N=1
20 of 120 is in second decade N=9
Run Code Online (Sandbox Code Playgroud)

A> = 1 && A <= B.

B是自然数

1 <= N <= 10

excel normalization

4
推荐指数
1
解决办法
3万
查看次数

SQL Server 2008 - 过度非规范化和索引过多:Matrix有什么用处?

我有一个崭露头角的开发人员,他非常热衷于他称之为"矩阵"的东西

我正在寻找同行的洞察力

简而言之,这就是我们所拥有的:
- 1个高度非规范化的表,大约120列
- 数据点包括帐户,客户,家庭,关系,产品,员工等...
- 每列一个索引:大约120个非聚集索引
-今天索引使用的数据库中大约90%的空间都是此表的索引
- 今天大约有150万行有很多空
- 表加载了一个存储过程,其核心是动态SQL
- 所有字段名都是通用的,不是描述数据
- 数据字典类型表与动态SQL一起使用以将任何数据点加载到任何字段
- 字段映射不是静态的:今天列dim_0001是客户名称,但明天可能是别的
- 没有主键
- 没有外键
- 没有实际约束(例如,所有字段都可以为空)

该表的参数:
- 使编写查询更简单,因为它消除了编写某些连接的需要

预期用途:
- 最终用户层,将成为Business Objects中Universe构建的核心组件
- 后ETL过程开发

我的建议要么杀死今天的进程(在测试环境中进行早期开发),要么将其移至测试的下一步.

根据我所做的研究,我的教育和经验,我不支持它,并希望一旦依赖这些表的一个或两个进程迁移到另一个解决方案,表就会被删除.

下面的脚本供您参考(我仅限于一个索引示例).

您可以提供的任何见解(甚至只是一个单词的意见)都是有价值的

-- The Matrix

CREATE TABLE [z005497].[tblMatrix](
    [as_of_dt] [datetime] NOT NULL,
    [dim_0001] [varchar](100) NULL,
    [dim_0002] [varchar](103) NULL,
    [dim_0003] [varchar](100) NULL,
    [dim_0004] [varchar](100) NULL,
    [dim_0005] [varchar](100) NULL,
    [dim_0006] [varchar](100) NULL,
    [dim_0007] [varchar](100) NULL,
    [dim_0008] [varchar](100) NULL,
    [dim_0009] [varchar](100) NULL,
    [dim_0010] [varchar](100) NULL,
    [dim_0011] …
Run Code Online (Sandbox Code Playgroud)

database-design normalization dynamic-sql sql-server-2008 non-clustered-index

4
推荐指数
2
解决办法
576
查看次数

根据PHP中的W3C规范化Unicode

在W3C验证器中验证我的网站的HTML代码时,我收到以下警告:

Line 157, Column 220: Text run is not in Unicode Normalization Form C.

…i??????????v??????????e???????????-????????????m??????????i??????????n????????…
Run Code Online (Sandbox Code Playgroud)

我正在PHP 5.3.x中开发它,所以我可以使用Normalizer类.

因此,为了解决这个问题,我应该Normalizer::normalize($output)在显示用户做出的任何输入时使用(例如注释),还是应该Normalizer::normalize($input)在将其存储到数据库之前用于任何用户输入?

tl; dr:我应该在将用户输入存储在数据库中之前还是仅在显示时使用Unicode规范化?

php unicode web-standards normalization unicode-normalization

4
推荐指数
1
解决办法
3000
查看次数

用于测试Unicode相关问题的Unicode示例文本文件?

我正在寻找一个示例文本unicode文件(UTF-8),可用于测试与文本编码和解码相关的不同问题,包括:

  • 低ascii字符用法,如前32个代码
  • BMP之外的人物
  • NFC相关问题
  • XML编码/解码问题

主要是我想将文本复制到剪贴板,将其粘贴到应用程序的HTML文本区域,然后能够从页面中检索它.

这将能够识别在解码,编码甚至数据库级别可能发生的不同的Unicode相关问题.

unicode normalization utf-8 character-encoding unicode-normalization

4
推荐指数
1
解决办法
1万
查看次数

在Python中检查unicode字符串是否为NFC的有效方法?

我想检查字符串是否已经是NFC格式.目前我这样做:

unicodedata.normalize('NFC', s) == s
Run Code Online (Sandbox Code Playgroud)

我这样做是为了大量的字符串,所以我想要高效.上述方法似乎很浪费.它转换为NFC,然后进行字符串比较.

有更有效的方法吗?我考虑过:

len(unicodedata.normalize('NFC', s)) == len(s)
Run Code Online (Sandbox Code Playgroud)

这避免了字符串比较.但我不确定这是否总是正确的.如果NFC标准化始终改变非NFC字符串的长度,则此方法有效.这是一个有效的假设吗?

还有其他想法吗?

python unicode normalization unicode-normalization python-unicode

4
推荐指数
1
解决办法
506
查看次数

规范化每行data.table

这似乎应该很容易,但我找不到答案:(.我正在尝试规范化data_table的每一行,如下所示:

normalize <- function(x) {
  s = sum(x)
  if (s>0) {
    return(x/s)
  } else {
    return 0
  }
}
Run Code Online (Sandbox Code Playgroud)

如何在data.table的每一行上调用此函数并获取规范化的data.table?我可以做一个for循环,但这肯定不是正确的方法,并且apply(data, 1, normalize),据我所知,将我的data.table转换为一个性能很大的矩阵.

performance r normalization data.table

4
推荐指数
1
解决办法
2672
查看次数