본문 바로가기
SQL

[SQL] 관계형 데이터베이스의 테이블과 키, 오라클 데이터베이스

by lmyourpearl 2025. 11. 18.

데이터 관리의 기본인 테이블과 키, 각 구성 요소

 

테이블

관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리하며, 이 표 형태의 데이터 저장공간을 table이라고 함.

테이블은 2차원 형태이므로 가로줄과 세로줄로 구성되는데, 가로줄을 행(row(로)), 세로줄을 열(column(칼럼))이라 함.

  • 행은 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태
  • 열은 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의

관계형 데이터베이스에서 릴레이션이란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미하며, 여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심임.

관계형 데이터베이스에서 테이블은 릴레이션(relation), 행은 튜플(tuple) 또는 레코드(record), 열은 속성을 의미하는 애트리뷰트(attribute) 또는 필드(field)라고 함.


특별한 의미를 지닌 열, 키

수많은 데이터를 구별할 수 있는 유일한 값으로, 키는 테이블을 구성하는 여러 열 중에 특별한 의미가 있는 하나 또는 여러열의 조합을 의미.

 

기본 키(PK: Primary Key)

여러 키 중에서 가장 중요한 키로, 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키.

  • 테이블에 저장된 행을 식별하는 유일한 값이어야 함.
  • 값 중복이 없어야 함.
  • NULL을 가질 수 없다.

기본키에는 중복하지 않는 유일한 값이라는 특성이 있으므로 하나 또는 여러 열의 조합으로 만들 수 있음.

 

보조키

보조키는 대체키(alternate key)라고도 하며 후보키(candidate key)에 속한 키로, 후보키 중에서 기본키로 지정되지 않은 열.

후보키는 기본키가 될 수 있는 모든 키를 의미하며, 기본키 역시 후보키에 속하며, 이 후보키 중 기본키로 지정되지 않은 키를 보조키 또는 대체키라고 함. 그 밖에 행을 식별할 수 있는 모든 키 조합을 의미하는 슈퍼키(super key)도 있음.

 

외래키(FK: Foreign Key)

특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미.

외래키는 데이터 중복을 피하고자 테이블 사이의 관계를 규명하는데 꼭 필요한 요소이지만 실무에선 개념상으로 각 테이블 사이의 관계에서 외래키가 필수인 상황일지라도 애플리케이션이나 서비스 개발의 효율과 편의를 위해 외래키를 따로 정의하지 않고 테이블 사이의 관계를 느슨하게 설계하는 대신 이를 다양한 프로그래밍 언어, 코딩 영역에서 처리할 때도 흔하다고 함.

 

복합키(composite key)

여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키로, 복합키를 만들 때 적게는 두세 개, 많게는 열개가 넘는 열을 조합하기도 하는데 하나의 열만으로 행을 식별할 수 없으므로 두개 이상의 열을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문.


오라클 데이터베이스

 

자료형(data type)

데이터베이스에 저장하는 데이터는 형태가 다양한데, 데이터가 어떤 형태인지를 말할때 IT 분야에서는 보통 자료형(data type)이라고 함.

자료형 설명
VARCHAR2(길이) 가변 길이의 문자열 데이터를 4,000바이트만큼 저장할 수 있으며, 최소 크기는 1바이트.
NVARCHAR2(길이) 가변 길이의 문자열 데이터를 32,767바이트만큼 저장할 수 있으며, VARCHAR2 자료형의 확장 버전.
NUMBER(전체 자리수, 
소수점 이하 자리수)
±38자리수의 숫자를 저장할 수 있으며, NUMBER(p,s)와 같이 표기하면 소수점 이하 자릿수를
s자리 만큼 표현하고, 숫자 데이터를 이 소수 자리를 포함한 전체 p 자리만큼 저장함.
DATE 날짜 형식을 저장할 때 사용하는 자료형으로 세기,연,월,일,시,분,초를 저장할 수 있음.
CHAR(길이) 고정 길이의 문자열 데이터를 2,000바이트만큼 저장할 수 있으며, 최소 크기는 1바이트.
BLOB 대용량 바이너리 데이터를 최대 128TB 크기로 저장할 수 있음.
CLOB 대용량 텍스트 데이터를 최대 128TB 크기로 저장할 수 있음.
JSON JSON 데이터 파일을 최대 32MB 크기로 저장할 수 있음.

* 자료형은 테이블을 구성하는 열에 지정함.

* 하나의 자료형에 맞춰 한 종류의 데이터를 저장할 수 있는 자료형을 스칼라(scalar)형이라고 함.

* 자료형은 여러 종류가 있으며 한 번에 여러 데이터를 저장할 수 있는 VARRAY, NESTED TABLE과 같은 컬렉션(collection)형도 있음.


객체

오라클 데이터베이스 내에서 데이터를 저장하고 관리하는 논리 구조로 이루어진 구성 요소.

객체 설명
테이블(table) 데이터를 저장하는 장소
인덱스(index) 테이블의 검색 효율을 높이고자 사용
뷰(view) 선별한 하나 또는 여러 개의 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하도록 함.
시퀀스(sequence) 일련번호를 생성
시노님(synonym) 오라클 객체의 별칭(다른 이름)을 지정
프로시저(procedure) 프로그래밍 연산과 기능을 수행할 수 있음(반환값 없음).
함수(function) 프로그래밍 연산과 기능을 수행할 수 있음(반환값 있음).
패키지(package) 관련한 프로시저와 함수를 보관
트리거(trigger) 데이터와 관련한 작업의 연결이나 방지와 관련한 기능을 제공.

오라클 데이터베이스 설치 방법

 

1. Windows 설치 방법

2. macOS 설치 방법 (Docker 활용)