数据库01-范式总结
數(shù)據(jù)庫:文檔型sqlite,服務(wù)型mysql
范式:關(guān)系模式-一張表的結(jié)構(gòu) 關(guān)系-一張實(shí)例化了的數(shù)據(jù)表
?? ?1NF的定義為:每個屬性都不可再分
?? ?2NF:消除了非主屬性對于碼的部分函數(shù)依賴(非主屬性不能由部分碼確定,必須由全部碼才能?? ??? ?? 唯一確定非主屬性)
?? ?解決方法:把部分依賴的關(guān)系,形成新的表分離
?? ?進(jìn)步:數(shù)據(jù)冗余過大??? 修改異常
?? ?3NF:消除了非主屬性對于碼的傳遞函數(shù)依賴(非主屬性之間存在著主鍵的關(guān)系)
?? ?解決方法:直接把非主傳遞的屬性分成新的表,在原表中去掉非主的非主屬性
?? ?進(jìn)步:數(shù)據(jù)冗余過大??? 刪除異常
?? ?BCNF:消除主屬性對于碼的部分與傳遞函數(shù)依賴
總結(jié):2范式:主和非主的關(guān)系解除
?? ???? 3范式:非主屬性之間的解除
?? ???? BCDF:主屬性之間的解除
問題所在:
?? ?數(shù)據(jù)冗余過大 :表重復(fù)太多
?? ?插入異常:只要碼沒有確定,非主屬性就不能往表里面寫入
?? ?刪除異常:一旦把主鍵刪完了,對應(yīng)的非主屬性全部都消失了
?? ?修改異常:一個屬性在多個表中都有記錄,刪除一個表的,別的表中就會有異常
補(bǔ)充:
?? ?函數(shù)依賴 :‘于’代表的是反方向
?? ??? ?完全函數(shù)依賴:學(xué)號 F→ 姓名
?? ??? ?部分函數(shù)依賴:(學(xué)號,課名) P→ 姓名
?? ??? ?傳遞函數(shù)依賴: Z 函數(shù)依賴于 Y,且 Y 函數(shù)依賴于 X (『Y 不包含于 X,且 X 不函數(shù)依?? ??? ?賴于 ?? ?Y』這個前提),那么我們就稱 Z 傳遞函數(shù)依賴于 X
?? ?屬性:
?? ??? ?“碼”:唯一標(biāo)示確定一條記錄的屬性(可以是一個字段也可以是多個字段)
?? ??? ?“主屬性”:當(dāng)碼是多個對象的時候,其中的任意一個屬性就是主屬性
?? ??? ?“部分函數(shù)依賴”:非主屬性由碼的一部分就能唯一確定
數(shù)據(jù)庫Linux下安裝:
安裝:sudo apt-get install mysql-server mysql-client
service mysql start?? ??? ?service mysql stop?? ??? ?service mysql restart
允許遠(yuǎn)程連接
找到mysql配置文件并修改
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
將bind-address=127.0.0.1注釋
登錄mysql,運(yùn)行命令
grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
flush privileges;
重啟mysql
?? ?
轉(zhuǎn)載于:https://www.cnblogs.com/tony-xu999/p/8508188.html
總結(jié)
以上是生活随笔為你收集整理的数据库01-范式总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Cloud Netflix
- 下一篇: 对于五个问题的思考与感想