Database 관련 Naming Rule

 

 

1. Database Schema Name
1.1. 
규칙
    - Database Profile 
이름을 의미함
    - DB Alias 
이름과 동일하게 함
    - 
영문 대문자로 작성함
    - Database Short Name
의 길이는 최대 8자리를 넘을 수 없음
    - Database Short Name
은 각 Site Unique Name을 사용함
1.2. 
표기 방식
      
) TOURDB, ETKP, TKS

 

2. Table Name
2.1. 
규칙
    - 
테이블임을 표시하기 위해 테이블 명 뒤에 ‘_TB’ 라는 구분을 사용함
    - 
테이블명은 대문자로 사용함
    - 
시스템 구분 코드와 모듈구분코드로 업무 영역을 구분함
    - 
의미있는 테이블명은 3단어까지 사용할 수 있음
    - 
단어와 단어 사이는 ‘_’로 구성함
    - 
각 단어는 최대 8자리까지 사용함
    - 
구분명은 Table의 특성을 나타냄
    - 
예로는 Master, Detail, Control, Summary, Trigger, History 등이 있음
2.2. 
표기 방식
    <
시스템 구분> + _ + <의미있는 테이블명> + _ + TB
    
사용자 테이블 : ACT_USERS_TB

 

3. Column Name
3.1. 
규칙
    - 
물리명은 영문 대문자를 이용함논리명을 사용자가 알 수 있는 정도에서 명사 및 명사형동사를 사용함
    - Column
에 대한 자리수는 총 12자리로 하며제한은 없음
      
사용하는 Database의 특성에 따라 제한될 수 있음
    - Word
 Word 사이에는 ‘_’로 구분함
    - 
 Word 8자리를 넘을 수 없음
    - 
모든 Column Dictionary List에 등록된 약어사전 및 자료사전을 기초로 작성함
    - Dictionary List
에 등록되지 않은 약어는 책임자의 동의 하에 등록함
    - Column Name
은 약어의 조합으로 구성
    - 
컬럼명에 컬럼을 대표하는 접미사를 사용하여 컬럼명의 성격을 나타냄.
3.2. 
표기방식

    <
의미있는 컬럼명혹은 <의미있는 컬럼명> + _ + 접미사
    
종종 자주 사용하는 접미사는 다음과 같다.

 

접미사 

내용

설명

_CD

CODE

주로 코드 테이블의 코드각종 코드에 사용된다.
숫자나 문자로 이루어진 코드에 해당되며숫자나 문자의 각 부분이 의미가 있는 경우에 코드를 사용한다대부분 PK에 해당한다
.
대분류 코드
 CTGRY_CD,
     
시도코드
 SIDO_CD,
     
사용자 그룹 코드 USER_GROUP_CD 

_NM

NAME

코드에 대한 명칭에 주로 사용된다논리명이 이름명칭인 경우에 해당된다.
사용자이름
 USER_NM,
     
자원명
 RES_NM,
     
중분류 코드명
 DVSN_NM,
     
메뉴명 MENU_NM

_NO

NUMBER

숫자로만 이루어진 경우주로 논리명이 번호인 경우에 사용.
주민등록번호
 JUMIN_NO,
     
조문번호
 JO_NO,
     
게시물번호 BOARD_NO

_SQ

SEQUENCE

오라클의 Sequence, MSSQL Identity의 경우에 사용한다숫자 일련번호로 PK를 설정할 경우 SQ를 사용한다. MSSQL Identity의 경우 주로 _ID를 사용하는 경우가 많은데사용자 아이디 ? USER_ID ID와 의미가 틀려 SQ를 사용한다.
작업번호
 WORK_SQ,
    
이력번호 HISTORY_SQ

_ID

ID

주로 사용자 아이디의 경우에 사용한다.
사용자아이디
 USER_ID,
    
등록자아이디 REG_ID

_DT

DATE

날짜의 경우 사용한다. DT는 날짜 타입이 DATE형인 경우에만 사용한다보통 날짜의 경우 CHAR(8)형으로 20050718식으로 저장을 많이 한다이런 경우에는 _YMD를 사용한다.
삭제일자
 DEL_DT,
    
변경일자 CHG_DT

_YMD

YYYYMMDD

날짜의 경우 사용한다날짜 타입이 CHAR 인경우 사용한다년월일인 경우_YMD를 사용하고년월형식으로 CHAR(6)로 저장될 경우 _YM을 사용한다.년도일자 인경우에는 YEAR, MONTH, DAY등의 컬럼명을 사용한다.

_GB

구분

구분값을 나타낼 때 사용한다.
CD
는 주로 코드테이블을 별도로 사용할 때 적당하고테이블 없이 코드상에서 구별할 때 사용한다가령 사용자구분 필드가 있을 때 일반사용자내부사용자가 있다면 별도의 사용자 그룹테이블로 분리하여 사용할 경우GROUP_CD가 필드명이 되지만코드상에서 일반(G), 내부(I)로 사용하기로 결정했다면 GROUP_GB 필드명을 사용하면 된다
.
통계구분 STAT_GB

