[DataBase System] ch04 - 관계 데이터베이스

2022. 4. 23. 09:42DataBase/DB 문제풀이

[DataBase System] ch04 - 관계 데이터베이스

책정보, 데이터베이스 시스템 : 네이버 책 (naver.com)

 

데이타베이스 시스템

[머리말]이 책은 데이타베이스 과목으로 두 학기에 걸쳐 대학의 학부와 대학원 가초 과정에서 하용할 수 있는 내용으로 집필하였다. 이 책을 사용하는 독자는 컴퓨터 프로그래밍과 자료구조에

book.naver.com

 

문제 풀이

1 )  다음 용어를 간단히 설명하라

  • 릴레이션 : 스킴(scheme)과 인스턴스(instance)로 구성되며, 수학적 관점으로 접근했을 때 하나의 집합이다.
  • 도메인 : 하나의 애트리뷰트가 가질 수 있는 값의 집합을 의미한다. 
  • 카디널리티 : 릴레이션(집합)에 포함되어 있는 투플의 수를 의미한다
  • 릴레이션 스키마 : 릴레이션의 논리적 구조를 표현한 것, 릴레이션 내포라고 부르기도 함 
  • 릴레이션 인스턴스 : 어떠한 시점, 시기에 릴레이션이 포함하고 있는 투플의 집합, 릴레이션 외연이라고도 함 
  • 정규 릴레이션 : 반복, 중복되는 애트리뷰트 값을 포함하지 않은 릴레이션
  • 릴레이션 차수 : 하나의 릴레이션 안에 가지고 있는 애트리뷰트 개수

  • 애트리뷰트 : 릴레이션의 열을 의미. 속성 혹은 애트리뷰트라고 말한다.
  • 투플 : 릴레이션의 행을 의미. 

2 ) 릴레이션에서 투플은 왜 순서가 없는가?

- 수학적 개념으로 집합을 생각하면 된다. 집합의 경우 내부에 있는 원소에 대한 순서를 따로 명시하지 않는다.

가위바위보라는 집합을 생각할 때 가위, 바위, 보라는 요소에는 어떤 것이 1번이라는 명시가 없지만 실제로 하나의 게임이라는 집합으로 묶인 것을 예시로 들 수 있다. 


3 ) 릴레이션에서 같은 투플은 왜 중복이 될 수 없는가

- 분간을 할 수 있다는 점에서 성립이 되는 원소의 모임이기 때문이다.


4 )  릴레이션의 특성을 설명해 보라

- 투플의 유일성 / 투플의 무순서 / 애트리뷰트의 무순서 / 애트리뷰트의 모든 값은 원자값


5 ) 릴레이션에서 애트리뷰트 사이에 순서가 없다고 하는 것은 어떤 뜻이며 또 어떻게 이것을 구현할 수 있는가를 설명해보라

- 회사라는 릴레이션을 생각해보자. 이러한 릴레이션 안에는 분점, 지점, 직원수 등의 여러 가지 속성이 존재한다. 하지만 각각의 속성들이 모여서 하나의 릴레이션을 이루는 것이지 속성의 순서는 존재하지 않는다. 

이런 의미처럼 애트리뷰트에는 순서가 없으며 이런 특징을 구현하기 위해서는 애트리뷰트의 명칭을 통해 값을 식별할 수 있게 해야 한다.


6 ) 릴레이션을 보통 테이블로 표현하는데 이것은 컴퓨터 내부에 저장된 릴레이션을 표현한 것인가? 만일 아니라면 컴퓨터 외부에서의 릴레이션과 내부에서의 릴레이션 표현과의 관계를 설명해 보고 왜 서로 달라도 되는가를 설명해 보라

- 테이블 표현은 릴레이션을 표현한 것이 아니다. 추상적 / 구체적 표현으로 나눠서 볼 수 있다.

릴레이션은 여러 가지 형태의 테이블로 표현이 가능하다. 따라서 표현방법이 하나로 국한된 것이 아닌 여러 가지의 방법이 있다는 것이다. 이러한 특징으로 외부에서 구현된 릴레이션의 형태를 꼭 내부에서 지키라는 것은 아니며 내부 릴레이션은 독립적 표현 구조를 가질 수 있다. 이는 외부 릴레이션과 내부 릴레이션 간의 Mapping은 DBMS가 제공하는 물리적 데이터 독립성에 의해 지원이 된다.


7 ) 키(key)를 정의하고, 그 특성을 설명하라. 또 널 값과 키의 특성과는 어떤 관계가 있는지 설명해 보라

