빅데이터/Oracle SQL | Do it! 오라클로 배우는 데이터베이스 입문

관계형 데이터베이스의 구성 요소 | 테이블 / 키(기본키, 보조키, 외래키, 복합키)

KimKelly 2023. 2. 4. 23:20
반응형

02. 관계형 데이터베이스와 오라클 데이터베이스

02장에서는 관계형 데이터베이스의 구성 요소에 대해 자세히 살펴보고, 오라클 데이터베이스에 대해 간략하게 알아보자.


02-1. 관계형 데이터베이스의 구성 요소

테이블과 키가 있다.

[테이블]

- 2차원 표 형태로 저장 및 관리
- 가로줄: 행, row = tuple, record
- 세로줄: 열, column = attribute, field


- 저장하려는 하나의 개체들 구성하는 여러 값을 가로로 늘어뜨린 형태
예) 학생 한 명의 데이터: 학번, 이름 등


- 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의
- 저장 정보의 종류, 저장 가능한 값의 최대 길이, 값의 중복을 허용하지 않음 등의 저장 조건과 범위를 지정할 수 있음
예) 학번: 숫자, 8자리, 중복 허용하지 않음.

➡️ 행과 열의 특성에 맞춰 데이터를 저장한 테이블 하나하나가 관계형 데이터베이스의 관계
➡️ 여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 데이터 관리의 핵심

 

[키]

- 테이블을 열 수 있는 하나의 열쇠가 존재.
- 수많은 데이터를 구별할 수 있는 유일한 값.
예) 학생의 아이디(학번), 환자의 아이디(환자번호) 등
- 데이터를 구별하거나 테이블 간의 연관관계를 표현할 때 키로 지정한 열을 사용
- 종류:기본키, 보조키, 외래키, 복합키

 

기본키
- 가장 중요한 키
- 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키
- 기본 키의 속성: 유일한 값 / 중복 없음 / NULL 값 없음
예) 학생 정보 테이블 - '학번'으로 각 학생을 구별할 수 있음 (아이디나 주민등록번호 등을 사용할 수는 있으나 개인정보 노출이 적은 데이터를 사용)

 

보조키
- 대체키
- 후보키(기본키가 될 수 있는 조건을 만족하는 열)에 속해 있는 키
- 후보키 중에서 기본키를 제외한 나머지
예) 학생 정보 테이블에서 학번, 아이디, 주민등록번호가 있을 때, 학번이 기본키가 되면 아이디, 주민등록번호가 보조키가 됨

 

외래키
- 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키
예) 학생 정보 테이블과 학과 정보 테이블에서 '학과 코드'를 통해 학과 정보를 참조할 수 있음 = 학과 정보를 얻을 수 있음

'학생 정보 테이블'

학번 이름 ... 학과 코드 ...
1 Kim ... A ...
2 Lee ... B ...
... ... ... ... ...
3 Park ... C ...

'학과 정보 테이블'

학과 코드 학과 이름 대학 구분 대표 전화번호 ...
A 화학과 자연대학 11 ...
B 기계공학과 공과대학 12 ...
... ... ... ... ...
C 영문학과 인문대학 13 ...


- 외래키 사용 이유
외래키를 사용하지 않고 '학생 정보'와 '학과 정보'를 한 테이블로 구성한 경우, 같은 학과 학생이 많다면?

학번 이름 ... 학과 이름 대학 구분 대표 전화번호 ...
1 Kim ... 화학과 자연대학 11 ...
2 Lee ... 화학과 자연대학 11 ...
... ... ... ... ... ... ...
3 Park ... 화학과 자연대학 11 ...


➡️ 데이터가 많아지면 엄청난 양의 중복 데이터 발생  

➡️ 중복 데이터 처리 비용 증가, 저장 공간 크기와 관리 문제.
➡️ 엑셀로 관리한다면 병합하는 방법을 생각해 볼 수 있지만, 데이터베이스에서는 불가능함.

➡️ 외래키 사용!

 

 

복합키
기본키를 여러 개 묶음

반응형