모델링 개념정리
1.개념(Conceptual)설계
Entity 는 관리대상이 되는 속성의 집합이며 회원, 상품, 주문정보 등이 Entity에 해당하고 Entity 는 결국 특정 DBMS의 Table 로 구현된다. 즉 Entity 는 Table의 설계과정에서 사용되는 명칭이다
업무분석 결과를 시나리오로 작성하여 관리대상이 되는 Entity 의 추출이 용이하게 한다.
대략적인 스케치에 해당한다
관리대상의 상세정보는 표시하지 않는다
지나치게 자세하면 전체를 한눈에 파악하기 어렵다
2.논리(Logical)설계
개념설계과정에서 작성된 시나리오를 통해 관리대상이 되는 Entity 를 추출한다.
각 개체(Entity)들의 속성(Attribute) 중에서 관리대상이 되는 속성을 추출한다
예) 회원: 번호, 이름, 전화, 메일, 주소, 우편번호 등.
정규화 1차~3차 : 추출된 속성을 대상으로 정규화를 거치면 몇개의 개체(Entity)로 분리된다.
분리된 엔티티들은 서로 관계를 갖게 되고 그 관계를 그림으로 표현한 것이 ERD 이다.
특정 데이터베이스 제품에 종속적이지 않도록 설계한다
3.물리(Physical)설계
논리설계 후 산출되는 Entity 및 그 속성(Attribute)들을 특정 데이터베이스 시스템의
Table로 생성하기 위해 테이블 이름 및 컴럼이름, 자료형, 주기 및 외부키, 인덱스, 뷰 등을 상세히 정한다.
4.테이블 생성
물리설계의 결과에 따라서 특정 데이터베이스 시스템에 테이블을 생성한다.
정규화 연습
관계형 데이터베이스 설계에서 동일 데이터의 중복 저장을 최소화하기 위해 구조화하는 절차
정규화의 목표는 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성
데이터 무결성 유지 및 안정성 최대화
제1정규형, 제2정규형, 제3정규형, BCNF 등이 있다
전자상거래 시스템에서 주문정보를 저장할 목적으로 다음과 같은 속성들이 추출되었다.
주문정보테이블: 주문번호, 날짜, 상품명, 단가, 수량, 회원번호, 고객명, 배송지, 우편번호
1차 정규형
원자성을 갖지않는 속성을 분리해서 별도의 테이블로 구성함.
즉, 복수의 속성값을 갖는 속성을 분리해서 별도의 테이블을 구성함.
1차정규형 완료 후
주문정보테이블: 주문번호, 날짜, 고객번호, 고객명, 배송지, 우편번호
상품정보테이블: 주문번호, 상품명, 단가, 수량
2차정규형
완전함수적 종속성 확보
주 식별자가 복합식별자인 경우에는 2차 정규화 대상이 된다.
복합식별자를 구성하는 일부의 속성에 종속적인 속성을 분리(부분적 종속성 배제)하는 것이 2차정규화이다.
위의 예제는 단일 식별자를 사용하는 경우이므로 2차 정규화의 대상이 아니다.
3차 정규형
2차 정규화를 완성한 후에 3차 정규화를 실시한다.
이행적 종속관계 배제: 주 식별자를 제외한 속성들 가운데 서로 종속적인 관계를 갖는 속성을 분리한다.
3차 정규형 완료 후
주문정보테이블: 주문번호, 날짜, 고객번호, 고객명, 배송지, 우편번호
상품정보테이블: 주문번호, 상품명, 단가, 수량
고객테이블: 고객번호, 고객명, ....
배송지정보테이블: 주문번호, 배송지, 우편번호