Programming/데이터베이스

관계형 데이터베이스 용어 정리

Bam_t 2022. 1. 15. 11:23
728x90

이번에는 관계형 데이터베이스의 용어를 정리해보겠습니다. 용어들이 처음 접하면 매우 헷갈리고 복잡한 경우가 있으니 주의해주세요.

릴레이션 Relation

릴레이션은 테이블을 의미합니다. 릴레이션은 특정한 성질을 가진 2차원의 테이블을 주로 의미하게 됩니다. 특정한 성질은 다음 세 가지가 있습니다.

  • 각 개체는 단일 값을 가진다. (배열이나 객체의 그룹은 가질 수 없다.)
  • 각 열의 순서는 없으며, 유일한 이름을 갖는다.
  • 각 행의 순서는 없으며, 유일한 이름을 갖는다. 

(유일하다는 건, 데이터가 나타내는 문자, 숫자는 같더라도, 그 성질 등이 다르다는 이야기입니다.)

 

테이블(릴레이션)의 행과 열

행(row)는 행, 튜플(tuple), 레코드(record)라는 이름을 갖습니다. 열(column)은 열, 필드(field), 속성(attribute)라는 이름을 가집니다.

도메인 Domain

도메인은 한 가지 속성에서 값의 집합들을 말하는 용어입니다. 아래표에서 노란색으로 칠한 부분이 도메인입니다.

 

릴레이션 스키마 Relation Schema

릴레이션 이름, 속성들의 집함을 릴레이션 스키마라고 합니다. 보통 아래와 같은 집합 표시로 릴레이션 스키마를 나타냅니다.

릴레이션 이름(속성1, 속성2, ...)

다시 위의 표를 가져와서 릴레이션 스키마로 표현하자면 다음과 같습니다.

릴레이션 이름(이름, 학년, 반)

 

내포, 외연 Intenson, Extension

내포는 릴레이션 스키마, 외연은 튜플들을 말합니다.

 

키 Key

릴레이션에는 각 튜플들을 구별하기 위한 속성들이 있는데 그것들을 키라고 부릅니다. 일상에서 흔히 컴퓨터공학과 4학년이라고 지칭하기보다, 컴퓨터공학과 4학년 학번:000과 같이 학생 개별을 식별할 수 있는 학번과 같은 것이죠.

키에는 후보키, 기본키, 대체키, 외래키, 슈퍼키가 있습니다.

후보키 Candidate Key

후보키는 모든 릴레이션에 하나 이상 존재하는 키입니다. 릴에이션에 하나 이상의 속성이 튜플을 구별할 수 있게 해준다면, 그 키들을 후보키라고 부릅니다.

아래 표에서는 학과와 학년으로 튜플을 구분할 수는 없지만 학번과 이름으로는 각 튜플을 구별할 수 있습니다, 따라서 아래 표의 후보키는 학번과 이름이 됩니다.

학과 학년 학번 이름
컴퓨터공학과 4학년 001 폰 노이만
컴퓨터공학과 4학년 002 앨런 튜링

 

기본키 Primary Key

기본키는 후보키들 중 하나를 선택한 키 입니다. 이 키는 데이터베이스를 설계할 때 후보키 중에서 각 튜플을 구분하기 위해 개발자가 선택한 하나의 키입니다. 중요한 것은 릴레이션에서 튜플을 식별하기 위해 반드시 하나는 존재해야 하며, 만약 존재하지 않는다면 임의로 기본키를 만들어야합니다.

다시 아래 표에서 후보키는 학번과 이름이 있었는데요. 이 중에서 개발자는 학번과 이름 두 개중 하나를 골라 기본키로 설정할 수 있습니다.

학과 학년 학번 이름
컴퓨터공학과 4학년 001 폰 노이만
컴퓨터공학과 4학년 002 앨런 튜링

 

대체키 Alternate Key

대체키는 후보키에서 기본키를 제외한 키를 말합니다. 위에서 기본키를 고를 때 학번을 기본키로 낙점했다면 이름이 기본키가 되고, 이름을 기본키로 낙점했다면, 학번이 기본키가 됩니다.

 

외래키 Foreign key

릴레이션의 속성들 중 다른 릴레이션에서 기본키로 사용되는 속성을 외래키라고 합니다.

아래 표는 컴퓨터공학과의 4학년 학생 릴레이션이었습니다. 여기서 학번을 기본키로 설정했다고 가정했을 때 학번이 다른 릴레이션에서 속성으로 사용되고 있다면 이 키가 외래키가 됩니다.

학과 학년 학번 이름
컴퓨터공학과 4학년 001 폰 노이만
컴퓨터공학과 4학년 002 앨런 튜링
수강과목 학과 학번 강의실
데이터베이스 컴퓨터공학과 001 폰 노이만
데이터베이스 소프트웨어학과 011 에이다 러브레이스

 

슈퍼키 Super Key

슈퍼키는 속성들이 집합으로 구성된 키입니다. 슈퍼키를 집합으로 구성함으로써 튜플을 구분할 수 있게 됩니다. 따라서 후보키나 기본키처럼 튜플을 식별할 수 있는 키 외에도 다른 키들을 모아서 튜플이 식별된다면 슈퍼키라고 부를 수 있습니다.

아래 표에서 학과로는 튜플을 구별할 수 없습니다. 하지만 학번과 조합하면 튜플을 식별해 낼 수 있습니다. 따라서 아래 표의 슈퍼키는 (학과, 학번)이 됩니다. (물론 학과, 학년, 학번, 이름 등의 다양한 조합이 나올 수 있습니다. 튜플이 식별되기만 한다면요.)

학과 학년 학번 이름
컴퓨터공학과 4학년 001 폰 노이만
컴퓨터공학과 4학년 002 앨런 튜링

 

728x90