무지개곰
article thumbnail
반응형

데이터 베이스와 DBMS

데이터베이스(Database)

  • 공용 데이터(Shared Data): 여러 응용 시스템이 공동으로 소유하고 유지하는 데이터.
  • 통합된 데이터(Integrated Data): 데이터 중복을 최소화하여 모아둔 데이터 집합.
  • 운영 데이터(Operational Data): 특정 업무 수행에 반드시 필요한 데이터.
  • 저장된 데이터(Stored Data): 컴퓨터의 저장 매체에 기록된 데이터.

DBMS (Database Management System)

데이터베이스 관리 시스템(DBMS)은 사용자 요구에 따라 정보를 생성하고, 데이터베이스를 관리해 주는 소프트웨어입니다.

  • 정의 기능(DDL): 데이터베이스의 데이터 타입, 구조, 제약 조건 등을 정의합니다.
    • 예) DDL (Data Define Language)로 DOMAIN, SCHEMA, TABLE, VIEW, INDEX 등을 정의, 변경, 삭제 가능
  • 조작 기능(DML): 사용자와 데이터베이스 간 인터페이스를 제공하며 데이터 조작을 수행합니다.
    • 예) DML (Data Manipulation Language)로 SELECT, INSERT, UPDATE, DELETE 명령어 사용
  • 제어 기능(DCL): 무결성, 보안, 권한, 병행 제어 등의 기능을 제공합니다.
    • 예) DCL (Data Control Language)로 권한 설정, 데이터 접근 제어, 데이터 보호

데이터 입출력

SQL (Structured Query Language)

SQL은 1974년 IBM 연구소에서 개발된 관계형 데이터베이스의 언어로, 데이터의 정의와 조작, 제어를 위한 기능을 제공합니다.

  • 데이터 정의어(DDL): 데이터베이스 구조를 정의하는 명령어입니다.
    • 주요 명령어: DOMAIN, SCHEMA, TABLE, VIEW, INDEX
  • 데이터 조작어(DML): 데이터베이스에 저장된 데이터를 실질적으로 다루는 명령어입니다.
    • 주요 명령어: SELECT, INSERT, UPDATE, DELETE
  • 데이터 제어어(DCL): 데이터의 무결성, 보안, 회복, 병행 제어를 위한 명령어입니다.

데이터 접속(Data Mapping)

소프트웨어에서 DBMS의 데이터에 접근하는 방법으로 SQL Mapping과 ORM 방식을 사용합니다.

  • SQL Mapping: 코드 내에 직접 SQL을 작성하여 DBMS 데이터에 접근하는 방식입니다.
    • 예) JDBC, ODBC, MyBatis
  • ORM (Object-Relational Mapping): 객체와 관계형 데이터베이스의 데이터를 연결하여 매핑하는 방식입니다.
    • 예) JPA, Hibernate, Django

트랜잭션(Transaction) 

트랜잭션은 데이터베이스의 상태를 변환시키는 논리적 작업 단위로, 모든 연산이 한꺼번에 수행되어야 합니다.

  • COMMIT: 트랜잭션이 정상 종료되어 변경 내용을 DB에 반영하는 명령어.
  • ROLLBACK: 트랜잭션이 비정상 종료되어 모든 변경 작업을 취소하고 이전 상태로 되돌리는 명령어.
  • SAVEPOINT: 트랜잭션 내 ROLLBACK 지점을 지정하는 명령어로, 여러 개의 저장점을 둘 수 있습니다.
  • 트랜잭션의 특징:
    • 원자성(Atomicity): 트랜잭션의 모든 연산이 완전히 수행되거나 모두 수행되지 않아야 함.
    • 일관성(Consistency): 트랜잭션 실행 전후의 데이터 일관성이 유지됨.
    • 독립성(Isolation): 트랜잭션이 실행되는 동안 다른 트랜잭션의 영향을 받지 않음.
    • 지속성(Durability): 트랜잭션이 완료되면 결과가 영구히 반영됨.
반응형
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!