Javadocs

[ DataBase] 데이터베이스란? 본문

Programming/DataBase

[ DataBase] 데이터베이스란?

Javatist 2023. 3. 19. 15:38

1. 데이터 베이스(DB, DataBase)란?

데이터베이스는 여러 사람이 공유하여 사용할 목적으로 체계화하여 통합, 관리하는 데이터의 집합이다. 즉, 자료 파일들을 조직적으로 통합하여 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.


2. 데이터베이스의 특징

  • 생성, 수정, 삭제를 통해 항상 최신의 데이터를 유지한다.
  • 사용자들이 원하는 데이터를 동시에 공유할 수 있다.
  • 데이터 논리적 독립성
  • 사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어짐.
  • 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 가능.

3. 데이터베이스의 장, 단점

* 장점

  • 데이터 중복 최소화
  • 데이터 공유
  • 일관성, 무결성, 보안성 유지
  • 최신의 데이터 유지
  • 데이터의 표준화 기능
  • 데이터의 논리적, 물리적 독립성
  • 용이한 데이터 접근
  • 데이터 저장 공간 절약

* 단점

  • 데이터베이스 전문가 필요
  • 많은 비용 부담
  • 데이터 백업과 복구가 어려움
  • 시스템의 복잡성
  • 대용량 디스크로 액세스가 집중되면 과부하 발생

3. 데이터베이스의  모델

  • 계층형(Hierarchical DataBase)

    - 데이터 간의 관계가 트리(Tree)형태의 구조. 부모-자식 관계로 표현되며, 1:N(일 대 다)으로 구성될 수 있다.
    - 구조가 간단하고 구현, 수정, 검색이 쉽지만 N:N(다 대 다) 관계 처리가 불가능하고 구조 변경이 어렵다.
    - 데이터를 Segment* 단위로 관리하며 Segment 간 계층을 트리구조로 관리한다.
        (관계형 모델에서의 Entity를 계층형에서는 Segment 라 부른다.)
    - 상위 Segment 삭제시 연쇄삭제가 발생.
    - 쉽게 말해 폴더 안에 하위 폴더 안에 파일이 있는 형태. 여러 하위 폴더가 한 상위폴더에 있을 수 있지만 한 하위 폴더    가 여러 상위 폴더에 위치할 수 없다.
    Ex. IMS(IBM의 Information Management System)

계층형 데이터베이스

  • 네트워크형(Network DataBase)

    - 계층형 데이터베이스의 단점을 보완하여 N:N 구성이 가능한 망 형태의 모델.
    - 계츨 구조에 링크를 추가해 유연성과 접근성을 높였지만 구조가 복잡해서 유지보수가 어렵다.
    Ex. IDMS (Integrated Data Store)

네트워크형 데이터베이스

  • 관계형(Relational DataBase)

    - 키(Key)와 값(Value)으로 이루어진 데이터들을 행(row)과 열(Column)로 구성된 테이블 구조로 단순화한 모델이다.
    - SQL(Structured Query Language)를 사용하여 데이터 관리한다.
    - 데이터 모델링이 간단하지만 CAD/CAM, GIS 등과 같은 비정형 데이터들을 다루거나 실시간 분석에는 적합하지 않      다.
    Ex. MySQL, Oracle, PostgreSQL, MariaDB 등

관계형 데이터베이스

  • 객체지향형(Object-Oriented DataBase)

    - 객체지향 프로그래밍 개념에 기반하여 만든 데이터 모델(클래스, 상속 등을 사용할 수 있다.)
    - 비정형 데이터들을 데이터베이스화 하기 위해 만들어진 모델
    - 멀티미디어 데이터 지원이 가능하지만 SQL쿼리를 사용할 수 없다.(OQL이 있긴하다.)
    - 검색이나 대규모 트랜잭션 처리에서 성능이 떨어져 몇몇 특수 전문 분야에서만 사용한다.
    Ex. O2, ONTOS

  • 객체관계형(Object-Relational DataBase)

    - 관계형 데이터베이스에 객체 지향 개념을 도입하여 만든 데이터베이스 모델
    - 객체지향 개념을 지원하는 표준 SQL을 사용할 수 있고, 데이터 타입도 관계형 데이터베이스 보다 다양하게 추가되      었다.
    Ex. UniSQL, Object store

  • NoSQL

    - Not only SQL의 줄임말로 SQL 특성뿐만 아니라 다양한 특성을 지원.
    - 데이터 간에 관계를 정의하지 않는 데이터베이스 모델
    - 기존 RDBMS의 복잡도와 용량의 한계를 극복하기 위한 목적

    - 비정형 데이터 처리에 유리.

    - 스키마 변경이 불가능해 데이터 값에 문제가 생기면 감지가 어렵다.

    Ex. MongoDB, redis

  • NewSQL

    - RDBMS의 SQL과 NoSQL의 장점을 결합하여 관계형 모델.
    - 트랜잭션 지원 및 확장성과 고 가용성을 모두 만족시키려는 목적에서 만들어진 데이터베이스 모델
    Ex. VoltDB

출처 :
https://noahlogs.tistory.com/36

https://cocoon1787.tistory.com/722

 


4. 데이터베이스 관리 시스템( DataBase Management System, DBMS)란?

다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어들을 의미.
DBMS가 존재하기 전에는 파일 시스템(응용 프로그램을 이용해 데이터를 파일로 관리하는 것)을 이용하여 데이터 관리를 하였다. 파일을 기반으로 데이터를 관리하게되면 데이터 중복, 데이터 불일치* 등 문제가 발생하였다.

데이터 불일치 문제?

데이터를 파일로 저장했을 때 파일을 수정하는 도중에 해당 파일을 불러온다면 데이터가 동기화 문제가 발생하여 데이터가 불일치하는 문제가 발생할 수 있다.

DBMS 언어

SQL은 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어.

속성 설명 주요 명령어
DDL
(Data Definition Language)
데이터베이스나 테이블 등을 생성, 삭제하거나 그 구조를 변경하기 위한 명령어 CREATE, ALTER, DROP, TRUNCATE
DML
(Data Manipulation Language)
데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어 INSERT, UPDATE, DELETE, SELECT 등
DCL
(Data Control Language)
데이터베이스에 저장된 데이터를 관리하기 위해 데이터의 보안성 및 무결성 등을 제어하기 위한 명령어 GRANT, REVOKE 등

 

'Programming > DataBase' 카테고리의 다른 글

[Database] JOIN 이란?  (1) 2023.04.09
[DataBase] 트랜잭션(Transaction)이란?  (0) 2023.04.08
Comments