[DevCamp] 데이터베이스란?

동건·2025년 2월 24일
0

DevCamp

목록 보기
17/85

데이터베이스란?

오늘은 데이터베이스(Database, DB)에 간단하게 알아보았고,
앞서 했던 실습에도 적용하는 시간을 가졌다.


✔ 데이터베이스(Database, DB)란?

데이터베이스(Database, DB)는
데이터를 체계적으로 저장하고 효율적으로 관리하기 위한 집합체이다.

데이터를 구조화하여 저장함으로써 중복을 방지하고, 보다 빠른 검색과 연산을 가능하게 한다.
현대의 IT 시스템에서 데이터베이스는 필수적인 요소이며,
대부분의 애플리케이션과 서비스가 이를 기반으로 동작한다.


✔ DBMS (DataBase Management System)

데이터베이스를 직접 다루는 것은 복잡하고 어렵기 때문에,
우리는 DBMS(DataBase Management System)를 사용하여 데이터베이스를 운영하고 관리한다.
DBMS는 데이터 저장, 검색, 수정, 삭제 등의 기능을 제공하며,
사용자는 이를 통해 효율적으로 데이터를 다룰 수 있다.

대표적인 DBMS에는 다음과 같은 것들이 있다.

  • Oracle
  • MySQL
  • MariaDB
  • PostgreSQL
  • MS SQL Server

DBMS는 각각의 특징과 장점을 가지며,
용도에 따라 적절한 것을 선택하여 사용할 수 있다.


✔ SQL (Structured Query Language)

SQL은 데이터베이스를 조작하고 관리하기 위해 사용되는 언어로

데이터를 삽입, 조회, 수정, 삭제 등의 작업을 수행할 수 있다.
SQL은 관계형 데이터베이스(RDBMS)에서 표준적으로 사용된다.

대표적인 SQL 명령어는 다음과 같다.

  • 데이터 삽입 : INSERT INTO table_name (column1, column2) VALUES (value1, value2);
  • 데이터 조회 : SELECT column1, column2 FROM table_name WHERE condition;
  • 데이터 수정 : UPDATE table_name SET column1 = value1 WHERE condition;
  • 데이터 삭제 : DELETE FROM table_name WHERE condition;

SQL을 사용하면 데이터베이스와 상호작용하여
원하는 데이터를 효율적으로 관리할 수 있다.


✔ RDBMS (Relational Database Management System)

RDBMS(관계형 데이터베이스 관리 시스템)는
데이터를 테이블 형태로 저장하며,
테이블 간의 관계를 설정하여 데이터를 연관 지을 수 있도록 한다.
이러한 관계를 통해 데이터의 일관성을 유지하고, 중복을 최소화할 수 있다.

Primary Key (기본키, PK)

  • 테이블의 각 행(Row)을 유일하게 식별할 수 있는 키 값.
  • 중복이 없고, NULL 값을 가질 수 없다.
  • 예: userid, email

Foreign Key (외래키, FK)

  • 다른 테이블의 기본키를 참조하는 키 값.
  • 테이블 간 관계를 설정하는 데 사용된다.
  • 가능하면 외래키는 참조하는 테이블의 기본키 값을 사용하는 것이 좋다.

테이블 간 관계

관계형 데이터베이스에서는 테이블 간 관계를 설정하여 데이터를 더욱 체계적으로 관리한다.

  • 1:1 관계 : 한 테이블의 한 행이 다른 테이블의 한 행과만 연결됨.
  • 1:N 관계 : 한 테이블의 한 행이 다른 테이블의 여러 행과 연결됨. (가장 일반적인 관계)
  • M:N 관계 : 여러 개의 행이 서로 여러 개의 행과 연결됨. (보통 중간 테이블을 사용하여 구현)

정규화 (Normalization)

  • 중복 데이터를 제거하고, 테이블을 효율적으로 설계하는 과정.
  • 테이블을 여러 개로 분할하여 데이터의 무결성을 유지하고, 업데이트의 효율성을 높인다.

🔨 TIL

데이터베이스는 데이터를 효율적으로 관리하는 핵심 기술이며,
이를 다루기 위해서는 DBMS와 SQL을 이해하는 것이 중요하다고 생각했다.

또한 관계형 데이터베이스에서는 테이블 간의 관계를 설정하고
정규화를 통해 최적화된 데이터 구조를 설계하는 것이 필수적이라는 것도 배웠다.

앞으로 데이터베이스를 활용한 프로젝트를 진행할 때,
오늘 학습한 개념을 잘 활용해보려한다.

profile
배고픈 개발자

0개의 댓글