[오라클 / Oracle] DBMS / PK 기본키/ FK 외래키 / 보조키 / 복합키 / UK 유니크키

seulki·2022년 9월 10일
0

[oracle]

목록 보기
3/28
post-thumbnail

✨테이블(Table) , 행(Row) , 열(Column)

RDBMS에서

  • 테이블 : 관계(relation)
  • 행 : 튜플(tuple) 또는 레코드(record)
  • 열 : 속성을 의미하는 attribute 또는 field


✨기본키 (PK : Primary Key )

-> 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키

기본키의 속성
1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
2. 값의 중복이 없어야 한다.
3. NULL 값을 가질 수 없다.

-> PK중복되지 않는 유일한 값이라는 특성을 가졌기 때문에
    하나 또는 여러 컬럼의 조합으로 만들 수 있다.

  • EMPLOYEES 테이블의 PKEMPLOYEE_ID
  • DEPARTMENTS 테이블의 PKDEPARTMENT_ID
  • JOBS 테이블의 PKJOB_ID


✨복합키 ( Composite Key )

  • 여러 컬럼을 조합하여 PK 역할을 할 수 있게 만든 키
  • 하나의 컬럼으로 행을 식별하는 것이 불가능하여 두 개 이상의 컬럼 값을 함께 사용해야 각 행이 유일한 데이터가 됨

ex) 과목정보 table의 컬럼 : 과목코드, 담당교수, 전공여부, 과목 이름
     -> 과목코드PK로 설정할 수 있지만, 만약 한 명의 교수님
         여러 과목을 가르칠 경우 과목코드와 담당교수 컬럼을 묶어서
         PK로 설정한다.

✨보조키 ( Alternate Key )

  • 대체키라고도 부르며 후보키에 속해 있는 키 (PK로 지정되지 않은 컬럼)
  • 후보키 (Candidate Key) : 기본키(PK) 가 될 수 있는 모든 키
  • 후보키 중 기본키로 지정되지 않은 키보조키, 대체키라고 한다.

ex) Column : 학번, 아이디, 주민번호, 이름, ....
-> 후보키 : 학번, 아이디, 주민번호
-> 기본키 : 학번 / 후보키 : 아이디, 주민번호



✨외래키 (FK : Foreign Key )

  • 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키(PK) 로 지정된 키
  • PK를 참조하기 때문에 PK에 무조건 자료가 있어야 한다.
  • 중복이 가능하다.

->DEPARTMENT 테이블의 PKDEPARTMENT_ID
이 PK는 EMPLOYEES 테이블의 FK이다.


-> JOBS 테이블의 PKJOB_ID컬럼
EMPLOYEES 테이블에서 JOB_ID컬럼은 FK이다.

FK데이터의 중복을 피하기 위해 테이블 사이의 관계를 규명하기 위한 필수 요소



✨유니크 키 (UK : Unique Key )

  • 중복이 없지만 PK로 쓰긴 애매할 때 사용
  • NULL은 허용하지만 중복은 허용하지 않는 키
profile
웹 개발자 공부 중

0개의 댓글