[英]Is SQL Azure a relational database?
我真的不明白。 也许这是一个愚蠢的问题。
SQL Azure是关系数据库还是它的行为?
使用ADO.NET和LINQ我创建了一个关系数据库或非关系数据库?
(我知道这些问题听起来很奇怪......!)
编辑:
好吧,有一个答案,我已经理解了一件重要的事情,我可以更好地解释我的问题。
即:我为我的应用程序创建了一个非关系数据库。 在Azure上发布它并在SQL Azure上加载数据库,db是否是关系的?
我认为缺少主键和外键仍然是非关系型的。 我会收到任何错误吗?
那么Table Storage服务的实用性是什么?
是的,SQL Azure是一个关系数据库管理系统。 SQL Azure与传统MS SQL Server之间的区别在于SQL Azure旨在以高冗余(即多个实例)运行。
是的,SQL Azure是完全关系型云数据库解决方案。
“Microsoft SQL Azure数据库是基于SQL Server技术构建的基于云的关系数据库平台。” 从SQL Azure数据库简介中提取http://msdn.microsoft.com/en-us/library/windowsazure/ee336230.aspx 。
你试过谷歌吗? “是sql azure relational”的第一个结果:
http://msdn.microsoft.com/en-us/library/windowsazure/ee336230.aspx
Microsoft SQL Azure数据库是基于SQL Server技术构建的基于云的关系数据库平台
我们应该区分关系数据库管理系统RDBMS和关系数据库。
SQL Server和SQL Azure是RDBMS,但您可以创建非关系数据库,因为它们没有必需的密钥等。
使用RDBMS的功能有助于保护数据安全并保持数据的完整性。 如果您不使用这些功能,则必须依赖您的应用程序(可能是您已编写过)
正确规范化的数据库将消除孤立记录,并且不管您使用的客户端/应用程序如何,都不会允许一定数量的无效数据。
以下是Codd的编号为0到13的规则。我不相信任何商业上可用的RDBMS(SQL Server,Oracle等)都实现了所有这些规则,但通常会实现几个。
仔细阅读这可能也有助于标准化
首先,术语“数据库”是指数据的集合,而“术语数据库管理系统”(“DBMS”)是指管理数据的软件系统。 我认为你的问题应该是框架
可以将SQL DBMS(例如Azure)视为关系DBMS吗?
简而言之,这就是历史: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)中找到 。
对你的评论:“教授给了我一个”虚假的“暗示,告诉我相反”< - 而SQL Azure是一个像其他人一样的关系型DBMS。 您的教授可能希望您参考的是: http : //blogs.msdn.com/b/cbiyikoglu/archive/2011/03/03/nosql-genes-in-sql-azure-federations.aspx
ADO.NET和LINQ可以创建关系数据库(模式)以及非关系数据库(模式)。
关系数据库必须具有带主键的表和带有外键的表,这些外键引用第一个表中的主键。
所有表都应具有主键,以使数据库真正成为关系。
你应该做一些关于规范化的研究。 查看Codd的规则(Edgar F. Codd)。 http://en.wikipedia.org/wiki/Edgar_F._Codd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.