주의: 이 내용은 제가 뒤죽박죽으로 암기를 위해 정리하는 내용이므로 개연성 상관없이 적으므로 지저분 합니다.
- 논리 모델링의 외래키는 물리 모델에서 반드시 구현되지 않는다.
실제 데이터베이스 구축 시 사용되는 모델은 물리적 데이터 모델링이다.
개념 -> 논리 -> 물리
데이터 모델링의 3요소는 Thing, Attributes, Relationship
- 논리 데이터 모델링의 결과로 얻어지는 논리 데이터 모델은 데이터 모델링이 최종적으로 완료된 상태.
-하나의 속성은 하나의 속성값을 가지며 하나 이상의 속성값을 가지는 경우 정규화가 필요함.
-엔티티 기준: 엔티티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당된다.
엔티티는 업무상 관리가 필요한 관심사에 해당한다.
엔티티는 저장이 되기 위한 어떤 것(Thing)이다.
-1차 정규형: 모든 속성은 반드시 하나의 값을 가져야 한다. 즉 반복 형태가 있어서는 안된다.
각 속성의 모든 값은 동일한 형식이어야 한다.
각 속성들은 유일한 이름을 가져야 한다.
-2차 정규형: 식별자가 아닌 모든 속성들은 식별자 전체 속성에 완전 종속되어야 한다.
이것을 물리 데이터 모델의 테이블로 말하면 기본키가 아닌 모든 칼럼들이
기본키에 종속적이어야 2차 정규형을 만족 할 수 있다.
-3차 정규형: 2차 정규형을 만족하고 식별자를 제외한 나머지 속성들 간의 종속이 존재하면 안된다.
- 데이터 무결성이 꺠질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조회할 떄
디스크 I/O량이 많아져 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여
읽을 떄 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된다.
- 자주 사용되는 테이블에 접근하는 프로세스의 수가 많고 항상 일정한 범위만을 조회하는 경우에만 반정규화를 검토.
- 통계성 프로세스에 의해 통계 정보를 필요로 할 떄 별도의 통계테이블(반정규화 테이블)을 생성한다.
테이블에 지나치게 많은 조인이 걸려 조회하는 작업이 기술적으로 어려울 경우 반정규화를 검토.
-많은 컬럼은 Row Chaning과 Row Migration이 많아지게 되어 성능이 저하된다. 로우 체이닝과 로우 마이그레이션이 발생이 발생하여 많은 블록에 데이터가 저장되면 데이터베이스 메모리에서 디스크 I/O가 불필요하게 많이 발생할 떄 성능이 저하.
- 로우 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태가 로우 체이닝 형태이다.
-로우 마이그레이션은 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식.
- 사용하려는 데이터의 저장 장소 명시 불필요하다. 위치정보가 시스템 카탈로그에 유지되어야 한다.
'SQLD > SQLD 기출 정리' 카테고리의 다른 글
SQL 기출문제 2과목 정리 (21, 24, 25, 26, 30회) (0) | 2019.03.13 |
---|