뷰 쿼리의 WHERE 절을 만족하지 않는 삽입 및 업데이트를 거부하는 데 사용되는 선택 절은 무엇입니까?
정답: A
SQL에서 VIEW를 생성하면 사용자는 해당 VIEW를 통해 데이터를 삽입하거나 업데이트할 수 있습니다. 그러나 VIEW의 WHERE 절 조건을 위반하는 방식으로 행을 삽입하거나 업데이트하면 불일치가 발생할 수 있습니다. 이러한 원치 않는 수정을 방지하기 위해 SQL은 WITH CHECK OPTION 절을 제공합니다. WITH CHECK OPTION 작동 방식: * 모든 새 데이터(INSERT/UPDATE)가 여전히 VIEW의 정의된 제약 조건 내에 들어맞는지 확인합니다. * 사용자가 VIEW에 나타나지 않는 행을 삽입하거나 업데이트하려고 하면 작업이 거부됩니다. 예: SQL CREATE VIEW HighSalaryEmployees AS SELECT * FROM 직원 WHERE 급여 > 50000 체크 옵션 포함; 이제 누군가가 시도한다면: SQL HighSalaryEmployees에 ID, 이름, 급여를 삽입합니다. 값(101, '앨리스', 30000); 30000은 Salary > 50000을 충족하지 못하기 때문에 실패합니다. 다른 옵션이 잘못된 이유: * 옵션 B(잘못된 옵션): JOIN VIEWS는 유효한 SQL 절이 아닙니다. * 옵션 C(잘못된 옵션): MATERIALIZED VIEW는 일부 데이터베이스의 저장된 뷰를 참조하지만 잘못된 삽입/업데이트를 거부하지 않습니다. * 옵션 D(잘못된 옵션): BASE TABLE은 VIEW가 생성된 원래 테이블을 참조합니다. 따라서 정답은 WITH CHECK OPTION이며, 이를 사용하면 유효한 데이터 수정만 발생합니다.
Data-Management-Foundations 문제 22
어떤 제약 조건이 기본 키의 변경 사항을 외래 키로 전파합니까?
정답: D
CASCADE 제약 조건은 기본 키 테이블의 업데이트나 삭제가 외래 키 테이블에 자동으로 반영되도록 보장합니다. 사용 예: SQL 부서 테이블 만들기( 부서 ID INT 기본 키, 부서명 VARCHAR(50) ); 테이블 직원 만들기 ( EmpID INT 기본 키, 이름 VARCHAR(50), 부서 ID INT, 외래 키(부서ID) 참조 부서(부서ID) ON UPDATE CASCADE ON DELETE CASCADE ); * 부서의 DeptID가 변경되면 직원의 DeptID도 자동으로 업데이트됩니다. * 부서ID가 삭제되면 해당 부서의 모든 직원도 삭제됩니다. 다른 옵션이 잘못된 이유: * 옵션 A(기본값 설정)(잘못된 예): 변경 사항을 전파하는 대신 외래 키 값을 기본값으로 설정합니다. * 옵션 B(SET NULL)(잘못된 예): 참조된 키가 삭제되면 종속 레코드는 업데이트/삭제되는 대신 NULL로 설정됩니다. * 옵션 C(제한)(잘못된 옵션): 종속된 외래 키 행이 있는 경우 참조된 행의 삭제를 방지합니다. 따라서 정답은 CASCADE입니다. 이는 기본 키의 변경 사항을 종속 외래 키로 전파하기 때문입니다.
Data-Management-Foundations 문제 23
어떤 함수가 집계 함수로 간주되나요?
정답: A
집계 함수는 값 집합에 대한 계산을 수행하고 단일 결과를 반환합니다. MAX()는 이러한 함수 중 하나로, 열에서 가장 큰 값을 반환합니다. 일반적인 집계 함수: 컴퓨터 AI가 생성한 콘텐츠의 스크린샷은 정확하지 않을 수 있습니다. 사용 예: SQL SELECT MAX(급여) FROM 직원; * Employees 테이블에서 가장 높은 급여를 검색합니다. 다른 옵션이 잘못된 이유: * 옵션 B(TRIM)(잘못된 예): 문자열에서 공백을 제거하지만 집계 함수는 아닙니다. * 옵션 C(ABS)(잘못된 옵션): 숫자의 절대값을 반환하지만 여러 행을 집계하지 않습니다. * 옵션 D(DESC)(잘못된 표현): ORDER BY에서 내림차순으로 정렬하는 데 사용되며, 집계에는 사용되지 않습니다. 따라서 정답은 MAX()입니다. 이는 진정한 집계 함수이기 때문입니다.