[오라클]테이블 설계시 고려해야 될 점
테이블설계시고려해야할점을오라클기준으로나열해봤습니다.
1.코드성필드는문자열타입으로정의하는게좋습니다.(CHAR,VARCHAR2)
2.문자열타입인CHAR타입과VARCHAR2타입은반드시구분해서정의해야합니다.
똑같은문자열타입이지만용도도조금다르고내부메카니즘도다릅니다. CHAR타입인경우는입력시무조건정의한자리수만큼공간을확보합니다. 예를들어testchar(10)필드에'a'라는문자를입력하면한글자만들어가는게아니라a에스페이스9자리가 딸려들어갑니다.데이터구조상으로볼때미리공간을확보하기때문에해당필드에UPDATE가걸릴때이미확보된 공간내에서I/O가일어나기에속도가빠릅니다.이론적으로조회속도도VARCHAR보다좋습니다만조회시 스페이스가붙어나온다는것과Where조건에서Trim을해야한다는단점이있습니다. VARCHAR타입은저장시입력된데이터의길이만큼저장합니다.리소스절약이나데이터조회시는편하지만 I/O측면에서볼때는CHAR타입보다떨어집니다. CHAR타입은길이가딱정해진필트에대해서정의하는게좋고...(예,남녀구분,정상,반품구분등등구분자타입) VARCHAR타입은길이가유동적인필드에적합합니다.(명칭류..)
3.숫자형필드는NOTNULL로지정하는게좋습니다.
숫자형필드는수치연산이나SUM()을낼때널값이들어가면연산오류나원하는결과가안나오는수가있음으로 입력시사람이입력을안하더라도디폴트값0을넣어주는게정신건강상좋습니다.
4.날짜형태의필드는DATE타입으로지정하는게좋습니다.
CHAR타입으로선언해서엉뚱한데이터가들어가는경우을미연에방지할수있고날짜계산등에DATE타입이 매우편리합니다.
5.조회시주로사용되는필드는NOTNULL로지정하는게좋습니다.
조회조건에들어가는필드가널값인경우는데이터가조회가안되는걸미연에방지할수있습니다.
6.특정필드에중요한제약조건이있다면테이블설계시해당필드에제약조건을걸어둡니다.
DB단에서제약조건을걸어두면설령프로그램에데이터를잘못입력해도DB단에서오류를막아줄수 있음으로중요한제약조건이있다면해당필드에제약조건을걸어둡니다.(예,숫자필드에0이상만입력가능한 제약조건이라던지,특정값만들어오는제약조건이라던지,시스템날짜이하로는입력이안되는제약조건등등..)
'01.오라클 > 001.DB 관리' 카테고리의 다른 글
[오라클]리스너 파일 크기 변경 (0) | 2013.02.20 |
---|---|
[오라클]클라이언트 IP 알아내기 (0) | 2013.02.20 |
[오라클]유용한 DBA View 조회 (0) | 2013.01.23 |
[오라클]log, trc 등 관리 정책 및 쉘 스크립트 (0) | 2012.12.19 |
[오라클]Invalid / Disabled 된 오브젝트 관리 (0) | 2012.12.19 |