흥달쌤의 정보처리기사 실기 대비 특강|데이터베이스 80문제 풀이과정(1~33문제 ,작성중)
내가 한 번에 볼려고 만드는 게시물.
01. 아래의 설명 중 SQL문의 특징을 모두 고르시오.
ㄱ)여러 줄에 나누어 입력 가능하다. (o)
ㄴ)문장 끝에는 콜론(:)을 붙인다. (x) -> 세미 콜론(;) : 필수는 아니다.
ㄷ)keyword는 대문자로 입력해야 한다. (x) -> SQL은 대소문자를 구분하지 않는다.
ㄹ)select질의 시 정렬 순서의 기본값은 오름차순이다. (o) -> Asc오름차순 Dsc 내림차순 이나 , 기본값은 오름차순이다.
02. SQL의 분류 중 DDL에 해당하지 않는 것은?
1번. UPDATE ->>> 데이터조작어(DML)
2번. ALTER -->>수정한다
3번. DROP -->> 삭제한다
4번. CREATE -->> 만든다
03. 다음 중 SQL에서의 DDL문이 아닌 것은?
1번. CREATE
2번. DELETE
3번. ALTER
4번. DROP
04.SQL에서 스키마, 도메인,테이블, 뷰, 인덱스를 정의하거나 변경 또는 삭제할 때 사용하는 언어는?
답: DDL(Data Definition Language)
05. DDL의 명령어 중 스키마, 도메인, 인덱스 등을 정의할 때 사용하는 SQL문은?
답: CREATE
06. 다음 SQL 명령어 중 데이터 정의어(DDL)만을 고르면?
ㄱ.ALTER
ㄴ.DROP
ㄷ.TRUNCATE
ㄹ.GRANT ->>>DCL 명령어 (권한 줄 때 사용) / REVOK는 권한 뺏을 때
ㅁ.COMMIT ->>>DCL 명령어 (반영할 때)/ ROLLBACK (명령어 반환할 떄)
-->>>추가!!!! 원자성에 해당됨. (모두 반영되거나 모두 반영되지 않는다 하면 원자성에 해당)
07. 학생 테이블을 생성한 후, 성별 필드가 누락되어 이를 추가하려고 한다.
이에 적합한 SQL 명령어는?
답: ALTER
08. DDL의 기능이 아닌 것은?
1번. 데이터베이스의 생성 기능
2번. 병행처리 시 LOCK 및 UNLOCK 기능 --->제어 해당/ DCL에 해당
3번. 테이블의 삭제 기능
4번.인덱스 생성 가능
09. 다음 중 데이터베이스 내의 정보를 검색, 추가,삭제,수정할 수 있는 데이터베이스 언어를 의미하는 것은?
답: DML
10. DML에 해당하는 SQL 명령으로만 나열된 것은?
답: SELECT, INSERT, DELETE, UPDATE
11. DML 명령어가 아닌 것은?
1번.INSERT
2번.UPDATE
3번. ALTER ->DDL
4번. DELETE
12.DBMS를 통해 사용할 수 있는 데이터 언어 중 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안, 시스템 장애에 대비한 회복을 제어하는 명령어는?
답: 데이터 제어어(DCL)
13. 데이터 제어언어(DCL)의 기능으로 옳지 않은 것은?
1번. 데이터 보안
2번. 논리적, 물리적 데이터 구조 정의 --(X)>>DDL에 해당됨.
3번.무결성 유지
4.병행수행 제어
14. DCL명령어가 아닌 것은?
1번. COMMIT
2번. ROLLBACK
3번. GRANT
4번. SELECT
15. 테이블 student에 대한 권한을 부여하는 ㄱ과 회수하는 ㄴ을 SQL로 바르게 표현한 것은?
ㄱ. 테이블 Student에 대한 SELECT,INSERT권한을 Kim과 Lee에게 부여한다. ->>부여(GRANT)
ㄴ. 테이블 Student에 대한 SELECT,INSERT권한을 Lee로부터 회수한다. -->>회수 (REVOKE)
명령어다음 권한이 먼저 나온다. 그 다음 ON 그 다음 TO 누구에게
답: ㄱ.GRANT SELECT,INSERT ON STUDENT TO KIM,LEE;
ㄴ.REVOKE SELECT,INSERT ON STUDENT FROM KIM,LEE;
16. DBA가 사용자 PARK에게 테이블[STUDENT]의 데이터를 갱신할 수 있는 시스템 권한을 부여하고자 하는 SQL문을 작성하고자 한다. 다음에 주어진 SQL문의 빈칸을 알맞게 채운 것은?
SQL >GRANT ㄱ ㄴ STUDENT TO PARK;
답: ㄱ : UPDATE ㄴ: ON
17. 사용자 X1에게 department 테이블에 대한 검색 연산을 회수하는 명령은?
답: revoke select on department from X1;
18. 관계 데이터베이스에서 테이블 조작을 위한 권한부여 명령을 다음과 같이 수행하였다.
명령을 수행한 후의 테이블에 대한 권한을 설명한 것이다.
적절하지 않은 것은? (단, [ ] 은 사용자를 의미한다.)
[DBA] GRANT SELECT ON T1 TO USER1 (WITH GRANT OPTION;)
[USER1] GRANT SELECT ON T1 USER2 (WITH GRANT OPTION;)
[USER2] GRANT SELECT ON T1 USER3 (WITH GRANT OPTION;)
[USER3] GRANT SELECT ON T1 USER4;
[USER2] REVOKE SELECT ON T1 FROM USER3 CASCADE;
1번. 유저1은 T1테이블에 대해 SELECT연산을 수행할 수 있다.
2번. 유저2은 T1테이블에 대해 SELECT연산을 수행할 수 있다.
3번. 유저3은 T1테이블에 대해 SELECT연산을 수행할 수 없다.
4번. 유저4은 T1테이블에 대해 SELECT연산을 수행할 수 있다. (X) ->수행할 수 없다.
19. SQL의 명령을 DDL,DML,DCL로 구분할 경우 이를 바르게 짝지은 것은?
DDL | DML | DCL |
CREATE | INSERT | GARNT |
ALTER | UPDATE | REVOKE |
DROP | DELETE | |
SELECT |
* 트랜잭션의 특징 (트랜잭션은 쪼갤 수 없는 가장 작은 하나의 업무 처리 단위)
원자성
일관성
고립성
지속성
20.SQL 언어에 대한 설명으로 옳지 않은 것은?
1번. SQL은 관계 데이터베이스 시스템의 표준 언어이다.
2번. SQL은 포괄적인 데이터베이스 언어로서 데이터 정의, 질의, 갱신을 위한 문들을 가지고 있다.
3번. 트랜잭션의 시작, 철회, 완료 등을 표현하기 위해 SQL에서는 COMMIT, ROLLBACK 등을 사용한다.
4번. 데이터 조작어는 데이터베이스에 데이터를 검색하여 추가하고 삭제하는 데 사용하며 SELECT, REVOKE가 이에 해당된다. -(X) ->>> REVOKE는 데이터제어어(DCL)에 해당된다.
21.데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미하는 것은?
정답: 트랜잭션 ( 트랜잭션의 4가지 특징도 기억해둘 것!)
22. 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업은?
정답:Recovery( 필기에도 나옴. )
23. 트랜잭션의 실행이 실패하였음을 알리는 연산자로 트랜잭션이 수행한 결과를 원래의 상태로 원상 복귀 시키는 연산은?
정답: ROLLBACK연산
**LOG연산중에는 즉시연산, 지연연산이 있다. - 추후 공부하기
24.트랜잭션의 특성 중 다음 설명에 해당하는 것은?
"트랜잭션의 연산 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다."
정답 : 원자성(Atomicity)
25.Commit과 Rollback 명령어에 의해 보장받는 트랜잭션의 특성은?
정답 : 원자성(Atomicity)
26. 다음과 같은 트랜잭션의 특성은?
"시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다."
정답:일관성(consistency)
27.트랜잭션의 주요 특성 중 하나로 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음을 의미하는 것은?
정답:고립성(Isolation)
28.트랜잭션의 상태 중 트랜잭션의 마지막 연산이 실행 된 직후의 상태로, 모든 연산의 처리는 끝났지만 트랜잭션이 수행한 최종 결과를 데이터베이스에 반영하지 않은 상태는?
정답: Partially Committed (부분완료상태)
29. 트랜잭션의 상태 중 트랜잭션의 수행이 실패하여 Rollback연산을 실행한 상태는?
정답: 철회(Aborted)
30. 트랜잭션의 동작에 대한 설명으로 옳지 않은 것은?
1번.트랜잭션이 완료되었다는 사실을 DBMS로부터 응용프로그램이 확인한 경우라도 하드디스크에 위치한 데이터 베이스 파일에는 해당 트랜잭션에 의해 변경된 내용이 반영 되어 있지 않을 수도 있다.
-부분완료상태
2번.트랜잭션이 마지막 명령문을 수행하여 부분완료된 상태에서도 철회상태로 옮겨갈 수 있다.
3번. DBMS는 아직 완료되지 않은 트랜잭션이 변경한 내용을 데이터베이스 버퍼공간의 제약으로 인하여 하드디스크의 데이터베이스 파일에 기록할 수 있다.
4번.시스템 고장으로 트랜잭션이 철회된 경우, 회복 관리자에 의해 복구가 수행된 경우라도 하드디스크에 위치한 데이터베이스 파일에는 해당 트랜잭션에 의해 변경된 내용이 반영될 수 있다. (X)->>반영될 수 없다.~!! 실패했음 롤백 시키기 떄문에 반영할 수 없다. 다시 처음부터 연산을 시작해야한다.
31. 트랜잭션이 부분 완료상태에 도달하였다가 실패 상태로 가는 경우에 해당하는 것은?
정답:디스크 출력 도중의 하드웨어 장애
32. 데이터베이스에서 ForeignKey(참조키)와 관련된 옵션 중 Master 삭제 시 해당 값을 NULL로 세팅하는 것은?
정답:Nullfied Option
(+ 추가 설명
Cascaded Option 강제 삭제
Restricted Option 제한을 두는 것이고
Nullfied Option은 NULL로 바꾸는 것)
33.다음은 ForeginKey를 정의하는 SQL CREATE 구문 중 일부이다. 다음 중 옵션 위치에 명시할 수 없는 것은?
FOREIGN KEY(열_이름_리스트)
REFERENCES 기본 테이블[(열_이름_리스트)]
[ON DELETE 옵션]
[ON UPDATE 옵션]
1번. NO ACTION
2번. CHECK
3번. CASCADE
4번. SET NULL
34. 다음은 테이블을 생성하는 SQL구문이다. 이 테이블에 대한 연산을 설명하는 것으로 옳지 않은 것은?
CREATE TABLE 직원(
직원번호 NUMBER NOT NULL,
직원이름 CHAR(10) UNIQUE,
부서번호 NUMBER CHECK(부서번호 IN (1,2,3,4)) DEFAULT1,
PRIMARY KEY(직원번호),
FOREIGN KEY(부서번호) REFERENCES 부서(부서번호) ON
DELETE CASCADE
);
1번. 동명이인의 직원 이름을 추가했더니 입력되지 않았다.
2번. 부서가 없는 신입사원을 입력했더니 부서번호가 널값이 되었다. ---> 널값이 아닌 1값이 들어간다.
3번. 부서 테이블에서 특정 부서를 삭제했더니 해당 부서에 속한 직원들도 ㅂ삭제되었다.
4번. 직원 번호에 동일한 번호를 입력했더니 처리되지 않았다.
35. 다음 두 릴레이션을 외래키로 연결하고자 할 때 외래키 설정으로 적절한 것은?
정답: 학생 테이블의 과목번호
36.다음의 데이터베이스에서 Students릴레이션의 sid가 53666인 튜플이 삭제되면 enrolled릴레이션의 sid가 53666인 튜플도 같이 삭제되도록 하는 방법으로 가장 적절한 것은? ( 단, students, enrolled릴레이션 각각의 기본 키는 밑줄 친 속성이다.)
정답:enrolled 릴레이션을 생성할 때 외래키(sid) refere
37.(가)의 SQL문은 어느 회사 데이터베이스의 직원과 부서 테이블 정의 중 일부를 보인 것이며, (나)는 부서 테이블의 부서장ID에 대한 제약조건 요구사항을 설명한 것이다. (가)의 SQL문에서 ㄱ에 들어갈 제약조건 표현으로 가장 적절한 것은?
38. 다음 '사원' 테이블을 생성하는 SQL문에서 부서의 속성값을 '인사','연구','영업'으로 제한하고자 한다. ㄱ,ㄴ에 들어갈 내용으로 옳은 것은 ?
정답 ㄱ: CHECK ㄴ:IN
39. 다음 중 SELECT문의 선택된 필드에서 중복 데이터를 포함하는 레코드를 제외시키는 조건자로 옳은 것은?
정답:DISTINCT
40. 다음 중 SQL에 대한 설명으로 가장 옳지 않은 것은?
1번.조건을 만족하는 결과가 존재하는지만 알고 싶거나 그 중 일부만 검색하고자 하는 경우 LIMIT키워드를 사용한다. (ㅇ)
2번. 집계 함수는 그룹 함수와 밀접한 관련성이 있으며 SELECT절이나 HAVING절에만 사용할 수 있다.
3번. 중첩 질의문 중에서 내부 질의의 WHERE절 검색조건식이 외부질의에 선언된 테이블의 일부 열을 참조하는 질의를 상호연관질의라고 한다.
4번. IN연산자는 부 질의문의 실행 결과로 반환되는 행의 존재 유무를 확인하는 연산자이다. ===> 행의 존재 유무를 확인하는 연산자는 이그지스트
*****Select문 *****
select ~~~,*
from table
where (조건) 확장된 조건을 준다고 하면 and /or
group by 학년 그룹핑
having count (*)>30
order by a asc(오름차순)/desc(내림차순)
41. SQL문에서 SELECT에 대한 설명으로 옳지 않은 것은?
1번. FROM절에는 질의에 의해 검색될 데이터들을 포함하는 테이블명을 기술한다.
2번.검색결과에 중복되는 레코드를 없애기 위해서는 WHERE절 에 'DISTINCT'키워드를 사용한다. -> HAVING절이 들어간다.
3번.HAVING절은 GROUP BY절과 함께 사용되며, 그룹에 대한 조건을 지정한다.
4번.ORDER BY절은 특정 속성을 기준으로 정렬하여 검색할 때 사용한다.
42. SQL의 논리 연산자가 아닌 것은?
1번. AND
2번. OTHER ->없음
3번. OR
4번. NOT
43.SQL문에서 HAVING을 사용할 수 있는 절은?
정답: GROUP BY절
44. 다음 중 SQL의 집계함수가 아닌 것은?
1번.
2번.
3번.
4번.
45.다음의 SQL에서 명령어 짝의 사용이 적절하지 않은 것을 모두 고른 것은?
ㄱ. UPDATE../ AS (X) ->SET
ㄴ. CREATE VIEW ../ SET (X) -> AS
ㄷ. SELECT.../ WHERE../GROUP BY.../HAVING..
정답 :ㄱ,ㄴ