Chat 상우

[데이터베이스] DBMS 개요 및 모델링 종류 본문

DB/Mysql

[데이터베이스] DBMS 개요 및 모델링 종류

chat-rilla 2023. 11. 13. 17:29

안녕하세요 it강사 chat상우입니다.

오류가 있는 부분은 댓글로 남겨주시면 감사하겠습니다.

주제 소개를 위한 사진

 

데이터 베이스란?

데이터베이스란 다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어들을 의미한다.

1940년 컴퓨터가 만들어진 이후 1950년대 새로운 저장장치 하드디스크가 등장하여 데이터에 직접적인 접근이 가능하게 되었으며 천공카드와 같은 아날로그 방식으로 관리가 되던 데이터를 컴퓨터를 활용해서 관리하기를 원하기 시작하면서 1960년대부터 file 시스템을 이용하여 데이터를 저장하는 방식이 도입되었다. 그러나 이러한 관리 방식도 꽤 혁신적이었으나 누구나 쉽게 데이터를 잘 정리하고 쉽고 편리하게 관리할 수 있는 시스템을 만들고자 하였으며 이러한 맥락에서 발생한 소프트웨어를 데이터베이스라고 부르기 시작하였다. 1970년대 IBM사의 에드거 프랭크는 Relational Date Base라 불리는 관계형 데이터베이스를 고안하기 시작하였으며 해당 이론을 기반으로 여러 가지 관계형 데이터베이스 시스템이 개발되었으며 현재까지 데이터베이스의 가장 많이 사용되는 이론이 되고 있다. 관계형 데이터베이스를 활용하면 정렬, 분류, 탐색 등에 매우 빠른 속도를 보여주는 특징을 가지고 있다

데이터베이스 모델링 종류

데이터베이스는 1950년대 미국에서 처음 사용하기 시작한 언어로 군비의 집중적·효율적 관리를 위해 컴퓨터를 활용한 도서관 개념을 개발하면서 이를 '데이터의 기지'라는 뜻의 데이터베이스로 일컬었다.

 

데이터베이스 특징

기존 파일시스템을 사용하면서 문제가 되었던 데이터 중복과 데이터 불일치 등의 문제로 새롭게 고안된 데이터베이스는 다음과 같은 특징을 갖는다.

  • 데이터 불일치란? 저장된 파일을 수정하는 도중 파일을 불러온다면 데이터가 동기화 문제가 발생하여 데이터 불일치되는 것이다.
  1. 실시간 접근성
    • 사용자가 데이터를 요청하면 실시간으로 결과를 서비스한다.
  2. 계속적인 변화
    • 데이터값은 시간에 따라 항상 변화한다.
  3. 동시 공유
    • 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.
  4. 내용에 따른 참조
    • 데이터베이스에 저장된 데이터는 데이터의 물리적 위치가 아닌 데이터 값에 따라 참조된다.

 

DBMS (DataBase Management System)란?

  • 데이터베이스에서 데이터를 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램이다.

  • DBMS의 기능
    • 데이터 추출 : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출한다.
    • 데이터 조작 : 데이터를 조작하는 소프트웨어(응용 프로그램)의 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원
    • 데이터 정의 : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함
    • 데이터 제어 : 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함(백업과 회복, 동시성 제어 등의 기능을 지원)
  • DBMS의 사용 이점
    • 데이터 독립화 : 데이터와 응용 프로그램을 분리시킴으로써 상호 영향 정도를 줄일 수 있다.
    • 데이터 중복최소화(데이터 무결성) : 중복되는 데이터를 최소화시키면 데이터 무결성 손상될 가능성이 저하된다.
    • 데이터 보안 향상 : 접근한 사용자의 권한에 맞게 데이터를 제안, 암호와 한다.
    • 관리 편의성 : 다양한 방식으로 데이터를 백업할 수 있다.

계층형과 네트워크형 데이터베이스
관계형데이터베이스

  • 객체- 관계형 데이터베이스(RDBMS)
    1. 사용자 정의 타입을 지원한다.
      • 사용자가 임의로 정한 데이터 유형을 말하며, 기본형 데이터 타입을 뛰어넘어 다양한 형태의 데이터를 다룰 수 있다.
    2. 참조(reference) 타입을 지원한다.
      • 객체들로 이루어진 객체 테이블의 경우 하나의 레코드가 다른 레코드를 참조할 수 있는 것을 말한다.
    3. 중첩 테이블을 지원한다.
      • 테이블을 구성하는 로우(Row) 자체가 또 다른 테이블로 구성되는 테이블을 지원하며 조금 더 복잡하고 복합적인 표현이 가능하다.
    4. 대단위 객체의 저장, 추출이 가능하다.
      • 이미지, 오디오, 비디오 등을 저장하기 위한 대단위 객체(lob)를 지원한다.