← 목록으로
✏️ Study

데이터베이스 설계 | 2. 데이터베이스 관리 시스템

2024년 5월 21일

1. DBMS의 발전 배경

  • 파일시스템의문제점
    • 데이터 중복성 : 한 시스템 내에 같은 내용의 데이터가 여러 파일에 저장 관리됨
      • 중복 데이터의 문제점
        • 경제성 : 추가적인 공간과 갱신 비용 증가
        • 일관성 : 데이터 간의 모순, 불일치 발생
        • 무결성 : 데이터 정확성 유지 어려움
      • 파일 시스템의 데이터 중복성 해결 : 데이터통합
    • 데이터 종속성 : 응용 프로그램과 데이터 사이의 의존관계
      • 데이터의 형식 및 길이 변경시 파일에 접근하는 모든 응용 프로그램이 변경되어야 함
    • 동시공유, 보안, 권한부여, 회복기능부족 : 동시 공유 기능을 제공하지 않음, 중복된 여러 개의 파일 보안을 동일 수준으로 유지하기어려움, 파일 안의 레코드나 필드 등 더 작은 단위에 대한 접근 통제 및 권한 부여가 어려움, 응용 프로그램이 파일 사용 중 장애 발생 시 데이터를 일관된 상태로 회복하기 어려움
    • 응용 프로그램 개발이 어려움 : 파일에 접근하여 데이터를 관리하는 모든작업을 응용 프로그램이 담당해야 되므로 사용자요구에 맞는 응용 프로그램 개발이 어려움, 새로운 응용프로그램 개발 시 데이터 읽기, 삽입, 삭제 등 기본적인 데이터 관리 기능을 모두 포함해야 함

2. DBMS의 정의

image.png

image.png

  • DBMS : 데이터의 종속성과 중복성의 문제를 해결하기 위해 데이터베이스를 공용할 수 있도록 관리하는 시스템 소프트웨어

3. DBMS의 필수 기능

  • 정의 기능 : 다양한 형태의 데이터 요구를 지원할 수 있도록 가장 적절한 데이터베이스 구조를 정의할 수있는 기능
    • 스키마를 정의하거나 수정 또는 삭제하기 위해 사용
    • 데이터 사전에 저장 및 반영됨
    • DDL(Data Definition Language)
    • CREATE : 테이블/스키마 생성
    • DROP : 테이블/스키마 삭제
    • ALTER : 컬럼 추가
  • 조작 기능 :사용자와 데이터베이스 사이의 인터페이스를 위한 수단 제공
    • 데이터의 검색, 삽입, 삭제, 수정 등의 처리를 요구하기 위해 사용
    • DML(Data Manipulation Language)
    • INSERT : 삽입
    • DELETE : 삭제
    • SELECT : 검색
    • UPDATE : 갱신
  • 제어 기능 : 데이터의 정확성과 보안성을 유지하는 기능
    • 내부적으로 필요한 규칙 (무결성, 보안, 회복, 동시성 보장 등)이나 기법을 정의하기 위해 사용
    • DCL(Data Control Language)
    • COMMIT : 트랜잭션에서 변경하려는 내용이 데이터베이스에 완전하게 반영됨
    • ROLLBACK : 트랜잭션이 갱신한 사항을 트랜잭션이 수행되기 전의 상태로 되돌림
    • 장점
      • 데이터 중복의 최소화, 데이터 독립성의 확보, 데이터의 공용, 데이터의 일관성과 무결성 유지, 데이터의 보안 보장, 응용 개발
      • 시간 단축 및 편리성 증대, 표준화 및 전체 데이터 요구의 조정
    • 단점
      • 비용의 증대, 복잡한 백업과 회복, 중앙 집중 관리로 인한 취약점 존재 → 신뢰성과 가용성을 저해
  • 여러 단점에도 불구하고 장점이 더 많기에 DBMS 이용

4. DBMS 발전 과정

  • 네트워크 DBMS : 노드와 간선을 이용한 그래프 형태로 구성(Honeywell의IDS)
  • 계층 DBMS : 부모노드와 자식노드를 이용한 트리 형태로 구성(IBM의IMS)
  • 둘 다 복잡한 현실세계 모습을 표현하기 어렵고 구조 변경이 어려움
  • 관계 DBMS : SystemR과 Ingres 프로젝트
    • 장점
      • 테이블 형태로 모델이 간단하여 이해하기 쉬움
      • 사용자 : 자신이 원하는 것만 명시
      • DBMS : 데이터가 어디에 있는지, 어떻게 접근해야 하는지 결정
    • 객체지향 DBMS : 데이터와 프로그램을 그룹화하고, 복잡한 객체들을 이해하기 쉬우며, 유지와 변경이 용이함
    • 객체관계 DBMS : 관계 DBMS +객체지향 개념
    • XML DBMS : XML과 XQuery가 표준화됨
    • Extended RDBMS : XML을 지원, 관계테이블을 XML로 변환하는 파싱을 지원, XML 문서를 LOB 형태로 저장
    • Native XML DBMS : XML 문서를 그대로 저장
    • NoSQL DBMS : 비정형 데이터 저장 및 처리에 대한 요구 증가로 개발
      • 특징
        • 관계형 모델을 사용하지 않으며 테이블 간의 조인 기능 없음
        • 직접 프로그래밍을 하는 등 비SQL 인터페이스를 통한 데이터 액세스
        • 여러 대의 데이터베이스 서버를 묶어서(클러스터링) 하나의 데이터베이스를 구성
        • 관계 데이터베이스에서 지원하는 데이터 처리 완결성 보장하지 않음
        • 데이터의 스키마와 속성들을 다양하게 수용
        • 데이터베이스의 중단 없는 서비스와 자동 복구 기능 지원
        • 다수가 Open Source로 제공
        • 확장성, 가용성, 높은 성능
    • NewSQL DBMS : 정형데이터를 처리하는 관계 DBMS를 유지하면서 비정형 데이터를 처리하기 위한 NoSQL을 추가로 도입하는 부담을 줄이기 위해 등장
      • 특징
        • 안정성과 일관성을 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청할 수 있음
        • 관계 DBMS의 장점과 NoSQL의 확장성 및 유연성을 모두 지원
    • 데이터의 형태, 업무 처리 성격을 고려해 DBMS 선택

5. DBMS Marketplace

  • Enterprise DBMS
    • Oracle, MS SQL Server, Informix / DB2(IBM이 M&A), Unify / Sybase / MySQL, Cubrid, Tibero, Altibase(Main Memory DBMS+RDBMS ⇒ Hybrid DBMS)
    • Desktop DBMS : Access, FoxPro, Paradox, Approach, FileMaker Pro

6. 데이터베이스 시스템의 구성

  • 데이터베이스(DB), 데이터베이스관리시스템(DBMS), 데이터베이스 컴퓨터, 데이터 언어(데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)), 데이터 사용자(데이터베이스 관리자(DBA), 최종 사용자(데이터를조작하기위해데이터베이스에접근하는사람), 응용 프로그래머(프로그래밍언어와DML이용))