データベース3パターンの詳細(データベース設計)
1.
1NF-
。
2NF-
。
E.g.
+
, +
, , , 。
3NF-
。
, , , 。 , 。
2. (2NF):
( ), 。
SelectCourse( , , , , , ), ( , ), :
( , ) → ( , , , )
, :
( ) → ( )
( ) → ( , )
。
2NF, :
(1) :
n ," " n-1 ; m , m-1 。
(2) :
, " " , 。
(3) :
, 。 , " " , 。
(4) :
, 。 , , 。 , 。
SelectCourse :
:Student( , , );
:Course( , );
:SelectCourse( , , )。
, 、 、 。
, , 。
3. 3NF-
, 。 , "A → B → C" , C A。 , :
→ x → y
http://www.blogjava.net/hijackwust/archive/2007/10/21/154793.html
4. --very good!!!!!!!!
, :
(1) : ,email, , ,
(2) : , , ,
:
email
, , 。 " ID"、" ID" , :
email ID ID
( , ID, ID) :
( , ID, ID) → (email, , , , , , , )
, , :
( ) → (email, , , )
( ID) → ( , )
( ID) → ( , )
, , 。
( ):
(1) : ,email, , ,
(2) : ID, ,
(3) : ID, ,
(4) : , ID
(5) : ID, ID
-----------------------------------------------------------------------------------
{fzq :}
, -- 、 、 , , ?
: ,
(6) : 、 id
, (4)、(5) (6)
-----------------------------------------------------------------------------------
1、2、3 BCNF , ?
。
, 4 " " " " " ID" 1:N , " " 2 " " ; 5 " " " ID" " ID" 1:N , " " 3 " " 。 , :
(1) : ,email, , ,
(2) : , ID, ,
(3) : ID, ID, ,
1 ;
2 " "、" " " ID" , , ;
3 " "、" " " ID" , , 2 , 。
, , 1:N , 1 N ,N , !
M:N , M N , , 。
1:1 , 1 1 , , 。
, 。 , 1:1 1:N , 。
, 。
-------------------------------------------------------------------
{fzq :}
, , , !
-------------------------------------------------------------------
5. BCNF
3NF : 2NF , 。
BCNF : !
, BCNF , 3NF 。
, , 4NF,5NF , , , , 。