3과목 데이터베이스 구축
41. 다음 설명과 관련 있는 트랜잭션의 특징은?
트랜잭션의 연산은 모두 실행되거나, 모두 실행되지 않아야한다.
->Atomically
트랜잭션은 데이터베이스에서 일련의 작업 또는 연산을 하나의 단위로 묶은 것
Consistency (일관성)
트랜잭션이 시작하기 전과 후에 데이터베이스의 일관성이 유지되어야 한다.
트랜잭션이 성공하면 데이터베이스는 이전 상태에서 새로운 일관성 있는 상태로 변해야 한다.
데이터베이스의 규칙이나 제약 조건이 항상 유지되어야 한다.
Isolation (독립성)
동시에 실행되는 트랜잭션은 서로 독립적으로 처리되어야 한다.
한 트랜잭션이 데이터에 변화를 줘도 다른 트랜잭션에는 영향을 미치지 않아야 한다.
예를 들어, 같은 시간에 여러 사용자가 데이터를 읽고 쓸 때, 각 사용자는 원래의 데이터를 불러오고 수정할 수 있어야 한다.
Durability (내구성)
트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야 한다.
시스템이 충돌하거나 오류가 발생하더라도 최종 결과는 유지되어야 한다.
데이터베이스에 대해 commit이 이루어지면 해당 데이터는 안전하게 보관된다.
42. 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 것은?
->CRUD 분석
43. 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법은?
-> 반정규화
반정규화는 정규화된 데이터베이스 구조를 수정하여 성능을 향상시키기 위해 데이터 중복을 허용하는 데이터 모델링 기법이다. 이 과정은 시스템의 조회 성능을 개선하고, 조인(join) 작업의 수를 줄이는 데 초점을 맞춘다.
44. 학생 테이블을 생성한 후, 성별 필드가 누락되어 이를 추가하려고 한다. 이에 적합한 SQL 명령어는?
->ALTER
ALTER: 기존 테이블의 구조를 변경할 때 사용하는 명령어이다. 성별 필드를 추가하는 데 적합하다.
INSERT: 새로운 데이터를 테이블에 추가하는 명령어이다. 필드를 추가하는 데는 사용되지 않는다.
DROP: 테이블이나 특정 필드를 삭제하는 명령어이다. 테이블에 새로운 필드를 추가하는 데는 사용할 수 없다.
MODIFY: 특정 DBMS에서 사용될 수 있는 명령어로, 필드의 속성을 변경할 때 사용된다. 그러나 필드를 추가하는 데는 사용되지 않는다.
45. 정규화의 필요성으로 거리가 먼 것은?
->중복 데이터의 활성화
정규화 필요성
데이터 무결성 유지: 데이터의 일관성과 정확성을 확보하는 데 도움이 된다.
중복 데이터 최소화: 중복을 줄여 저장공간을 효율적으로 사용하는 것이 정규화의 핵심이다.
이상현상 예방: 삽입, 수정, 삭제 시 발생할 수 있는 이상현상을 최소화한다.
유지보수 용이: 모듈화된 설계는 시스템 변경 및 유지보수를 쉽게 한다.
46. 개체-관계 모델의 E-R 다이어그램에서 사용되는 기호와 그 의미의 연결이 틀린 것은?
->삼각형 - 속성

