데이터베이스에 대한 이야기 - 세번째 시간


IT Story/Database이야기 2010.10.28 17:31



데이터 베이스 설계 하고 개발하는 것은

- 요구 사항 분석
- 개념적 모델링
- 데이터 베이스 설계
- 데이터 베이스 생성

이런 과정을 거쳐서 데이터 베이스를 설계 하게 됩니다.

요구사항의 분석에는 첫번째로 인터뷰를 해야 합니다. 그래서 전문분야라면 그 분야의 전문용어는 잘알아놓아야겠죠^^
이런 것을 바탕으로

개념적 모델링을 하고 다시 첫번째 요구사항분석과 섞어서 완성이되면 그때서야 데이터베이스를 설계합니다.

요구사항분석에서는

잠재적 사용자들의 요구사항을 이해하고 분석하며, 면담과 문서양식을 이용합니다.

개념적모델링은 (약도의개념)

DBMS와 독립적으로 사용자들의 데이터 요구사항을 그림의 형태로 간단한 표현하고, 개체 관계모형이 많이사용됩니다.

물론, 사용자들의 정보요구에 대한 정확한 이해가 필요하고, 사용자들과의 의사소통에 활용가능합니다. 세부적인 설계에 들어가기전에 검증용으로 활용을 하게 됩니다.

데이터베이스 설계는

개념적모델을 특정 데이터베이스 관리시스템에 적용할 수 있도록 만들며, 관계형 데이터베이스의 겨우 효율적으로 데이터를 일관성 있게 유지 할 수 있는 바람직한 릴레이션 구조로 표현해야 됩니다.

데이터베이스 생성은 릴레이션 구조를 관계형 데이터 베이스의 테이블로 변환을 시킵니다.


설계도가 완성되면, 실제로 만들 집을 콘크리트로 만들지, 나무로 만들지, 이런 걸 결정해야겠죠.

이는 마이크로소프트사의 DB를 쓸꺼냐, 오라클로 쓸꺼냐 하는 고민과 같습니다. 이런 DB를 만들기 프로그램에 따라서

물리적인 모델이 달라지게 됩니다.

굉장히 쉬워보이고 간단해보이지만, 이게 실제로 데이터베이스를 만들 때 실질적으로 잘 이루어지지 않는 것이 현실입니다.


개념적모델링에서 개체와 관계에 대해서 알아보면,

Database Manegement service와 독립적으로 사용자들의 데이터 요구사항을 표현합니다.

또한 개체관계모델이란 개체와속성 그리고 이들간의 관계의 관점에서 현실세계를 표현하는 모델로 보시면 됩니다.

개체라는 현실세계에 존재하며 다른 개체들과 구별할 수 있는 것입니다.

데이터의 형태로 관리대상이되며 일반적으로 명사형으로 표현됩니다.
- 개체집합이란 같은 성들로 기술 할 수 있는 개체들의 모임


그럼 속성은 뭘까요 ? 속성은 개체를 기술해주는 특성입니다.

직원 개체의 속성이라면 직원번호, 이름, 부서, 성별 취미, 주소 등이 있습니다 !! 이해가시나요 ?


개체,속성 관계의 파악을 보면,

개체는 명사가 주로오게되며, 관리해야 할 속성을 기준으로 개체를 선정합니다.

속성은 최소단위로 분할하며, 속성값에 복합값이 없도록 합니다. 유도속성은 제외되며, 기본키 속성을 파악합니다.

관계는 개체들간의 연관관계를 파악하는 것입니다.

관계를 보면 예를 들어 직원은 특정부서에 소속된다(소속 관계) 공급업체에게 제품을 주문한다(발주 관계) 고객에게는 수주를 받는다(수주 관계) 일반적으로 동사형으로 표현이 됩니다. ~한다. ~된다로 말이죠.

이런 관계의 대응수를 보면 일대일 관계, 일대다 관계, 다대다 관계가 있습니다.



이제 데이터 베이스 설계를 보면, 개념적 모델을 DBMS에 적용할 수 있는 형태로 변경을 합니다.
변환 방식에는
위에서 봤던 개체 및 관계는 테이블에
속성은 테이블의 속성에 관계는 참조키 속성으로 변경이 되겠습니다.


따라서 데이터 모델링을 하게 되는데, 데이터 모델이란,
현실 세계의 정보구조를 데이터베이스에 표현하는 과정이라고 보시면 되곘습니다.

즉 현실세계 - 개념세계 - 컴퓨터세계로 나누어지게 됩니다.
이런 데이터 모델에는
1. 개념적 모델링  (정보모델링이라고도 하는데,)
 인간의 이해를 위하여 현실세계에 대한 인식을 추상적 개념으로 표현하는 과정
2. 데이터 모델링 
 개념 세계의 정보구조를 컴퓨터가 이해하고 처리할 수 있도록 바꾸어주는 과정입니다. 
 개념세계의 정보구조로부터 컴퓨터가 지원하는 논리적 데이터 구조로 변환시키는 과정도 포함됩니다.
3. 데이터 구조화
 
논리적 데이터구조를 컴퓨터가 접근할 수 있는 저장장치에 표현할 수 있도록 물리적 데이터 구조로 변환시키는 과정입니다.






저작자 표시 비영리
신고

WRITTEN BY
ShakeJ

0 ,