'엔티티관계'에 해당되는 글 1건

  1. 2009.03.09 [DataBase] 문제풀이 3장

[DataBase] 문제풀이 3장

DB 2009. 3. 9. 23:56

3.1 데이터베이스 설계 과정에서 고수준 데이터 모델의 역할을 설명하라.
데이터베이스에 대한 개념 스키마를 만든다. 개념적 설계라고 부르는데 개념 스키마는 사용자들의 데이터 요구사항들을 간단히 기술한 것으로서 데이터 타입, 관계, 제약조건들을 자세하게 설명한 것이다. 이것들은 고수준의 데이터 모델이 제공하는 개념들을 사용하여 표현된다.

3.2 널값을 사용하는 것이 적합한 경우들을 나열하라.
한 애트리뷰트에 적용할 값이 없을 때.
한 엔티티의 특정 애트리뷰트 값을 모를 때.
- 애트리뷰트 값이 존재하지만 누락되었을 때.
- 애트리뷰트 값이 존재하는지의 여부를 알지 못할 때.

3.3 다음의 용어들을 정의하라.
엔티티 - ER 모델을 나타내는 기본 객체. 실세계에서 독립적으로 존재하는 실체.
애트리뷰트 - 엔티티를 기술하는 속성.
애트리뷰트 값 - 특정 엔티티를 설명.
관계 인스턴스 - 엔티티들의 연관.
복합 애트리뷰트 - 속성을 작은 구성요소로 나누어 계층을 형성한다. 복합 애트리뷰트의 값은 계층을 구성하는 단순 애트리뷰트들의 값을 연결한 것이다.
다치 애트리뷰트 - 한 엔티티에서 애트리뷰트가 여러 값을 가지는 경우, 이런 애트리뷰트를 다치 애트리뷰트라 한다. 다치 애트리뷰트는 각 엔티티가 가질 수 있는 값의 개수를 제한하기 위해 하한과 상한의 범위를 가질 수 있다.
유도된 애트리뷰트 - 두 개 이상의 애트리뷰트 값들이 서로 연관을 가지고 있는 경우, 관련 엔티티로부터 애트리뷰트의 값이 유도될 수 있다.
복잡한 애트리뷰트 - 복합 애트리뷰트와 다치 애트리뷰트가 임의의 방식으로 중첩되어 그것을 표현할 때 이를 복잡한 애트리뷰트라고 한다.
키 애트리뷰트 - 엔티티 집합 내에서 각 엔티티마다 서로 다른 값을 가지는 하나의 애트리뷰트.
값 집합(도메인) - 각 엔티티에서 해당 애트리뷰트가 가질 수 있는 값들의 집합.

3.4 엔티티 타입과 엔티티 집합이 무엇인가? 엔티티, 엔티티 타입, 엔티티 집합의 서로 다른 점을 설명하라.
엔티티 - 실세계에서 독립적으로 존재하는 실체, 개념적으로 존재하는 객체.
엔티티 타입 - 같은 애트리뷰트를 갖는 엔티티들의 집합, 이름과 애트리뷰트들의 리스트로 기술된다.
엔티티 집합 - 임의의 시점에 데이터베이스 내의 특정 엔티티 타입과 모든 엔티티의 모임, 엔티티 집합은 엔티티 타입과 같은 이름을 사용하여 부른다.

3.5 애트리뷰트와 값 집합의 차이점을 설명하라.
애트리뷰트는 각 엔티티가 갖는 속성을 말한다.
값 집합은 각 엔티티에서 해당 애트리뷰트가 가질 수 있는 값들의 집합을 말한다.

3.6 관계 타입이 무엇인가? 관계 인스턴스, 관계 타입, 관계 집합의 차이점을 설명하라.
엔티티 타입들에 속하는 엔티티 간의 연관들의 집합을 정의, 수학적으로 관계 타입은 관계 인스턴스들의 집합이다.
관계 타입은 각각의 엔티티를 연결하는 속성을 의미한다. 즉, 서로의 관계가 어떠한가에 대한 기술이다. 예를 들어 교수, 학생, 강의 라는 엔티티들이 있다. 교수 - 강의의 관계 타입은 강의를 한다는 타입이며 학생 - 강의는 강의를 듣는다는 타입을 갖게 되는 것이다. 관계 인스턴스는 관계가 있는 두 엔티티의 요소들을 연관시키는 역할을 하는데 학생 {A, B, C, D} 와 강의 {1, 2, 3} 을 A - r1 - 1(학생 A는 1번 강의를 듣는다.), B - r2 - 2(학생 B는 2번 강의를 듣는다.), ...식으로 표현할 수 있다. 관계 집합은 이러한 관계 인스턴스의 집합을 말한다.

3.7. 참여 역할이 무엇인가? 관계 타입을 기술하는데 언제 역할 이름이 필요한가?
관계 타입에 참여하는 각 엔티티 타입은 관계 내에서 특정 한 역할을 담당한다. 역할 이름은 엔티티 타입에 속한 한 엔티티가 각 관계 인스턴스에서 가지는 역할을 강조하고 관계가 무엇을 의미하는지 설명하는 데 도움이 된다. 같은 엔티티 타입이 어떤 관계 타입에 두 번 이상 참여하는 경우에는 각 참여의 의미를 구분하기 위해 역할 이름이 필수적이다.(이러한 관계 타입을 순환적 관계라고 한다.)

