데이터베이스란?

inhak·2023년 9월 15일

데이터베이스

목록 보기
1/5

1. 데이터베이스(Database)

  • 데이터베이스는 데이터를 물리적으로 저장하는 역할합니다.
  • 데이터베이스는 체계적으로 구성된 데이터의 구조화된 집합입니다.
  • 데이터베이스는 일반적으로 테이블(Table) 형태로 데이터를 구조화합니다. 즉 데이터베이스는 테이블(Table)의 집합입니다.
  • 데이터베이스의 테이블은 열과 행으로 이루어져 있습니다.
  • 데이터베이스의 테이블은 표와 매우 유사한 구조를 가지고 있습니다.
  • 데이터베이스는 데이터 자체를 구성하는 구조규칙만을 정의합니다.

2. 테이블(Table)

Table

  • 데이터베이스에서 데이터를 저장하는 구체적인 구조입니다.
  • 데이터는 행(row)과 열(column)로 구성된 2차원 구조(테이블)에 저장됩니다. 즉, 테이블은 표 형식으로된 Data의 묶음입니다.
  • 테이블의 행(row)을 Record, tuple 등의 용어로도 사용됩니다.
  • 테이블의 열(Column)을 Field, attribute 등의 용어로도 사용됩니다.
  • 테이블은 스키마에 속합니다. 즉, 테이블은 특정 스키마 내에서 생성되고 관리됩니다.
  • 테이블은 스키마라는 설계도에 따라 실제로 만들어진 방(데이터 저장소)입니다.

Schema

  • 데이터베이스에서 데이터의 구조와 조직을 정의하는 논리적 개념입니다.
  • 데이터베이스의 설계를 나타냅니다. 즉 스키마는 데이터베이스의 물리적 또는 논리적 설계와 관련된 요소들을 포함합니다.
  • 스키마는 데이터베이스라는 건물의 설계도와 같습니다. 설계도에는 방(테이블)의 위치, 크기, 용도 등이 정의되어 있습니다.

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

  • 데이터베이스 관리 시스템(DataBase Management System)은 데이터베이스를 관리하는 소프트웨어입니다.
  • DBMS는 데이터와 사용자 또는 프로그램 간의 인터페이스 역할합니다.
  • DBMS에 의해 데이터베이스는 제어됩니다.
  • DBMS는 데이터베이스를 관리하고 데이터를 효율적으로 저장, 검색, 갱신, 삭제 등의 작업을 수행할 수 있도록 기능을 제공합니다.
  • 사용자가 데이터베이스를 사용할 수 있도록 쿼리 언어(SQL 등)와 다양한 기능을 제공합니다.
  • DBMS는 데이터베이스의 성능 모니터링, 튜닝, 백업, 복구 같은 관리 작업을 지원합니다

4. 데이터베이스와 데이터베이스 관리 시스템(DBMS)의 관계

  • 데이터 저장 및 관리
    • 데이터베이스는 단순히 데이터를 저장하는 저장소입니다.
    • DBMS는 데이터베이스를 관리하고, 데이터를 효율적으로 저장, 검색, 갱신, 삭제할 수 있는 기능을 제공하는 소프트웨어입니다.
  • 구조화
    • 데이터베이스는 구조화된 데이터를 포함하지만, DBMS가 이러한 데이터를 구조화하고 관리합니다.
    • 예를 들어, 관계형 데이터베이스에서는 테이블 형태로 데이터를 구조화하며, DBMS가 이러한 테이블 간의 관계를 관리합니다
  • 보안 및 무결성
    • DBMS는 데이터의 무단 접근을 방지하기 위해 인증과 권한 부여 메커니즘을 제공하며, 트랜잭션과 제약 조건을 통해 데이터의 정합성을 유지합니다.
  • 동시성 관리
    • DBMS는 여러 사용자가 동시에 데이터에 접근하는 상황에서 데이터의 일관성과 무결성을 유지하기 위해 동시성 관리 기능을 제공합니다.
  • 예시
    • DBMS 예시: MySQL, Oracle, PostgreSQL, MariaDB 등
    • 데이터베이스 예시: 한 회사의 고객 정보, 주문 기록, 재고 데이터 등
  • 비유
    데이터베이스와 DBMS의 관계를 쉽게 이해하려면, 도서관과 사서의 관계로 비유할 수 있습니다
    • 데이터베이스: 도서관의 책들이 저장된 책장(데이터)입니다.
    • DBMS: 도서관의 사서로, 책(데이터)을 찾아주거나 대출/반납을 관리하는 역할을 합니다.

