데이터 모델링
구분 |
단계 |
설명 |
논리적 모델링 |
데이터베이스 구축의 분석 단계에 해당 |
* 특정 DBMS에 의존하지 않는 골격을 만드는 작업 * 실체,속성,관계등을 만들고 서로 관련을 맺는 작업 |
물리적 모델링 |
데이터베이스 구축의 설계 단계에 해당 |
* 특정 DBMS에 의존하는 데이터형식, 각종제약 조건, 뷰,인덱스 등을 설정하는 작업. |
논리적 모델링 : 실체, 속성, 인스턴스, 식별자, 관계, 관계차수, 외래식별자, 식별관계, 비식별관계, ERD
실체 : 정보를 가지고 있거나 그에 대한 정보를 알아야하는 유/무형의 사람, 장소, 사물, 사건, 개념 등을 가리킨다.
대부분의 경우, 논리적 모델에서의 실체는 나중에 데이터베이스의 테이블이 된다.
속성 : 속성은 실체의 성질, 분류, 식별, 수량, 상태등을 나타내는 세부적인 특성이다. 주 식별자도 하나 이상의 속성 집합이며, 식별자에 해당하지 않는 속성은 비 식별자 속성이라 한다. 대부분의 경우 속성은 데이터베이스의 열로 매핑된다.
인스턴스 : 인스턴스는 실체의 단일 사례다. 다시 말하면 실체는 인스턴스들의 집합이다. 쉽게 말해 테이블의 구성으로 인해 입력된 데이터 한 행이 하나의 인스턴스가 된다.
ID |
이름 |
전화번호 |
주소 |
1 |
Pet2r |
02-125-2312 |
서울시 강남구 역삼동 100번지 |
2 |
Song |
02-352-1523 |
서울시 동작구 상도동 200번지 |
주 식별자 ID의 값만으로 인스턴스들을 완벽히 식별할 수 있게 된다.
관계 : 실체들 간에 의미가 있는 연결을 관계라고 한다. 관계에는 이름이 붙어 있다. 관계는 관계형 데이터베이스에서 가장 중요한 요소라 할 수 있다. 관계를 파악하는 방법중 하나는 요구 사항 명세를 문장으로 적은 후 거기서 동사를 추출하고, 이들 중 위에서 파악한 신체들 사이에 적용할 수 있는 것을 골라내어 관계 후보로 만드는 것이다.
관계차수 : 관계차수는 관계를 구성하는 실체들의 인스턴스 수를 규명하는 것이다. 관계차수를 따질때는 반드시 인스턴스를 이용해야 한다.
* 관계 / 관계차수 그림은 첨부하지 못하니 꼭 찾아보시기 바랍니다.
외래 식별자 : 실체들 사이에 관계를 맺을 때 부모 실체의 주 식별자가 자식 실체의 외래 식별자로 이주한다. 이는 ERWin 과 같은 CASE 도구를 사용할 경우에는 자동으로 이루어 지지만, 수작업으로 모델링할 경우에는 작업자가 직접 외래 식별자에 해당하는 속성을 자식 실체에 추가 시켜야만 한다.
외래 식별자로 지정된 속성은 임의의 값을 갖지 못하고, 외래 식별자가 참조하는 부모 실체의 주 식별자가 가지고 있는 값만 가질수 있는데, 이를 참조 무결성이라 한다.
외래 식별자와 참조 무결성 : 외래 식별자로 지정된 속성은 임의의 값을 갖지 못하고, 외래 식별자가 참조하는 부모 실체의 주 식별자가 가지고 있는 값만 가질 수 있는데, 이것을 참조 무결성이라 한다.
식별관계 : 부모 실체의 주 식별자가 자식 실체의 외래 식별자이자 동시에 주 식별자가 되는 관계다.
비식별 관계 :
* 비식별 관계란 부모 실체의 주 식별자가 자식 실체의 비식별자 영역의 외래 식별자가 되는 관계다.
* 강제적 비식별 관계와 선택적 비식별 관계로 구분된다.
정규화 : 데이터 중복을 막고 무결성을 강화시키기 위해 하나의 실체를 둘 이상의 실체로 분리하는 작업이다.
물리적 모델링 절차 :
1) 이름 영문화 - 논리적 모델에서는 대부분 한글 이름을 부여하는데, 물리적 모델에서는 이를 영문이름으로 바꿔야한다.
2) 데이터 형 지정
3) NULL, NOT NULL, 및 IDENTITY 지정
4) 제약 기본값과 개체 기본값 정의
5) 체크와 규칙 정의
6) 도메인 정의 및 적용
7) 인덱스 설정
8) 테이블별 코멘트 작성
9) 뷰 정의