- 릴레이션 내부에 존재하는 많은 애트리뷰트 값들 중 투플을 식별할 수 있는 애트리뷰트의 집합을 의미한다. 

key는 유일성과 최소성이 존재한다. 유일성은 모든 투플마다 키 값은 다르고 유일해야 한다는 점, 최소성은 키가 2개 이상의 속성 값으로 이뤄져 있을 경우 하나의 속성이라도 사라지면 유일성이 사라지는 성질을 말한다. 

널 값을 키값으로 가진다면 투플의 식별에 문제가 생기기에 널 값은 해당 애트리뷰트의 값으로 설정이 불가하다


8 ) 키에는 어떤 종류가 있고, 그들 간에는 어떤 관계가 있는가를 설명하라. 또 슈퍼 키와 후보 키의 차이점을 설명해 보라

- 최소성을 기준으로 후보 키 / 슈퍼 키로 구분. 

- 후보 키가 두 개 이상일 경우 기본키와 대체키로 구분

- 투플 간의 참조 관계를 이어주기 위해 외래키 존재 -> a라는 릴레이션에 존재하는 애트리뷰트가 b라는 릴레이션에서는 기본키로 사용되는 경우를 의미 


9 ) 외래 키란 무엇이며 왜 중요한 지를 설명해 보라

- 외래키 : 투플간의 참조 관계를 이어 주기 위해 존재하는 키

- 관계 데이터 모델에서는 개체 간의 관계가 물리적인 수단이 아닌 기본키 - 외래 키의 연동으로 관계가 표현이 된다


10 ) 다음과 같은 S ( suppliers , 납품업자 ) , P ( product , 제품 ) , SP ( shipmenets , 발송 ) 릴레이션 스키마가 있다. 

  • S ( Sno , Sname , Status , City ) 
  • P ( Pno , Pname , Colour , Weight )
  • SP ( Sno , Pno , Qty )   

10 - 1 ) 릴레이션 S에서 슈퍼 키의 예를 하나 들어보라. 그리고 개체 무결성 제약을 설명해 보라

- Sno

- 개체 무결성 제약이란 기본 키에 속해 있는 애트리뷰트는 어떤 상황에서라도 널 값을 가질 수 없다.

 

10 - 2 ) 위에 명세한 릴레이션 스키마를 예로 들어 참조 무결성 제약을 설명해 보라

- 참조 무결성 제약 : 참조할 수 없는 외래 키를 가질 수 없다. -> 널값이 아니면서 참조된 릴레이션의 어떤 기본 키 값도 일치하지 않는 값을 말함. 


11 )  데이터베이스 상태란 무엇이며, 어떤 의미를 가지고 있는가?  또 이들은 데이터베이스 연산과 어떤 관계를 가지고 있는지 설명해 보라

- 어떤 시점에서의 데이터베이스 인스턴스를 의미한다. 즉 그 시점에서의 데이터베이스로 표현이 된 현실을 말한다. 

데이터베이스는 처음 설계 및 구현 이후 데이터가 변동이 되면서 상태가 변하게 된다. 이러한 변동 과정에서도 무결성 제약은 항상 만족해야 한다. 


12 ) 무결성 제약은 어떤 면에서 시간에 독립적이다. 데이터베이스의 내용이 변해 가는 과정에서 무결성 제약 조건을 유지해 나갈 수 있는 기법과 구현 방법을 설명해 보라

- 무결성 제약은 시점에 구애받지 않고 언제나 그 특성을 만족하고 있어야 한다. 이는 일정의 조건이 아닌 필수 불가결한 그런 특징이다. 따라서 데이터의 변동이 이뤄질 때마다 제약을 유지되는지 검사해야 한다. 


13 )  모든 릴레이션은 반드시 후보 키를 가지고 있다고 볼 수 있다. 그 이유를 설명하라

- 릴레이션은 투플의 집합이다. 분간할 수 있다는 점에서 성립을 하는 원소의 모임이라는 특징이라는 점에서 중복된 투플은 존재하지 않는다. 이러한 특징으로 애트리뷰트의 값들을 조합하면 후보 키가 나올 수 있다


14 ) 기본 키의 유일성과 개체 무결성 조건을 비교 설명해 보라.

- 기본키에 속한 애트리뷰트는 널값을 가질 수 없다는 점의 개체 무결성 조건은 만족하지 않는 순간 기본키의 전체 or 일부의 값이 날이 되면서 키의 유일성 조건을 어긋나게 한다. 따라서 유일성이 만족하기 위해 선행되는 조건이 개체 무결성 조건이다.