_ST

STATE

상태값이다주로 CHAR(1) 형식을 사용한다.
사용자 상태 USER_ST

_FL

FLAG

플레그값이다종종 삭제하지 않는 테이블에 삭제플레그를 많이 사용된다값은 0/1 이나 Y/N를 많이 사용한다.
삭제여부 DEL_FL, 요청여부 REQ_FL

_ORD

ORDER

순서를 나타낼 때 사용한다.
컬럼순서 COLUMN_ORD

_CNT

COUNT

조회수 VIEW_CNT

_AMT

AMOUNT

재고량 STOCK_AMT

_SUM

SUM

분기합계 QTR_SUM, 년도합계 YEAR_SUM

 

3.3. 순서규칙
    - 
기본적으로 관계형 모델에서 열(Column)의 순서는 의미가 없음.

그러나물리적인 형태로 생성되어 관리될 때에는 보다 효율적인 저장공간의 관리를 위해 다음 순서에 따라 우선순위를 결정함
    - Primary Key
가 우선함
    - Primary Key
내에서는 Index 의미에 따라 순서를 결정함
    - Not Null Columns
이 우선함
    - Not Null Columns 
내에서는 Foreign Key, Attributes 순서로 함
    - Null Columns 
내에서는 다음의 규칙에 따라 순서를 결정함
    - Fixed Length Columns
이 우선함(Date,Number,Char)
    - Smaller Length Column
이 우선함

 

4. Index Name
4.1. 
규칙
    - 
해당하는 테이블명 뒤에 ‘_IX’를 붙여 index임을 명확히 함
    - 
대문자를 사용함
    - 
일련번호는 01 ~ 99까지 사용할 수 있음
    - MSSQL
의 경우 클러스터드 인덱스와 넌 클러스터드 인덱스를 구분하여 작성함.

클러스터드 인덱스 _IXC를 사용하며넌 클러스터드 인덱스는 일반 인덱스 명 룰을 따름.
    - 
테이블에 인덱스가 하나만 존재할 경우 일련번호를 사용하지 않아도 됨
.
4.2. 
표기 방식

      <
시스템 구분> + _ + <의미있는 테이블명> + _ + IX{<일련번호>}
      
) Table명 ‘I01_MASTER_TB’의 Index : I01_MASTER_IX01

 

5. Primary Key Name
5.1. 
규칙
    - 
영문 대문자로 작성함
    - 
해당하는 테이블명의 맨 뒤에 ‘_PK’라는 구분을 사용함
5.2. 
표기방식
      <
시스템 구분> + _ + <의미있는 테이블명> + _ + PK
      
) Table 명 ‘AC_USERS_TB’의 Primary Key : AC_USERS_PK

 

6. Foreign Key Name
6.1. 
규칙
    - 
영문 대문자로 작성함
    - 
해당하는 테이블명의 맨 뒤에 ‘_FK’라는 구분을 사용함
    - 
일반적으로 테이블명과 컬럼명까지 사용하나, OBJECT의 명칭이 길어져서 테이블명을 기준으로 작성함.
    - 
일련번호
 : 1 ~ 9
6.2. 
표기방식

      <
시스템 구분> + _ + <의미있는 테이블명> + _ + FK{<일련번호>}
      
) Table 명 ‘I01_MASTER_TB’의 Foreign Key : I01_MASTER_FK1

 

7.  Stored Procedure Name
7.1. 
규칙
    - 
길이는 큰 제한이 없으나 오라클의 OBJECT NAME 길이 제한은 있음.
    - 
해당하는 테이블명의 맨 뒤에 ‘_SP’라는 구분을 사용함

    - 
기능명은 복수개 사용이 가능하면 3개의 단어를 넘지 않도록 함
    - 
기능을 나타내는 명칭이 하나일 경우 일련번호를 생략해도 됨.
    - 
단어간에는 ‘_’로 구분함

    - 
업무룰에 해당되지 않는혹은 특정 테이블에 해당되지 않는 DBMS 전반적인 프로시저의 경우,

시스템 프로시저로 작성하는 경우에는 시스템구분 과 테이블명을 생략하고 간단히 작성할 수 있다.

스키마 스크립트 GENERATION ? GENERATE_SP
    - 
오라클의 경우 패키지 내부의 프로시저의 경우 패키지 명칭에 시스템구분을 사용하므로,

프로시저나 함수명에 시스템구분 코드를 넣지 않는다.

또한 기능에 따른 일련번호를 사용하지 않고 OOP의 기능인 Method Overloading 의 기능을 사용하여 작성한다.

또한 명칭은 Camel 표기법을 사용하여 작성한다사용자를 가져오는 경우 getUsers()
7.2. 
표기방식

      <
시스템 구분> + _ + <의미있는 테이블명> + _ + <기능명>{<일련번호>} + _ + SP
      
I01_MASTER_TB’ 테이블에서 데이타 입력에 대한
 Procedure
          : I01_MASTER_INS01_SP

+ Recent posts