[DB] 2. 관계형 데이터베이스(RDB)의 이해
1. 관계형 데이터베이스의 개념과 특징
관계형 데이터베이스(RDB)는 데이터를 테이블(표) 형태로 저장하고,
테이블 간의 관계를 설정하여 데이터를 관리하는 데이터베이스입니다.
1.1 주요 특징
💡 관계형 데이터베이스의 특징은 면접에서 매우 자주 나오는 질문입니다!
- 구조화된 데이터
- 데이터를 행과 열로 이루어진 테이블 형태로 저장
- 명확한 스키마 정의
- 데이터 일관성
- 트랜잭션을 통한 ACID 특성 보장
- 데이터 무결성 유지
- 관계 설정
- 테이블 간 관계 정의 가능
- 외래 키를 통한 참조 무결성 보장
1.2 RDB 구조의 이해
2. 관계형 데이터베이스의 기본 용어
2.1 테이블(Table)
- 데이터를 저장하는 기본 단위
- 엔티티(Entity)라고도 함
- 예: 학생 테이블, 과목 테이블
2.2 행(Row)
- 레코드(Record) 또는 튜플(Tuple)이라고도 함
- 하나의 데이터 단위
- 예: 한 학생의 정보
2.3 열(Column)
- 속성(Attribute) 또는 필드(Field)라고도 함
- 데이터의 특성을 나타냄
- 예: 학번, 이름, 전화번호
2.4 스키마(Schema)
- 데이터베이스의 구조와 제약조건을 정의
- 테이블의 설계도
- 데이터베이스에서 데이터가 구성되는 방식과 서로 간의 관계를 정의
2.5 실제 테이블 예시
학사관리 데이터베이스의 실제 테이블 구조를 살펴보겠습니다:
1. 학생 테이블 (Students)
학번(PK) | 이름 | 학과 | 연락처 |
---|---|---|---|
2024001 | 김철수 | 컴퓨터공학 | 010-1234-5678 |
2024002 | 이영희 | 소프트웨어공학 | 010-2345-6789 |
2024003 | 박민수 | 컴퓨터공학 | 010-3456-7890 |
2. 과목 테이블 (Courses)
과목코드(PK) | 과목명 | 담당교수 | 학점 |
---|---|---|---|
CS101 | 데이터베이스 | 김교수 | 3 |
CS102 | 운영체제 | 이교수 | 3 |
CS103 | 자료구조 | 박교수 | 3 |
3. 수강 테이블 (Enrollments)
수강번호(PK) | 학번(FK) | 과목코드(FK) | 학기 | 성적 |
---|---|---|---|---|
1 | 2024001 | CS101 | 2024-1 | A+ |
2 | 2024001 | CS102 | 2024-1 | B+ |
3 | 2024002 | CS101 | 2024-1 | A |
2.6 ERD(Entity-Relationship Diagram)
ERD는 데이터베이스의 구조를 시각적으로 표현한 다이어그램입니다. 위의 테이블들의 관계를 ERD로 나타내면 다음과 같습니다:
ERD에서 표현되는 관계:
- 학생(Students)과 수강(Enrollments): 1:N 관계
- 한 학생은 여러 과목을 수강할 수 있음
- 하나의 수강 기록은 한 학생에게만 속함
- 과목(Courses)과 수강(Enrollments): 1:N 관계
- 한 과목은 여러 학생이 수강할 수 있음
- 하나의 수강 기록은 한 과목에만 속함
- 학생과 과목: N:M 관계
- 수강 테이블을 통해 관계가 설정됨
- 한 학생이 여러 과목을 수강할 수 있고, 한 과목은 여러 학생이 수강할 수 있음
3. 키(Key)의 개념과 역할
3.1 기본 키(Primary Key)
💡 기본 키의 특성을 반드시 알아두세요!
특성:
- 유일성: 중복된 값을 가질 수 없음
- 최소성: 필요한 최소한의 속성으로 구성
- NULL 불가: 반드시 값이 있어야 함
예시:
CREATE TABLE Students (
student_id INT PRIMARY KEY, -- 기본 키
name VARCHAR(50),
email VARCHAR(100)
);
3.2 외래 키(Foreign Key)
- 다른 테이블의 기본 키를 참조하는 키
- 테이블 간의 관계를 설정
- 참조 무결성을 보장
예시:
CREATE TABLE Enrollments (
enrollment_id INT PRIMARY KEY,
student_id INT,
course_id INT,
FOREIGN KEY (student_id) REFERENCES Students(student_id)
);
3.3 기타 키의 종류
- 후보 키(Candidate Key)
- 대체 키(Alternate Key)
- 복합 키(Composite Key)
3.4 키의 종류와 관계
4. 관계형 데이터베이스의 장단점
4.1 장점
- 데이터 일관성
- 정규화를 통한 데이터 중복 최소화
- ACID 특성 보장
- 데이터 무결성
- 참조 무결성
- 도메인 무결성
- 개체 무결성
- 표준화된 질의 언어
- SQL을 통한 데이터 관리
- 높은 호환성
4.2 단점
- 스키마 변경의 어려움
- 구조 변경 시 복잡한 작업 필요
- 서비스 중단 가능성
- 수평적 확장의 한계
- 분산 처리의 어려움
- 대용량 데이터 처리 시 성능 저하
- 비정형 데이터 처리의 한계
- 정해진 스키마로 인한 유연성 부족
4.3 ACID 특성
- Atomicity (원자성)
- Consistency (일관성)
- Isolation (격리성)
- Durability (지속성)
🎯 정리
- 관계형 DB는 테이블 형태로 데이터 저장
- 기본 키와 외래 키로 데이터 관계 설정
- 구조화된 데이터 관리에 최적화
- ACID 특성으로 데이터 신뢰성 보장
다음 포스트에서는 SQL 기초 개념과 CRUD 연산에 대해 알아보겠습니다.
댓글남기기