2 분 소요

1. 관계형 데이터베이스의 개념과 특징

관계형 데이터베이스(RDB)는 데이터를 테이블(표) 형태로 저장하고,
테이블 간의 관계를 설정하여 데이터를 관리하는 데이터베이스입니다.

1.1 주요 특징

💡 관계형 데이터베이스의 특징은 면접에서 매우 자주 나오는 질문입니다!

  1. 구조화된 데이터
    • 데이터를 행과 열로 이루어진 테이블 형태로 저장
    • 명확한 스키마 정의
  2. 데이터 일관성
    • 트랜잭션을 통한 ACID 특성 보장
    • 데이터 무결성 유지
  3. 관계 설정
    • 테이블 간 관계 정의 가능
    • 외래 키를 통한 참조 무결성 보장

1.2 RDB 구조의 이해

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로 나타내면 다음과 같습니다:

DBERD

ERD에서 표현되는 관계:

  1. 학생(Students)과 수강(Enrollments): 1:N 관계
    • 한 학생은 여러 과목을 수강할 수 있음
    • 하나의 수강 기록은 한 학생에게만 속함
  2. 과목(Courses)과 수강(Enrollments): 1:N 관계
    • 한 과목은 여러 학생이 수강할 수 있음
    • 하나의 수강 기록은 한 과목에만 속함
  3. 학생과 과목: 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 키의 종류와 관계

DBKey

4. 관계형 데이터베이스의 장단점

4.1 장점

  1. 데이터 일관성
    • 정규화를 통한 데이터 중복 최소화
    • ACID 특성 보장
  2. 데이터 무결성
    • 참조 무결성
    • 도메인 무결성
    • 개체 무결성
  3. 표준화된 질의 언어
    • SQL을 통한 데이터 관리
    • 높은 호환성

4.2 단점

  1. 스키마 변경의 어려움
    • 구조 변경 시 복잡한 작업 필요
    • 서비스 중단 가능성
  2. 수평적 확장의 한계
    • 분산 처리의 어려움
    • 대용량 데이터 처리 시 성능 저하
  3. 비정형 데이터 처리의 한계
    • 정해진 스키마로 인한 유연성 부족

4.3 ACID 특성

  • Atomicity (원자성)
  • Consistency (일관성)
  • Isolation (격리성)
  • Durability (지속성)

🎯 정리

  • 관계형 DB는 테이블 형태로 데이터 저장
  • 기본 키와 외래 키로 데이터 관계 설정
  • 구조화된 데이터 관리에 최적화
  • ACID 특성으로 데이터 신뢰성 보장

다음 포스트에서는 SQL 기초 개념과 CRUD 연산에 대해 알아보겠습니다.

댓글남기기