三大正規化(自己理解的 比較簡潔)
第一正規化:欄位不可再分:
反例:地址中的省市縣如果放在一個欄位中,則違反第一正規化,因為地址還可以細分為省、市、縣等
第二正規化:一張表只講述一件事:
反例:訂單中有聯絡人詳細資訊(如姓名,性別)和房間編號等,違反第二正規化,應該拆成兩張表:訂單表(聯絡人編號,房間編號,訂單號)、聯絡人表(聯絡人編號,姓名等)
第三正規化:所有欄位都應該與主鍵直接聯絡,而不能與非主鍵欄位有依賴或者傳遞關係:
反例:商品資訊中有單價,數量,和總價等欄位,違反第三正規化,總價是通過單價和數量計算的,即依賴於非主鍵欄位。
相關推薦
三大正規化(自己理解的 比較簡潔)
第一正規化:欄位不可再分: 反例:地址中的省市縣如果放在一個欄位中,則違反第一正規化,因為地址還可以細分為省、市、縣等 第二正規化:一張表只講述一件事: 反例:訂單中有聯絡人詳細資訊(如姓名,性別)和房間編號等,違反第二正規化,應該拆成兩張表:訂單表(聯絡人編號,房間編號,訂單號)、聯絡人表
資料庫的三大正規化(較好理解版)
第一正規化(1NF):資料表中的每一列(每個欄位)必須是不可拆分的最小單元,也就是確保每一列的原子性 第二正規化(2NF):滿足1NF後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說一個表只描述一件事情; 例如:訂單表只描述訂單相關
html簡介(自己理解和老師講課)
nbsp rip 角度 用戶體驗 網頁交互 效果 知識 asc 簡介 首先講開發網頁三種技術:html,css,javascript。html負責網頁的結構,css站在沒學角度對網頁進行美化,javascript負責網頁交互,站在用戶體驗角度設計網頁交互效果
小白python學習——學習基礎時遇到的函式、知識點總和(自己覺得比較重要的函式和知識點)
#字串——大小寫 def str(): s="abcde" print(s.title()) # title : 每一個單詞首字母大寫,其他全小寫 print(s.upper()) #
map的遍歷(自己認為比較好的)
第一種: for (Integer in : map.keySet()) { //map.keySet()返回的是所有key的值 &
jdk8原始碼解析第一天(簡化版,只記自己理解的要點)
1.String類: 實現了serilizable,comparable介面,seriliazable僅用於標誌,comparable的comparableTo方法用於比較字串大小。 底層是通過final char[] 實現字串的,其所有方法均是用字元陣列相關方法實現的。
json轉方法(比較簡潔)
#json轉物件方法 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliba
java知識點3(null、引用相關知識(自己理解))
學習了相關博文,結合他們所說,再加上自己的理解,對引用資料型別的建立、賦值以及null等進行了總結。僅為自己理解,可能會有錯誤。 1、宣告一個物件不賦值與賦值為null的區別 假如有一個Person類宣告如下: public class Person{ //成員變數 String name;
oracle 排序原理(自己理解不一定準確)
oracle 中存在SGA和PGA ,PGA中有一個結構 sort_area 也就是說排序的時候會在PGA中執行。 那麼問題來了 臨時表空間中也會存放排序資料,也會進行排序。那麼什麼情況下使用臨時表空間? PGA的sort_area_size的大小決定排序能否在PGA中完成
android studio 菜單中的app運行按鈕上有個叉號,原因與解決辦法(自己去百度)
代碼 問題 style post fontsize XML idm 出現 studio http://blog.csdn.net/sz0268/article/details/51706397 : 在Android studio寫代碼中,直接建立項目,寫代碼然後運行是不會
面向對象的三大特性(封裝 繼承 多態)
java 封裝 面向對象 多態 繼承 一丶封裝 1 權限修飾符 可以用來修飾成員變量和成員方法,對於類的權限修飾只可以用public和缺省default。 被public修飾的類可以在任意地方被訪問;default類只可以被同一個包內部的類訪問。 權
垃圾收集器與內存分配策略 (深入理解JVM二)
nali noclass eth 清理 full gc 原因 商業 jit編譯器 代碼 1.概述 垃圾收集(Garbage Collection,GC). 當需要排查各種內存溢出、內存泄露問題時,當垃圾收集成為系統達到更高並發量的瓶頸時,我們就需要對這些&ldquo
第1章 計算機系統漫遊(深入理解計算機系統)
printf 保存 並運行 用戶 數據 ogr 語句 亂碼 hello 1 #include <stdio.h> 2 3 int main() 4 { 5 printf("hello, world\n"); 6 } 1.1 信息就是位+上下文 h
java優先佇列的使用(包括重寫比較函式)
import java.util.*; public class DFStu { public static void main(String args[]){ //優先字元,從大到小 //重寫比較器 Queue<Character>
找錢(貪心,比較簡單)
找錢 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 55 Accepted Sub
java併發系列二(深入!!!理解synchronized,volatile)
一,synchronized詳解 這個關鍵字大家想必是相當熟悉了,它是一個比較重量級的鎖,主要有兩層含義,一個是互斥性,一個是可見性。三種用法:1,修飾普通方法2,修飾靜態方法3,修飾程式碼塊 這裡有一點需要注意,普通方法要拿到當前例項的鎖,靜態方法要拿到當前class物件的鎖。 重點來
紅外對管訊號處理電路(滯回比較器)
近期在做一個本科時的電機控制專案,其速度檢測不用編碼器,換用廉價精度低的光電碼盤,10線,配合紅外對管測速,紅外對管採用GK152,類似對管都一樣。電路: &
linux(centos7)中安裝mysql,修改密碼,遠端連線,從sqlyog連線一套教程(自己整理,筆記)
2.開啟MySQL遠端訪問許可權 允許遠端連線 改表法: use mysql; update user set host = '%' where user = 'root'; FLUSH PRIVILEGES; ps:網上還要修改防火牆的方法,我沒成功,
Delphi中accesss實現樹形結構查詢系統(一次性生成比較方便)
主要是要讀取資料庫的資訊,而delphi介面是一個樹形結構。 例如有一個Ascess資料庫:示例.MDB,內有一張表:“國家”,表的內容如下: 編號 名稱 01
java原始檔編譯後產生byte code (試題)(自己寫的解釋)
下列說法哪一個是正確的。( B) A.Java程式經編譯後會產生machine code B.Java程式經編譯後會產生bytecodeC.Java程式經編譯後會產生DLL D.以上都不正確 bytecode(位元組碼檔案),也就是.class檔案。Java位元組碼是