三大正規化與儲存過程

2021-08-22 12:02:50 字數 2159 閱讀 4539

1.三大正規化

第一正規化:字段屬性單一,不可再分

第二正規化:第一正規化的基礎上,加上所有非主屬性完全依賴於主屬性,即不存在部分依賴。

完全依賴,乙個屬性a能夠確定另乙個屬性b,b->a,b完全依賴於a,如果(a,b)->c,並且b也能確定c,那麼

就稱c部分依賴於(a,b);這樣就不符合第二正規化;

例如:訂單表中,含有訂單id,產品id,產品名稱;通過訂單id和產品id能確定整條記錄,那麼就可以將(訂單id,產品id)作為訂單表的聯合主鍵,即(訂單id,產品id)->產品名稱,但是產品id也能確定產品名稱。因此產品名稱部分依賴於(訂單id,產品id);不符合第二正規化

第三正規化:不存在傳遞依賴

傳遞依賴:a->b( ! b->c),b->c,得出a->c 那麼就稱c傳遞依賴於a;

存在下面屬性

學號 姓名 宿舍樓 宿舍樓位置;學號->宿舍樓,宿舍樓!->學號,宿舍樓->宿舍樓位置;則存在傳遞依賴學號->宿舍樓位置

不符合第三正規化

2.儲存過程

概念:是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。儲存過程是資料庫的乙個重要物件,使用者通過指定儲存過程的名字並給出引數(如果儲存過程帶引數)來執行;儲存過程是由流控制和sql語句書寫的過程,這個過程經編譯和優化後儲存在資料庫伺服器中。儲存過程可由應用程式通過乙個呼叫來執行,允許宣告變數。同時,儲存過程可以接受和輸出引數、返回執行儲存過程的狀態值,可以巢狀使用。

儲存過程的優點

①大大增強了sql語言的功能和靈活性

用流控制語句編寫,有很強的靈活性

②可保證資料的安全性和完整性

通過儲存過程可以使沒有許可權的使用者在控制之下間接的訪問資料庫或者沒有許可權不能儲存資料庫,從而保證資料的安全。通過儲存過程可以使相關的動作在一起發生,維護資料庫的完整性

③在執行儲存過程前,資料庫已對其進行語法分析,並給出了優化執行方案。

這種編譯好的過程極大的改善sql語句的效能。

由於執行sql語句的大部分工作已經完成,所以儲存過程能以極快的速度執行。

④可以降低網路的通訊量。

客戶端呼叫儲存過程只需要傳儲存過程名和相關引數即可,與傳sql語句相比自然資料量少了很多。

⑤使體現企業規則的運算程式放入資料庫伺服器中,以便:

集中控制,當企業規則發生變化時,在伺服器中改變儲存過程即可,無修改任何應用程式

優點概括:

①儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需要重新編譯,提高效率

②複雜操作,可以將其用儲存過程封裝起來與資料庫提供的事務處理結合一起用

③儲存過程可以重複使用,可減少開發人員工作量

④安全性高,可設定只有某些使用者才能執行儲存過程

缺點:

①**是執行前編譯的,所以當引用物件或者**發生改變時,需要重新進行編譯

②如果程式中大量使用儲存過程,隨著使用者需求的增加,導致資料結構的變化,維護需要很大代價。

--建立帶output引數的儲存過程 

create procedure pr_sum

@a int,

@b int,

@sum int output

asbegin

set @sum=@a+@b

end

--建立return返回值儲存過程

create procedure pr_sum2

@a int,

@b int

asbegin

return @a+@b

end

--執行儲存過程獲取output型返回值

declare @mysum int

execute pr_sum 1,2,@mysum output

print @mysum

--執行儲存過程獲取return型返回值

資料儲存 三大正規化 待續

設計原則 建議設定的表盡量遵守三大正規化 第一正規化 要求表的每個字段必須是不可分割的獨立單元 student name 違反第一正規化 張小名 狗娃 student name old name 符合第一正規化 張小名 狗娃 第二正規化 在第一正規化的基礎上,要求每張表只表達乙個意思。表的每個欄位都...

三大正規化和BC正規化

資料庫的設計正規化是資料庫設計所需要滿足的規範,滿足這些規範的資料庫是簡潔的 結構明晰的,同時,不會發生插入 insert 刪除 delete 和更新 update 操作異常。反之則是亂七八糟,不僅給資料庫的程式設計人員製造麻煩,而且面目可憎,可能儲存了 大量不需要的冗餘資訊。設計正規化是不是很難懂...

MYSQL三大正規化

第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...