database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 3046 게시물 읽기
No. 3046
Unique Constraint VS Unique Index
작성자
짝퉁헤리포터(bh1004)
작성일
2011-04-14 07:01
조회수
6,152

안녕하세요. 

아주 초보적이면서도 간단한 질문이 하나 있습니다.  Unique constraint와 unique index가 어떻게 다를까요?

제가 알기로는

  • 공통점
    • Uniqueness 를 확인한다.
    • Unique Index를 만든다
  • Unique Constraint
    • Table단에서 Uniqueness를 확인한다.
    • 별도로 Unique index를 생성한다.
  • Unqiue Index
    • Index 단에서 uniqueness 를 확인한다

정도인데,  table에  unique constraint를 설정했을 때, 어떻게 동작하는지가 좀 헷갈리네요. 두 개의 차이점과 동작 원리를 정확히 짚어 주시면 감사하겠습니다. 

참고로, table에 unique constraint를 거는 경우 table 단에서 한 번 확인을 하고, unique index의 특성상 index가 update될 때 한 번, 이렇게 두 번 확인하는 것으로 알고 있고, 그래서 가급적 uniqueness 확인을 위해 constraint 를 설정하는 것 대신에 index를 사용하도록 권하고 있는데, 제가 잘 못 알고 있는건가요?

미리 감사드립니다. ^^

 

이 글에 대한 댓글이 총 1건 있습니다.

간단하게 보면 constraint 라는 의미가 있느냐 없느냐입니다.

즉, 공통점을 unique 하지만 constraint 라는 제약사항이 존재하는 것이 다른거죠. 대표적인 것이 primary key 를 생성할때 구문상으로  constraint 를 지정하는 것과 primary key 라고도 알려주는게 다릅니다.

DB 의 optimizer 입장에서는 constraint 라는 제약사항 때문에 데이터의 무결성 NOT NULL  이고 반드시 1건만 존재한다는 것,  또한 인덱스를 구성 컬럼이 최소의 컬럼으로 되어 있다는 것, 그리고 다른 테이블에서 FK로  참조할 수 있는 키라 는 등등 RDBMS의 기본 개념을 충족시키고 있다는 것을 100% 신뢰할 수 있다는 겁니다. 즉 unique 하다는 것으로는 우선순위가 동일할 수 있지만 지금까지 말한 제약사항을 갖고 있는 경우라면 constraint 가 존재하는 것을 선호할 수 밖에 없습니다.

unique index 는 유일함을 보장하는 것 뿐입니다.

결국, optimizer 가 어떻게 판단할지를 이해하시면 될 것 같습니다.

아는 만큼 설명 드렸습니다. ㅎㅎ

 

 

kyusu님이 2011-08-02 14:56에 작성한 댓글입니다.
이 댓글은 2011-08-02 14:57에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3049디비 서버 교체하려고 합니다.. 질문좀..(왕초보) [1]
김성오
2011-04-16
5410
3048월단위, 주단위 조회 쿼리,, [6]
purmir
2011-04-15
8347
3047DB2 프로시저 작성시 결과값 리턴 [1]
DB2초보
2011-04-15
7271
3046Unique Constraint VS Unique Index [1]
짝퉁헤리포터
2011-04-14
6152
3045질문 드립니다. [1]
purmir
2011-04-08
5261
3044기간내에 해당하는 날짜와 그 정보를 가져오고 합니다. [2]
purmir
2011-04-08
5802
3043SQL0181 에러질문입니다. [1]
dlkfjlfj
2011-03-19
6602
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다