트랜잭션의 개념 : 인가받지 않은 사용자로부터 데이터를 보장하기 위해, DBMS의 특성
트랜잭션의 특성
실행
되거나 모두 취소
되어야함상태가 동일
해야함영향을 미치면 안됨
결과
는 영속성으로 DB에 저장
되어야함트랜잭션의 상태변화
트랜잭션 제어 : 제어 언어는 TCL
이라고 하며, 결과를 허용
하거나 취소
하는 목적
- 커밋 / 롤백 / 체크포인트
병행 제어 : 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 일관성 유지를 위해 상호 작용
- 목적
- 데이터베이스의 공유를 최대화
- 시스템의 활용도를 최대화
- 데이터베이스의 일관성 유지
- 응답시간 최소화
- 종류
- 로킹 : 특정 데이터에 두개 이상의 트랙잭션이 접근 못하도록 상호배제
기능 제공
- 낙관적 검증 : 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증 수행
- 타임 스탬프 순서 : 갱신된 데이터에 대해 타임 스탬프
를 부여
- 다중버전 동시성 제어 : 타임스탬프를 비교하여 적절한 버전 선택하여 접근
- 2PC : 여러 분산 DB 시스템에서 트랜잭션의 일관성 유지 기법
- (1단계) 준비 단계 / (2단계) 커밋 단계
데이터베이스 고립화 수준 : 현재에 데이터에 대해 무결성을 해치지 않기 위해 잠금 설정
- Read Uncommited : 아직 커밋 되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용
- Read Commited : 연산이 완료 될 때까지 읽기를 제한, 커밋된건 허용
- Repeatable Read : 트랜잭션 종료시까지 갱신, 삭제 제한
- Serialize Read : 해당 데이터 영역 전체에 대한 접근 제한
회복 기법 : 장애로 인해 손상된 DB를 손상되기 이전으로 되돌리는 기법
CHECK 요소 IN (”값”)
, DEFAULTALTER TABLE 테이블 명 ADD 속성 값 데이터 타입 [NOT NULL]
ADD
, ALTER
, DROP
DROP TABLE 테이블 명 [CASCADE | RESTRICT]
TRUNCATE TABLE 테이블명
CREATE VIEW 뷰 이름 AS SELECT 회원 번호 FROM 회원
CREATE OR REPLACE VIEW 뷰 이름 AS 조회 쿼리
: 뷰 교체CREATE INDEX 인덱스명 ON 테이블 명 (속성 1, 속성 2 ,,,,)
ALTER INDEX 인덱스명 ON 테이블 명 (속성 1, 속성 2 ,,,,)
DROP INDEX 인덱스명 ON 테이블 명 (속성 1, 속성 2 ,,,,)
SELECT
: SELECT * FROM 회원
DISTINCT
WHERE
: 조건GROUP BY 속성
: NULL값은 제외한 후 산출!HAVING 조건
: GROUP에 대한 조건 지정ORDER BY 속성 [ASC | DESC]
ex )
SELECT * FROM 테이블1 A JOIN
테이블2 B ON
조인 조건ex )
SELECT * FROM 테이블1 A LEFT JOIN
테이블2 B ON
조인 조건ex )
SELECT * FROM 테이블1 A RIGHT JOIN
테이블2 B ON
조인 조건ex )
SELECT * FROM 테이블1 A FULL JOIN
테이블2 B ON
조인 조건ex )
SELECT * FROM 테이블1 A CROSS JOIN
테이블2 Bex )
SELECT * FROM 테이블1 A JOIN
테이블1 B ON
조인 조건UNION
SELECT 어쩌고..UNION ALL
SELECT 어쩌고..INTERSECT
SELECT 어쩌고..MINUS
SELECT 어쩌고2..INSERT
: INSERT INTO 회원(회원 이름, 회원 번호,,,) VALUES (전, 1)
UPDATE
: UPDATE 테이블명 SET 속성명 = “데이터” WHERE 조건;
DELETE
: DELETE FROM 테이블 명 WHERE 조건;
GRANT
: GRANT 권한 ON 테이블 명 TO 사용자;
REVOKE
: REVOKE 권한 ON 테이블 명 TO 사용자;
여러 개의 튜플
을 반환조건에 해당하는 값
이 있으면 참SELECT * FROM WHERE 속성 IN (서브쿼리)
하나 이상 만족
하면 참SELECT * FROM WHERE 속성 > ANY (서브쿼리)
모든 값과 조건 값을 비교
해서 모든 값을 만족하면 참SELECT * FROM WHERE 속성 > ALL (서브쿼리)
하나라도 있으면
참SELECT * FROM WHERE EXISTS (서브쿼리)
COUNT()
/ SUM()
/ AVG()
MAX()
/ MIN()
STDDEV()
: 표준편차 계산VARIANCE()
: 분산 계산하나의 함수
처럼 실행단일 값
으로 반환이벤트
가 발생할 때마다 관련 작업이 자동으로 수행
됨튜닝의 개념
옵티마이저