火男::單純槪念 [ 단순개념 ]

출처 : 블로그 > 지혜로운 여성이 되자!!
원문 : http://blog.naver.com/feelingsil/40039375186
==================================================================
오랜만에 다시 대용량 데이타 베이스 강의를 듣기 시작했다..

시작하는 만큼 꼭 끝을 보고싶은데 노력 좀 해봐야지...


1. 속성과 릴레이션


사용자 삽입 이미지
 
위와 같이 직원 테이블과 부서테이블이  존재 한다.
기본적으로 emp 테이블의 empno,ename,salary,job 과 dept 테이블의 deptno,dname,location과 속성이라고 하고
emp 테이블의 deptno는 릴레이션이라고 한다.
 
 
사용자 삽입 이미지

 
 
위와 같이 릴레이션을 제거하고 참조하고자하는 속성(부서이름)을 해당 테이블의(emp)
속성으로 넣는 것은 반정규화이다.
위와 같은 경우엔 3정규화를 위배한 것이다.
 
*3정규형이란 어떤 릴레이션 R이 2NF(2정규형)이고 이 릴레이션의 모든 비주속성이 R의 어떤 키에도 이행적으로 종속하지 않을 때 R은 3NF(3정규형)에 속한다.
즉 속성끼리의 종속이 있으면 않 된다는 말이다.
 
위의 경우는 dname은 deptno에 종속므로 3정규화를 위배한 것이다.
 
 
반정규화를 시키면 느려진다.
예를 들어서 위 첫번째 그림의 db size가 emp가 1만건이고 가로 사이즈가 20k이고 dept가 100건 가로사이즈가 20b라고 할때 io는 block 단위로
1만건*20k+100rjs*20b = 대충 2m+3k이다.
하지만 두번째 그림과 같을때
40k*1만건 = 4m이다.
 
 
 
* nested loop join : 먼저 드라이빙 되는 테이블이 상수로 변한다.
* sort merge join
* hash join
 
 
db는 처음엔 phisical IO BLOCK에서 읽고 그 다음에 똑같은 요청이 들어왔을땐  메모리(버퍼캐쉬)에서 읽어온다.
 
DB의 포퍼먼스란 phisical io block를 줄이는 것이다.
 
 
모델링을 하는 이유: 고성능, 효율화, 효율적인 쿼리를 하기위해서~
 
인덱스가 없는 테이블이 먼저 drive된다.
Posted by □□[RMM]□□
槪念3. - D B 이야기 l 2008/01/23 09:53
1 2 3 4 5  ... 27 

카테고리

전체 (27)
槪念1. - 일상이야기 (21)
槪念2. - 자바이야기 (4)
槪念3. - D B 이야기 (1)

달력

«   2008/07   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
tistory!get rss Tistory Tistory 가입하기!