5. 데이터베이스의 종류

관계형 데이터베이스 (Relational Database)

  • 정의: 관계형 데이터베이스는 데이터를 테이블 형태로 저장하며, 각 테이블은 행과 열로 구성됩니다. 테이블 간의 관계를 통해 데이터를 효율적으로 관리합니다.
  • 특징:
    • 데이터를 구조화된 테이블로 저장합니다.
    • SQL을 사용하여 데이터를 관리합니다.
    • 데이터 무결성과 정규화를 통해 데이터 중복을 최소화합니다23.
  • 예시: PostgreSQL, Oracle, MySQL(Oracle), MS-SQL(Microsoft), DB2, Infomix(IBM), Maria DB(Sun Microsystems), Derby(Apache), SQLite(Opensource)

계층형 데이터베이스 (Hierarchical Database)

  • 정의: 계층형 데이터베이스는 데이터를 트리 구조로 저장하며, 부모-자식 관계를 기반으로 합니다.
  • 특징:
    • 데이터를 폴더와 파일 등의 계층 구조로 저장합니다.
    • 데이터 액세스 속도가 빠르지만, 초기 세팅 후 프로세스 수용이 어려울 수 있습니다.
    • 예: 파일 시스템 등.
  • 장점과 단점:
    -장점: 데이터 액세스 속도가 빠름, 데이터 사용량 쉽게 예측.
    • 단점: 상하 종속적인 관계로 구성되어 초기 세팅 후 프로세스 수용이 어려움

네트워크형 데이터베이스 (Network Database)

  • 정의: 네트워크형 데이터베이스는 데이터를 노드와 엣지로 표현하며, 다대다 관계를 허용합니다.
  • 특징:
    • 계층형 데이터베이스의 문제점을 개선하여 다대다 관계를 지원합니다.
    • 그러나 구조가 복잡하여 프로그래머가 모든 구조를 이해해야 하며, 변경이 어려울 수 있습니다.
  • 장점과 단점:
    • 장점: 계층형 데이터베이스의 데이터 중복 문제 해결, 상하 종속적 관계 해결.
    • 단점: 추후 변경 시 복잡한 구조로 인해 변경이 어려움, 데이터 종속성을 해결하지 못함

객체지향 데이터베이스 (Object-Oriented Database)

  • 정의: 객체지향 데이터베이스는 객체 그대로를 데이터베이스의 데이터에 저장하는 방식입니다.
  • 특징:
    • 멀티미디어 데이터의 원활한 처리를 지원합니다.
    • 관계형 데이터베이스의 비즈니스형 데이터 타입만 처리되는 제한을 극복합니다.
  • 예시: Gemstone, Matisse 등.

NoSQL 데이터베이스 (Not Only SQL)

  • 정의: NoSQL 데이터베이스는 관계형 데이터베이스와는 달리 다양한 데이터 모델을 지원합니다.
  • 특징:
    • 키-값, 문서, 와이드 컬럼, 그래프 등 다양한 데이터 모델을 지원합니다.
    • 스키마가 없거나 유동적입니다.
    • 수평 확장이 가능하여 분산형 컴퓨팅에 적합합니다

NoSQL 데이터베이스의 하위 유형

  • 문서 데이터베이스 (Document Database)
    • 예: MongoDB, CouchDB, Realtime Database, Cloud Firestore
    • 각 레코드마다 다른 스키마를 가질 수 있으며, XML, JSON과 같은 문서를 이용해 레코드를 저장합니다
  • 와이드 컬럼 데이터베이스 (Wide Column Database)
    • 예: Cassandra, HBase.
    • 행마다 키와 값을 저장할 때 각각 다른 수의 스키마를 가질 수 있으며, 대량의 데이터 압축과 분산 처리에 적합합니다.
  • 키-값 데이터베이스 (Key-Value Database)
    • 예: Redis, Oracle NoSQL Database.
    • 기본적인 패턴으로 키와 값이 하나의 묶음으로 저장되는 단순한 구조를 가집니다.
  • 그래프 데이터베이스 (Graph Database)
    • 예: Neo4j, OrientDB.
    • 데이터를 노드로 표현하여 노드 사이의 관계를 엣지로 표현하며, 소셜 네트워크나 네트워크 다이어그램에 적합합니다.

0개의 댓글