2012-01-09 48 views
2

我真的不明白这一点。也许这是一个愚蠢的问题。SQL Azure是一个关系数据库吗?

SQL Azure是一个关系数据库吗?它的行为就像它吗?

使用ADO.NET和LINQ我创建了一个关系数据库或非关系数据库? (!我知道这些问题听起来不可思议......)

编辑:

好,与其中一个答案,我明白一件重要的事情,我可以知道解释更好的问题。

也就是说:我为我的应用程序创建了一个非关系型 db。将它发布到Azure上并在SQL Azure上加载数据库将使数据库成为关系数据库?

我认为它仍然是非关系的主键和外键的缺失。我会收到任何错误吗?

那么表存储服务的效用是什么?

回答

4

是,SQL Azure是一个关系型数据库管理系统。 SQL Azure与传统MS SQL Server的区别在于,SQL Azure设计为以高冗余(即多个实例)运行。

+0

,表存储服务是非关系数据库存储我认为您的意思是说,“SQL Azure是一个关系数据库管理系统”。 – onedaywhen 2012-01-10 10:13:55

+0

你说得对,但我认为人们有这个要求。 – 2012-01-10 20:54:46

1

你试过谷歌吗?对于第一个结果 “是SQL Azure的关系”:

http://msdn.microsoft.com/en-us/library/windowsazure/ee336230.aspx

微软SQL Azure数据库是建立在SQL Server技术基于云的关系型数据库平台

+0

很明显,我已经尝试过,但教授给了我一个“虚假”的提示,告诉我相反的事情,并继续在谷歌上看到我发现不同的意见。 另一个问题呢? – Enrichman 2012-01-09 17:56:45

+0

“使用ADO.NET和LINQ我创建了一个关系数据库还是非关系数据库?”不是一个问题。 (这取决于:你创建了一个关系型还是非关系型?ADO.NET/LINQ让你做) – 2012-01-09 17:59:24

+0

请检查编辑。感谢你的回答。 – Enrichman 2012-01-09 18:07:40

-1

ADO.NET和LINQ可以创建关系数据库(模式)以及非关系数据库。

关系数据库必须具有包含主键和带有外键的表的表,该外键引用了第一个表中的主键。

为了使数据库真正具有关系性,所有表都应该有主键。

你应该对标准化做一些研究。检查Codd的规则(Edgar F. Codd)。 http://en.wikipedia.org/wiki/Edgar_F._Codd

+0

谢谢,这非常有用。也许我两个人之间的区别并不好。请检查问题的编辑。 – Enrichman 2012-01-09 18:08:28

+0

-1您对关系模型的描述完全不正确。 – onedaywhen 2012-01-10 09:46:51

1

我们应该区分关系数据库管理系统RDBMS和关系数据库。

SQL Server和SQL Azure的是RDBMS而是一种RDBMS有助于保持你的数据安全,维护您可以创建数据库是不是关系,因为他们没有必要的键等

使用的功能数据的完整性。如果你不使用这些功能,你必须依赖你的应用程序(这大概是你写的)

正确规范化的数据库将消除孤立记录,不会允许一定数量的无效数据,而不管客户端/您正在使用的应用程序。

这里是Codd的规则编号0-13。我不相信任何商业上可用的RDBMS(SQL Server,Oracle等)都实现了所有这些规则,但通常会实现几个规则。

Codd's 12 rules

的这个仔细读也可能会有所帮助 Normalization

+0

+1区分'DBMS'和'数据库'。但是,由于我无法区分'SQL DBMS'和'真正的关系型DBMS',所以我不同意你的看法。 – onedaywhen 2012-01-10 09:40:01

1

首先,术语“数据库”是指,而“这一术语数据库管理系统”数据采集(“DBMS”)指的是管理数据的软件系统。我认为你的问题应该被框住

SQL DBMS(比如Azure)可以被认为是关系数据库管理系统吗?

下面是历史简述:Codd发明了关系模型。出现各种实现。 SQL成为唯一被广泛采用的实现,但需要很长时间才能成为关于Codd关于该术语的定义的关系完整性,到那时候它已经包含了功能(这归功于兼容性的束缚,永远不会被删除)不忠于关系模型,其中有些模型是由Codd提出的,但后来被放弃(例如主键,零点等),而另一些模型则仅仅由于对模型的明显误解(例如重复行,依赖列排序等)而被放弃。 SQL标准一直有意避免使用“关系”及其派生词这个词,但SQL产品供应商不能这么说。

我认为答案很简单,入门级的SQL-92标准(标准的,因此所有后续的迭代)被认为是相关地完成至于这个词的Codd的定义,但不被认为是真正的关系是关于当前关系理论。但是,确定SQL产品是否真正实现入门级SQL-92本身是主观的:我们是否可以依赖供应商的合规声明。

我认为您的老师鼓励您采取的探究路线是测试SQL标准和产品包含不忠于关系模型的功能的假设。 Chris Date最近的书SQL and Relational Theory: How to Accurate SQL Code (2009)可以找到关于此的一个很好的信息来源。