728x90
반응형


SQLD를 공부하기에 앞서서 SQL-D 폴더에 업데이트 하는 내용의 출처는 모두 

http://www.dbguide.net 이곳에서 가져왔다.









제 1절 데이터 모델의 이해


1. 모델링의 이해


가. 모델링의 정의



1) Webster 사전에 의한 정의

가설적 또는 일정 약식에 맞춘 표현 또는 어떤 것에 대한 예비 표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것

2) 복잡한 현실세계를 단순화 시켜 표현하는 것

3) 모델이란 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것

4) 모델이란 현실세계의 추상화된 반영




나. 모델링의 특징

1) 추상화 : 현실세계를 일정한 형식에 맞추어 표현을 함, 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현

2) 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해 할 수 있도록 함

3) 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술


모델링 = 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법




다. 모델링의 세 가지 관점

1) 데이터관점 : 업무가 어떤 데이터와 관련있는지, 또는 데이터간의 관계는 무엇인지에 대하여 모델링 (What)

2) 프로세스관점 : 업무가 실제로 하고 있는 일은 무엇인지, 또는 무엇을 해야하는지를 모델링 (How)

3) 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법(Interaction)








2. 데이터 모델의 기본 개념의 이해


가. 데이터 모델링의 정의


데이터모델링이란 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법, 현실세계의 데이터에 대해 약속된 표기법에 의해 표현되는 과정, 데이터베이스를 구축하기 위한 분석/설계의 과정이라고 할 수 있다.




나. 데이터 모델이 제공하는 기능

- 현재 시스템의 모습 또는 원하는 모습으로 가시화

- 시스템의 구조와 행동을 명세화

- 시스템을 구축하는 과정에서의 문서화

- 다른 영역의 세부 사항을 숨김으로써 다양한 관점을 제공 (데이터를 추상화하는 과정에서 다양한 관점에서 볼 수 있음)

- 특정 목표에 따라 구체화된 상세 수준의 표현방법을 제공




3. 데이터 모델링의 중요성 및 유의점


가. 파급효과(Leverage)

시스템 구축을 하는데 있어서 많은 어플리케이션들이 단위테스트, 병행테스트, 통합테스트를 수행하게 된다.

만약 이러한 시점에서 데이터 모델의 변경이 불가피한 상황이 발생 할 때, ㄷ이터 구조의 변경에 따른 영향 분석 등이 일어나게 된다.

그 이후에 실제적인 변경작업을 수행하게 되는데 이는 전체 시스템 구축 프로젝트에서 큰 위험요소로 작용하게 된다.

그렇기 때문에 다른 어떤 설계 과정보다 데이터 설계를 하는 것은 파급효과를 지니기 때문에 중요성으로 간주될 수 있다.




나. 복잡한 정보 요구사항의 간결한 표현(Conciseness)

데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구이다.

정보 요구사항을 파악하는 가장 좋은 방법은 수 많은 기능적인 요구사항을 파악하는 것 보다, 간결하게 그려져있는 데이터모델을 보면서 파악하는 것이 빠르다.

이렇게 그려진 데이터 모델을 보면서 파악하기 위해, 데이터모델은 요구사항이 정확하고 간결하게 표현되어야 한다는 것이다.




다. 데이터 품질(Data Quality)

기업에서 데이터는 오랫동안 저장되어질 수 있는데, 만약 정확성이 떨어지는 데이터가 존재하면 안된다.

이러한 데이터 품질의 문제는 데이터 구조가 설계되는 초기에 데이터가 조금 밖에 쌓이지 않을 경우 인지할 수 없게 된다.

데이터 품질의 문제가 야기되는 중대한 이유 중 하나가 바로 데이터 구조의 문제이다.


데이터구조는 다음과 같은 세가지를 유의하여 모델링 해야한다.


1) 중복(Duplication)

데이터베이스가 여러 장소에 같은 정보를 저장하지 않도록 한다.


2) 비유연성(Inflexibility)

데이터모델이 수시로 변경될 경우 유지보수가 어려워 질 수 있다. 이를 위해 데이터의 정의를 데이터 사용 프로세스와 분리해야한다.

그러므로 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄이도록 한다..


