CREATE TABLE Phone
(
phoneID - PK
.
.
.
);
CREATE TABLE PhoneDetail
(
phoneDetailID - PK
phoneID - FK points to Phone
phoneTypeID ...
phoneNumber ...
.
.
.
);
CREATE TABLE Customer
(
customerID - PK
firstName
phoneID - Unique FK points to Phone
.
.
.
);
Run Code Online (Sandbox Code Playgroud)
客户可以拥有多个电话号码,例如Cell,Work等.Customer表中的phoneID是唯一的,并指向Phone表中的PhoneID.如果删除客户记录,则还应删除Phone表中的phoneID.
你对我的设计有任何顾虑吗?这个设计得当吗?我的问题是Customer表中的phoneID是一个孩子,如果删除了子记录,那么我无法自动删除父(电话)记录.
我有一个复杂的正则表达式,我用代码构建.我想将它规范化为最简单(规范)的形式,它将是一个等价的正则表达式但没有额外的括号等等.
我希望它被规范化,这样我就可以理解它是否正确并找到它中的错误.
以下是我想要规范化的正则表达式的示例:
^(?:(?:(?:\r\n(?:[ \t]+))*)(<transfer-coding>(?:chunked|(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2E0-9A-Z\x5E\x7A\x7C\x7E-\xFE]+)(?:(?:;(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2E0-9A-Z\x5E\x7A\x7C\x7E-\xFE]+)=(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2E0-9A-Z\x5E\x7A\x7C\x7E-\xFE]+)|(?:"(?:(?:(?:|[^\x00-\x31\x127\"])|(?:\\[\x00-\x127]))*)))))*))))(?:(?:(?:\r\n(?:[ \t]+))*),(?:(?:\r\n(?:[ \t]+))*)(<transfer-coding>(?:chunked|(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2E0-9A-Z\x5E\x7A\x7C\x7E-\xFE]+)(?:(?:;(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2E0-9A-Z\x5E\x7A\x7C\x7E-\xFE]+)=(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2E0-9A-Z\x5E\x7A\x7C\x7E-\xFE]+)|(?:"(?:(?:(?:|[^\x00-\x31\x127\"])|(?:\\[\x00-\x127]))*)))))*))))*))$
Run Code Online (Sandbox Code Playgroud) 在数据库世界中,我们进行了规范化.您可以从设计开始,转动步骤并最终使用正常形式的数据库.这是基于数据的语义完成的,可以被认为是一系列设计重构.
在面向对象的设计中,我们拥有SOLID原则和各种其他特殊设计指南.
您是否认为可以为OO定义等效的正规形式,这样一系列重构步骤可以将程序性的代码片段(或者设计不当的OO设计)转换为正确的(在一些定义明确的意义上)相同的功能?
(NB.很高兴制作这个社区wiki)
theory oop normalization relational-database solid-principles
我正在尝试将ColdFusion中的字符串规范化.
我想使用Java类java.text.Normalizer,因为据我所知,CF没有任何类似的功能.
这是我目前的代码:
<cfset normalizer = createObject( "java", "java.text.Normalizer" ) />
<cfset string = "äéöè" />
<cfset string = normalizer.normalize(string, createObject( "java", "java.text.Normalizer$Form" ).NFD) />
<cfset string = ReReplace(string, "\\p{InCombiningDiacriticalMarks}+", "") />
<cfoutput>#string#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它总是输出äéöè而不是规范化的字符串?
所以我被一些(应该)简单的事情所困扰:
我为一个简单的"播放"二维数据集编写了一个SOM.这是数据:

你可以自己制作3个集群.
现在,有两件事令我困惑.第一个是我拥有的教程,在SOM开始工作之前规范化数据.这意味着,它将每个数据向量标准化为长度为1.(欧几里德范数).如果我这样做,那么数据看起来像这样:

(这是因为所有数据都已投射到单位圆上).
所以,我的问题如下:
1)这是正确的吗?将数据投射到单位圆上似乎很糟糕,因为你不能再制作3个星团......这对SOM来说是生活中的事实吗?(即,他们只在单位圆上工作).
2)第二个相关问题是,不仅数据被标准化为具有长度1,而且每次迭代之后每个输出单元的权重向量也是如此.我明白他们这样做是为了让重量矢量不会'爆炸',但我觉得这是错误的,因为重量矢量的整个点是保留距离信息.如果将它们标准化,则会失去正确"聚类"的能力.例如,SOM如何区分左下方的集群和右上方的集群,因为它们以相同的方式向下投射到单位圆?
我很困惑.是否应将数据标准化为SOM中的单位长度?重量矢量是否也应该标准化?
谢谢!
编辑
这是数据,保存为MATLAB的.mat文件.它是一个简单的二维数据集.
machine-learning normalization neural-network som self-organizing-maps
我试图找出如何使神经网络包工作.我对我创建的数据及其结果进行了一些测试(大约50行数据和三列,其中第四行是我想要的结果,它是通过简单的数学执行来完成的,比如总结其他三列),到目前为止一直很好.然后我决定在真实数据上应用这个包.我从这里下载了mpg数据集http://vincentarelbundock.github.io/Rdatasets/datasets.html
我正在运行下面的代码:
net<- neuralnet(cty~displ+year+cyl+hwy,
datain, hidden=3)
Run Code Online (Sandbox Code Playgroud)
即使我有3个隐藏层,或8或18,错误是相同的,并且包处理数据的时间相对较少(这234行):
Error Reached Threshold Steps
1 2110.173077 0.006277805853 54
Run Code Online (Sandbox Code Playgroud)
对此有什么好的建议吗?
有一种简单的方法来规范化ndarray(每个值在0.0,1.0之间)?
例如,我有一个矩阵,如:
a = [[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]]
Run Code Online (Sandbox Code Playgroud)
到现在为止,我正在获得最大值
max(max(p[1:]) for p in a)
a / p
Run Code Online (Sandbox Code Playgroud)
此外我认为numpy可能在一行中有一个方法,如果我的数据是这样的,这不起作用:
b = [[-1., -2., -3.],
[-4., -5., -6.],
[-7., -8., 0.]]
Run Code Online (Sandbox Code Playgroud)
这给出了由零分割引起的错误.
我想要做的是最大值变为1.所以,我想做一个翻译使得9变为1(在正例中将值除以最大值)和0(当它是最大值)变为1(使用翻译方法,例如),我知道这很热,但我想numpy可能有一个解决方案,在它的包中做这件事.
我怎么能用numpy很好地完成这个?
先感谢您.
如果我使用稀疏(i,j,k)构造函数构造了稀疏矩阵,那么如何对矩阵的列进行归一化(以便每列总和为1)?在创建矩阵之前,我无法有效地规范化条目,因此感谢任何帮助.谢谢!
我有一个我想要变换的矩阵,这样变换后的数据集中的每个特征的均值为0,方差为1.
我试过使用以下代码:
scale <- function(train, test)
{
trainmean <- mean(train)
trainstd <- sd(train)
xout <- test
for (i in 1:length(train[1,])) {
xout[,i] = xout[,i] - trainmean(i)
}
for (i in 1:lenght(train[1,])) {
xout[,i] = xout[,i]/trainstd[i]
}
}
invisible(xout)
normalized <- scale(train, test)
Run Code Online (Sandbox Code Playgroud)
然而,这对我不起作用.我是在正确的轨道上吗?
编辑:我对语法很新!
我正在网上学习网络开发文凭,我刚刚进入数据库设计和开发.我以为我理解了普通形式,但我刚刚达成了一个让我陷入困境的问题.
查看以下客户实体的属性列表:
Run Code Online (Sandbox Code Playgroud)Customer(cus_ID, name, address, mobile_phone)为什么这个实体不在3NF?
据我所知,这是在3NF.如果不是客户,名称,地址和移动数据集要求客户存在,那么所有属性都不会存在.
我是否只是错误地了解了3NF的整个概念?