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