3) 비일관성(Inconsistency)

개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문에 데이터의 중복이 없더라도 비일관성이 발생할 수 있다.

그러므로 데이터간의 상호 연관 관계에 대한 명확한 정의가 필요하다.





4. 데이터 모델링의 3단계 진행





개념적 데이터 모델링(= 전사적 데이터 모델, Enterprise Data Model)

개념적 데이터베이스 설계는 조직, 사용자의 데이터 요구사항을 찾고 분석하는데서 시작한다. 

이 단계에서 핵심 엔티티와 그들 간의 관계를 발견하고, 그것을 표현하기 위해서 엔티티-관계 다이어그램을 생성하는 것이다.

생성된 엔티티-관계 다이어그램은 조직과 다양한 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해서 사용하게 된다.


개념 데이터 모델을 통해 조직의 데이터 요구를 공식화 하는 것은 두 가지의 중요한 기능을 지원하게 된다.

첫째, 사용자와 시스템 개발자가 데이터 요구사항을 발견하는 것을 지원

둘째, 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용




논리적 데이터 모델링

논리 데이터 모델링은 데이터베이스 설계 프로세스의 Input으로써 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정이다.

논리 데이터 모델링의 결과로 얻어지는 논리 데이터 모델은 데이터 모델링이 최종적으로 완료된 상태라고 정의할 수 있다.

즉, 물리적인 스키마를 설계하기 전 단계의 데이터 모델 상태를 일컫는 말이다.


논리적 데이터 모델링의 핵심은 어떻게 데이터를 엑세스하고, 누가 데이터에 엑세스하며, 그러한 엑세스의 전산화와는 다르게 독립적으로 기록하는 것이다. 즉, 누가(Who), 어떻게(How : Process), 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실들을 인식하여 기록하는 것이다.


데이터 모델링 과정에서 가장 핵심이 되는 부분이 논리 데이터 모델링이라고 할 수 있다.


이 단계에서 수행하는 또 한가지 중요한 활동은 정규화이다. 정규화는 노리 데이터 모델 상세화 과정의 대표적인 활동으로, 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔티티에 배치되도록 함으로써 보다 신뢰성 있는 데이터 구조를 얻는데 목적이 있다.

논리 데이터 모델의 상세화는 식별자 확정, 정규화, M:M관계 해서, 참조 무결성 규칙 정의 등을 들 수 있고, 추가적으로 이력 관리에 대한 전략을 정의하여 이를 논리 데이터 모델에 반영함으로써 데이터 모델링을 완료하게 된다.



 

물리적 데이터 모델링

물리 데이터 모델링은 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다루게 된다.

데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의를 물리적 스키마라고 한다. 이 단계에서 결정되는 것은 테이블, 칼럼 등으로 표현되는 물리적인 저장구조와 사용될 저장장치, 자료를 추출하기 위해 사용될 접근 방법 등이 있다.



실질적으로 현실 프로젝트에서는 개념적 모델링, 논리적모델링, 물리적 모델링 순으로 작업하는 경우가 드물고,

보통 개념적 데이터 모델링과 논리적 데이터 모델링을 한꺼번에 수행하여 물리적 데이터 모델링을 수행하는 방식으로 진행된다.





5. 프로젝트 생명주기(Life Cycle)에서 데이터 모델링







6. 데이터 모델링에서 데이터독립성의 이해


가. 데이터 독립성의 필요성


어떤 단위에 대해 독립적인 의미를 부여하고 그것을 효과적으로 구현하게 되면 자신이 가지는 고유한 특징을 명확하게 할 뿐만 아니라

다른 기능의 변경으로부터 쉽게 변경되지 않고 자신의 고유한 기능을 가지고 기능을 제공하는 장점을 가질 수 있게 된다.


데이터 독립성의 반대말은 데이터 종속성이다.


데이터종속성이 심해지게 되면 유지보수 비용증가, 데이터 중복성 증가, 데이터 복잡도 증가, 요구사항 대응 저하 등의 문제가 발생하게 된다.

그래서 데이터 독립성을 확보하게 되면 각 View의 독립성을 유지하고 계층별 View에 영향을 미치지 않고 변경이 가능하게 되고, 

