[데이터베이스] #1 기초

September 06, 2023


왜 데이터베이스를 쓰는가?

C언어나 파이썬을 사용해서 파일 입출력을 해본 기억이 있으실 겁니다. 그리고 데이터를 저장하기 위해서 엑셀 파일을 프로그램이 사용하는 경우도 있습니다.

C언어의 경우, struct 전체를 바이너리 코드로 읽거나 쓸 수 있습니다. 그런데 프로그래머는 함부로 할당한 변수의 바이트 크기를 바꿀 수 없습니다. 만약 바꾼다면 기존의 바이너리 파일을 읽을 수 없을 것입니다. 이를 데이터 독립성이 떨어진다고 합니다.

또한 이런 파일 시스템은 운영체제에 크게 영향을 받습니다. 이를 데이터 종속적이라고 말합니다.

파일 시스템의 단점

  • 데이터 중복성
  • 데이터 종속성

기존의 파일 시스템의 문제점을 해결하기 위해서 등장한 것이 데이터베이스입니다.

데이터베이스의 정의

  • 통합된 데이터 - 중복을 최소로
  • 저장된 데이터
  • 운영 데이터
  • 공용 데이터

데이터베이스의 특성

특성 설명
실시간 접근성 다양한 질의에 대해 실시간으로 응답, 성능이 중요
계속적인 변화 정확한 데이터 보관
동시 공유 여러 사용자가 동시에 데이터 액세스
내용에 의한 참조 데이터의 주소가 아닌 값을 이용한 참조

DBMS

데이터베이스가 어떤 것인지는 감이 오는데 응용 프로그램이 어떻게 데이터베이스를 사용할까요?

바로 DBMS가 응용 프로그램이 데이터베이스를 공유할 수 있도록 관리해줍니다.

DBMS의 목적

  • 사용의 편의성 - 사용자가 내부를 몰라도 원하는 데이터를 쉽게 읽고 쓰기
  • 관리의 효율성 - 데이터를 효율적으로 관리해서 성능, 정확성 보장

데이터베이스 모델링

데이터베이스 모델링 정리

데이터베이스 언어

DBMS의 필수 기능

DBMS의 필수 기능 정리

정의 기능 - DDL

  • Data Definition Language
  • 데이터베이스의 스키마( 구조 )를 정의/수정/삭제하는 용도
  • 논리적 구조, 물리적 구조, 두 구조 사이의 매핑을 정의

조작 기능 - DML

  • Data Manipulation Language
  • 레코드에 대한 검색/삽입/수정/삭제 지원
  • Query language
  • 데이터 처리 기능 ( 추가, 검색, 갱신, 삭제 )

제어 기능 - DCL

  • Data Control Language
  • 트랜잭션 관리 (Commit, Rollback)
  • 보안 관리 (Grant, Revoke)
  • 데이터에 대한 정확성안정성을 유지
  • 트랜잭션, 동시성 제어, 데이터 무결성, 보안

트랜잭션 관리

트랜잭션은 나누어져서는 안되는 논리적 작업의 단위입니다.

ACID

속성 설명
원자성(Atomicity) All or Nothing. 트랜잭션은 나누어져서는 안되는 작업들의 모음
일관성(Consistency) 트랜잭션이 성공했다면, 데이터베이스는 그 일관성을 유지
고립성(Isolation) 실행 중간의 결과가 노출되지 않아야 함
트랜잭션을 수행하는 도중에 다른 연산작업이 끼어들면 안됨
영구성(Durability) 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 함

정리

데이터베이스을 왜 사용해야 하는지 알 수 있었고 이를 사용하기 위해 현실세계의 데이터를 DBMS가 관리할 수 있는 방법으로 바꾸는 과정을 배웠습니다.


Profile picture

이재원

이해하기 쉬운 코드를 작성하려 고민합니다.


© 2024 Won's blog Built with Gatsby