본문 바로가기

DB/mssql

DATABASE Naming Rule




1. Database Name


1.1. 
규칙


- Database Name은 서비스를 의미하는 Unique Name을 사용함

- Database Name은 파스칼표기법을 따른다.


1.2. 표기 방식

 

) Common, OnBid, Auction

 

2. Table Name
2.1. 
규칙


- Table Name 파스칼표기법을 따른다.

- 유형 구분은 배제한다.



2.2. 표기 방식

 

)

회원테이블 : Member

결제이력 : PaymentHistory

접속로그 : ConnectionLog

게시판 : Board

 

3. Column Name


3.1. 
규칙


- 물리 명은 카멜표기법을 따른다

- 논리 명을 사용자가 알 수 있는 정도에서 명사 및 명사형동사를 사용함.

모든 Column Dictionary List에 등록된 약어 사전 및 자료 사전을 기초로 작성함
- Dictionary List에 등록되지 않은 약어는 책임자의 동의 하에 등록함.

- 기본적으로 의미하는 단어 전체를 사용하나 동의 하에 단축하여 사용할 수 있다.

- schema 를 포함한 외부 데이터의 경우에는 원형 컬럼 형태를 유지한다.


3.2. 
표기방식

 

)

이름 : name

삭제유무 : useYn

등록일자 : registDate

환불일자 : refundDate

순번 : seq – (단축)

 

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. 
규칙


기본은 Sql Management 에서 생성되는 네이밍을 그대로 유지한다.

- 별도로 사용할 경우는

- MSSQL의 경우 클러스터드 인덱스와 넌 클러스터드 인덱스를 구분하여 작성함.

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


4.2. 
표기 방식


) IX_<테이블명>{<일련번호 00>}

 

5. Primary Key Name


5.1. 
규칙


- Index Name 의 기본을 유지하며 접두어를 PKX_사용한다.


5.2. 표기방식

 

) PKX_<테이블명>

 

6. Foreign Key Name


6.1. 
규칙


- Index Name 의 기본을 유지하며 접두어를 FK_ 사용한다.

일련번호 : 1 ~ 9


6.2. 
표기방식

) IX_<테이블명>{<일련번호 00>}

 

7.  Stored Procedure Name


7.1. 
규칙

 

파스칼 표기법을 따른다.

- 유형 구분은 배제한다.

 

- 단일 테이블 sp는 테이블명 뒤에 해당 기능 약어(Select : S, Update : U , Delete : D, Create : C, Insert : I ) 를 표기한다.

- 복합 sp는 대표하는 대상과 기능을 의미하는 단어를 테이블명 대신 사용하고 ( Process : P) 를 붙인다.

- SELECT 를 주로 사용하는 복합 sp의 경우는 S로 표기

 

7.2. 표기방식

 

)

회원 정보 입력, 수정, 삭제 : MemberIUD

회원탈퇴처리 : MemberWithdrawP

 

결제처리 : PaymentProcessP

결제취소처리 : PaymentCancelP

 

결제상세정보 : PaymentDetailS

 

8. Function Name


8.1. 
규칙


파스칼 표기법 사용.

앞에 “Fn” 을 붙이고 대상 기능명을 작성한다.

 

8.2. 표기방식

 

) Fn<기능명>

 

PnuCode 반환 : FnGetPnuCode

 

 

9. Table Trigger Name


9.1. 
규칙


-
기본 규칙은 Function Name 과 같고 접두어만 “Tr” 사용한다.


9.2. 표기방식

 

 

) Tr<기능명>

 

파일 입력 시 트리거 : TrFileInsert

 

10. View Name


10.1. 
규칙


- 기본 규칙은 Table Name 과 같으며 접두어로 “View”를 사용한다.

 

10.2. 표기방식

 

) View<뷰명>

 

회원가입 통계뷰 : ViewMemberJoinStatistics

 

11. Check 제약조건
11.1. 규칙
길이는 제한이 없으며 영문 대문자를 사용함
기존의 명칭룰에 해당하는 접미사를 사용하지 않고예외적으로 접두어 CK_를 사용한다
일반적으로 CHECK DEFAULT 제약조건은 특정 테이블에 한정시켜서 작성하기 보다는  시스템 전반에 걸쳐서 사용이 가능하므로 예외규정을 둔다.


11.2. 
표기방식


) CK + _ + <의미있는 CHECK>


이메일 체크 : CK_EMAIL
성별 체크 : CK_SEX

 

12. Default 제약조건
12.1. 규칙
길이는 제한이 없으며 영문 대문자를 사용함
기존의 명칭룰에 해당하는 접미사를 사용하지 않고예외적으로 접두어 DF_를 사용한다
일반적으로 CHECK DEFAULT 제약조건은 특정 테이블에 한정시켜서 작성하기 보다는 시스템 전반에 걸쳐서 사용이 가능하므로 예외규정을 둔다


12.2. 표기방식
) DF + _ + <의미있는 DEFAULT>

Null String Default ? DF_NULLSTR
0(Zero) Default ? DF_ZERO

 

 

13. Query

13.1 규칙

- 예약어 및 SQL 구문은 대문자를 사용한다.

- alias 는 컬럼이나 테이블의 약어를 소문자로 사용한다,

- 들여쓰기는 첫번째 “ “ 기준으로 작성하고 , 는 앞에 표기한다.

- Create, Insert, Update, Delete 에 해당하는 작업에는 트랜잭션 구문을 사용하며 ERROR_CODE, ERROR_MESSAGE OUTPUT 파라메터로 처리 유무를 반환한다.

- 기본적으로 정적 쿼리로 작성하며 동적 쿼리 작성을 피한다.

13.2 표기방식

- SampleXXXX.sql 참조

 

14. DataType

14.1. 규칙

- 사용자 입력, Unicode 데이터 가능성이 있는 데이터 컬럼 : NVARCHAR(N)

- Y / N 류의 flag성 컬럼 : CHAR(1)

- 일시 : Datetime

- 일자 : VARCHAR(10)