NOTE6 - 8장 정보 모델링(Information Modeling 8-1...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 8장 정보 모델링 (Information Modeling) 8-1 정보 모델 ■ 정보 모델은 시스템에 사용되는 정보 데이터를 중심으로 시스템의 정적인 정보구조를 나타내는 데 사용 ■ 정보 모델링은 시스템에 필요한 엔티티(객체)들을 정의하고 이들 엔티티 사이의 연관성을 규명하는 작업 ■ 정보 모델은 시스템의 기능이나 동작에 초점을 맞추기보다는 시스템 을 구성하고 있는 객체를 중심으로 객체의 특성을 정의 ■ 데이터베이스를 구성하기 용이한 모델링 이다. ■ 새로운 산업사회로 이동하며 정보는 조직의 중요한 자산으로 인식 8-2 시스템의 3 관점 정보(객체) 모델링 (Information Modeling) 정보(객체) 관점 기능 관점 소프트웨어 시스템 기능 모델링 (Functional Modeling) 동적 관점 동적 모델링 (Dynamic Modeling) < 그림 8.1 시스템의 3 가지 관점 > 8-3 8.1 정보 모델링 개요 ■ 정보 모델링은 시스템에 사용되는 데이터를 개념적 차원에서 기술하며, 어떻게 저장되는지의 물리적인 면은 나타내지 않는다. ■ 사용자의 관점에서는 시스템의 데이터가 어떻게 저장되고 유지되는 지에 관한 세부사항을 알 필요가 없다. ■ 개념적인 차원에서의 기술은 구현에 관한 세부 사항을 숨겨줌으로써 시스템의 데이터에 관한 요구사항만 기술, 즉, 데이터의 추상적인 면, 즉 사용자 관점만 표 시 ■ 정보 모델링 중에서 가장 많이 사용되는 도구는 EER (Enhanced Entity-Relationship)모델이다. 8-4 8.2 엔티티, 속성, 엔티티 타입 ■ EER 모델은 시스템에 요구되는 기본적인 객체를 나타내는 엔티티와 객체들 사이의 연관성을 나타내는 관계로 구성 ■ 엔티티는 독립적으로 존재하는 실세계의 사물, 객체를 나타낸다. - 예: 김철수(직원의 예), 서울(장소의 예), 강원대학교(대학교의 예) 등 ■ 각 객체는 특정 속성의 모임에 의해 기술되며 속성값들에 의하여 다른 객체와 구별된다. - 예: 엔티티 김철수 속성:주민등록 번호, 속성값: "830425-1000234" 속성:생년월일, 속성값: "83년 4월 25일" 엔티티 강원대학교 위치 "춘천", 학생수 "18,000"이라는 속성, 속성값을 가진다. 8-5 엔티티 타입 ■ 같은 속성을 가지는 엔티티들의 집합: 엔티티 타입 예: 학생이라는 엔티티 타입에 속한 "김철수", "이영희" 엔티티는 같은 속성(학번, 전공, 성적)을 공유 ■ 시스템에 요구되는 데이터의 특성을 규명할 경우에는 각각의 객체들 을 기술하는 것보다 묶어진 엔티티 타입을 기술하는 것이 편리하다. ■ 비슷한 엔티티를 묶는 작업을 분류화(classification)라 하며 분류 화를 통해 묶여진 객체들은 같은 종류의 속성, 제약조건 및 동작의 유형을 공유한다. ■ 실례화(instantiation)는 분류화의 역작용으로 엔티티 타입에 속해 있는 엔티티를 구별하여 참조하는 데 사용된다. 8-6 용어 비교 ■ 정보 모델링, 데이터 베이스, 프로그래밍 언어, 객체지향에서 사용 되는 용어들 사이의 관계 분야 예 (대학교) group 정보 모델링, 데이터 베이스 엔티티 엔티티 타입 프로그래밍 언어 변수, 상수 데이터 타입 객체 지향 모델링 및 언어 객체(object) 클래스 예 (대학교) 김철수, 이영희 학생 < 그림 8.2 분야별 용어 관계 > 8-7 키(key) 개념 ■ 정보 모델링에 사용되는 중요한 개념 중의 하나는 키(key) ■ 각각의 사람들이 구별되어야 하는 것처럼 각각의 엔티티는 구별되 어야 하며 각각의 엔티티를 구별할 수 있는 속성들의 모임을 키라 한다. ■ 키의 값에 의해 각 엔티티는 유일하게 지정된다. 예를 들어 주민등 록 번호라는 속성은 대한민국 사람이라는 엔티티 타입의 각 사람(엔티티)을 구별하는 키로 사용되고 있다. ■ 경우에 따라서는 여러 속성이 모여 키를 형성하는 경우도 있다. 이 러한 경우 속성들의 집합이 키가 되어 각 엔티티를 유일하게 지정한다. ■ 어떤 엔티티 타입은 하나 이상의 키를 가질 수도 있다. 그 중 하나 는 주 키(primary key)로 선정되며 나머지 키는 대체 키(alternate key)가 된다. 예: 대학교의 학생 엔티티 타입은 주민등록 번호를 주키로, 학번을 대체 키로 8-8 EER 모델 표시법 ■ EER모델에서 사각형의 기호는 엔티티 타입을 표시하며 타원형의 기 호는 속성을 나타낸다. ■ 선은 속성과 엔티티 타입을 연결 ■ 키 속성은 밑줄을 그어 구별 대한 민국 사람 주민등록 번호 이름 생년월일 성별 < 그림 8.3 엔티티 타입과 속성 > 8-9 8.3 관계, 관계 타입, 제약조건 ■ 한 시스템이 여러 엔티티 타입을 가지는 것은 일반적이며 이들 사 이에는 연관성이 존재 ■ 관계란 여러 엔티티 사이에 존재하는 연관성 ■ 관계 타입은 같은 형태를 갖는 관계들의 집합 학생 수강 과 목 r1 김철수 r2 SE r3 Database 이영희 최소영 r4 < 그림 8.4 관계> 8 - 10 관계 타입 ■ 관계 타입은 엔티티 타입과 마찬가지로 고유의 속성들을 가질 수 있으며 참여하는 엔티티 타입의 키가 관계 타입의 키가 된다. ■ 경우에 따라서는 참여하는 엔티티 타입의 키 이외에 다른 속성이 합쳐져 관계 타입의 키를 형성 ■ EER 모델에서 마름모 기호는 관계 타입을 표시 (0, N) 직원 (1, 1) 근무 부서 생년 월일 부서 이름 직원 이름 성별 부서 이름 직원 이름 부서 예산 근무 시작일 < 그림 8.5 관계 타입 > 8 - 11 8.3.1 매핑 제약조건 ■ EER 모델은 데이터들 사이에 지켜져야 할 제약조건을 지정할 수 있 다. ■ 매핑 제약조건(Mapping Constrain)은 하나의 관계 타입을 통하여 참여하는 엔티티 타입 에 속한 엔티티들 사이에 맺어질 수 있는 매핑 수를 제한 ■ 매핑 수는 크게 다음과 같이 3가지로 분류 ◉ 일 대 일(one to one) : 남자 결혼 여자 최수종 노사연 이무송 엄앵란 신성일 채시라 서태지 하희라 < 그림 8.6 일 대 일 관계 > 8 - 12 매핑 제약조건(계속) ◉ 일 대 다(one to many) : 직원 근무 부서 조용 필 최성 수 안성 기 인 사과 총 무과 채시 라 김희 애 < 그림 8.7 일 대 다 관계 > 8 - 13 매핑 제약조건(계속) ◉ 다 대 다(many to many) : 학생 등록 과목 조용필 최성수 안성기 채시라 SE Compiler Database 김희애 < 그림 8.8 다 대 다 관계 > 8 - 14 8.3.2 참여 제약조건 ■ 참여 제약조건(Participation Constraints)은 한 엔티티가 관계에 참여하는 것이 필수인지 선택 인지를 지정하여 주는 제약조건 (1,1) : 필수, (0,N) : 선택 (0, N) 직원 (1, 1) 근무 부서 생년 월 일 부서 이 름 직원 이 름 성별 부서 이 름 직원 이 름 부서 예 산 근무 시 작일 8 - 15 8.3.3 참조 무결성 ■ 참조 무결성(Referential Integrity)은 두 엔티티 사이의 관계에 작용하는 제약조건으로 데이터의 일관성을 유지하기 위하여 필요 ■ 관계 타입에 속한 키는 참여 엔티티 타입으로부터 온다. ■ 참조 무결성은 관계에 속하는 데이터 중에서 참여 엔티티에서 오는 키의 속성값은 참여 엔티티에 있는 키의 속성값이어야 함을 의미 ■ 참조 무결성은 특히 관계형 데이터베이스에서 테이블 사이의 데이터 제약조건을 나타내는 것으로 중요한 의미를 가진다. ■ 한 테이블에 있는 투플(tuple)은 다른 테이블에 있는 투플을 참조 하게 되고 이 때 다른 테이블에 존재하는 투플만을 참조할 수 있음을 나타낸다. 8 - 16 8.3.4 관계 타입 차수 ■ 관계 타의 차수는 참여하는 엔티티 타입의 수 ■ 일반적으로 3차 관계 타입은 2차 관계 타입들로 대치될 수 없다. ■ 통신 서비스 공급자, 통신 서비스, 서비스를 제공받는 회사 통신 서비스 공급자 (Provider) 서비스 (Service) 회사 (Company) KT Audio LG DACOM Video SAMSUNG Data HYUNDAI < 그림 8.9 통신 데이터베이스 엔티티 타입과 엔티티 > 8 - 17 2차 관계 타입 통신서비스 공급자 서비스 (0,M) 제공 (1,N) 회사 (0,M) 필요 (0,N) < 그림 8.10 통신 데이터베이스 EER 모델 > 필요 제공 서비스 회사 Audio SAMSUNG Audio Audio LG Video Data DACOM Audio Video DACOM Data Audio 통신 서비스 공급자 KT KT Service HYUNDAI LG HYUNDAI < 그림 8.11 통신 데이터베이스 관계 예 > 8 - 18 3차 관계 타입 회사 공 급 서스 비 통신서 스 비 공자 급 < 그림 8.12 3차 관계 타입 > 공급 회사 HYUNDAI SAMSUNG LG HYUNDAI LG SAMSUNG 서비스 Data Audio Audio Audio Video Audio 통신서비스공급자 DACOM KT DACOM KT KT DACOM < 그림 8.13 3차 관계 타입 테이블 > 8 - 19 8.4 일반화 (Generalization) ■ ERR 모델은 ER 모델에 일반화 등의 계층적 구조를 추가하여 확장시 킨것 ■ 각 엔티티 타입은 고유의 속성을 가지고 있으며, 여러 엔티티 타입 에 공통된 속성 또한 존재할 수 있다. ■ 엔티티 타입 사이에 유사성이 존재할 때 이 유사성을 모아 하나의 새로운 엔티티 타입을 정의내리는 것을 일반화라 한다. 학생 주민등록 번호 전공 교수 학년 학번 이름 주소 이름 주소 주민등록 번호 전화번호 전화번호 전공분야 < 그림 8.14 학생과 교수 엔티티 타입 > 8 - 20 일반화(계속) ■ 상위 클래스: 하위 클래스의 공통적인 속성을 가진다. ■ 하위 클래스: 상위클래스의 주 키와 하위 클래스간의 공유되지 않는 정보를 갖는다. ■ 상위 클래스에 있는 모든 속성은 하위 클래스에 상속 ■ 일반화의 관계는 'is_a', 또는 'kind_of' 관계 이름 주소 사람 주민등록 번호 전화 번호 S 학생 교수 학번 주민등록 번호 학년 주민등록 번호 전공 분야 전공 < 그림 8.15 일반화 > 8 - 21 일반화와 특수화 ■ 클래스들 사이의 유사성을 표시하는 기법이 일반화 ■ 상위 클래스에 하위 클래스의 공통적인 속성을 표시하고 상위 클래 스의 정보가 하위 클래스에 상속 ■ 상속은 기존에 정의되어 있는 엔티티 타입을 이용하여 새로운 클래스를 쉽게 정의할 수 있도록 하여준다. ■ 엔티티 타입의 공통점을 구체적으로 표시하는 기법이며 분석의 결과를 재사용할 수 있게 하여준다. ■ 특수화는 일반화의 역진행을 말하며 이를 통해 한 엔티티 타입이 세분화된 하위 클래스로 나누어진다. ■ 특수화를 통해 하위 클래스로 정의될 수 있는 경우는 하위 클래스 가 고유의 속성을 가지고 있거나 하위 클래스가 다른 클래스들과 고유의 관계를 가지고 있을 때이다. 8 - 22 8.4.1 중복성과 완전성 ■ 상위 클래스와 하위 클래스의 관계는 중복성(Overlapping)과 완전성(Completeness) 제약조건에 의해 표시 ■ 중복성은 중복(Overlapping)과 해체(Disjoint)로 구분 ■ 완전성도 전체(Total)와 일부(Partial)로 구분된다. ■ 상위 클래스의 모든 엔티티가 하위 클래스에 꼭 존재하면 전체 관 계에 있다고 하며 하위 클래스에 항상 있는 경우가 아니라면 일부 관계에 있다. & 중 복 , 전 체 특 수화 S+ & 중 복 , 일 부 특 수화 S & 해 체 , 전 체 특 수화 SE+ & 해 체 , 일 부 특 수화 SE 8 - 23 중복성과 완전성 예 학생 SE+ 학부생 대학원생 < 그림 8.16 해체· 전체의 예 > 직원 S 엔지니어 관리자 비서 < 그림 8.17 중복· 일부의 예 > 8 - 24 8.5 역할 (Role) ■ 역할은 클래스들 사이의 또 다른 계층 구조를 나타낸다. ■ 역할은 2개 또는 그 이상의 상위 클래스의 합집합으로 이루어진 하 위 클래스를 정의할 때 사용 ■ 역할이 사용되는 대부분의 경우 하위 클래스의 엔티티는 상위 클래 스 중 오직 하나에 속한다. ■ 따라서 역할은 선택적 상속이라 불리기도 한다. 사람 회사 R 자동차 소유주 < 그림 8.18 역할 > 8 - 25 역할과 일반화 ■ 역할 관계는 일반화와는 구별되는 개념이며 특수한 조건이 만족되 면 일반화로 나타내어질 수 있다. ■ 만약 역할 관계에 있는 모든 상위 클래스의 엔티티가 하위 클래스 에 속하고 모든 상위 클래스가 같은 키 속성을 공유하면 역할 관계는 일반화의 관계로 나타낼 수 있다. ■ 결국 역할에 속한 하위 클래스를 정의할 때 상위 클래스의 키를 사 용하기 어려워 새로운 키를 정의하게 되고 이를 대리 키라 부른다. 건축물 토지 부동산 R 부동산 SE+ 건축물 (a) 역할 토지 (b) 일반화 < 그림 8.19 > 8 - 26 8.6 정보 모델링의 예: 대학교 데이터베이스에 포함되어야 하는 요구사항 대학교에서는 각 학생들의 주민등록 번호, 이름, 학번, 학년, 전공, 주소와 전화 번호에 대한 정보가 필요하다. 주민등록 번호, 또는 학번에 의해 각 학생들은 유일하게 구별된다. 각 과목은 과목 이름과 과목 번호, 과목 학점수, 과목 수준을 가지며 과목 번호에 의해 유일하게 구별된다. 각 과목은 선수과목(Prerequisite)을 가진 다. 교수는 주민등록번호, 이름, 주소, 전화번호, 전공분야에 의해 기술된다. 각 교수는 주민 등록 번호에 의해 유일하게 구별되며 학생들을 지도(Guide) 하게 된다. 따라서 각 학생들 은 1명의 지도교수를 가진다. 각 섹션(Section)은 강의 교수, 학기, 연도, 섹션 번호, 과목 정보를 가진다. 섹션 번호에 의해 각 섹션은 유일하게 구별된다. 학생들은 섹션을 수강 (Enroll)하여 학점을 얻게 된다. 각 섹션에는 최소한 7명 최대한 30명의 학생이 수강한다. 8 - 27 엔티티 타입 규명 ■ 우선 필요로 하는 엔티티 타입을 요구사항에서 뽑아낼 수 있어야 한다. ■ 엔티티 타입은 요구사항에서 명사로 표시되어 있으며 독립적으로 존재하고 우리가 추적해야 할 필요가 있는 객체들의 모임 엔티티 타입 학생 교수 섹션 과목 속 성 주민등록 번호, 학번, 이름, 학년, 전공, 주소, 전화 번호 주민등록 번호, 이름, 주소, 전화번호, 전공 분야 섹션 번호, 학기, 연도, 강의 교수, 과목 과목 번호, 과목 이름, 과목 학점수, 과목 수준 8 - 28 8.6.1 엔티티 가이드라인 ■ 엔티티 또는 엔티티 타입을 찾아내기 위해 앞에서와 같이 문제 기 술을 읽거나 사용자와 인터뷰를 하는 것이 일반적 ■ 엔티티를 찾아내는 가이드라인은 다음과 같다. 1. 2. 3. 4. 문제 기술에 명사가 있으면 엔티티로 고려하라. 만약 명사가 값을 가질 수 있으면 엔티티가 아니라 속성이 된다. 만약 분석가가 정보를 추적하고 싶으면 엔티티로 고려하라. 만약 엔티티인지 속성인지 구별이 가지 않는 경우 엔티티로 놓아라 .만약 데이터의 이름이 _id, _number, _code, _type 등으로 끝나면 엔티티 타입의 키가 될 가능성이 높다. 5. 데이터에 관한 정의가 현재 있는 경우 그 데이터를 포함하고 있는 엔티티의 이름을 쉽게 찾을 수 있다. ■ 모델링을 하며 각 속성의 속성값을 사용자에게 문의하여 가능 한 값을 알아놓는 것이 바람직 8 - 29 8.6.2 관계 가이드라인 ■ 관계 타입은 일반적으로 동사로 표시 ■ 실제 관계 타입의 이름을 정할 경우 동사의 명사형을 쓰는 것이 바 람직 ■ 관계(또는 관계 타입)를 찾아내는 가이드라인은 다음과 같다. 1. 문제 기술에 동사가 있으면 관계로 고려하라. 2. 만약 불명확한 엔티티가 있으면 관계로 고려해 보라. 3. 만약 데이터가 독립적인 두 엔티티를 기술하고 있으면 관계로 고려해 보라. 4. 한 레코드가 둘 이상의 고유 번호(unique id)를 가지고 있으면 관계로 고려해 보라. ■ 관계 타입에도 제약조건이 필요(예: 한 섹션은 한 교수에의해 강의). 8 - 30 대학교 EER 모델 사람 S 학생 (0, N) (1, 1) 지도 (7, 30) 교수 (1, 1) 수강 강의 (0, N) pre req (0, N) 섹션 (0, N) 개설 (1, 1) (0, N) 선수 과목 (0, N) < 그림 8.20 대학교 EER 모델 > ■ 엔티티 타입과 관계 타입이 속한 속성들의 정의와 제약조건의 구체 적인 정보는 자료사전에 저장해야 한다 8 - 31 ...
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online