단계별 스키마에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공하게 된다.




나. 데이터베이스 3단계 구조




데이터 독립성 3단계에서 외부단계는 사용자와 가까운 단계로 사용자 개개인이 보는 자료에 대한 관점과 관련이 있는 부분이다.

즉, 사용자가 처리하고자 하는 데이터 유형에 따라, 관점에 따라, 방법에 따라 다른 스키마 구조를 가지고 있다.


개념단계는 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마구조로 디자인한 형태이다.


마지막으로 내부적 단계는 데이터가 물리적으로 저장된 방법에 대한 스키마 구조를 말한다.




다. 데이터독립성 요소


항목 

내용 

비고 

외부 스키마

(External Schema) 

- View 단계 여러 개의 사용자 관점으로 구성, 즉 개개 사용자 단계로서 개개 사용자가 보는 개인적 DB 스키마 

사용자 관점이고, 접근하는 특성에 따른 스키마 구성 

 개념 스키마

(Conceptual Schema)

- 개념단계 하나의 개념적 스키마로 구성 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것

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

 통합관점 

 내부스키마

(Internal Schema)

- 내부단계, 내부 스키마로 구성, DB가 물리적으로 저장된 형식

- 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 ㅅ키마 

물리적 저장구조 




라. 두 영역의 데이터 독립성


 독립성 

내용 

특징 

 논리적 독립성 

- 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것 

- 논리적 구조가 변경되어도 응용 프로그램에는 영향 없음

- 사용자 특성에 맞는 변경가능

- 통합 구조 변경 가능 

- 외부의 변경에도 개념스키마가 변하지 않음

 물리적 독립성

 - 내부스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원하는 것

- 저장장치의 구조변경은 응용프로그램과 개념스키마에 영향 없음

 - 물리적 구조 영향 없이 개념구조 변경가능

 - 개념구조 영향 없이 물리적인 구조 변경 가능




마. 사상(Mapping)


외부적 / 개념적 사상 (논리적 사상)은 외부적 뷰와 개념적 뷰의 상호관련성을 정의하게 된다. 예를 들어서 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있다. 개념적 뷰의 필드타입은 변화가 없다.


개념적 / 내부적 사상 (물리적 사상)은 개념적 뷰와 저장된 데이터베이스의 상호관련성을 정의하게 된다. 예를 들어서 만약 저장된 데이터베이스 구조가 바뀐다면 개념적 / 내부적 사상이 바뀌어야 개념적 스키마가 그대로 남아있게 된다.


즉, 외부 화면이나 사용자에게 인터페이스 하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결되는 것이 논리적인 사상이다.

또한 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조가 물리적 사상이다.





7. 데이터 모델링의 중요한 세 가지 개념


가. 데이터 모델링의 세 가지 요소

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

2) 어떤 것이 가지는 성격(Attributes)

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


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

사물이나 사건들을 지칭하는 용어를 어떤것이라고 하고, 그 어떤것이 가지는 세부적인 사항을 성격이라고 하고, 또한

각각 어떤것은 다른 어떤것과 연관성을 가질 수 있는데 이것을 관계라고 하는 것이다.





8. 데이터 모델링의 이해관계자






9. 데이터 모델의 표기법인 ERD의 이해


- Chen 표기법 : 1976년 피터첸이 Entity-Relationship Model(E-R Model)이라는 표기법을 만듬








10. 좋은 데이터 모델의 요소


가. 완전성(Completeness)

나. 중복배제(Non-Redundancy)

다. 업무규칙(Business Rules)

라. 데이터 재사용(Data Reusability)

마. 의사소통(Communication)

바. 통합성(Integration)








728x90
반응형

'Computer Science > SQL-D' 카테고리의 다른 글

[SQLD] 6. 성능 데이터 모델링의 개요  (0) 2016.08.04
[SQLD] 5. 식별자(Identifiers)  (0) 2016.08.01
[SQLD] 4. 관계(Relationship)  (0) 2016.08.01
[SQLD] 3. 속성(Attribute)  (0) 2016.08.01
[SQLD] 2. 엔티티(Entity)  (0) 2016.08.01