본문 바로가기

SQLD

2일차

요즘 비트코인에 빠져서 차트 보느라 공부가 느리군요... 다시 열심히 하겠습니다. 참고로 전 기억력이 매우 안좋아서 자격증 공부같은게 매우 걱정됩니다.. 열심히 해보죠.

 

프로젝트 생명주기에서 데이터 모델링{

 정보공학이나 구조적 방법론의 데이터 모델링

  1) 분석단계 : 업무 중심의 논리적인 데이터 모델링 수행

  2) 설계단계 : 하드웨어와 성능을 고려한 물리적인 데이터 모델링 수행

 나선형 모델의 데이터 모델링(ex. RUP, 미르미)

  1) 업무 크기에 따라 논리적 데이터 모델과 물리적 데이터 모델이 분석, 설계단계 양쪽에서 수행이 된다.

객체지향 에서는 데이터와 프로세스를 구분하지 않고 같은 클래스에 넣어 일체형으로 진행한다.

}

 

데이터 독립의 필요성

 일체적 구성에서 기능화 된 구성의 가장 큰 목적은 개별 형식이 가지는 고유의 기능을 유지시키며 기능을 극대화 하는 것임. SOA의 서비스 라고 하는 단위도 독립적인 비즈니스로 처리 가능한 단위를 서비스라 정의 한다. 데이터독립성을 이해하기 위해서는 데이터 독립성의 개념이 출현하게된 배경을 이해할 필요가 있다.

 데이터독립성의 반대말은 데이터종속성이다. 종속의 주체는 보통 응용을 지칭하는 경우이다. 응용이란 사용자 요구사항을 처리하는 사용자접점의 인터페이스 오브젝트 이다.

 사용자가 접근하는 유형에 따라 데이터를 구성하는 방법이 영향을 받게 된다. 데이터 독립성은 지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며 중복된 데이터를 줄이기 위한 목적이 있다. 또한 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위한 목적으로 데이터 독립성 개념이 출현했다고도 볼 수 있다.

 데이터 독립성을 확보하면 각 View의 독립성을 유지하고 다른 계층의 View에 영향을 주지 않고 데이터 변경이 가능해진다. 또한 단계발 Schema에 따라 데이터정의어와 데이터조작어를 다르게 설정해서 정의와 사용을 구분해서 사용할 수 있다.

 데이터독립성을 이해하기 위해서는 3 단계로 표현된 ANSI 표준 모델을 살펴보면 된다.

 

ANSI/SPARC의 3단계 데구성의 데이터 독립성 모델은 외부 단계와 개념적 단계, 내부적 단계로 구성된 서로 간섭되지 않는 모델을 제시하고 있다.

 1) 외부단계: 사용자와 가까운 단계로 사용자 개개인이 보는 자료에 대한 관점과 관련이 있는 부분이다. 사용자가 처리하고자 하는 데이터 유형과 관점, 방법에 따라 다른 스키마 구조를 가지고 있는 것. 

 2) 개념단계: 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마 구조로 디자인한 형태. 우리가 쉽게 이해하는 데이터 모델은 통합된 뷰를 설계하는 도구라고 이해해도 무방.

 3) 내부단계: 데이터가 물리적으로 저장된 방법에 대한 스키마 구조.

 

데이터 독립성 요소 

 1) 외부 스키마: 개개 사용자가 보는 개인적인 View에 대한 DB 스키마 이다. DB의 개개 사용자나 응용프로그래머가 접근하는 DB를 정의한다. (사용자 관점, 접근 특성에 따른 스키마 구성)

 2) 개념 스키마: 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는것. 모든 응용시스템들이나 사용자들이 필요로 하는 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마임. (통합관점)

 3) 내부 스키마: 내부단계, 내부 스키마로 구성 되어있음. DB가 물리적으로 저장된 형식. 물리적 장치에서 데이터가 저장되는 방법을 표현하는 스키마. (물리적 저장구조)

--> 데이터베이스 스키마 구조는 3 단계로 구분되고 상호 독립적인 의미와 고유한 기능을 가진다. 데이터 모델링은 통합관점의 뷰를 가지고 있는 개념 스키마를 만들어가는 과정으로 이해할 수 있다.

 

두 영역의 데이터 독립성

 데이터 독립성에 의해 3 단계로 개념이 분리되면서 각 영역에 대한 독립성을 지정하는 것이 논리적인 독립성과 물리적인 독립성이다.

 1) 논리적 독립성: 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는것. 논리적인 구조가 변경되어도 응용 프로그램에 영향 없다. 사용자 특성에 맞게 변경 가능하고 통합 구조 변경 가능하다.

 2) 물리적 독립성: 내부스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원하는것이다. 저장 장치의 구조 변경은 응용프로그램과 개념스키마에 영향이 없다. 물리적인 구조 영향없이 개념구조 변경가능. 반대도 가능.

 --> 논리적인 데이터 독립성은 외부의 변경에도 개념스키마가 변하지 않는 특징을 가진다. 새로운 요건의 추가/삭제에 따라 칼럼이 변할수는 있지만 이런 변화가 개별 화면이나 프로세스에 의해서 일어나는게 아니라 전체적인 업무요건을 고려해 종적으로 영향을 받는 것이다.

 

사상(Mapping)

 '매핑'. 상호 독립적인 개념을 연결시켜주는 다리를 뜻함. 데이터 독립성에서는 크게 2가지의 매핑이 도출됨.

 1) 외부적/개념적 사상: 외부적 뷰와 개념적 뷰의 상호 관련성을 정의함.

 2) 개념적/내부적 사상: 개념적 뷰와 저장된 DB의 상호관련성 정의.

외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결된다는 것이 논리적 사상이다. 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조 = 물리적사상. 데이터독립성을 보장하기 위해서는 매핑을 하는 스크립트를 DBA가 필요할 때마다 변경해 주어야 한다. 각 단계의 독립성을 보장하기 위해 변경사항이 발생했을 때 DBA가 적절하게 작업을 해주기 때문에 독립성이 보장된다.

(사상이 잘 이해 안돼서 거의 모든 내용을 옮겨 적었네요...)

 

 데이터 모델링을 구성하는 중요한 개념 세 가지가 있다. 이것은 데이터 모델에 대한 이해의 근간이 되므로 반드시 기억할 필요가 있다.

 1) 업무가 관여하는 어떤것

 2) 어떤 것이 가지는 성격

 3) 업무가 관여하는 어떤 것 간의 관계

이 세가지는 데이터 모델링을 완성해 가는 핵심 개념으로서 결국 엔티티, 속성, 관계로 인식되는 것이다.

이 세상의 모든 사람, 사물, 개념 등은 어떤 것, 관계, 성격의 구분을 통해 분류 할 수 있다. 

 

 

'SQLD' 카테고리의 다른 글

5일차- 문제풀이  (0) 2021.02.14
4일차- 엔티티  (0) 2021.02.13
4일차 - 문제풀이  (0) 2021.02.13
3일차  (0) 2021.02.10
1일차  (0) 2021.02.04