ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터베이스] 오라클 데이터베이스의 기본키와 외래키 설정 방법
    IT 개념&용어(IT Concept)/데이터베이스(DataBase) 2022. 4. 18. 03:03

    [데이터베이스] 오라클 데이터베이스의 기본키와 외래키 설정 방법

    기본키와 외래키란

    데이터베이스에서는 여러 개의 Column을 하나로 묶어서 체계적으로 데이터를 관리한다.
    이를 '테이블(table)'라고 부른다.

    그리고 일반적으로 하나의 테이블에는 하나의 기본키(Primary Key)가 존재하게 된다.

    1. 기본키 개념
      테이블에서 하나의 데이터(row 또는 레코드라 불리는 데이터 객체)를 정확히 식별하기 위해 사용하는 Column을 의미.
      테이블을 생성할 때 하나의 Column을 선택해서 Primary Key로 지정해줄 수 있다.
      (무조건 하나의 Column만을 기본키로 지정할 수 있는 건 아니지만, 이에 대해선 나중에 얘기할 예정)
    • 기본키(Primary Key)는 NULL 불허용 & 값 중복 불가
      기본키를 이용해서 특정 데이터 객체(row 또는 레코드)를 선택해야 하므로, 빈 값이 절대로 올 수 없으며 다른 데이터와 중복되지 않는 유일한 값을 가져야 한다.

    1. 외래키 개념
      외래키(Foreign Key)는 다른 테이블의 데이터를 참조하기 위해서 사용한다.
      '수강신청 테이블'을 만들기 위해서는 '학생 테이블'과 '강의 테이블'이 필요하다.
      수강신청 목록에는 신청 학생의 정보를 파악하기 위한 '학생의 학번'이 있어야 하고, 어떤 강의를 신청했는지를 파악하기 위한 '강의코드'도 있어야 한다.
      여기서 학생의 학번은 학생 테이블의 기본키이고, 강의코드는 강의 테이블의 기본키이다.
      이렇게 다른 테이블의 데이터를 참조하기 위해 해당 테이블의 기본키를 속성(Column)으로 가지고 있는 것을 외래키(Foreign Key)라고 한다.
    • 외래키(Foreign Key)는 NULL 불허용 & 중복은 허용(여러 데이터가 동일한 데이터를 참조할 수도 있기 때문)
      '공학수학'라는 강의를 여러 학생이 동일하게 신청한 경우, '공학수학'의 기본키를 참조하는 데이터가 여러 개 존재할 수 있음.

    기본키(Primary Key) 지정 방법 (SQL 문법)

    create table을 통해 테이블을 생성하는 과정에서 기본키를 정의하는 방법에 대해서만 설명하겠다.

    1. 인라인(InLine) 방식

    create table examTable (
    column1 number(3) PRIMARY KEY,
    column2 number(3),
    column3 varchar2(100)
    );

    1. 속성(column)을 모두 선언한 뒤 기본키를 지정해주는 방식

    create table examTable (
    column1 number(3),
    column2 number(3),
    column3 varchar2(100),
    PRIMARY KEY(column1)
    );

    1. 제약 조건(Constraint)을 통해 기본키를 지정해주는 방식

    create table examTable (
    column1 number(3),
    column2 number(3),
    column3 varchar2(100),
    CONSTRAINT PK PRIMARY KEY(column1)
    );

    속성(column)을 모두 선언 한 뒤, 마지막에 'Constraint'라는 키워드를 통해 속성에 제약 조건을 걸어줄 수 있다.
    이 방법 중 자신이 편한 방법으로 하면 될 것 같다.


    외래키(Foreign Key) 지정 방법 (SQL 문법)

    • 외래키(Foreign Key)는 인라인 방식으로 지정하는 게 불가능하다.

    create table examTable (
    column1 number(3),
    column2 number(3),
    column3 varchar2(100),
    CONSTRAINT FK FOREIGN KEY(column1) REFERENCES OTHER_TABLE(other_column)
    );

    외래키는 'Constraint' 키워드를 통해 제약 조건을 거는 방법으로 지정해줄 수 있다.
    'FOREIGN KEY'라는 키워드 앞에 외래키의 이름을 지정해 줘야 하고,
    FOREIGN KEY()의 괄호 안에는 기본키를 지정할 때와 마찬가지로 어떤 속성(column)을 외래키로 지정할 건지 적어줘야 한다.

    그리고 'REFERENCES' 옆에는 참조할 테이블이름과 그 테이블의 기본키 속성명을 적어줘야 한다.
    REFERENCES 참조할 테이블 이름(테이블의 기본키가 되는 속성명)

    댓글

Designed by Tistory.