自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server數(shù)據(jù)庫與.NET聯(lián)通概述

數(shù)據(jù)庫 SQL Server
我們今天是要和大家一起討論的是SQL Server數(shù)據(jù)庫與.NET與Visual Studio的聯(lián)通的介紹,以下就是文章的主要內(nèi)容的詳細(xì)描述。

此文章主要向大家講述的是SQL Server數(shù)據(jù)庫與.NET與Visual Studio的聯(lián)通的介紹,隨著SQL Server 2008數(shù)據(jù)庫的的上市,微軟另兩款開發(fā)產(chǎn)品.NET Framework 3.5與Visual Studio 2008也同步發(fā)布中文版Service Pack 1。

包含傳聞已久的微軟ORM(Object Relational Mapping)解決方案──ADO.NET Entity Framework,而LINQ,隨著SQL Server 2008的上市,微軟另兩款開發(fā)產(chǎn)品.NET Framework 3.5及Visual Studio 2008也同步發(fā)布中文版Service Pack 1,包含傳聞已久的微軟ORM(Object Relational Mapping)解決方案──ADO.NET Entity Framework,而LINQ(Language Integrated Query)也將增加支持存取Entity Framework對(duì)象的LINQ To Entities。

 

此外, ADO.NET Data Services也是新的,包含比SOAP(Simple Object Access Protocol)通訊協(xié)議更簡(jiǎn)單的REST(Representational State Transfer)存取模式,可滿足傾向簡(jiǎn)單應(yīng)用Web Services的Web開發(fā)者。

事實(shí)上,Visual Studio必須升級(jí)才能與SQL Server 2008無縫掛接,微軟的.NET與SQL Server研發(fā)團(tuán)隊(duì),有越來越緊密合作的趨勢(shì),操作SQL Server數(shù)據(jù)庫***用的開發(fā)工具是Visual Studio,而.NET Framework目前支持最完整的數(shù)據(jù)庫也是SQL Server數(shù)據(jù)庫,可以看出微軟企圖利用彼此捆綁的策略,拉抬兩者市場(chǎng)份額的野心。

而SQL Server 2008本身跟程序開發(fā)有關(guān)的部分,比較重要的改變是增加許多新的數(shù)據(jù)方式,包括FileStream及Geography、Geometry等空間數(shù)據(jù)格式。FileStream可以存放文件的Metadata,并指定存放文件的實(shí)體目錄。而空間數(shù)據(jù)方式則包含許多函數(shù),幫助開發(fā)者處理點(diǎn)/線/面的空間計(jì)算。

對(duì)象與關(guān)系型數(shù)據(jù)對(duì)應(yīng)的解決方案

LINQ與ADO.NET Entity Framework在微軟是由兩個(gè)不同的團(tuán)隊(duì)研發(fā),功能上看似有些重迭,但實(shí)際上是要解決現(xiàn)今程序開發(fā)上,所面臨的不同問題。

LINQ提供統(tǒng)一操作各種數(shù)據(jù)集合的模式;而ADO.NET Entity Framework則是提供對(duì)象導(dǎo)向開發(fā)者,對(duì)象與關(guān)系型數(shù)據(jù)對(duì)應(yīng)的解決方案。

相對(duì)于對(duì)象導(dǎo)向程序開發(fā)的思維,在發(fā)明SQL的年代,并沒有對(duì)象導(dǎo)向的觀念,所以SQL語法一點(diǎn)也不對(duì)象導(dǎo)向。而習(xí)慣用對(duì)象思考,并希望對(duì)象導(dǎo)向觀念與關(guān)系型數(shù)據(jù)庫可以平順整合的開發(fā)者,會(huì)希望有一套ORM解決方案。

