ORA-02260: 테이블에는 하나의 기본 키만 가질 수 있습니다 (ORA-02260: table can have only one primary key)

ORA-02260: 테이블에는 하나의 기본 키만 가질 수 있습니다 오류는 문장에서 설명하듯이, 테이블에 하나를 초과하는 기본 키를 설정하려고 시도하는 경우에 발생합니다. 기본키는 오직 하나만 가능하므로, 테이블이 가지고 있는 기본키를 다시 확인하거나, 대체키를 기본키로 설정하기 위한 검토를 해주세요. 기본키를 변경하려면 기존의 기본키를 정리해야 합니다.

해당 오류에 대한 해결 방법은 별로 설명할 게 없어서, 이번 시간에는 테이블이 무엇이고, 기본키가 무엇인지에 대해 알아보도록 합시다.

테이블이 무엇인가요?

ORA-02260: 테이블에는 하나의 기본 키만 가질 수 있습니다

테이블은 엑셀을 떠올리면 쉽습니다. 테이블은 세로와 가로를 사용하여 2차원으로 데이터를 표시하는 방법입니다. 보통 세로에는 데이터의 속성(어트리뷰트)을 표현하며, 가로에는 각 자료(튜플)를 표현합니다. 오라클 데이터베이스와 같은 관계형 데이터베이스(RDBMS)에서는 어트리뷰트를 컬럼이라고 하며, 튜플을 로우라고 합니다.

다음은 직원 테이블 EMP의 모든 데이터를 SELECT * FROM EMP 명령어로 조회해 보는 예제입니다.
조회 결과는 훑어만 보시고, 아래에 내용이 있으니 밑으로 내려가시면 됩니다.

SELECT * FROM EMP;

     EMPNO ENAME                JOB                       MGR HIREDATE        SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
      7698 BLAKE                MANAGER                  7839 91/01/05       2850                    30
      7782 CLARK                MANAGER                  7839 99/09/06       2450                    10
      7566 JONES                MANAGER                  7839 01/02/04       2975                    20
      7788 SCOTT                ANALYST                  7566 03/06/17       3000                    20
      7902 FORD                 ANALYST                  7566 81/03/12       3000                    20
      7369 SMITH                CLERK                    7902 07/12/01        800                    20
      7499 ALLEN                SALESMAN                 7698 81/02/20       1600        300         30
      7521 WARD                 SALESMAN                 7698 81/02/22       1250        500         30
      7654 MARTIN               SALESMAN                 7698 81/09/28       1250       1400         30
      7844 TURNER               SALESMAN                 7698 81/08/09       1500          0         30
      7876 ADAMS                CLERK                    7788 87/05/23       1100                    20
      7900 JAMES                CLERK                    7698 81/03/12        950                    30
      7934 MILLER               CLERK                    7782 03/01/23       1300                    10
      7839 KING                 PRESIDENT                     96/11/17       5000                    10

14 rows selected.

컬럼

세로에는 각각 EMPNO(직원번호), ENAME(직원이름), JOB(직업), MGR(매니저), HIREDATE(고용일), SAL(급여), COMM(커미션), DEPTNO(부서번호)가 있는 것을 확인할 수 있습니다.

로우

가로에는 각 속성 집합의 개체를 표현하고 있습니다.

테이블

예를 들면 첫 번째 로우를 통해 해당 테이블에는 직원번호가 7698이고, 이름이 BLAKE이며, 고용일이 91년 1월 5일인 직원이 있다는 것을 알 수 있습니다.

기본 키가 무엇인가요?

기본키는 하나의 테이블(릴레이션)에서 로우(튜플)를 유일하게 식별할 수 있는 컬럼(어트리뷰트) 집합을 뜻합니다. 관계형 데이터베이스는 로우를 기본키라는 속성을 통해 테이블 내의 관계를 정의하고, 각 테이블의 공통된 컬럼을 통해 테이블 간의 연관성을 구현합니다. 기본키는 테이블의 관리와 연결을 가능케 하여 관계를 만드는 역할을 한다고 할 수 있습니다.

예를 들면, 기본키가 없는 직원 테이블(EMP2)이 있다고 해봅시다. 해당 테이블에는 임의로 동일한 데이터를 5개 입력해 놓았습니다.

SELECT * FROM EMP2;

     EMPNO ENAME                JOB                       MGR HIREDATE        SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
      7839 KING                 PRESIDENT                     96/11/17       5000                    10
      7839 KING                 PRESIDENT                     96/11/17       5000                    10
      7839 KING                 PRESIDENT                     96/11/17       5000                    10
      7839 KING                 PRESIDENT                     96/11/17       5000                    10
      7839 KING                 PRESIDENT                     96/11/17       5000                    10

직원번호부터 시작하여 모든 속성이 동일한 여러 개의 데이터는 테이블 내부뿐만 아니라 외부적으로도 어떠한 관계도 적용이 불가할 것이라는 느낌이 오시나요? 그만큼 기본키는 테이블의 정의에 있어서 매우 중요한 역할을 합니다.

기본 키가 무엇인가요

기본키와 관련한 기본적인 용어는 슈퍼키, 후보키, 기본키, 대체키가 있습니다. 기본키의 정의이자 핵심은 고유성, 즉 유일성입니다.

슈퍼키

슈퍼키(Super Key)는 가장 넓은 개념의 키이며, 로우를 고유히 식별할 수 있는 함수 종속적 속성 집합입니다.

후보키

후보키(Candidate Key)는 슈퍼키 중에서 최소성을 만족하는 속성 집합이며 기본키의 후보가 되는 키입니다. 모든 후보키는 슈퍼키의 일부입니다.

기본키

기본키(Priamry Key)는 주키, PK라고 하며, 후보키 중에서 유일성을 만족하는 속성 집합입니다. 그리하여 슈퍼키 중 최소성과 유일성을 모두 만족하는 키라고 할 수 있습니다. 기본키는 후보키의 일부이며, 또한 슈퍼키의 일부입니다.

대체키

대체키(Alternate Key)는 보조키라고도 하며, 후보키 중 기본키로 채택하지 않은 속성 집합입니다. 후보키 중 하나이므로 최소성이 보장되기에 인덱스의 고려대상이 될 수 있는 키입니다.

기본키 관계

기본키 + 대체키 = 후보키
후보키 <= 슈퍼키

ORA-02260: 테이블에는 하나의 기본 키만 가질 수 있습니다

이것으로 왜 테이블은 하나의 기본 키만 가질 수 있는지에 대해 알아보았습니다~

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