1. 程式人生 > >數據庫開發及ADO.NET

數據庫開發及ADO.NET

可變 數據庫文件 中小型 系統 不常用 問題 阻止 權限 包含

數據庫管理系統(DBMS)特點

  • MySQL
    • 速度快,適合對數據要求並不是十分嚴謹的地方,去掉了很多中小型企業中不常用的功能
  • MSSQLServer
    • 與.net結合很好,只能運行在windows平臺下,大數據量、大交易量表現不夠好,功能比MySQL多
  • DB2(大型)、Oracle(大型)、Access(文件)、 SQLite(極其輕量級數據庫) 、Sybase等
    • 對於開發人員來講,大同小異
    • 除Access、SQLServerCE、SQLite等文件型數據庫外,大部分數據庫需數據庫服務器才能運行。學習開發時連接本機數據庫,上線時數據庫運行在單獨的服務器
    • SQL(語言)<>SQLServer<>MSSQLServer

數據庫:數據的倉庫

  • 數據庫文件
    • 數據庫包含兩個文件:主數據文件(.mdf)、日誌文件(.ldf)
      • 除此之外還可包含:次要數據文件(.ndf)、其他日誌文件(.ldf)
    • 數據庫文件的分離和附加
      • 當前數據庫中的表必須先進行分離才能拷貝到其他目錄
      • 附加數據庫文件,文件數據加載到該庫下的表
        • 脫機、聯機更加簡便高效
        • 附加權限不足時:數據庫文件->屬性->安全性->編輯->添加“everyone”->允許->應用->確定
  • 表:關系表,排貨架
    • 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
    • 帶var和不帶var的區別
      • 帶var的表示可變長度
        • 可變長度會根據實際存儲數據大小動態重新分配存儲空間,節省存儲空間
      • 不帶var的表示固定長度,不夠的自動補空格
        • 不用重新計算分配存儲空間,更加高效
    • text|ntext、varchar(max)|nvarchar(max)區別
      • 前者為老版本數據庫中的數據類型(2005之前)
      • 單列最多可存儲4G大小,多用於論文等的存儲
    • 幫助->索引->輸入“數據類型”->SQL server數據類型中查看
  • 設置數據更改保存權限
    • 工具->選項->Designers->“阻止保存要求重新創建表的更改”去掉鉤

數據庫開發及ADO.NET