Slow is better than NOTHING

Computer Science/2. Architecture

[DB] 데이터 종속성과 중복성

Jeff_Kang 2019. 5. 20. 11:43
반응형

 초기의 데이터 처리 시스템에서는 각 응용 프로그램이 개별적으로 자기의 데이터를 "File" 로 관리 유지하였다. 

데이터를 공용할 수 없는 이러한 파일 시스템에서의 가장 큰 문제점은 크게 데이터 종속성(Data dependency)데이터 중복성(Data redundancy)으로 집약시킬 수 있다.

 

1. 데이터 종속성

 

 데이터 종속성이란 응용 프로그램과 데이터 간의 상호 의존 관계를 말한다. 데이터 파일이 보조 기억장치에 구성되는 방법이나 저장된 데이터의 접근 방법이 각 응용 프로그램 속에 명세되어야 하는 상황에서 자연히 응용 프로그램은 접근하려는 데이터의 구성 방법이나 접근 방법에 맞게 작성되어야 한다. 따라서 데이터의 구성 방법이나 접근 방법을 변경 시킬 때는 자연히 이것을 기초로 한 응용 프로그램도 같이 변경해야하는데 이것을 데이터 종속성이라고 한다.

 

2. 데이터 중복성

 

 현실 세계에서는 실제로 어느 한 응용 프로그램이 사용하는 데이터를 또 다른 응용 프로그램이 사용할 수 있도록 하면 아주 편리한 경우가 상당히 많이 있다. 때에 따라서는 이 프로그램들은 똑같은 내용의 데이터를 똑같은 양식에 똑같은 구조로 사용하는 경우도 있고, 때에 따라 내용의 데이터를 양식과 구조만 다르게 사용하는 경우도 있다. 그러나 논리적 파일을 직접 그대로 물리적 파일 구조로 구현한 '파일 시스템' 에서는 내용이 똑같은 데이터를 필요로 하는 경우이거나, 부분적으로 같은 내용의 데이터를 요구하는 경우에도 응용 프로그램에서 사용하는 구조가 다르면 또 다시 별도의 파일을 만들어 사용해야한다. 결과적으로 파일 시스템에서는 내용이 같으면서도 구조가 다른 데이터가 많이 존재하게 된다. 이와 같이 한 시스템 내에 내용이 같은 데이터가 중복되게 저장 관리되는 것을 데이터 중복성이라고 한다.

 

 이러한 데이터 중복성은 데이터의 일관성(data consistency), 보안성(security) , 경제성(economics), 무결성(integrity) 측면에서 다양한 문제점을 야기시키기 때문에 바람직하지 못하다.

 

 

* DB란?

데이터베이스란 어느 한 조직의 여러 응용 시스템들이 공용할 수 있도록 통합 저장된 운영데이터이다. 

 - 실시간 접근성(Real Time Accessibility)

 - 계속적인 변화(Continuous Evolution)

 - 동시 공용(Concurrent Sharing)

 - 내용에 의한 참조(Contents Reference)

 

* Data inconsistency (데이터 불일치) 

 현실 세계의 어느 한 사실을 나타내는 두 개의 데이터가 있을 때, 오직 하나의 데이터만 변경되고 다른 하나는 변경되지 않는다면 데이터 간의 불일치성, 즉 모순성을 갖게된다. 모순성을 내포한 DB는 서로 상충되는 정보를 제공하게 되고 DB의 유용성을 저해하게 된다. DBMS는 이 데이터 중복을 제어하고 데이터의 일관성을 유지하도록 한다.

 

* DB와 FIle의 차이점?

DB는 파일 구조에서 데이터 종속성과 데이터 중복성을 제거한 것이다.

 

* Data independency (데이터 독립성)

DBMS의 궁극적인 목적은 데이터의 논리적 구조나 물리적 구조가 변경되더라도 응용 프로그램이 영향을 받지 않는 데이터 독립성을 제공하는 것이다. 데이터 독립성은 논리적, 물리적 관점에서 살펴볼 수 있다.

 

 1) 논리적 데이터 독립성

DBMS가 데이터베이스의 논리적 구조를 변경시키더라도 기존 응용 프로그램에 아무런 영향을 주지 않는 것을 말한다. 기술적으로 말해서 이 논리적 데이터 독립성은 DBMS가 하나의 논리적 데이터 구조를 가지고 여러 응용 프로그램들이 제각각 요구하는 형태의 논리적 구조로 사상(Mapping) 시켜 지원해주는 것이다.

 

 2) 물리적 데이터 독립성

하나의 논리적 구조로 표현된 DB는 결국에는 물리적 자장 장치에 구현되어야 한다. 이것은 실제로 논리적 DB가 하나의 물리적 구조로 표현될 수 밖에 없다는 것인데, DB는 하나의 물리적 구조로 여러 응용 프로그램을 지원해야한다. 그러나 새로운 저장 장치의 개발이나 접근 방법의 개발로 성능을 개선시키기 위해 DB의 물리적 구조를 변경시켜야 될 때가 있다. 이런 경우에 이 DB의 물리적 구조를 변경하더라도 DB를 이용하는 응용 프로그램들에 아무런 변경을 요구하지 않는 것이 물리적 데이터 독립성이다. 이것은 하나의 논리적 구조와 이를 지원할 수 있는 여러가지 상이한 물리적 구조 사이의 사상(Mapping) 을 통해 지원해주는 것이다.

 

DBMS가 데이터 독립성을 구현하는 방법으로 대응 관계에 대한 정의인 사상(Mapping)을 유지하고 관리한다. 이 사상정보는 DBMS가 궁극적으로 데이터 독립성을 구현하는 방법으로서 중요한 역할을 하고 있다.

외부/개념 사상은 어느 특정 외부 스키마와 개념 스키마 간의 대응 관계를 정의하는데 이를 응용 인터페이스라고 한다. 응용 인터페이스를 잘 변경시켜준다면 논리적 데이터 독립성을 제공해줄 수 있게 된다.

개념/내부 사상은 개념 스키마와 내부 스키마 간의 대응 관계를 정의하는 것인데 저장 인터페이스 라고 한다. 이것은 개체의 각 속성이 내부 필드와 어떻게 대응되는가를 정의하고 있다. 즉, 이 저장 인터페이스를 이용한다면 물리적 데이터 독립성을 제공해줄 수 있게 된다.

 

* 시스템 카탈로그 : 데이터 사전(Data Dictionary) 라고도 하는데, DB에 저장된 모든 데이터 Entity들의 정의나 명세에 대한 정보를 유지 관리하는 시스템. 시스템 카탈로그는 사용자가 접근해서 검색해볼 수 있는 반면에, 데이터 디렉터리는 시스템만 접근할 수 있다.

 


 

반응형

'Computer Science > 2. Architecture' 카테고리의 다른 글

[DB] 정규화  (0) 2019.05.20
Cache  (0) 2019.05.09