如果事務遇到錯誤且必須取消或回滾,則所有資料更改均被清除
鎖 是在多使用者環境中對資料訪問的限制封鎖就是事務 t 在對某個資料物件(如表、記錄等)操作之前,先向系統發出請求,對其加鎖。
加鎖後事務 t 就對該資料物件有了一定的控制,在事務t釋放它的鎖之前,其它的事務不能更新此資料物件。
(鎖蘊含的基本概念是使用者需要對錶的排它訪問)?
從程式設計師的角度看:分為樂觀鎖和悲觀鎖。
樂觀鎖:完全依靠資料庫來管理鎖的工作。
悲觀鎖:程式設計師自己管理資料或物件上的鎖處理。
子查詢:乙個 select 語句巢狀在另乙個 select 語句中。
—索引—是乙個資料庫物件,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單,
然後根據指定的排序次序排列這些指標
—優點提高查詢執行的速度。
強制實施資料的唯一性。
提高表之間聯接的速度。
缺點 儲存索引要占用磁碟空間。
資料修改需要更長的時間,因為索引也要更新。
檢視是一種虛擬表,通常是作為來自乙個或多個表 的行或列的子集建立的。
檢視本質上講,就是儲存在資料庫中的select查詢
檢視並不是資料庫中儲存的資料值的集合。
1、對終端使用者的好處
2、結果更容易理解
3、獲得資料更容易
對開發人員的好處
1、限制資料檢索更容易
2、維護應用程式更方便
儲存過程使用乙個名稱儲存的預編譯t-sql語句和流程控制語句的集合
1、由資料庫開發人員或資料庫管理員編寫
2、用來執行管理任務或應用複雜的業務規則
優點:1、執行速度更快。首次執行時,進行優化和編譯得到執行計畫並將該計畫儲存在系統表中,以後直接執行。
2、實現多個程式共享應用程式邏輯
3、元件式程式設計
4、能夠遮蔽資料庫的結構,實現更高的安全性
5、減少網路流通量
資料庫設計和建模必要性?
好的資料庫結構有利於:
-節省資料的儲存空間
-能夠保證資料的完整性
-方便進行資料庫應用系統的開發?
設計不好的資料庫結構將導致-資料冗餘、儲存空間浪費-記憶體空間浪費
不管資料庫的大小和複雜程度如何,可以用下列基本步驟來設計資料庫:
–收集資訊
–標識物件
–設計資料模型
–標識每個物件 儲存的資訊型別
–標識物件之間的關係
?資料模型是一種標識實體型別及其實體間聯絡的模型。
典型的資料模型由網狀模型、層次模型和關係模型。
什麼是規範化從關聯式資料庫的表中,除去冗餘資料的過程稱為規範化。
—精簡資料庫的結構
—從表中刪除冗餘的列
—標識所有依賴於其它資料的資料
**正規化第一正規化的定義:
如果乙個表中沒有重複組(即行與列的交叉點上只有乙個值,而不是一組值),則這個表屬於第一正規化(常記成1nf):
簡而言之:"每一字段只儲存乙個值"。例如:職工號,姓名,**號碼組成乙個表(乙個人可能有乙個辦公室** 和乙個家裡**號碼)
第二正規化的定義:如果乙個表屬於1nf,任何屬性只依賴於關鍵字,則這個表屬於第二正規化(常記成2nf )。簡而言之:必須先符合1nf的條件,且每一行都能被唯一的識別。
將1nf轉換成2nf的方法是新增主鍵。學號,課程名,成績
第三正規化的定義:如果乙個表屬於2nf,且不包含傳遞依賴性,則這個表是第三正規化(常記成3nf)。
滿足3nf的表中不包含傳遞依賴。簡而言之:沒有乙個非關鍵屬性依賴於另乙個非關鍵屬性。
學號,課程號,成績,學分學號,姓名,所在系,系名稱,系位址
資料庫的設計關鍵點總結
一 設計資料庫的步驟 1 需求分析階段 分析客戶的業務和資料處理需求。2 概要設計階段 繪製資料庫的e r圖,用於在團隊內部設計 設計人員和客戶之間進行溝通,確認需求資訊的正確性和完整性。3 詳細設計階段 將e r圖轉換為多張表,進行邏輯分析,確認各表的主外來鍵,並應用資料庫設計的三大正規化 下面會...
資料庫注意點
初入sql 1.當你在建立表單時,選擇主鍵後並把主鍵的標識規範 是標識 系統自增 那麼在用insert into 新增內容的時候,勢必要跳過主鍵這一列 student 表 學號 主鍵 姓名班級 錯誤 insert into student values 這樣會報錯,因為學號 已經系統自增了 那麼在插...
點讚 資料庫設計
現在實現了點讚功能,主要涉及了兩個表,乙個是文章或部落格儲存點讚的數量,另乙個是使用者點讚記錄 現在的問題是每次點讚都會進行資料的讀寫操作 特別是寫 併發的話會導致資料庫壓力太大,請問如何解決?謝謝。建議增加點讚表,字段列表 使用者id,主題id,點讚時間,狀態.0 已取消贊 1 有效贊 就像樓上所...