47. 다음 SQL문에서 빈칸에 들어갈 내용으로 옳은 것은?
UPDATE 회원( ) 전화번호 = '010 -14' WHERE 회원번호 = 'N4'
-> SET
SET: 업데이트할 열(column)과 새로운 값을 지정하는 데 사용된다. 즉, 어떤 열의 값을 어떤 것으로 바꿀지를 명시한다.
UPDATE: 특정 테이블의 데이터를 수정할 때 사용되는 SQL 명령어이다.
WHERE: 조건을 지정하여 어떤 행에 대해 업데이트를 수행할지를 결정한다. 이 부분이 없으면 모든 행이 업데이트된다.
다른 SQL 명령어의 용도
SELECT: 데이터를 조회할 때 사용하는 명령어. 테이블에서 특정 열이나 행을 선택할 수 있다.
INSERT: 새로운 행을 테이블에 추가할 때 사용하는 명령어.
DELETE: 테이블에서 특정 행을 삭제할 때 사용하는 명령어. 이 역시 WHERE 조건을 사용하여 삭제 대상을 명시한다.
48. 릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못한 키는?
->슈퍼키
"릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못한 키"는 슈퍼키다. 슈퍼키는 릴레이션 내에서 튜플을 유일하게 구별할 수 있는 속성(또는 속성의 집합)이다
49. DBA 사용자가 PARK에게 테이블 [STUDENT]의 데이터를 갱신할 수 있는 시스템 권한을 부여하고자 하는 SQL문을 작성하고자 한다. 다음에 주어진 SQL문의 빈칸을 알맞게 채운 것은?
SQL> GRANT ㄱ ㄴ STUDENT TO PARK;
-> ㄱ:UPDATE, ㄴ:ON
㉠ UPDATE, ㉡ ON: 업데이트를 의미하는 UPDATE와 특정 테이블을 지정하는 ON이 함께 사용된 이 조합이 옳다. PARK에게 STUDENT 테이블의 데이터를 갱신할 수 있는 권한을 부여한다.
㉠ INSERT, ㉡ INTO: 이 조합은 새로운 데이터를 삽입할 때 사용된다. 그러나 데이터 업데이트에 관한 내용이 아니므로 틀렸다.
㉠ ALTER, ㉡ TO: ALTER는 테이블의 구조를 변경하는 SQL 명령어로, 데이터의 갱신과 관련이 없다.
㉠ REPLACE, ㉡ IN: REPLACE는 기존 데이터를 대체하는 명령어로, 권한 부여와 관련된 명령어가 아니기 때문에 틀렸다.
50. 관계대수에 대한 설명으로 틀린 것은?
->원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 비절차적방법이다.
관계대수 정의:
관계대수는 관계형 데이터베이스에서 데이터를 다루기 위한 수학적 이론에 기반한 언어로, 연산의 집합으로 이루어진다.
절차적 언어:
일반적으로 관계대수는 특정한 절차를 따르며, 데이터의 선택, 결합, 집합 연산 등이 포함된다. 쿼리의 결과로 테이블 형태의 데이터를 반환한다.
비절차적 언어와의 차이:
비절차적 언어는 결과물이 무엇인지에 집중하며, 사용자가 원하는 데이터를 선택하는 방식이다. 예를 들어, SQL과 같은 데이터베이스 쿼리 언어는 비절차적 특징을 지니고 있다.
관계대수는 더 많은 세부 사항과 연산을 직접적으로 기술하며, 어떻게 결과를 유도할 것인지에 대한 절차를 함께 설명한다.
51. 다음 SQL문의 실행 결과는?
SELECT 과목이름
FROM 성적
WHERE EXISTS (SELECT 학번
FROM 학생 WHERE 학생,학번 = 성적, 학번 AND
학생,학과 IN('전산','전기')AND
학생,주소='경기');
->3
52. 로킹 기법에 대한 설명으로 틀린것은?
->로킹 단위가 작아지면 병생성 수준이 낮아진다.
"로킹 단위가 작아지면 병행성 수준이 높아진다."
이는 여러 사용자가 데이터베이스의 같은 데이터를 동시에 접근할 수 있는 가능성을 증가시킵니다. 예를 들어, 행(row) 단위로 로킹을 하면 특정 행만 잠그기 때문에, 다른 행은 다른 사용자에 의해 계속 사용될 수 있습니다.
작은 로킹 단위:
특정 행(row)에 대해서만 잠금
여러 사용자가 동시에 같은 테이블에서 다양한 행을 사용할 수 있게 되어 병행성이 증가
큰 로킹 단위:
전체 테이블에 대해 잠금
다른 사용자는 해당 테이블에 접근할 수 없게 되어 오히려 병행성이 감소
53. 사용자 X1에게 department 테이블에 대한 검색연산을 회수하는 명령은?
->revoke select on department from X1;
delete select on department to X1;
잘못된 문법이다. DELETE는 특정 행을 삭제하는 데 사용되며, SELECT 권한을 삭제하는 데 적합하지 않다.
remove select on department from X1;
표준 SQL 문법이 아니다. REMOVE라는 키워드는 일반적으로 데이터베이스에서 사용되지 않는다.
grant select on department from X1;
권한을 부여하는 명령어인 GRANT가 사용되었다. 따라서 잘못된 선택지이다.
54. 뷰(VIEW)에 대한 설명으로 틀린 것은?
-> 뷰의 정의는 기본 테이블과 같이 ALTER문을 이용하여 변경한다.
뷰는 기존의 테이블을 기반으로 하는 가상의 테이블로, 기본적으로 정의 자체는 수정을 통해 변경할 수 없다. 뷰의 속성을 수정하기 위해서는 다음과 같은 방식으로 진행한다:
뷰 재정의: 새로운 뷰를 만들거나 기존 뷰를 드롭한 후 다시 생성해야 한다. 기존의 ALTER문으로는 뷰를 직접적으로 수정할 수 없다.
다른 테이블과의 연계: 필요에 따라 복합 쿼리를 사용하여 새로운 뷰를 정의할 수 있지만, 이는 기본 테이블의 변경과는 다른 과정이다.
55. 데이터 모델에 표시해야 할 요소로 거리가 먼 것은?
->출력 구조
데이터 모델에서 표시해야 할 요소는 다음과 같다:
논리적 데이터 구조: 데이터 간의 관계와 구조를 정의함.
연산: 데이터에 수행할 수 있는 다양한 작업(삽입, 삭제, 갱신 등)을 포함.
제약조건: 데이터의 무결성을 유지하기 위한 규칙(예: 기본키, 외래키 제약 등).
56. 제 3정규형에서 보이스코드 정규형(BNCF)으로 정규화하기 위한 작업은?
->결정자가 후보키가 아닌 함수 종속 제거
제 3정규형(3NF)에서 보이스코드 정규형(BCNF)으로 정규화하기 위해서는 다음과 같은 작업이 필요하다.
결정자가 후보키가 아닌 함수 종속 제거가 필요하다. 이는 모든 함수 종속이 후보키에 의해 결정되어야 하며, 만약 결정자가 후보키가 아니라면 이를 제거하거나 새로운 테이블로 나누어야 한다.
57. A1, A2, A3 3개 속성을 갖는 한 릴레이션에서 A1의 도메인은 3개 값, A2의 도메인은 2개 값, A3의 도메인은 4개 값을 갖는다. 이 릴레이션에 존재할 수 있는 가능한 튜플의 최대 수는?
-> 24
릴레이션 A1, A2, A3는 각각 다음과 같은 도메인을 갖는다:
A1의 도메인: 3개 값
A2의 도메인: 2개 값
A3의 도메인: 4개 값
이 경우, 튜플 수를 계산하는 방법은 각 속성의 도메인 값 수를 곱하는 것이다.
58. 데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌 것은?
->목표 DBMS에 맞는 스키마 설계
물리적 설계 단계는 데이터 구조 및 저장소의 구체적인 구현을 계획하는 단계이며, 다음과 같은 요소들이 포함된다:
저장 레코드 양식 설계: 데이터의 실제 저장 형식을 정의한다.
레코드 집중의 분석 및 설계: 데이터가 물리적으로 저장되는 방식을 분석한다.
접근 경로 설계: 데이터베이스에 대한 접근 방식을 결정한다.
59. 한 릴레이션 스키마가 4개 속성, 2개 후보키 그리고 그 스키마의 대응 릴레이션 인스턴스가 7개 튜플을 갖는다면 그 릴레이션의 차수(degree)는?
->4
차수(degree)는 릴레이션에 포함된 속성의 개수를 나타낸다. 따라서, 한 릴레이션 스키마가 4개의 속성을 가지면 그 릴레이션의 차수는 4이다.
차수의 필요성과 의미
차수는 데이터베이스의 구조를 이해하는 데 중요한 요소로, 다음과 같은 의미를 가진다:
속성의 개수: 릴레이션의 속성 수를 통해 데이터 구조의 복잡성이 결정된다.
데이터베이스 설계: 설계를 진행할 때, 차수에 따라 필요한 저장 공간과 효율성을 고려할 수 있게 된다.
쿼리 성능: 릴레이션의 차수는 쿼리 작성 시 올바른 SQL 구문을 사용하는 데에도 영향을 미친다.
60. 데이터웨어하우스의 기본적인 OLAP연산이 아닌 것은?
->translate
OLAP에서 사용하는 기본적으로 알려진 연산들은 다음과 같다
Roll-Up: 데이터의 집계를 통해 더 높은 수준의 요약을 생성하는 작업.
Drill-Down: 구체적인 데이터로 이동하여 세부 사항을 보다 상세하게 분석하는 작업.
Dicing: 특정한 차원에서 특정 값만을 선택하여 데이터의 하위 집합을 만드는 작업.
'정보처리기사' 카테고리의 다른 글
2020년도 8월 정보처리기사 기출 분석 3과목 : 데이터베이스 구축 (0) | 2025.01.24 |
---|---|
2020년도 6월 정보처리기사 기출 분석 3과목 : 데이터베이스 구축 (0) | 2025.01.23 |
2020년도 9월 정보처리기사 기출 분석 2과목 : 소프트웨어설계 (1) | 2025.01.22 |
2020년도 6월 정보처리기사 기출 분석 2과목 : 소프트웨어설계 (2) | 2025.01.22 |
2020년도 9월 정보처리기사 기출 분석 1과목 : 소프트웨어설계 (1) | 2025.01.21 |