关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »SQL Server数据库与.NET联通概述

    SQL Server数据库与.NET联通概述

    2010-07-16 11:24:00 出处:ITJS
    分享

    此文章主要向大家讲述的是SQL Server数据库与.NET与Visual Studio的联通的介绍,随着SQL Server 2008数据库的的上市,微软另两款开发产品.NET Framework 3.5与Visual Studio 2008也同步发布中文版Service Pack 1。

    包含传闻已久的微软ORM(Object Relational Mapping)解决方案──ADO.NET Entity Framework,而LINQ,随着SQL Server 2008的上市,微软另两款开发产品.NET Framework 3.5及Visual Studio 2008也同步发布中文版Service Pack 1,包含传闻已久的微软ORM(Object Relational Mapping)解决方案──ADO.NET Entity Framework,而LINQ(Language Integrated Query)也将增加支持存取Entity Framework对象的LINQ To Entities。

    此外, ADO.NET Data Services也是新的,包含比SOAP(Simple Object Access Protocol)通讯协议更简单的REST(Representational State Transfer)存取模式,可满足倾向简单应用Web Services的Web开发者。

    事实上,Visual Studio必须升级才能与SQL Server 2008无缝挂接,微软的.NET与SQL Server研发团队,有越来越紧密合作的趋势,操作SQL Server数据库最好用的开发工具是Visual Studio,而.NET Framework目前支持最完整的数据库也是SQL Server数据库,可以看出微软企图利用彼此捆绑的策略,拉抬两者市场份额的野心。

    而SQL Server 2008本身跟程序开发有关的部分,比较重要的改变是增加许多新的数据方式,包括FileStream及Geography、Geometry等空间数据格式。FileStream可以存放文件的Metadata,并指定存放文件的实体目录。而空间数据方式则包含许多函数,帮助开发者处理点/线/面的空间计算。

    对象与关系型数据对应的解决方案

    LINQ与ADO.NET Entity Framework在微软是由两个不同的团队研发,功能上看似有些重迭,但实际上是要解决现今程序开发上,所面临的不同问题。

    LINQ提供统一操作各种数据集合的模式;而ADO.NET Entity Framework则是提供对象导向开发者,对象与关系型数据对应的解决方案。

    相对于对象导向程序开发的思维,在发明SQL的年代,并没有对象导向的观念,所以SQL语法一点也不对象导向。而习惯用对象思考,并希望对象导向观念与关系型数据库可以平顺整合的开发者,会希望有一套ORM解决方案。

    而ORM的目的,是企图帮助开发者从对象导向程序开发的角度,单纯地思考类别之间的继承及参照关系,而不需要知道实体的数据是如何分散在不同的数据表,以及对象背后对应哪些数据表,甚至SQL指令的组成,也交由平台处理。

    ADO.NET Entity Framework就是微软的ORM解决方案,事实上,ORM在Java及PHP等阵营早有对应的解决方案,所以微软在这方面的脚步并不算是很快。

    ORM的价值

    ADO.NET Entity Framework中的“Entity(数据实体)”,是指对象化的数据记录。使用数据实体而不直接连接数据库的好处,在于开发者不必使用SQL指令,而是透过对象的方法(Method)存取数据库,藉以简化程序设计的复杂度,并提升程序代码重复使用的机会。

    以客户数据为例,在数据库有Customer和Customer Detail两个数据表(Table),运用ADO.NET Entity Framework,可以把2个数据表对应(Mapping)成一个Customer数据实体,也就是对象类别,开发者只需呼叫Customer类别的Insert、Update和Delete等Method,并输入必要的参数,那么ADO.NET Entity Framework即自动产生对应的SQL语法,一对多地新增、修改及删除Customer和Customer Detail数据表中的数据。

    对象与数据表的对应,除了一对多的情况,也可能是多对一甚至多对多的复杂对应。例如一个Employee数据表,在业务面因为属性不同,而拆成Manager、Employee和新人等3个不同的类别。

    由于ORM需要对应SQL Server数据库与对象的关联,还要处理对象之间的继承关系,使得应用上存在一定的复杂度,因此,设计工具扮演的角色,相形之下变得重要,假如它无法使对应关系的设定,尽可能地简单而直觉,就会减损使用ORM的好处。

    Visual Studio 2008升级至SP1之后,将提供可视化的精灵及操作工具,处理数据实体与数据库的对应。主要的功能包括透过实体数据模型(Entity Data Model)导入现有数据库的数据表,再以此为基础,设定数据表之间的关联,然后经由概念模型(Conceptual Model)处理数据表与数据实体两者的对应。

    这些作法的背后,实际上底层是透过3个XML文件记录数据实体、数据库结构及两者之间的对应关系。不过,Visual Studio的操作界面,将透过图形化的设计工具简化对应的难度。

    概念模型与ER Model不同

    微软所谓的概念模型,与过去设计数据库架构常见的ER Model(Entity Relationship Model,实体关系模型)并不相同。

    ER Model以图形化的方式,描述实体数据表之间的一对一、一对多或多对多关系,是属于实体的数据库模型。而概念模型则贴近系统分析阶段的思维,以业务的角度看待数据实体。

    从这里也可以看出对象导向与SQL Server数据库设计理念的不同之处。

    数据库设计时,为了避免同样的数据重复存在于多个数据表,造成空间的浪费及维护的困难,所以必须历经正规化过程。

    例如员工基本数据包含亲属数据,但设计关系型数据库时为了正规化,亲属数据可能被拆出来,成为另一个数据表,而两者透过主键(Primary Key)和外部索引键(Foreign Key)建立一对多关系。

    使用ER Model就会是两个数据表透过一对多关系连接,而进入概念模型之后,就对象导向的观点,将是以一个数据实体代表员工,其中会有一个属性是亲属数据的集合。而在概念模型的背后,是员工这个数据实体,一对多地对应到数据库的员工数据及亲属数据两个数据表。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。