댄스댄스 2008. 6. 18. 15:33

[테이블분리의 필요성 및 방법]
*DB의 관계형 모델 (DB모델링)

MS-SQL/MY-SQl/오라클

1.테이블당 유일성을 보장하는 컬럼은 반드시 존재(PK)
   해당레코드만 수정,삭제,조회 하기위해 -- 제 1 정규화

*회원구매테이블의 문제점
1)NULL이 빈번하게 들어간다.
2)2개이상의 주제가 한 테이블에 들어가 있음.
3)L자형 테이블은 주제가 2개 존재함
4)테이블은 주제별로 세로로 나눠져야 함.

*2개의 테이블중 반드시 하나는 부모테이블,
  나머지 한 테이블은 자식테이블이 된다.
*부모테이블의 PK가 자식테이블의 컬럼에 전이된다.
*그반대로 전이될수 있지만 문제점 발생.

drop table tb_mem
create table tb_mem
(
 uid   varchar(10) primary key,
 uname varchar(20) not null,
 uphone varchar(20) not null,
 uaddr  varchar(20) not null
)
create table tb_order
(
 orderno  int      identity primary key,
 model   varchar(10)  not null,
 qty    int      default 0,
 regdt   smalldatetime default getdate(),
 uid    varchar(10)
)
*부모테이블과 연관된 컬럼은 반드시 자료형을 일치시켜 준다.