亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)據(jù)完整性在SQL數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)施

        2012-12-31 00:00:00于洋

        【摘要】數(shù)據(jù)庫(kù)作為一個(gè)共享資源,數(shù)據(jù)庫(kù)中提供的信息必須準(zhǔn)確有效,為了防止出現(xiàn)不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和不一致的數(shù)據(jù),數(shù)據(jù)庫(kù)管理系統(tǒng)必須提供一定的機(jī)制來(lái)保證數(shù)據(jù)的完整性。作為一個(gè)功能強(qiáng)大的數(shù)據(jù)庫(kù)管理系統(tǒng),SQL Server提供了多種完整性規(guī)則來(lái)保證數(shù)據(jù)的完整性。

        【關(guān)鍵詞】SQL Server;數(shù)據(jù)完整性;數(shù)據(jù)庫(kù)系統(tǒng);約束

        數(shù)據(jù)的完整性是指數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性、有效性和一致性。正確性是指數(shù)據(jù)的合法性;有效性是指數(shù)據(jù)是否在定義的有效范圍;一致性是指表示同一個(gè)事實(shí)的兩個(gè)數(shù)據(jù)應(yīng)相同。數(shù)據(jù)庫(kù)管理系統(tǒng)要提供必要的功能,保證數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)在更新過(guò)程中始終與客觀世界實(shí)際的信息狀態(tài)保持一致。數(shù)據(jù)完整性包括:實(shí)體完整性,它是指主鍵的值不能為空或部分為空,如果主鍵為空或部分為空,則失去了主鍵的惟一標(biāo)識(shí)性。參照完整性是指一個(gè)表的外部鍵必須在另一個(gè)表中找到或者為空。參照完整性反映了事物之間的相互聯(lián)系。用戶(hù)自定義完整性是針對(duì)具體應(yīng)用環(huán)境數(shù)據(jù)必須滿(mǎn)足的語(yǔ)義要求。

        1.數(shù)據(jù)完整性的界定

        SQL Server 2003是一種比較復(fù)雜的數(shù)據(jù)庫(kù),主要靠?jī)?nèi)部的映射關(guān)系的一種數(shù)據(jù)庫(kù),這種數(shù)據(jù)庫(kù)的服務(wù)一般來(lái)說(shuō)是對(duì)于復(fù)制、集成、分析、通知以及報(bào)表等相關(guān)服務(wù)的融合,此外,Visual Studio.NET等第三方開(kāi)發(fā)工具的有效結(jié)合。因此,本系統(tǒng)使將用SQL Server 2003數(shù)據(jù)庫(kù)。

        首先,.NET Framework 與SQL Server 2003有機(jī)結(jié)合的過(guò)程中,SQL Server利用.NET平臺(tái)特有的公用語(yǔ)言運(yùn)行時(shí)(CLR-Common Language Runtime)的特性來(lái)生成數(shù)據(jù)庫(kù)的相關(guān)對(duì)象,在數(shù)據(jù)庫(kù)管理系統(tǒng)中充分利用.NET代碼的功能。

        其次,借助SQL Server 2003,可以為網(wǎng)頁(yè)服務(wù)開(kāi)發(fā)提供便利,這樣,SQL Server使用的是 HTTP技術(shù),對(duì)于以Web服務(wù)為中心的應(yīng)用程序的數(shù)據(jù)訪問(wèn)得以更新。

        最后,SQL Server 2003還新增了T-SQL事務(wù)語(yǔ)句,從而實(shí)現(xiàn)了可伸縮性數(shù)據(jù)庫(kù)應(yīng)用的開(kāi)發(fā)語(yǔ)言功能的拓展。

        數(shù)據(jù)庫(kù)設(shè)計(jì)是針對(duì)應(yīng)用需求和環(huán)境,建立合理的數(shù)據(jù)庫(kù)模式和存儲(chǔ)結(jié)構(gòu),保證數(shù)據(jù)的高效存取,并滿(mǎn)足應(yīng)用的任務(wù)處理要求。

        數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程分為4個(gè)階段:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)。需求分析包括數(shù)據(jù)分析和功能分析。確定用戶(hù)要達(dá)到的目標(biāo),從這些目標(biāo)中獲得數(shù)據(jù)庫(kù)的要求,并整理成說(shuō)明書(shū),包括數(shù)據(jù)流程圖、約束條件、技術(shù)指標(biāo)等信息。概念設(shè)計(jì)產(chǎn)生反映企業(yè)組織信息需求的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),概念設(shè)計(jì)的主要方法是采用E-R方法和數(shù)據(jù)字典。邏輯設(shè)計(jì)是從概念模型導(dǎo)出特定的數(shù)據(jù)庫(kù)邏輯模式,在功能、性能、完整性和一致性約束及數(shù)據(jù)庫(kù)可擴(kuò)展性等方面均應(yīng)滿(mǎn)足用戶(hù)提出的要求。邏輯設(shè)計(jì)中,將E-R圖轉(zhuǎn)換為關(guān)系模型。物理設(shè)計(jì)是從滿(mǎn)足用戶(hù)需求的、已確定邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu)轉(zhuǎn)換出一個(gè)有效的、可實(shí)現(xiàn)的物理數(shù)據(jù)庫(kù)結(jié)構(gòu)的過(guò)程。最終生成一個(gè)物理設(shè)計(jì)說(shuō)明書(shū),在實(shí)現(xiàn)數(shù)據(jù)庫(kù)時(shí)根據(jù)說(shuō)明書(shū)進(jìn)行操作。

        1.1規(guī)范化

        第一范式(1NF):數(shù)據(jù)表中每一個(gè)數(shù)據(jù)項(xiàng)均不能拆分成兩個(gè)或兩個(gè)以上的數(shù)據(jù)項(xiàng)。

        第二范式(2NF):數(shù)據(jù)表滿(mǎn)足第一范式,并且數(shù)據(jù)表中任何一個(gè)非主鍵字段的數(shù)值都依賴(lài)于主鍵。

        第三范式(3NF):數(shù)據(jù)表滿(mǎn)足第二范式,并且數(shù)據(jù)表中任何兩個(gè)非主鍵字段的數(shù)值之間不存在函數(shù)依賴(lài)。

        1.2數(shù)據(jù)完整性

        (1)實(shí)體完整性:設(shè)置主鍵、唯一鍵、唯一索引、標(biāo)識(shí)列等方法實(shí)現(xiàn)。

        (2)域完整性:設(shè)置默認(rèn)值、檢查、外鍵、數(shù)據(jù)類(lèi)型、規(guī)則等方法實(shí)現(xiàn)。

        (3)參照完整性:設(shè)置外鍵、檢查、觸發(fā)器、存儲(chǔ)過(guò)程等方法實(shí)現(xiàn)。

        (4)用戶(hù)定義完整性:設(shè)置規(guī)則、觸發(fā)器、存儲(chǔ)過(guò)程、約束等實(shí)現(xiàn)。

        2.實(shí)現(xiàn)數(shù)據(jù)完整性的實(shí)現(xiàn)

        2.1數(shù)據(jù)庫(kù)的連接

        數(shù)據(jù)庫(kù)連接:(ADO通過(guò)OLEDB實(shí)現(xiàn)對(duì)不同數(shù)據(jù)源的訪問(wèn))

        (1)初始化COM庫(kù):在CMannagementApp::InitInstance中調(diào)用:CoInitialize(NULL)

        (2)初始化數(shù)據(jù)庫(kù):在CManagementDlg的構(gòu)造函數(shù)中實(shí)現(xiàn):

        CSting strConnection=\"driver={SQL Server};

        Server=127.0.0.1; DATABASE=QUEStoneDB; UID=sa;PWD=123;\";

        pDB=new CADODatabase;

        pDB->Open(strConnection);

        (3)使用創(chuàng)建記錄集:pRs=new CADORecordest(pDB0;

        (4)操作完成后關(guān)閉并釋放記錄集指針:

        if(pRs pRs->IsOpen())

        pRs->Close();

        if(pRs)

        delete(pRs);

        (5)退出系統(tǒng)時(shí)釋放數(shù)據(jù)庫(kù)指針

        在CManagementDlg的析構(gòu)函數(shù)中實(shí)現(xiàn)

        if(pRs pRs->IsOpen())

        pRs->Close();

        if(pRs)

        delete(pRs);

        (6)退出系統(tǒng)時(shí)清除COM庫(kù):

        在CManagementApp::ExitInstance中調(diào)用::CoUninitialize();

        2.2 ADO.NET 中SQL Server xsgl數(shù)據(jù)庫(kù)建立連接的代碼

        String cnStr= \"Password=sa;Persist Security Info=True; User ID=sa;\"+\"Initial Catalog=xsgl; Data Source=B402\";//服務(wù)器名稱(chēng)

        SqlConnection cn=new SqlConnection();

        cn.ConnectionString=cnStr;

        cn.open();

        ConnectionString屬性是Connection對(duì)象最重要的一個(gè)屬性,他用來(lái)指定與數(shù)據(jù)庫(kù)建立連接時(shí)使用的連接串,連接串包涵有源數(shù)據(jù)庫(kù)的名稱(chēng)和建立初始連接所需的其他參數(shù),例如用戶(hù)名和密碼這些信息。

        2.3使用ASP.net /c#連接access和sql server數(shù)據(jù)庫(kù)

        using system.data.oledb;引用命名空間,string strconnection=\"procider=microsoft.jet.oledb.4.0;\";數(shù)據(jù)庫(kù)提供者。

        strconnection+=@\"data source=c:\begaspnet\northwind.mdb\";數(shù)據(jù)源標(biāo)準(zhǔn)形式data source=mydrive:mypath\myfile.mdb@防止后面的\解析為轉(zhuǎn)義字符oledbconnection objconnection=new oledbconnection(strconnection);利用定義好的字符串建立連接對(duì)象方便后面使用strconnection 是存放連接數(shù)據(jù)庫(kù)中使用的 提供者和數(shù)據(jù)源兩個(gè)變量如果連接的數(shù)據(jù)庫(kù)文件和當(dāng)前文件在同一個(gè)目錄下strconnection+=\"data source=”;\+=mappath(\"northwind.mdb\")。

        2.4 sql server 連接

        String strconnectiong=\"user id=;pwd=;\";

        strconnection+=\"initial catalog=northwind;server=yoursqlserver;\";

        strconnection+=\"connect timeout=30\";

        sqlconnection objconnection=new sqlconnection(strconnection);

        2.5 C#訪問(wèn)數(shù)據(jù)庫(kù)的幾種函數(shù)和參數(shù)

        (1)Provider,指定要連接的數(shù)據(jù)源種類(lèi)。如果使用的是SQL Server DataProvider,則不需要指定Provider參數(shù),因?yàn)镾QL Server DataProvider已經(jīng)指定了所要連接的數(shù)據(jù)源是SQL Server服務(wù)器。如果使用的是OleDB Data Provider 或者其他的連接數(shù)據(jù)源,則不需指定Provider參數(shù)對(duì)應(yīng)關(guān)系 : SQLOLEDB對(duì)應(yīng)于Microsoft OLEDB Provider for SQL Server,

        MSDASQL對(duì)應(yīng)于Microsoft OLEDB Provider for ODBC

        Microsoft.Jet.OLEDB.4.0對(duì)應(yīng)于Microsoft OLEDB Provider for Access

        MSDAORA對(duì)應(yīng)于Microsoft OLEDB Provider for Oracle

        (2)Server,指定需要連接的數(shù)據(jù)庫(kù)服務(wù)器(或者數(shù)據(jù)域)。比如Server=(local),指定連接的數(shù)據(jù)庫(kù)服務(wù)器是在本地。如果本地的數(shù)據(jù)庫(kù)還定義了實(shí)例名,Server參數(shù)可以寫(xiě)成Server=(local)\實(shí)例名。另外,可以使用計(jì)算機(jī)名作為服務(wù)器的值。如果連接的是遠(yuǎn)程的服務(wù)器,Server參數(shù)可以寫(xiě)成Server=IP或者\(yùn)"Server=遠(yuǎn)程計(jì)算機(jī)名\"的形式 Server參數(shù)也可以寫(xiě)成Data Source,比如Data Source=IP。

        \"server=(local);Initial Catalog=student;user Id=sa;password=;\"=\"Data Source=(localhost);Initial Catalog=student;user Id=sa;password=;\"

        (3)DataBase:

        DataBase參數(shù)用來(lái)指定連接的數(shù)據(jù)庫(kù)名。比如DataBase=Master,說(shuō)明連接的數(shù)據(jù)庫(kù)是Master,DataBase參數(shù)也可以寫(xiě)成Initial Catalog,如 Initial Catalog=Master。

        (4)Uid參數(shù)和Pwd參數(shù):

        指定登錄數(shù)據(jù)庫(kù)的用戶(hù)名和密碼。

        (5)Connect Timeout參數(shù):

        指定打開(kāi)數(shù)據(jù)庫(kù)時(shí)最大的等待時(shí)間,單位是秒。如果不設(shè)置此參數(shù),默認(rèn)是15秒。如果設(shè)置-1表示無(wú)限期等待,一般不推薦使用。

        (6)Intergrated Security參數(shù):

        用來(lái)說(shuō)明登錄到數(shù)據(jù)源時(shí)是否使用SQL Server的集成安全驗(yàn)證。如果該參數(shù)的取值是True(或者SSPI,或者YES),表示使用Windows驗(yàn)證模式,即不需要通過(guò)Uid和Pwd這樣的方式登錄。如果取值是False或者No,表示登錄時(shí)使用Uid和Pwd方式登錄。一般來(lái)說(shuō),使用集成安全驗(yàn)證的登錄方式比較安全,因?yàn)檫@種方式不會(huì)暴露用戶(hù)名和密碼。安裝SQL Server時(shí),如果選中”Windows身份驗(yàn)證模式“單選按鈕則應(yīng)該使用如下的連接字符串:Data Source=(local);Init Catalog=student;Integrated Security=SSPI。

        (7)Pooling、MaxPool Size和Min Pool Size參數(shù):

        Pooling參數(shù)用來(lái)說(shuō)明在連接到數(shù)據(jù)源時(shí),是否使用連接池,默認(rèn)是True。當(dāng)改值為T(mén)rue時(shí),系統(tǒng)從適當(dāng)?shù)某刂刑崛QLConnection對(duì)象,或者需要時(shí)創(chuàng)建該對(duì)象并將其添加進(jìn)去。當(dāng)Fasle時(shí),不適用連接池。

        當(dāng)應(yīng)用程序連接到數(shù)據(jù)源或者創(chuàng)建連接對(duì)象時(shí),系統(tǒng)不僅要開(kāi)銷(xiāo)一定的通信和內(nèi)存資源,還必須完成諸如建立物理通道(例如套接字或命名管道),與服務(wù)器進(jìn)行初次握手,分析連接字符串信息,由服務(wù)器對(duì)連接進(jìn)行身份驗(yàn)證,運(yùn)行檢查以便在當(dāng)前事務(wù)中登記等任務(wù),因此往往成為最為耗時(shí)的操作。

        實(shí)際上,大多數(shù)應(yīng)用程序使用一個(gè)或幾個(gè)不同的連接配置。這意味著在執(zhí)行應(yīng)用程序期間,許多相同的連接將反復(fù)地打開(kāi)和關(guān)閉。為了使打開(kāi)的連接成本最低,ADO.NET使用稱(chēng)為Pooling的優(yōu)化方法。

        在連接池中們?yōu)榱颂岣邤?shù)據(jù)庫(kù)的連接效率,根據(jù)實(shí)際情況,預(yù)先存放了若干數(shù)據(jù)庫(kù)連接對(duì)象,這些對(duì)象即使在用完后也不會(huì)被釋放。應(yīng)用程序不是向數(shù)據(jù)源申請(qǐng)連接對(duì)象,而是向連接池盛情數(shù)據(jù)庫(kù)的連接對(duì)象。另外,連接池中的連接對(duì)象數(shù)量必須同實(shí)際需求相符,空置和滿(mǎn)載都對(duì)數(shù)據(jù)庫(kù)的連接效率不利。

        Max Pool Size和Min Pool Size這兩個(gè)參數(shù)分別表示連接池中最大和最小連接數(shù)量,默認(rèn)分別是100和0。根據(jù)實(shí)際應(yīng)用適當(dāng)?shù)厝≈祵⑻岣邤?shù)據(jù)庫(kù)的連接效率。

        3.結(jié)束語(yǔ)

        數(shù)據(jù)的完整性是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)最基本的要求之一,在SQL Server數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中可采用在服務(wù)器端數(shù)據(jù)表上定義完整性約束,創(chuàng)建數(shù)據(jù)表的完整性規(guī)則、默認(rèn)和觸發(fā)器,或者通過(guò)客戶(hù)端應(yīng)用程序控制等三種方式來(lái)進(jìn)行數(shù)據(jù)的完整性保護(hù)。在開(kāi)發(fā)應(yīng)用系統(tǒng)中,應(yīng)根據(jù)各種完整性約束的優(yōu)點(diǎn)并將它們結(jié)合起來(lái)使用,充分發(fā)揮SQL Server提供的數(shù)據(jù)完整性的效能,在確保數(shù)據(jù)準(zhǔn)確性和一致性方面減少對(duì)用戶(hù)的依賴(lài)性,從而大大提高系統(tǒng)的可靠性。

        【參考文獻(xiàn)】

        [1]楊正洪.SQL Server7.0關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)管理與開(kāi)發(fā)指南.機(jī)械工業(yè)部出版社,2000.

        [2]薛華成.管理信息系統(tǒng).清華大學(xué)出版社,1995.

        [3]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)[M].北京:高等教育出版社.2002.

        [4]羅遠(yuǎn)模,王珊.SQL Server數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)[M].北京:高等教育出版社,2002.

        青青草在线成人免费视频| 久久精品国产亚洲av大全| 人妻人人澡人人添人人爽人人玩| 欧美日韩a级a| 亚洲精品国产成人久久av盗摄| 欧美激情视频一区二区三区免费| 欧美金发尤物大战黑人| 国产精品大屁股1区二区三区| 亚洲国产成人av第一二三区| 男女射黄视频网站在线免费观看| 国产亚洲日韩在线一区二区三区 | 天堂网日韩av在线播放一区| 高潮内射双龙视频| 精品久久久无码中文字幕| 亚洲五月七月丁香缴情| 日本岛国一区二区三区四区| 国产精品无码一区二区三区电影 | 乱码丰满人妻一二三区| 久久精品国产亚洲av成人| 日本av一区二区播放| 亚洲av成熟国产一区二区| 免费大黄网站| 亚洲AV毛片无码成人区httP | 亚洲成年网站在线777| 亚洲在中文字幕乱码熟女| 中文字幕一区二区三区四区五区| 18成人片黄网站www| 99riav精品国产| 日韩一区二区三区熟女| 国模雨珍浓密毛大尺度150p| 亚洲国产成人91| 日本高清一区二区三区色| 久久人人爽人人爽人人片av高请 | 国产精品私密保养| 亚洲精品人成无码中文毛片| 男女上床视频免费网站| 精品一区中文字幕在线观看| 色先锋av资源中文字幕| 亚洲黄色性生活一级片| 日本乱熟人妻中文字幕乱码69| 久久天天躁狠狠躁夜夜躁2014|