개념적 설계 단계: 요구사항 분석에서 얻어진 산출물을 근거로 데이터 모델링
가장 일반적으로 사용되는 모델링 기법을 객체 관계모델
분석에서 개념적 데이터 모델링(ERD)
개념적 모델링: 업무의 핵심적인 개념을 구분, 전체적인 뼈대를 만드는 과정
개체(엔티티)를 추출하고 개체들 간 관계 정의하여 ER - 다이어그램 (ERD)을 만드는 과정 까지를 말함
사각형: 개체, 타원형: 속성, 마름모: 관계, 실선: 개체와 속성, 관계를 연결
개체 관계모델
ERD: 개체 관계 모델의 약어로 데이터베이스의 구조를 엔티티와 관계로 도식화하는 기법 중 하나
논리적 모델링; 회원번호 물리적 모델링: no
엔티티: 테이블, 속성: 컬럼(열), 튜플: 레코드(행)
개체: 명사형으로 지정, 실세계의 기본적인 표현을 할 수 있는 항목, 인스턴스의 집합
속성: 성질이나 상태, 개체가 가질 수 있는 세부적인 특성, 데이터의 가장 작은 논리적인 단위로서 속성값은 더 분해하려 해도 분해할 수 없는 원자값만을 갖는다. 물리적 모델링 과정에서 칼럼이 된다.
도메인: 하나의 속성에 나타날 수 있는 값들의 집합
인스턴스: 개체의 구체적인 하나의 예, 데이터 형식을 확인할 수 있음, 데이터 한칸 한칸.
기본키: 인스턴스들을 서로 구별할 수 있는 유일한 값을 갖는 속성. ERD에서 기본키가 되는 속성에 밑줄로 표시
관계: 개체간의 연관성을 나타내며 요구 사항 명세서에서 동사형으로 표현
레코드: 인스턴스 한줄
ER모델에서 개체간의 관계
1:1(One To One): 두 개체를 하나의 테이블로 통합
일대일 실선에 1
1:N(One To Many): 주종관계를 알아야한다. 일반적으로 일에 해당하는 테이블이 부모테이블이고 다에 해당되는 테이블이 자식 테이블이다. 부모 테이블의 기본 키를 자식 테이블에 포함시키고 외래 키로 설정, 외래키 잡을 때 컬럼명은 다를 수 있지만 자료형은 반드시 같아야한다.(값을 참조하니까)
일대 다 실선에 N
N:M(Many To Many): 다대다 관계에 대한 테이블을 따로 만든다. 관계에 의해 생성된 테이블을 두 개체가 갖고 있던 기본키를 외래키로 설정. 관계에 의한 테이블의 기본키를 만드는 방법은 두 가지 있다.
1. 두 외래키를 조합하여 기본키로 설정
2. 새로운 필드를 추가하여 기본 키로 설정
여러명 대 여러명
실선에 각각 N, M
논리적 모델 및 물리적 모델
개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 매핑하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정
개념적 모델링
약속된 도형으로 만듦
논리적 모델링 과정
상세 속성들을 모두 추출
정규화 수행
데이터 표준화 수행
물리적 모델
논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조 정의, 구현
DBMS 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있다.
실제 사용할 테이블, 컬럼 명
설계단계에서 논리적, 물리적 데이터베이스를 설계한다.
IE표기법에서 관계는 점선으로 표기
-강한 개체 타입은 직원 개체 타입의 직원번호와 같이 각 개체를 식별할 수 있는 기본키를 가진다.
강한 개체: 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체
약한 개체 타입: 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자 관계로 표현하는데 실선으로 표기함
약한 개체: 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가짐
테이블 명세: 물리적인 모델링 과정에서 엔티티는 테이블이 되고 속성은 칼럼이 된다.
SQLDevelope 에서 보기 DataModeler 브라우저
논리적 모델링 오른쪽 클릭 표시
기본UID는 기본키
관계설정 시 부모 테이블 먼저 선택
소스기수 : 부모 엔티티
대상기수: 자식 엔티티
소스 선택 사항; 부모 엔티티의 튜플에 대응하는 자식 엔티티의 튜플이 없을 수도 있음.
대상 선택 사항: 자식 엔티티의 튜플에 대응하는 부모 엔티티는 반드시 존재
RESTRICT: 참조 무결성 처리 규칙
관계 : 두 엔티티 간의 업무적인 연관성
식별 관계: 부모 테이블의 기본 키가 자식 테이블의 기본 키 혹은 후보 키 그룹의 구성원이 된다.
비식별 관계: 부모 테이블의 기본 키가 자식 테이블의 일반 칼럼이 된다.
논리적 ERD를 물리적 ERD로 복사
브라우저 창에서 논리적 모델 항목에서 관계형 모델로 엔지니어링을 선택
테이블 명세서 작성
영어로 변경: 엔티티 이름, 속성 이름, 주식별자(기본키) 이름, 외래 식별자(외래키) 이름
VARCHAR2, NUMBER => VARCHAR, DECIMAL을 선택 하면 변환되어 ERD에 표시
정규화: 데이터 모델을 보다 효율적으로 개선시켜나가는 과정, 데이터베이스에 저장되는 데이터 중복의 최소화하기 위해 서로 독립적인 관계는 별개의 테이블로 표현한다는 것
제 1 정규화
반복되는 속성들을 다른 개체 (테이블)로 나누어 분리하는 작업
또 다른 개체로 판단할 수 있는 속성들을 분리하고, 각 객체 속성들의 유일한 식별자를 갖게된다. 부모 테이블의 식별자는 자식 테이블의 외부키와 연결된다.
모든 속성은 반드시 하나의 값을 가져야한다.(반복 형태가 있어서는 안된다.)
정규화가 이루어지고 나면 자식 엔티티로 분리된다.
제 2정규화
모든 속성은 식별자에 직접적으로 의존적이어야 하며 이에 해당되지 않는 속성을 분리한다.
모든 속성은 반드시 UID 전부에 종속되어야 한다. (UID 일부에만 종속되어져서는 안된다.)
정규화가 이루어지고 나면 부모 엔티티로 분리된다.
제 3정규화
식별자 이외의 속성은 식별자가 아닌 다른 속성에 종속적이지 않아야한다.
UID가 아닌 모든 속성 간에는 서로 종속될 수 없다.(속성 간 종속성 배제)