1.維護數據庫的完整性、一致性、你喜歡用觸發器還是自寫業務邏輯?為什么?
答:盡可能用約束(包括CHECK、主鍵、唯一鍵、外鍵、非空字段)實現,這種方式的效率最好;其次用觸發器,這種方式可以保證無論何種業務系統訪問數據庫都能維持數據庫的完整性、一致性;最后再考慮用自寫業務邏輯實現,但這種方式效率最低、編程最復雜,當為下下之策。
2.什么是事務?什么是鎖?
答:事務是指一個工作單元,它包含了一組數據操作命令,并且所有的命令作為一個整體一起向系統提交或撤消請求操作,即這組命令要么都執行,要么都不執行。
鎖是在多用戶環境中對數據的訪問的限制。SqlServer自動鎖定特定記錄、字段或文件,防止用戶訪問,以維護數據安全或防止并發數據操作問題,鎖可以保證事務的完整性和并發性。
3.什么是索引,有什么優點?
答:索引象書的目錄類似,索引使數據庫程序無需掃描整個表,就可以在其中找到所需要的數據,索引包含了一個表中包含值的列表,其中包含了各個值的行所存儲的位置,索引可以是單個或一組列,索引提供的表中數據的邏輯位置,合理劃分索引能夠大大提高數據庫性能。
4.視圖是什么?游標是什么?
答:視圖是一種虛擬表,虛擬表具有和物理表相同的功能,可以對虛擬表進行增該查操作;
視圖通常是一個或多個表的行或列的子集;
視圖的結果更容易理解(修改視圖對基表不影響),獲取數據更容易(相比多表查詢更方便),限制數據檢索(比如需要隱藏某些行或列),維護更方便。
游標對查詢出來的結果集作為一個單元來有效的處理,游標可以定位在結果集的特定行、從結果集的當前位置檢索一行或多行、可以對結果集中當前位置進行修改、
5.什么是存儲過程?有什么優點?
答:存儲過程是一組予編譯的SQL語句
它的優點:1.允許模塊化程序設計,就是說只需要創建一次過程,以后在程序中就可以調用該過程任意次。
2.允許更快執行,如果某操作需要執行大量SQL語句或重復執行,存儲過程比SQL語句執行的要快。
3.減少網絡流量,例如一個需要數百行的SQL代碼的操作有一條執行語句完成,不需要在網絡中發送數百行代碼。
4.更好的安全機制,對于沒有權限執行存儲過程的用戶,也可授權他們執行存儲過程。
6.什么是觸發器?
答:觸發器是一種特殊類型的存儲過程,出發器主要通過事件觸發而被執行的,
觸發器的優點:1.強化約束,觸發器能夠提供比CHECK約束;
2.跟蹤變化,觸發器可以跟蹤數據庫內的操作,從而不允許未經允許許可的更新和變化;
3.聯級運算,比如某個表上的觸發器中包含對另一個表的數據操作,而該操作又導致該表上的觸發器被觸發
7.簡單介紹下ADO.NET和ADO主要有什么改進?
答:ADO以Recordset存儲,而ADO.NET則以DataSet表示,ADO.NET提供了數據集和數據適配器,有利于實現分布式處理,降低了對數據庫服務器資源的消耗。
7.1 ASP.NET與ASP相比,主要有哪些進步?
答:ASP.NET實現了面向對象編程,預編譯的服務器端代碼而不像ASP那樣解釋執行提高了性能,代碼分離易于管理,可訂制和擴展性,功能強大的開發工作,更好的安全機制。
7.2 C#中的委托是什么?事件是不是一種委托?
答:委托本質上是一種“方法接口”,它相當于C/C++中的函數指針,當然它比函數指針安全,在C#中通常用于事件處理。事件不是委托,不過由于事件的性質決定了處理它的程序邏輯能訪問的參數,因此,在C#中處理事件的邏輯都包裝為委托。
8.如何把一個array復制到arrayist里
答:foreach( object arr in array)arrayist.Add(arr);
8.1 列舉ADO.NET中的五個主要對象,并簡單描述
答:Connection連接對象,Command執行命令和存儲過程,DataReader向前只讀的數據流,DataAdapter適配器,支持增刪查詢,DataSet數據級對象,相當與內存里的一張或多張表。
9.概述三層結構體系
答:表示層(UI),業務邏輯層(BLL),數據訪問層(DAL)