Spring/강의

[📕 기초 Spring] 6-3. 데이터베이스 (Database)

가지코딩 2025. 5. 6. 16:31

📕 목차

  1. Database 준비하기
  2. 데이터베이스 (Database)
  3. 데이터베이스 관리 시스템(DBMS)
  4. 관계형 데이터베이스 (RDBMS)

1. Database 준비하기

MySQL 설치하기

참고: https://gajicoding.tistory.com/305

 

MySQL 설치하기

MySQL 을 설치해봅시다.1. 설치설치 링크: https://dev.mysql.com/downloads/mysql/ MySQL :: Download MySQL Community ServerSelect Version: 9.3.0 Innovation 8.4.5 LTS 8.0.42 Select Operating System: Select Operating System… Microsoft Windows Ubun

gajicoding.tistory.com


2. 데이터베이스 (Database)

데이터베이스 (Database)

  • 여러 사람이 공유하고 사용할 목적으로 한 곳에서 관리되는 데이터의 조직화된 집합
  • 데이터를 소프트웨어에서 효율적으로 관리하기 위한 저장소이다.
  • 데이터베이스 관리 시스템(DBMS)에 의해 제어된다.

3. 데이터베이스 관리 시스템 (DBMS)

데이터베이스 관리 시스템(DBMS, Database Management System)

  • Database를 관리하고 운영하는 시스템
  • 데이터를 정의, 저장, 검색, 수정, 삭제하는 등의 작업을 효율적으로 수행할 수 있게 해준다.
  • 다수의 사용자들이 동시에 데이터에 접근하고, 데이터를 안전하게 관리할 수 있도록 다양한 기능을 제공한다.
  • SQL이라는 언어로 DBMS에 데이터 관리를 요청하면 DBMS가 요청을 처리한다.

 

 

데이터베이스 관리 시스템(DBMS)의  주요 기능

  1. 데이터 정의
    • 데이터베이스 구조를 정의할 수 있는 기능을 제공한다.
  2. 데이터 관리
    • 데이터를 물리적으로 저장하고, 관리하는 역할을 수행한다.
    • 데이터를 저장하기 위한 최적화된 구조와 파일 시스템을 관리합니다.
    • 사용자가 데이터를 다룰 수 있도록 쿼리 언어(SQL)을 제공한다.
  3. 데이터 보안
    • 사용자 권한 관리, 암호화, 감사 로그 등을 통해 데이터를 보호한다.
  4. 트랜잭션 관리
    • DBMS는 여러 사용자가 동시에 데이터에 접근할 때, 데이터의 일관성을 유지하기 위한 트랜잭션 관리 기능을 제공한다.
    • (아래에서 더 자세히 다룬다)
  5. 백업 및 복구
    • DBMS는 데이터 손실에 대비해 백업 및 복구 기능을 제공한다.
    • 정기적인 백업을 통해 데이터를 보호하며, 장애 발생 시 데이터 복구가 가능하다.
  6. 동시성 제어
    • 다수의 사용자가 동시에 데이터베이스에 접근하더라도 데이터 일관성이 유지되도록 동시성 제어를 제공한다. 이를 통해 충돌이나 데이터 불일치를 방지할 수 있다.

 

데이터베이스 관리 시스템(DBMS)의 종류

  • 관계형 DMBS(RDBMS)
    • 가장 많이 사용하는 데이터베이스
    • 데이터를 테이블 형태로 구조화하여 저장하고 관리하는 시스템이다.
    • 테이블 간의 관계를 이용해 데이터를 연결한다.
    • ex) Oracle, MySQL, PostgreSQL, Microsoft SQL Server 등
  • 비관계형 DBMS(NoSQL)
    • 테이블이 아닌 key-value, document, graph 등의 다양한 형태로 데이터를 저장하고 관리한다.
    • 스키마가 고정되지 않고, 대규모 데이터 처리와 높은 확장성을 제공한다.
    • ex) MongoDB, Cassandra, Redis 등
  • 다중 모델 DBMS
    • 하나의 데이터베이스 관리 시스템에서 여러 데이터 모델을 지원하는 시스템이다.
    • 동일한 DBMS에서 관계형 데이터뿐만 아니라 문서형, 그래프형 데이터를 함께 관리할 수 있다.
  1.  

4. 관계형 데이터베이스 (RDBMS)

관계형 데이터베이스 (RDBMS)

  • 관계형 데이터베이스 RDB(Relational DataBase)를 관리하는 시스템으로, 데이터를 테이블 형식으로 저장하고 관리하는 시스템이다.
  • RDBMS는 데이터 간의 관계를 정의하고, 이를 바탕으로 복잡한 쿼리(QUERY)를 실행할 수 있는 기능을 제공한다.

 

 

