EDIT1:试图通过重命名表格及其关系来清除问题.编辑2:请不要查看我在三个数据库表中保存的数据类型.它们是在飞行中组成的.它们不是我真实世界的场景(不,我不能谈论我的真实世界数据......实际上它是1个父母和6个孩子,目前).请忽略哪种类型的数据,只看一些数据是必需的.EDIT3:两个FK是0或1比1的关系.不是0到很多.不是1比1.我试图避免0或1比1关系到1比1的关系,所以我不需要有OUTER JOINS但是有一个INNER JOIN.
问题:我需要知道建议的数据库设计是好还是坏/跛足等.
问题:今天我尝试制作索引视图,但失败了因为我的表有外连接.叹.所以我想知道我是否可以将其重新设置为以下设计:
和表B和C(现在像查找表一样)有...
注意到可空的?这样,table_Address中的某些内容在table_Address中不存在...该字段为null(因为内部连接).
之前,我做了一个LEFT OUTER JOIN,所以如果table_b中没有数据,我将得到空值是每个字段的结果.
我会在这里抛出一些数据示例......
Table_User
Table_Address
等等
那么我最终可以把这一切都放到一个索引视图中.(我的现实生活场景有大约8个表).
注意:DB是Microsoft Sql Server 2008,但这可能适用于任何数据库.
Q1:那个设计看起来好吗?
Q2:所以我在这里做的是我正在对数据进行规范化,对吗?通过保持内部连接在一起.
Q3:最后,如果这是一个好的方式..我还可以确保表中的数据是唯一的(例如街道地址)有一些独特的约束或键或索引或什么(我不确定适当的术语).
谢谢大师!
对于表示大型大学当前学期注册的关系数据库,考虑所有断言的模式的ER图是什么:
•100名教师,200门课程和800名学生.
•教师可以在一个学期内教授一门或多门课程(平均为2.0门课程).
•教师必须指导至少一名学生(平均= 2.5名学生)的研究.
•课程可能没有,一个或两个先决条件(平均值= 1.5个先决条件).
•即使目前没有学生注册,也可能存在课程.
•每门课程由一名教师授课.
•课程的平均入学人数为30名学生.
•学生每学期必须选择至少一门课程(平均= 4.0课程选择).
我曾多次尝试过这个答案,但我不能.所有帮助对我都很有价值.我将非常感谢MS Visio图表(如果可以节省时间),以帮助我可视化解决方案.
注意:我不是在寻找RTFM响应.
我有一个名为"Documents"的表,其中包含如下列:
DocumentID
我有格式的数据 - @DIDID = 1,2,3,4
如何使用单个查询在单独的行中插入这些documentID?
我有几乎非规范化的现有表.事物列表状态,类型,国家等没有查找表...这个原始设计只是为了简化应用程序对数据库的访问,因此这种非规范化没有性能原因.
这导致了包含大量重复数据的表格,我想通过为各种状态/类型/国家/地区列引入查找表来正确规范化.
是否有一些我可以在数据库(oracle)中做到这一点,对客户端保持透明?应用程序将继续执行插入操作,但数据库会将事物映射到幕后的正确查找表.
我一直在尝试使用可以进行映射的视图和触发器的组合,但感觉应该有更自动的方法来执行此操作.
我有一个mat文件,其结构如下所示:

如何规范化数据并将其另存为.dat文件(ascii)
只是说我想要一组数字:
$a['a'] = 10;
$a['b'] = 20;
$a['c'] = 500;
$a['d'] = 1000;
Run Code Online (Sandbox Code Playgroud)
并迫使它们适合范围(例如1到100),如下所示:
$a['a'] = 1;
$a['b'] = 2;
$a['c'] = 50;
$a['d'] = 100;
Run Code Online (Sandbox Code Playgroud)
另一个例子...
从:
$a['a'] = 12;
$a['b'] = 28;
Run Code Online (Sandbox Code Playgroud)
至:
$a['a'] = 1;
$a['b'] = 100;
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法呢?
我正在尝试规范化这种关系:
film_year film_name critic_id critic_name cinemas_debut score
2004 I robot 111 John NY_cinema, LA_cinema 4
2004 I robot 222 Mathiew NY_cinema, LA_cinema 5
Run Code Online (Sandbox Code Playgroud)
哪里......
我无法将关系转换为3FN.这是我试过的:
到1NF:
film_year film_name critic_id critic_name cinemas_debut score
2004 I robot 111 John NY_cinema 4
2004 I robot 222 Mathiew LA_cinema 5
2004 I robot 111 John NY_cinema 4
2004 I robot 222 Mathiew LA_cinema 5
Run Code Online (Sandbox Code Playgroud)
至2NF:
我认为critics关系 critics ( critic_id (pk), critic_name …
它经常声明要达到1nf,必须创建一个新实体,并且该实体必须有一个复合键.
LeadID | leadDate | Name | DOB | streetAddress | city | state | residenceType
如果我要规范化streetAddress, city, state, residenceType为一个新实体,那么我必须立即创建一个新的主键.我无法使用,LeadID因为这意味着没有线索就无法创建地址,这是不正确的.我不能使用,streetAddress因为街道不是好的候选人(5123 glowsville way st.n ave.根本不是一个好关键).
所以我不得不为这个新实体创建一个密钥.这好吗?
sql database database-design entity-relationship normalization
我得到了一个函数的定义,并要求实现如下:
# Problem 1 - Apply zero mean and zero variance scale to the image features
def normalize(data):
pass
Run Code Online (Sandbox Code Playgroud)
然后提供单元测试使用numpy它将断言我的实现成功
编辑
这不是我的单元测试,而是由课程讲师分配.
np.testing.assert_array_almost_equal(
normalize(np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])),
np.array([-0.4, -0.3, -0.2, -0.099, 0.0, 0.099, 0.199, 0.3, 0.4, 0.5]),
decimal=3)
Run Code Online (Sandbox Code Playgroud)
我的解决方案是
def normalize(data):
return ((data - data.mean()) / data.max() - data.min())
Run Code Online (Sandbox Code Playgroud)
但是我的理解肯定存在差距,因为我得到了
AssertionError:
Arrays are not almost equal to 3 decimals
(mismatch 100.0%)
x: array([-1.45, -1.35, -1.25, -1.15, -1.05, -0.95, -0.85, -0.75, …Run Code Online (Sandbox Code Playgroud) 我正在研究回归问题,我的特征在矩阵X中,目标值在Y中.
我想缩放输入.我使用这样做sklearn的MinMaxScaler:
# scale data to 0-1
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
Run Code Online (Sandbox Code Playgroud)
我的理解是Y现在应该相应地缩放真正的标签向量.如何使用该scaler对象执行此操作?从文档中,我可以将真实标签传递给fit_transform方法,但似乎这只是"管道兼容性" - 即,方法忽略Y并仅返回转换后的X.
谢谢!
normalization ×10
sql ×3
python ×2
arrays ×1
database ×1
matlab ×1
numpy ×1
oracle ×1
php ×1
scikit-learn ×1
sql-server ×1