Programmers

[19일차]관계형 데이터베이스 관리 시스템(RDBMS) 개념과 주요 특징

PARKpatchnotes 2025. 9. 25. 17:26

DBMS와 RDBMS

DBMS

DBMS(Database Management System)는 데이터베이스를 관리하고 운영하는 소프트웨어이다. 사용자는 DBMS를 통해 데이터베이스와 상호작용하며 데이터를 생성, 조회, 수정, 삭제(CRUD)할 수 있다.

RDBMS

RDBMS(Relational Database Management System)는 관계형 데이터베이스 관리 시스템을 의미한다. 이는 DBMS의 한 종류로, 데이터를 2차원 테이블(Table) 형태로 구성하며 테이블 간의 관계(Relationship)를 통해 데이터를 관리한다. 대표적인 RDBMS로는 MySQL, PostgreSQL, Oracle 등이 있다.

RDBMS의 장점과 특징

RDBMS는 데이터를 체계적으로 구조화하여 관리하므로 데이터의 일관성과 무결성을 유지하기 용이하다.

PK & FK

  • PK (Primary Key, 기본 키)는 테이블의 각 행(Row)을 고유하게 식별할 수 있는 키이다. PK는 NULL 값을 가질 수 없으며, 테이블 내에서 유일해야 한다.
  • FK (Foreign Key, 외래 키)는 한 테이블의 필드(Attribute)가 다른 테이블의 PK를 참조하는 키이다. FK는 테이블 간의 관계를 설정하는 데 사용되며 데이터의 무결성을 보장한다.

데이터 중복과 정규화

RDBMS는 데이터의 중복을 최소화하도록 설계된다. 데이터 중복은 저장 공간을 낭비하고 데이터 불일치를 유발할 수 있기 때문이다.

정규화(Normalization)는 데이터 중복을 줄이고 데이터 무결성을 향상시키기 위해 테이블을 특정 규칙에 따라 분해하는 과정이다. 정규화 과정을 통해 데이터 구조를 더 효율적으로 개선할 수 있다.

연관관계

연관관계는 테이블 사이의 관계를 의미하며, 주로 '1:1', '1:N', 'M:N'의 세 가지로 나뉜다.

1:1 (일대일) 관계

1:1 관계는 한 테이블의 레코드가 다른 테이블의 레코드 단 하나와 관계를 맺는 경우를 의미한다.

예시:

  • 사용자(User) 테이블과 사용자_프로필(User_Profile) 테이블은 1:1 관계이다. 한 명의 사용자는 하나의 프로필만 가질 수 있다.
User 테이블 User_Profile 테이블
ID (PK) Name User_ID (PK, FK)
1 Alice 1
2 Bob 2

1:N (일대다) 관계

1:N 관계는 한 테이블의 레코드가 다른 테이블의 여러 레코드와 관계를 맺는 경우를 의미한다. 이는 데이터베이스 설계에서 가장 많이 사용되는 관계이다.

예시:

  • 사용자(User) 테이블과 게시글(Post) 테이블은 1:N 관계이다. 한 명의 사용자는 여러 개의 게시글을 작성할 수 있다.
User 테이블 Post 테이블
ID (PK) Name ID (PK) User_ID (FK) Title
1 Alice 101 1 Alice의 첫 번째 게시글
2 Bob 102 1 Alice의 두 번째 게시글
103 2 Bob의 게시글

M:N (다대다) 관계

M:N 관계는 양쪽 테이블의 레코드가 서로 여러 개와 관계를 맺는 경우를 의미한다. 이 관계는 직접 표현할 수 없으므로 중간에 조인 테이블(Join Table)을 생성하여 표현한다. 조인 테이블은 두 테이블의 PK를 FK로 가지며, 이를 통해 M:N 관계를 1:N 관계 두 개로 나눈다.

예시:

  • 학생(Student) 테이블과 과목(Course) 테이블은 M:N 관계이다. 한 명의 학생은 여러 과목을 수강할 수 있고, 하나의 과목은 여러 학생에 의해 수강될 수 있다. 이 관계를 표현하기 위해 수강신청(Enrollment)이라는 중간 테이블을 사용한다.
Student 테이블 Course 테이블 Enrollment 테이블
ID (PK) Name ID (PK) Course_Name Student_ID (FK) Course_ID (FK)
1 Alice 1 수학 1 1
2 Bob 2 영어 1 2
2 1

이러한 연관관계를 통해 데이터베이스를 체계적으로 설계하고 효율적으로 관리할 수 있다.