而ORM的目的,是企圖幫助開發(fā)者從對(duì)象導(dǎo)向程序開發(fā)的角度,單純地思考類別之間的繼承及參照關(guān)系,而不需要知道實(shí)體的數(shù)據(jù)是如何分散在不同的數(shù)據(jù)表,以及對(duì)象背后對(duì)應(yīng)哪些數(shù)據(jù)表,甚至SQL指令的組成,也交由平臺(tái)處理。

ADO.NET Entity Framework就是微軟的ORM解決方案,事實(shí)上,ORM在Java及PHP等陣營早有對(duì)應(yīng)的解決方案,所以微軟在這方面的腳步并不算是很快。

ORM的價(jià)值

 

ADO.NET Entity Framework中的“Entity(數(shù)據(jù)實(shí)體)”,是指對(duì)象化的數(shù)據(jù)記錄。使用數(shù)據(jù)實(shí)體而不直接連接數(shù)據(jù)庫的好處,在于開發(fā)者不必使用SQL指令,而是透過對(duì)象的方法(Method)存取數(shù)據(jù)庫,藉以簡(jiǎn)化程序設(shè)計(jì)的復(fù)雜度,并提升程序代碼重復(fù)使用的機(jī)會(huì)。

 

以客戶數(shù)據(jù)為例,在數(shù)據(jù)庫有Customer和Customer Detail兩個(gè)數(shù)據(jù)表(Table),運(yùn)用ADO.NET Entity Framework,可以把2個(gè)數(shù)據(jù)表對(duì)應(yīng)(Mapping)成一個(gè)Customer數(shù)據(jù)實(shí)體,也就是對(duì)象類別,開發(fā)者只需呼叫Customer類別的Insert、Update和Delete等Method,并輸入必要的參數(shù),那么ADO.NET Entity Framework即自動(dòng)產(chǎn)生對(duì)應(yīng)的SQL語法,一對(duì)多地新增、修改及刪除Customer和Customer Detail數(shù)據(jù)表中的數(shù)據(jù)。

對(duì)象與數(shù)據(jù)表的對(duì)應(yīng),除了一對(duì)多的情況,也可能是多對(duì)一甚至多對(duì)多的復(fù)雜對(duì)應(yīng)。例如一個(gè)Employee數(shù)據(jù)表,在業(yè)務(wù)面因?yàn)閷傩圆煌?,而拆成Manager、Employee和新人等3個(gè)不同的類別。

由于ORM需要對(duì)應(yīng)SQL Server數(shù)據(jù)庫與對(duì)象的關(guān)聯(lián),還要處理對(duì)象之間的繼承關(guān)系,使得應(yīng)用上存在一定的復(fù)雜度,因此,設(shè)計(jì)工具扮演的角色,相形之下變得重要,如果它無法使對(duì)應(yīng)關(guān)系的設(shè)定,盡可能地簡(jiǎn)單而直覺,就會(huì)減損使用ORM的好處。

Visual Studio 2008升級(jí)至SP1之后,將提供可視化的精靈及操作工具,處理數(shù)據(jù)實(shí)體與數(shù)據(jù)庫的對(duì)應(yīng)。主要的功能包括透過實(shí)體數(shù)據(jù)模型(Entity Data Model)導(dǎo)入現(xiàn)有數(shù)據(jù)庫的數(shù)據(jù)表,再以此為基礎(chǔ),設(shè)定數(shù)據(jù)表之間的關(guān)聯(lián),然后經(jīng)由概念模型(Conceptual Model)處理數(shù)據(jù)表與數(shù)據(jù)實(shí)體兩者的對(duì)應(yīng)。

這些作法的背后,實(shí)際上底層是透過3個(gè)XML文件記錄數(shù)據(jù)實(shí)體、數(shù)據(jù)庫結(jié)構(gòu)及兩者之間的對(duì)應(yīng)關(guān)系。不過,Visual Studio的操作界面,將透過圖形化的設(shè)計(jì)工具簡(jiǎn)化對(duì)應(yīng)的難度。

概念模型與ER Model不同

