0%

데이터베이스 개요(2)

DBMS의 배경

DBMS가 생겨나기 이전에는 파일로 데이터들을 관리했다. 하지만 파일로 데이터를 관리하다 보니 여러가지 문제가 발생하였다.

파일 시스템의 제한은 다음과 같다.

  1. 논리적 파일 구조(사용자 관점)와 물리적 파일 구조(저장 관점)가 일대일 대응을 한다.
  2. 프로그래머가 물리적 데이터 구조의 접근을 프로그램 내에 직접 구현해야 한다.
  3. 데이터 공용의 어려움을 겪는다.

파일 시스템의 문제점

데이터 중복성

한 시스템 내에서 내용이 같은 데이터가 여러 파일에 저장 관리된다.

다음과 같이 두 파일에 데이터를 분류한다고 가정한다.

  • 고객 데이터 파일
아이디 이름 연락처 주소 비밀번호
  • 주문 데이터 파일
주문번호 아이디 이름 연락처 주소 제품 가격

문제점이 발생한다.

  • 경제성: 파일을 보면 아이디, 이름, 연락처, 주소가 중복이 된다. 물리적인 공간이 필요함과 수정이 필요 할 때 두 파일 모두 수정을 해야한다.
  • 일관성: 만일 고객 파일의 연락처만 수정되고 주문 파일의 연락처가 수정이 되지 않는 다면 데이터의 불일치가 발생하게 된다.
  • 무결성: 고객의 아이디의 규칙이 8자리 이상이라 해보자. 하지만 파일에서는 이 규칙을 어길수도 있다.

데이터 종속성

프로그램과 데이터 사이의 의존적 관계가 생성된다. 파일에서 다음과 같이 데이터를 분류한다고 가정해 보자.

이름 나이

하지만 여기에 성별이라는 분류를 추가하고 싶다면 모든 파일에서 수정을 해야 한다.

다양한 기능 부족

파일은 위에서 말한 문제점 말고도 여러가지 기능적으로 부족한게 있다.

  • 동시 공유 기능을 제공하지 않는다.
  • 파일 안의 레코드나 필드 같은 작은 단위에 대한 접근 통제와 구체적인 권한 부여가 어렵다.
  • 프로그램이 파일을 사용하는 도중에 장애가 발생하면 데이터를 일관된 상태로 회복하기 어렵다.

DBMS의 탄생

파일 시스템의 문제점들을 해결할려고 DBMS가 생겼다. DBMS는 프로그램과 데이터베이스를 연결해 주는 시스템 소프트웨어이다. 프로그램은 데이터베이스의 생성, 접근 방법등 자세한 설명 없이도 DBMS에 원하는 데이터와 처리 작업만 요청하면 된다.

사용자 <-> 프로그램 <-> DBMS <-> 데이터 베이스

DBMS의 기능

정의 기능

다양한 형태의 데이터 요구를 지원하도록 데이터베이스의 구조를 정의 하는 기능이다.

  • DDL(Data Definition Language)
    • CREATE, ALTER, DROP

조작 기능

사용자와 데이터베이스 사이의 인터페이스를 위한 기능이다.

  • DML(Data Manipulation Language)
    • SELECT, INSERT, DELETE, UPDATE

제어 기능

데이터의 정확성과 보안성을 유지하는 기능이다.

  • DCL(Data Control Language)
    • COMMIT, ROLLBACK, GRANT, REVOKE

DBMS의 단점

DBMS에도 단점이 존재한다. 그래도 단점보다 장점이 많기 때문에 DBMS를 이용한다.

1.비용이 증가한다.

DBMS는 컴퓨터 자원을 많이 사용한다. 따라서 파일보다 시스템 자원을 많이 사용하므로 비용이 많이 든다.

2.백업과 회복이 복잡하다.

DBMS는 복합적이고 복잡하기 때문에 백업과 회복 기술을 구축하기 어렵다.

3.중앙 집중 관리로 취약점 존재

DBMS는 통합 시스템이므로 문제가 발생하면 시스템 전반에 걸쳐 신뢰성과 가용성을 저해 할 수 있다.