3.8 관계 타입에 대한 구조적 제약조건을 명시하는 두 가지 방법을 설명하라. 또한 각각의 장단점을 논의하라.
카디날리티 비율 - 엔티티가 참여할 수 있는 최대 관계 인스턴스들의 수를 명시한다.
참여 제약조건 -  한 엔티티의 존재가 관계 타입을 통해 연관되어 있는 다른 엔티티에 의존하는지의 여부를 명시한다. 이 제약 조건은 각 엔티티가 참여할 수 있는 관계 인스턴스의 최소 수를 명시하며 최소 카디널리티 제약조건이라고도 한다.

3.9 어떤 조건하에서, 이진 관계 타입의 애트리뷰트가 참여하는 엔티티 타입들 중 한 엔티티 타입의 애트리뷰트로 옮겨질 수 있는지 설명하라.
1:1 관계 타입의 애트리뷰트들은 참여하고 있는 엔티티 타입들 중의 하나로 이동될 수 있다.

3.10 관계를 애트리뷰트들로 표현하는 경우에 이런 애트리뷰트의 값 집합은 무엇인가? 어떤 데이터 모델이 이런 개념을 사용하는가?
애트리뷰트에 대한 값 집합은 모든 엔티티들의 집합이다. 이는 고수준의 개념적 데이터 모델에서 사용한다.

3.11 순환적 관계 타입이 무엇인가? 순환적 관계 타입의 예를 몇 개 보여라.
같은 엔티티 타입이 어떤 관계 타입에 두번 이상 참여하는 경우 그 관계 타입을 순환적 관계 타입이라고 한다. 예를 들어 사원 엔티티에서 그 원소들은 사원과 상사의 역할을 가지고 있다. 이럴 때 관계는 [사원 엔티티] - [상사관계] - [사원 엔티티] 로 나타낼 수 있다.

3.12 데이터 모델링에서 약한 엔티티 개념이 필요한 경우는? 또한 다음의 용어들을 설명하라.
한 엔티티 타입이 다른 엔티티 타입과 연관되어 있을 때 이 개념이 필요하다.
소유 엔티티 타입 - 약한 엔티티 타입의 어떤 속성으로 연계된 다른 엔티티 타입.
약한 엔티티 타입 - 자신의 키 애트리뷰트가 없는 엔티티 타입.
식별 관계 타입 - 약한 엔티티 타입과 강한 엔티티 타입을 연관시키는 타입.
부분키 - 동일한 소유엔티티에 연관되는 약한 엔티티들을 서로 구분할 수 있는 애트리뷰트들의 집합.

3.13 약한 엔티티 타입의 식별 관계가 삼진 이상일 수 있는지 설명하고, 있다면 그 예들을 보여라.
삼진 식별 관계 타입을 갖는 약한 엔티티 타입도 가능한다. 이 경우, 약한 엔티티 타입은 몇 개의 소유 엔티티 타입들을 가질 수 있다.

3.14 ER 스키마를 ER 다이어그램으로 도식화하기 위해 사용하는 표기법을 설명하라.
엔티티 타입은 사각 상자로 표기한다. 관계 타입들은 다이아몬드 상자로 표기하며 이 관계에 참여하는 엔티티 타입들과는 직선으로 연결한다. 애트리뷰트들은 타원으로 표기하며 각 애트리뷰트는 해당되는 엔티티 타입 또는 관계 타입에 직선으로 연결한다. 복합 애트리뷰트의 구성 요소 애트리뷰트들은 타원형의 복합 애트리뷰트에 연결한다. 다치 애트리뷰트는 이중 타원으로 나타낸다. 키 애트리뷰트는 애트리뷰트 이름에 밑줄을 그어 표현한다. 유도된 애트리뷰트들은 점선으로 된 타원으로 표기한다. 약한 엔티티 타입은 이중 상자로 엔티티 타입을 표시하고 식별 관계를 이중 다이아몬드로 표기한다. 약한 엔티티 타입의 부분키는 점선으로 밑줄을 그어 표기한다. 이진 관계 타입의 카디날리티 비율은 참여를 표시하는 선에 1, M 또는 N을 명시함으로써 표현한다. 참여 제약조건은 부분 참여에 대해서는 단일선으로, 전체 참여에 대해서는 이중선으로 나타낸다.

3.15 ER 스키마 다이어그램에서의 이름 지정 규칙을 설명하라.
엔티티 타입의 이름은 그 엔티티 타입에 속하는 각 엔티티에 적용되기 때문에 복수 이름보다는 단수 이름을 선택한다. ER 다이어그램에서는 엔티티 타입과 관계  타입의 이름은 대문자로, 애트리뷰트의 이름은 첫 글자만 대문자로, 역할 이름은 소문자로 표기한다. ER다이어그램을 왼쪽에서 오른쪽, 위에서 아래로 읽기 쉽게 관계 이름을 선택한다.

Posted by zeide
,