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 | ... |
➡️ 데이터가 많아지면 엄청난 양의 중복 데이터 발생
➡️ 중복 데이터 처리 비용 증가, 저장 공간 크기와 관리 문제.
➡️ 엑셀로 관리한다면 병합하는 방법을 생각해 볼 수 있지만, 데이터베이스에서는 불가능함.
➡️ 외래키 사용!
복합키
기본키를 여러 개 묶음
'빅데이터 > Oracle SQL | Do it! 오라클로 배우는 데이터베이스 입문' 카테고리의 다른 글
SELECT문의 기본 형식 | 중복 데이터 삭제: DISINCT / 별칭 설정: AS / 순서 정렬: ORDER BY (0) | 2023.02.07 |
---|---|
데이터를 조회하는 방법 | SQL의 기본 문법: SELECT ~ FROM ~ (0) | 2023.02.06 |
오라클 데이터베이스 | 자료형 / 객체 / PL/SQL (2) | 2023.02.05 |
데이터 모델이란? | 데이터 모델의 개념과 종류 / 관계형 데이터베이스와 SQL (0) | 2023.02.03 |
데이터베이스란? | 데이터와 데이터베이스, DBMS (0) | 2023.02.02 |