본문 바로가기
DB

DB 개념 1편 - DB를 사용하는 이유

by suhsein 2024. 8. 20.
728x90

왜 DB 형상은 항상 원통형 모양인지 아시나요?

과거에 사용하던 드럼 메모리 모양을 본따서 이런 모양일것이라고 추측된다네요
출처 https://stackoverflow.com/questions/2822650/why-is-a-database-always-represented-with-a-cylinder

포스팅시작합니다

📌Data, Information, Knowledge의 차이

Data : 누구에게나 똑같이 보이는 객관적 사실
Information : 주관적인 측면에서 관심있는 데이터로, 의미를 가지는 것이다.
Knowledge : Information을 요약, 정리, 가공한 것으로, 지워지더라도 Information으로부터 다시 만들 수가 있다.

🛢️DB

Database DB

데이터베이스란?

  1. 방대한 양
  2. 서로 연관된
  3. 현재 운용되는(Application domain의 현상태를 그대로 반영하는)

데이터의 저장소이자 실세계의 스냅샷이다.

📌파일 시스템의 결함

DB를 사용하기 이전에는 파일 시스템으로 데이터를 저장하고 관리했었다. DB를 사용하는 이유는 파일 시스템이 다음과 같은 결함들을 가지고 있기 때문이다.

  1. Data Dependency (데이터 의존성. 종속성)
    데이터 위치, 구조, 접근 전략이 바뀌면 프로그램을 뜯어 고쳐야 한다.
    데이터 조직과 접근 기술에 관한 지식이 응용로직과 코드 안에 있기 때문이다.(하드코딩)
    이는 안정성, 유지보수에 큰 문제를 일으킨다. 범용성이 사라지기 때문에 응용로직에 데이터 위치, 구조, 접근 전략과 관련된 정보를 집어넣어서는 안된다.
  2. Data Inconsistency (데이터 불일치)
    같은 데이터를 여러개의 파일로 저장하는 경우, 중복이 발생하고 데이터의 불일치가 야기된다.

Solution => Data Centralization과 Integration을 위해 DB와 DBMS 사용

📌DB의 추상화

사용자들은 불필요한 디테일을 알 필요가 없다.

RDB(관계형 데이터베이스)에서 Data Abstraction의 3 Level

추상화 L2. External -> Logical (인간 중심)
추상화 L1. Conceptual -> Logical (인간 중심)
추상화 X. Internal -> Physical (기계 중심)

ex) 어떤 데이터들을 저장할 때, 물리 메모리 내에서는 불연속하게 저장되더라도, 가상 메모리 내에서는 연속하게 저장될 수 있다.

📌DBMS

DataBase Management System

데이터베이스 관리 시스템
데이터베이스의 생성, 저장, 관리를 위해 사용된다.
DB 관리에 편리하고 효율적인 환경을 제공한다.

DBMS의 목적

  1. Conveniet 편의성 (사용자 관점)

-> 데이터 추상화 (Abstraction)
: 사용자가 알 필요없는 Low Level의 정보(불필요한 디테일)는 가리고, 사용자가 필요로하는 정보만 노출한다.
2. Efficient 효율성 (기계 관점)
-> 물리적 관점의 효율성
: 데이터 저장과 검색 매커니즘을 제공. 메모리 낭비 없이, 검색을 할 때 최대한 빠르게 할 수 있게 해준다.

MySQL, 오라클이 대표적인 DBMS이다.

DBMS의 장점

  1. Data Independancy (데이터 독립성)
  2. No Redundancy (중복 없음)
  3. Consistency (일관성)
  4. Integrity (무결성)
    무결성 유지 전략
    A. Assertion : Illegal한 Update 제한
    B. Triggering : Update의 전파. Update가 불일치를 야기하더라도 legal한 Update라면 자동으로 일치시켜줌. ECA(Event-Condition-Action) Rule을 따른다. DBMS가 자동으로 해주므로, 사용자는 데이터 불일치에 대해서 관여하지 않아도 된다.
  5. Standardization (표준화)
    데이터 표현에서 정형화된 표준(테이블 형식)을 제공한다.
    데이터 형식 전환을 제거하여 시간을 단축시킨다.
  6. Security (보안)
    사용자마다 다른 Authorization을 부여할 수 있다.
  7. Recovery (복구)
    • Transaction (작업 단위)
      어떤 트랜잭션이 시작되면, 이 트랜잭션이 끝날 때까지 다른 트랜잭션은 시작할 수 없다. 트랜잭션은 성공 시 Commit, 실패 시 Rollback 후 종료된다.
  8. Concurrency (동시성)
    동시 접근 문제를 해결한다. 트랜잭션을 통해 여러 사용자가 같은 데이터에 동시에 접근하여 UPDATE 또는 DELETE 하는 경우 발생하는 충돌을 방지한다. 일관성과 무결성을 유지한다.
  9. Flexibility in Accessing DB
    Index <=> Data 상호 간 접근이 가능하다.
728x90

'DB' 카테고리의 다른 글

DB 개념 6편 - ER 모델  (0) 2024.08.25
DB 개념 5편 - View와 MView의 차이  (0) 2024.08.25
DB 개념 4편 - SQL과 DB 사용자의 분류  (0) 2024.08.22
DB 개념 3편 - RDB 무결성과 키  (0) 2024.08.22
DB 개념 2편 - 데이터 모델  (0) 2024.08.20