微軟所謂的概念模型,與過去設(shè)計(jì)數(shù)據(jù)庫架構(gòu)常見的ER Model(Entity Relationship Model,實(shí)體關(guān)系模型)并不相同。

ER Model以圖形化的方式,描述實(shí)體數(shù)據(jù)表之間的一對(duì)一、一對(duì)多或多對(duì)多關(guān)系,是屬于實(shí)體的數(shù)據(jù)庫模型。而概念模型則貼近系統(tǒng)分析階段的思維,以業(yè)務(wù)的角度看待數(shù)據(jù)實(shí)體。

從這里也可以看出對(duì)象導(dǎo)向與SQL Server數(shù)據(jù)庫設(shè)計(jì)理念的不同之處。

數(shù)據(jù)庫設(shè)計(jì)時(shí),為了避免同樣的數(shù)據(jù)重復(fù)存在于多個(gè)數(shù)據(jù)表,造成空間的浪費(fèi)及維護(hù)的困難,所以必須歷經(jīng)正規(guī)化過程。

例如員工基本數(shù)據(jù)包含親屬數(shù)據(jù),但設(shè)計(jì)關(guān)系型數(shù)據(jù)庫時(shí)為了正規(guī)化,親屬數(shù)據(jù)可能被拆出來,成為另一個(gè)數(shù)據(jù)表,而兩者透過主鍵(Primary Key)和外部索引鍵(Foreign Key)建立一對(duì)多關(guān)系。

使用ER Model就會(huì)是兩個(gè)數(shù)據(jù)表透過一對(duì)多關(guān)系連接,而進(jìn)入概念模型之后,就對(duì)象導(dǎo)向的觀點(diǎn),將是以一個(gè)數(shù)據(jù)實(shí)體代表員工,其中會(huì)有一個(gè)屬性是親屬數(shù)據(jù)的集合。而在概念模型的背后,是員工這個(gè)數(shù)據(jù)實(shí)體,一對(duì)多地對(duì)應(yīng)到數(shù)據(jù)庫的員工數(shù)據(jù)及親屬數(shù)據(jù)兩個(gè)數(shù)據(jù)表。

 

 

 

【編輯推薦】

  1. SQL Server數(shù)據(jù)轉(zhuǎn)換服務(wù)利用與導(dǎo)入式格式的描述
  2. SQL Server性能進(jìn)行提高的4項(xiàng)技術(shù)概述
  3. 正確維護(hù)Sql Server表索引的2個(gè)步驟
  4. SQL Server數(shù)據(jù)庫的N多注意事項(xiàng)
  5. SQL ServerCoalesce的大量使用的具體描述

 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-14 17:49:39

SQL Server數(shù)

2010-07-20 10:02:41

SQL Server

2011-08-04 15:20:52

SQL Server數(shù)據(jù)庫鏡像

2010-07-05 10:44:35

SQL Server數(shù)

2010-07-15 17:28:50

SQL Server

2011-05-20 13:11:22

ADO.NET

2010-07-16 15:53:19

SQL Server數(shù)

2011-03-22 13:49:20

SQL Server數(shù)維度表事實(shí)表

2010-07-21 14:17:36

SQL Server數(shù)

2010-07-21 14:11:36

SQL Server

2009-03-27 13:15:20

OracleSQL Server鏡像

2011-05-26 14:07:11

SQL ServerOracle數(shù)據(jù)庫鏡像對(duì)比

2010-07-08 11:05:14

SQL Server數(shù)

2011-09-07 15:11:31

SQL Server同步

2009-08-05 15:40:49

ASP.NET連接數(shù)據(jù)

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫

2009-07-31 10:29:57

ASP.NET數(shù)據(jù)庫操

2009-07-28 11:00:24

Excel導(dǎo)入SQL

2009-11-12 11:23:35

ADO.NET SQL

2010-07-07 13:58:25

SQL Server死
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)