본문 바로가기
정보처리기사

[데이터베이스 구축] 7. 무결성과 관계대수 (관계DB/물리설계)

by reve5 2022. 3. 25.

52. 다음 R과 S 두 릴레이션에 대한 Division 연산의 수행 결과는?


>> 정답 4번

 

division을 적용하면

R에서 S부분에 해당하는 곳은 위에서 3번째까지다

D1 D2 D3
a 1 A
b 1 A

이 공통적인 부분에서 S부분을 제외하면

남은 건

 

D1
a
b

위의 정도로 남는다. 이게 division의 결과이다

 

 

42. 다음 관계형 데이터 모델에 대한 설명으로 옳은 것은?



① relation 3개, attribute 3개, tuple 5개
② relation 3개, attribute 5개, tuple 3개
③ relation 1개, attribute 5개, tuple 3개
④ relation 1개, attribute 3개, tuple 5개

>> 정답 4번

attribute = 속성, 열

tuple = 인스턴스, 행

relation = 릴레이션, 테이블

 

 

 

50. 관계대수에 대한 설명으로 틀린 것은?
① 주어진 릴레이션 조작을 위한 연산의 집합이다.
② 일반 집합 연산과 순수 관계 연산으로 구분된다.
③ 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
④ 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 비절차적 방법이다.


>> 정답 4번

 

비절차적방법은  관계해석을 말한다. what

관계대수는 절차적 언어다  how



45. 데이터 무결성 제약조건 중 “개체 무결성 제약”조건에 대한 설명으로 맞는 것은?
① 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야 한다.
② 기본키에 속해 있는 애트리뷰트는 널 값이나 중복 값을 가질 수 없다.
③ 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
④ 외래키 값은 참조 릴레이션의 기본키 값과 동일해야 한다.

>> 정답 2번

1번 > 도메인 무결성

4번 > 참조 무결성


54. 관계대수 연산에서 두 릴레이션이 공통으로 가지고 있는 속성을 이용하여 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산은?
① ⋈ ② ⊃
③ π ④ σ

>> 정답 1번
공통 속성 > 새로  : 조인 1번

3번 프로젝트 조건 만족 속성 집합

4번 셀렉트 조건 만족 튜플 집합

51. 다음 관계 대수 중 순수 관계 연산자가 아닌 것은?
① 차집합(difference) ② 프로젝트(project)
③ 조인(join) ④ 디비전(division)

>> 정답 1번

 

순수관계 연산자

select

project

join

division

 

일반집합 연산자

차집합

교집합

합집합

곱집합



48. 릴레이션에서 기본 키를 구성하는 속성은 널(Null)값이나 중복 값을 가질 수 없다는 것을 의미하는 제약조건은?
① 참조 무결성 ② 보안 무결성
③ 개체 무결성 ④ 정보 무결성

>> 정답 3번

 

개체 무결성 > 기본키에 중복 금지 null 금지

참조 무결성 > 외래키는 기본키 값 또는 null 값이어야 함

도메인 무결성 > 값은 도메인 내에서 확인



53. 릴레이션 R의 차수가 4이고 카디널리티가 5이며, 릴레이션 S의 차수가 6이고 카디널리티가 7일 때, 두 개의 릴레이션을 카티션 프로덕트한 결과의 새로운 릴레이션의 차수와 카디널리티는 얼마인가?
① 24, 35 ② 24, 12
③ 10, 35 ④ 10, 12

>> 정답 3번

 

카티션 프로덕트 = 곱집합

 

차수 4 + 차수 6

카디널리티 5 * 카디널리티 

잘 모르겠고 정답을 분석해보니까 + 과 * 이다.



42. 다음 중 기본키는 NULL 값을 가져서는 안되며, 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건을 무엇이라 하는가?
① 개체 무결성 제약조건
② 참조 무결성 제약조건
③ 도메인 무결성 제약조건
④ 속성 무결성 제약조건

>> 정답 1번

 

개체 무결성 기본키 중복 안됨 null 안됨

참조 무결성 외래키 기본키 값 또는 null 값을 가져야 함

도메인 무결성 값이 도메인 내에서 선택해야 한다



43. 다음 두 릴레이션 R1과 R2의 카티션 프로덕트(cartesian product) 수행 결과는?


>> 정답 4번

 

카디션 프로덕트 = 곱집합

 

속성 + 튜플 *

 

R1 속성 1개 인스턴스 3개 R2 속성 1개 인스턴스 3개

곱집합 후 속성 1 + 1 = 2 카디널리티 3*3 = 9

 



58. 관계 대수에 대한 설명으로 틀린 것은?
① 원하는 릴레이션을 정의하는 방법을 제공하며 비절차적 언어이다.
② 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
③ 일반 집합 연산과 순수 관계 연산으로 구분된다.
④ 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.


>> 정답 1번

 

관계대수 > 절차적 언어




59. 관계 데이터베이스에 있어서 관계 대수 연산이 아닌 것은?
① 디비전(Division) ② 프로젝트(Project)
③ 조인(Join) ④ 포크(Fork)

>> 정답 4번

관계대수 > 디비전 프로젝트 조인 선택, 교집합 차집합 합집합 곱집합

디비전 조건에 해당하는 부분에서 조건을 뺀 것

프로젝트 조건에 해당하는 속성부분

선택 조건에 해당하는 튜플부분

조인 공통적인 부분을 묶어서 만듬




