2021/08/28 4

GROUP BY, HAVING SQL 예제 3, 부양가족 2명이상, 사원, 사번, 성명

▣ GROUP BY, HAVING 예제 3 2015번 69번 정답 : 3번, 4번 1) 1번 보기 : 집계 함수에 대한 조건절은 HAVING 을 사용해야 함 2) 2번 보기 : Group by 절을 사용했으나 SELECT 절 count(*) 전체 갯수 리턴 -- 2015년 정보시스템감리사 DB 69번 CREATE TABLE DEPEND_69 ( ENO INT , DNAME VARCHAR(20) , REL VARCHAR(20) , PRIMARY KEY (ENO, DNAME) ) ; INSERT INTO DEPEND_69 VALUES (1, '홍길동', '부'); INSERT INTO DEPEND_69 VALUES (1, '김영희', '모'); INSERT INTO DEPEND_69 VALUES (2, '이..

데이터베이스 2021.08.28

GROUP BY 관련 SQL 예제 2, 고객, 주문, 총액, 쇼핑몰 데이터베이스

▣ GROUP BY 관련 SQL 예제 2 - SELECT문에 있는 서브쿼리 : Scalar Subquery - FROM절에 있는 서브쿼리 : Inline View - WHERE절에 있는 서브쿼리 : Subquery 2012년 57번 정답 : 3번 쇼핑몰 데이터베이스 중 고객 테이블의 고객번호 컬럼을 GROUP BY한 값이 10보다 큰 고객의 이름과 주문 수량의 합을 구하는 조회문임 고객번호로 GROUP BY 한 값이 10보다 크다는 것은 주문 횟수가 11번 이상이라는 의미임 3번 '열한 번 이상 상품을 주문한 고객이름과 주문한 수량의 합을 구한다.' 정답임 2015년 65번 정답 : 3번 -- 실제 SQL 실행시 에러 발생, WHERE 절의 ALIAS명 인식 불가 -- WHERE절에서 서브쿼리 사용 시 ..

데이터베이스 2021.08.28

병행제어 - 낙관적 동시성 제어

▣ 낙관적 동시성 제어(optimistic concurrency control) 읽기 단계 (read phase) - 트랜잭션이 다른 사본(copy)을 만들어 관리 - 트랜잭션의 갱신(update)는 사본에 대해서 실행하고, 실제 DB에는 실행하지 않음 검증 단계 (validation phase) - 트랜잭션 실행 결과가 직렬가능성 위반 check - 검증 조건 - 3조건 중 하나만 만족하면 검증 성공 - 검증 실패시 트랜잭션은 rollback, 재실행(반복적 재시작) 쓰기 단계 (write phase) - 검증 단계를 통화하면, 트랜잭션의 실행결과를 데이터베이스에 반영 2015년 59번 정답 : 1번

데이터베이스 2021.08.28

트랜잭션_병행제어 _ 충돌 직렬, 뷰 직렬 가능 스케쥴, 직렬성

▣ 트랜잭션_병행제어 _ 충돌 직렬, 뷰 직렬 가능 스케쥴, 직렬성 1. 충돌(Conflict) 서로 다른 트랜잭션의 두 명령어가 동일한 항목(x)에 접근하고 하나 이상의 쓰기가 발생하는 경우 Ti-R(x) ->Tj-R(x) : 비충돌 Ti-R(x) ->Tj-W(x) : 충돌 Ti-W(x) ->Tj-R(x) : 충돌 Ti-W(x) ->Tj-W(x) : 충돌 2. 충돌 직렬(Serialize) 가능 스케쥴 충돌 동등 : 비충돌 연산의 교환 원리를 적용하여 어떤 스케쥴로 변환 가능한 경우 충돌 연산이 아닌 두 연속 연산은 그 순서를 교환하더라도 상관없음 두 트랜잭션 간 충돌하지 않는 나머지 연산자(비 충돌 명령)의 순서를 서로 맞바꿈으로서 직렬 스케줄과 동일한 스케줄이 가능할 경우 충돌 직렬 가능하다고 함 ..

데이터베이스 2021.08.28