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
운영게시판
최근게시물
DBMS Tutorials 139 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 139
DB 테이블 디자인에 도전하기 (4)
작성자
정재익(advance)
작성일
2001-12-07 13:35
조회수
5,166

열에서 UNIQUE 제약 조건 설정하기

 

각 열에서 유효한 값을 확인하고 열에 있는 데이터의 무결성을 강제 적용하는 방법을 지난 PRIMARY KEY 제약 조건에 이어 테이블 열에서 FOREIGN KEY를 설정하는 경우까지 알아 보았다.

이번 기사에서는 기본키가 아닌 방법으로 특정열에 중복값이 입력되지 않도록 제어하는 UNIQUE 제약 조건에 대해서 이야기 해보자.

UNIQUE 제약 조건을 사용하면 기본 키가 아닌 특정 열에서 값이 중복되지 않도록 할 수 있다. UNIQUE 제약 조건 및 PRIMARY KEY 제약 조건이 모두 고유성을 강제 적용하지만 다음에 대해 고유성을 유지하려면 PRIMARY KEY 제약 조건 대신UNIQUE 제약 조건을 사용해야 한다.

 

어떤 경우에 UNIQUE 제약 조건을 사용하는가?

    . 기본 키가 아닌 열 또는 열 집합일 경우 
          . 한 테이블마다 PRIMARY KEY 제약 조건은 하나만 정의될 수 있고 UNIQUE 
            제약 조건은 여러 개 정의될 수 있다. 
    . Null 값을 허용하는 열 일 경우 
          . PRIMARY KEY 제약 조건은 Null 값을 허용하지 않는 열에서만 정의할 
           수 있지만 UNIQUE 제약 조건은 Null 값을 허용하는 열에서도 정의할 
           수 있다. 
    . 하나의 열이나 여러 열의 조합에 고유성을 요구하려는 경우. Unique 제약 
      조건은 한 테이블에 여러 개 첨부할 수 있지만, 기본 키 제약 조건은 한 
      테이블에 하나만 첨부할 수 있다.
    . Null 값을 허용하는 열에 고유성을 요구하려는 경우. Unique 제약 조건은 
      Null 값을 허용하는 열에 첨부할 수 있지만, 기본 키 제약 조건은 Null 값을 
      허용하지 않는 열에만 첨부할 수 있다. Null 값을 허용하는 열에 Unique 
      제약 조건을 첨부하면 제약 조건이 설정된 열에서 최대 한 행에만 Null 값이 
      들어갈 수 있다. 

Unique 제약 조건을 만들려면

    . 데이터베이스 다이어그램에서 제약 조건을 포함할 테이블을 마우스 오른쪽 
      단추로 클릭한 다음 바로 가기 메뉴에서 속성을 선택한다. 
    . 다른 방법으로는 제약 조건을 포함할 테이블에 대해 테이블 디자이너를 열고, 
      테이블 디자이너를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 
      속성을 선택한다. 
    . 인덱스/키 탭을 선택한다.
    . 새로 만들기를 선택한다. 인덱스 이름 상자에 시스템 할당 이름이 표시된다. 
    . 열 이름 아래에서 열 목록을 확장하고 제약 조건을 첨부할 열을 선택한다. 
      여러 열에 제약 조건을 첨부하려면 그 다음 행에서 추가로 열을 선택한다.
    . 클러스터된 인덱스 만들기 확인란을 선택한다.
    . 제약 조건 옵션을 선택한다. 
    . 테이블이나 다이어그램을 저장하면 데이터베이스에 Unique 제약 조건이 
      만들어진다. 

 

[그림] 열에서 UNIQUE 제약 조건 설정하기 예

 

[Top]
No.
제목
작성자
작성일
조회
173DataWarehouse 란 무엇인가? [1]
정재익
2001-12-14
5370
155예약어와 중복되는 이름을 이용할려면
정재익
2001-12-09
9349
140DB 테이블 디자인에 도전하기 (5)
정재익
2001-12-07
5673
139DB 테이블 디자인에 도전하기 (4)
정재익
2001-12-07
5166
138DB 테이블 디자인에 도전하기 (3)
정재익
2001-12-07
9096
137DB 테이블 디자인에 도전하기 (2)
정재익
2001-12-07
6376
136DB 테이블 디자인에 도전하기 (1)
정재익
2001-12-07
11251
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다