49. 릴레이션 R1에 속한 애튜리뷰트의 조합인 외래키를 변경하려면 이를 참조하고 있는 릴레이션 R2의 기본키도 변경해야 하는데 이를 무엇이라 하는가?
① 정보 무결성 ② 고유 무결성
③ 널 제약성 ④ 참조 무결성



>> 정답 4번

 

참조 무결성 외래키 기본키 또는 null 값만 

개체 무결성 기본키는 null, 중복 안됨

도메인 무결성 범위내에서 값 입력

 

 


51. 조건을 만족하는 릴레이션의 수평적 부분집합으로 구성하며, 연산자의 기호는 그리스 문자 시그마(σ)를 사용하는 관계대수 연산은?
① Select ② Project
③ Join ④ Division

>> 정답 1번

 

select 는 시그마

project 는 파이

join 는 리본

division은 나누기



47. 관계 데이터모델의 무결성 제약 중 기본키 값의 속성 값이 널(Null)값이 아닌 원자값을 갖는 성질은?
① 개체 무결성 ② 참조 무결성
③ 도메인 무결성 ④ 튜플의 유일성

>> 정답 1번

 

개체 무결성 기본키 중복 안됨 null 값안됨

참조 무결성 외래키는 기본키 또는 null 값

도메인 무결성 도메인 내부의 값에서 선택

57. 관계대수의 순수관계 연산자가 아닌 것은?
① Select
② Cartesian Product
③ Division
④ Project

>> 정답 2번

순수 관계 연산자

select division join project

 

2번은 cartesian product는 곱집합


https://www.youtube.com/watch?v=CkTUQw5l5ds&list=PLKpxllD6C8Cl_Ih4ZVC4t9MbrIHZ63Hk6&index=7 


무결성
결함이 없는 상태
데이터가 오염되지 않도록 무결성지켜야 데이터 사용에 문제가 없다

1. 개체 무결성
개체를 사용하는데 문제가 없다
개체는 테이블을 의미하고 
개체를 사용하는 것은 참조함을 의미한다.
데이터 참조 시 해당 테이블 기본키를 사용한다.
따라서 데이터의 기본키에 중복과 null 이 없어야 한다. 있다면 무결성 유지에 실패한 것이다.


2. 도메인(영역) 무결성
특정 필드의 데이터 영역에 문제가 없어야 한다. 
성별 필드에 성별 외의 값이 입력되지 말아야 한다는 것이다.

3. 참조 무결성
데이터를 참조할 때 문제가 없어야 한다
외래키는 null 이거나 참조하는 테이블의 기본키 값이어야 한다.

4. 정의 무결성
사용자가 직접 제약 조건을 지정한다.

DB 구축 과정에서 진행한다.

무결성 강화 

어플리케이션
데이터 조작(생성, 수정, 삭제 등)시 무결성을 검증하는 코드(프로그램) 작성

데이터베이스 트리거
이벤트(데이터 조작이 발생하는 시점)마다 무결성을 검증하는 절차형 SQL 작성

제약 조건 지정
데이터베이스 자체에 제약 조건 설정(선언 및 관리 간단)

관계대수
관계형 데이터 베이스 = 릴레이션인데 이 테이블을 조작해서 새로운 릴레이션을 구축하는 연산

순수 관계 연산사

1. select 
특정 조건을 만족하는 새로운 릴레이션을 생성
속성(필드)는 변하지 않음
튜플(레코드) 개수가 변함
수평연산이라고 함
시그마 연산 기호 사용 ∂

2. project
지적된 속성을 추출해서 새로운 릴레이션을 생성
튜플(레코드) 변하지 않음
속성(필드)가 변함
수직 연산이라고도 함
파이 연산 기호 사용 π

3. join
공통의 속성을 기준으로 두 릴레이션을 합친 새로운 릴레이션 생성
공통된 2개의 속성이 합쳐지는 건 아님
차수의 변화는 없다.
2개 속성 4개 인스턴스 릴레이션과 2개 속성 4개 인스턴스 릴레이션 join 하면 4개 속성 릴레이션이 되고 카디널리티는 4개다. 
리본 연산 기호 사용 ▷◁

3-1. natural join
join과 같은 연산과 기호를 사용
다른 점은 조건을 사용하지 않고 공통 속성만 나타낸다.
속성이 합쳐진다.
두 공통 속성과 이름과 도메인(범위)가 같아야 연산이 가능하다

4. Division
왼쪽에는 대상 릴레이션과 릴레이션에서 제외할 속성을 기록한다.
오른쪽에는 조건 릴레이션과 속성을 전부 기록한다.
대상 릴레이션에서 왼쪽에 적히지 않은 속성을 모두 출력 (제외할 속성을 제외한 상태로 출력)
오른쪽 릴레이션 원소를 모두 가진 튜플만 출력한다. (조건에 적합한 것만)
나누기 연산 기호 사용 ÷

5. 집합 연산자

합집합 ∪ > 모든 튜플 보여줌, 중복은 제외, 듀 릴레이션의 기수의 합 이하
교집합 ∩ > 동시에 존재하는 것만 보여줌, 두 릴레이션 기수 중 적은 기수 이하
차집합 - > A - B : 중복된 튜플을 A에서 제거, A 기수 이하
교차곱 × > 튜플들의 순서쌍 출력 기수는 각각 릴레이션을 곱한 것과 같음

댓글