數據庫開發及ADO.NET
阿新 • • 發佈:2017-12-30
可變 數據庫文件 中小型 系統 不常用 問題 阻止 權限 包含
數據庫管理系統(DBMS)特點
- MySQL
- 速度快,適合對數據要求並不是十分嚴謹的地方,去掉了很多中小型企業中不常用的功能
- MSSQLServer
- 與.net結合很好,只能運行在windows平臺下,大數據量、大交易量表現不夠好,功能比MySQL多
- DB2(大型)、Oracle(大型)、Access(文件)、 SQLite(極其輕量級數據庫) 、Sybase等
- 對於開發人員來講,大同小異
- 除Access、SQLServerCE、SQLite等文件型數據庫外,大部分數據庫需數據庫服務器才能運行。學習開發時連接本機數據庫,上線時數據庫運行在單獨的服務器
- SQL(語言)<>SQLServer<>MSSQLServer
數據庫:數據的倉庫
- 數據庫文件
- 數據庫包含兩個文件:主數據文件(.mdf)、日誌文件(.ldf)
- 除此之外還可包含:次要數據文件(.ndf)、其他日誌文件(.ldf)
- 數據庫文件的分離和附加
- 當前數據庫中的表必須先進行分離才能拷貝到其他目錄
- 附加數據庫文件,文件數據加載到該庫下的表
- 脫機、聯機更加簡便高效
- 附加權限不足時:數據庫文件->屬性->安全性->編輯->添加“everyone”->允許->應用->確定
- 數據庫包含兩個文件:主數據文件(.mdf)、日誌文件(.ldf)
- 表:關系表,排貨架
- column:列,字段
- row:行,元組
- primary key:主鍵,唯一標識表中的一條記錄
- 分類:業務主鍵、邏輯主鍵(推薦)
- 選擇依據
- 不能重復
- 不能為空或null
- 穩定的列:保存的數據不經常改變
- 與實際業務沒有關系的列
- 單列作為主鍵(不推薦組合主鍵)
- 優先選擇數字類型的列(不推薦字符串和數據類型大的列)
- 表中只能有一個主鍵
- 建立主鍵後默認會建立索引,磁盤儲存順序和主鍵列保持一致,因為實際物理順序只有一種,所以一個表中只能有一個主鍵
- 外鍵
- 外鍵列:把數據拆分成兩張表時每個表中都有自己的主鍵,其中一張表除主鍵外多了一列,這列用來引用另外一張表中的主鍵,這列就是第一張表的“外鍵列”
- 外鍵列中的數據必須是在另一張表的主鍵列中已經存在的數據
- 外鍵表:有外鍵列的表就叫做“外鍵表”
- 主鍵表:主鍵被引用的那張表就叫做“主鍵表”
- 外鍵列:把數據拆分成兩張表時每個表中都有自己的主鍵,其中一張表除主鍵外多了一列,這列用來引用另外一張表中的主鍵,這列就是第一張表的“外鍵列”
- 數據冗余
- 問題
- 造成存儲空間浪費
- 更新異常、刪除異常
- 解決
- 把原來表中的數據拆分成多個表來存儲
- 新問題
- 如何將這兩張表中的數據關聯起來
- 使用主外鍵將不同表中的數據關聯起來
- 如何將這兩張表中的數據關聯起來
- 新問題
- 把原來表中的數據拆分成多個表來存儲
- 問題
- sql server中的常用數據類型
- image類型
- 用來存儲byte[]
- 字符串類型
- char、nchar、varchar、nvarchar、text、ntext、varchar(max)、nvarchar(max)
- 帶n和不帶n的區別
- 不帶n的數據類型,存儲中文等雙字節字符,占用2個字節;存儲英文,數字等每個字符占用1個字節
- 不帶n的這些數據類型,長度最長可以設置為8000
- 帶n的,無論存儲中文、英文還是數字等,每個字符都是占用2個字節
- 帶n的這些數據類型,長度最長可以設置為4000
- 不帶n的數據類型,存儲中文等雙字節字符,占用2個字節;存儲英文,數字等每個字符占用1個字節
- 帶var和不帶var的區別
- 帶var的表示可變長度
- 可變長度會根據實際存儲數據大小動態重新分配存儲空間,節省存儲空間
- 不帶var的表示固定長度,不夠的自動補空格
- 不用重新計算分配存儲空間,更加高效
- 帶var的表示可變長度
- text|ntext、varchar(max)|nvarchar(max)區別
- 前者為老版本數據庫中的數據類型(2005之前)
- 單列最多可存儲4G大小,多用於論文等的存儲
- 幫助->索引->輸入“數據類型”->SQL server數據類型中查看
- image類型
- 設置數據更改保存權限
- 工具->選項->Designers->“阻止保存要求重新創建表的更改”去掉鉤
數據庫開發及ADO.NET