관계형 데이터베이스 (RDBMS) 의 특징

  1. 테이블 (Table)
    • 데이터는 행(Row)열(Column)로 구성된 테이블에 저장된다.
    • 열(Column)은 데이터의 속성(유일한 이름)을 나타내며, 데이터 유형을 갖는다.
    • 행(Row)은 데이터의 묶음이며, 튜플 또는 레코드라고 한다.
    • 데이터 무결성: 테이블은 특정 규칙과 제약 조건(기본 키, 외래 키, 유니크 등)을 통해 데이터를 저장하여 데이터의 무결성(정확성, 일관성, 유효성)을 유지한다.
  2. 관계 (Relationships)
    • 외래 키(Foreign Key)를 통해 테이블 간의 관계를 설정할 수 있다.
    • RDBMS는 다양한 유형의 관계를 지원한다:
      • 1:1 관계: 한 테이블의 한 행이 다른 테이블의 한 행과만 연결된다.
      • 1:다 관계: 한 테이블의 한 행이 다른 테이블의 여러 행과 연결된다.
      • 다:다 관계: 두 테이블의 여러 행이 서로 연결될 수 있다.
  3. SQL (Structured Query Language)
    • RDBMS는 데이터를 정의하고, 관리하기 위해 SQL이라는 표준 언어를 사용한다.
    • SQL을 통해 데이터 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 작업을 수행할 수 있다.
  4. 키 (Keys)
    • 기본 키(Primary Key): 테이블 내에서 각 행을 고유하게 식별하는 열 또는 열의 조합이다. 중복되지 않으며, NULL 값을 가질 수 없다.
    • 외래 키(Foreign Key): 한 테이블의 열이 다른 테이블의 기본 키를 참조하여 관계를 설정하는 데 사용된다.
    • 유일 키(Unique Key): 기본 키와 유사하지만, 여러 개가 존재할 수 있으며, 중복된 값을 허용하지 않지만, NULL 값은 허용할 수 있다.
  5. 트랜잭션(Transaction)
    • RDBMS는 트랜잭션을 통해 데이터베이스 작업을 처리하며, 이를 통해 데이터의 일관성과 무결성을 유지한다.
    • 트랜잭션은 ACID 속성(원자성, 일관성, 고립성, 지속성)을 따른다.
    • 원자성(Atomicity): 트랜잭션의 모든 작업이 성공적으로 완료되거나 실패 시 모든 작업이 롤백된다.
      • 일관성(Consistency): 트랜잭션이 데이터베이스를 일관된 상태로 유지한다.
      • 고립성(Isolation): 동시에 실행되는 트랜잭션 간의 영향을 최소화한다.
      • 지속성(Durability): 트랜잭션이 완료된 후 데이터의 변경 사항은 영구적으로 저장된다.
  6. 정규화 (Normalization)
    • 데이터의 중복을 줄이고, 일관성과 무결성을 유지하기 위해 데이터를 구조화하는 과정이다.
    • 정규화는 여러 단계가 있으며, 각 단계는 데이터 중복을 줄이고 이상 현상을 방지하는 데 목적이 있다.
  7. 데이터 무결성 (Data Integrity)
    • 엔터티 무결성: 각 테이블의 기본 키(PK)가 중복되지 않고 NULL 값이 아닌 상태를 유지한다.
    • 참조 무결성: 외래 키(FK)를 통해 참조되는 데이터가 유효성을 유지하도록 보장한다.
    • 도메인 무결성: 각 열이 정의된 데이터 타입과 제약 조건에 따라 유효한 값을 유지하도록 한다.
  8. 인덱스 (Index)
    • 인덱스는 특정 열의 검색 성능을 향상시키기 위해 사용된다.
    • 데이터를 정렬하고 효율적으로 접근할 수 있도록 지원하지만, 인덱스가 많아지면 삽입 및 수정 작업의 성능에 영향을 미칠 수 있다.

 

 

대표적인 관계형 데이터베이스 (RDBMS)

 

  • MySQL
    • 오픈소스 기반으로 무료 제공
    • 빠른 속도와 높은 성능
    • 다양한 운영체제와 플랫폼에서 사용 가능
    • 전 세계적으로 널리 사용되며, 방대한 문서와 커뮤니티 지원
  • PostgreSQL
    • 강력한 ACID 준수 및 고급 기능 제공
  • Oracle Database
    • 상용 데이터베이스로, 고급 보안 및 성능을 제공
  • Microsoft SQL Server
    • Microsoft 제품과의 호환성 및 통합이 강점