묻고 답하기

제목 2권 - SQL 제약조건 CHECK값 표기 방법 / SET NULL과 CASCADE의 차이
자격증 정보처리 기사 실기
도서/쪽 페이지 2022 시나공 정보처리기사 실기 / 11,13쪽
등록일 2022-06-23 조회 13
작성자 일*

안녕하세요, 실기 2권에서 질문 두 가지 드립니다.

 

1. 

p.12 문제 3번에서

‘sex’속성은 ‘f’ 또는 ‘m’값만 갖도록 한다.

라고 되어 있어서 p.7번 예제 참고해

 

CHECK(VALUE IN (‘f’, ‘m’))

라고 답을 적었는데요.

 

해설지에는 CHECK(sex=‘f’ or sex=‘m’)

라고 적혀있어요. 동일한 의미이고,  value in 으로 적어도 맞는 건가요?

 

2.

p. 13 문제 7번에서

근무지 테이블에서 ‘근무지번호’가 삭제되면 <사원> 테이블의 ‘근무지번호도’ 삭제된다. 

라고 되어 있어 저는 답을

 

SET NULL이라고 했는데요,

정답은 CASCADE더라고요. 

 

SET NULL로 적어도 정답인가요? 아니면 이건 분명한 오답인가요?

만약 오답이라면

 

SET NULL은 지문에서 ~할 경우 NULL로 설정한다 라고 했을 때만 적을 수 있는 걸까요?

 

답변 기다리겠습니다. 감사합니다.

그리고 비전공자에 지식이 없는 상태에서 공부하다보니…

1번에서 만약 value in 으로 적어도 정답이라면 해설지에 이런 정답 경우의 수도

자세히 써있었으면 좋겠어요..! 예제와 다른 부분이 있으면 혼돈이 많아서요!

첨부파일
  • 첨부파일 없음
제목 답변입니다.
등록일 2022-06-27

안녕하세요 길벗수험서 운영팀입니다.

 

[1]

오답입니다.

value in 은 속성을 특정할 수 없는 도메인 생성 시에만 사용하는 예약어로,

테이블 생성 시에는 value 대신 속성명을 넣어 check(sex in('f', 'm'))으로 적어주셔야 합니다.

 

[2]

오답입니다.

set null과 cascade의 구분을 확실히 기억해 두세요.

지웠을 때 null(비어있음)로 표현할 때는 set null을,

지웠을 때 해당 속성을 참조 중인 다른 속성까지 함께 지워버려야 할 때는 cascade를 사용합니다.

 

행복한 하루되세요 :)

첨부파일
  • 첨부파일 없음