본문 바로가기
SQL

sqld 공부 ( 2 과목 : 관리구문 )

by 뱅뱅뱅뱅뱅 2024. 11. 10.

 

참조 무결성  ( 의존성이 있을 때 )

 

입력, 삭제, 수정 과정에서 데이터의 일관성이 깨지는 것을 DBMS차원에서 방지하기 위한 조건

 

1. DELETE / MODIFY ACTION

 

CASCADE: 부모의 값 삭제 시 자식의 값도 같이 삭제

SET NULL: 부모의 값 삭제 시 자식의 해당 칼럼은 NULL 값이 된다 ( 자식 속성 NOT NULL이면 안됨 ) 

SET DEFAULT: 부모의 값 삭제 시 자식의 해당 칼럼은 기본값으로 변경

RESTRICT: 비식별자 관계에서 삭제 및 수정 가능

NO ACTION: 제약조건 위배한 경우 동작 실패하며 아무런 액션 X

 

 

 

 

2. INSERT ACTION

 

AUTOMATIC: 부모 테이블에 PK가 없는 경우 PK 생성 후 자식 테이블에 값 입력

SET NULL: 부모 테이블에 PK가 없는 경우 자식 테이블에 NULL 값 입력

SET DEFAULT: 부모 테이블에 PK가 없는 경우 자식 테이블에 기본값이 입력

DEPENDENT: 부모 테이블에 PK가 존재할 때만 자식 테이블에 값 입력을 허용

NO ACTION: 제약조건을 위배한 경우 동작 실패하며 아무런 액션 X

 

 

 

DDL

 

DDL은 자동커밋 되므로 롤백 불가능

 

 

  • CREATE
    • 주의할 점
      • 숫자로 시작될 수 없고 _, $, #만 허용
      • 칼럼의 이름은 통일성 있게 지어야 한다
  • DROP
  • ALTER
  • TRUNCATE
    • DELETE 차이점
      • DELETE 롤백 가능
        • DELETE FROM <테이블>
      • TRUNCATE 롤백 불가능
        • TRUNCATE TABLE <테이블>

 

컬럼변경

 

Oracle

  • MODIFY
    • ALTER TABLE 명령어와 함께 사용되어 테이블의 기존 컬럼을 수정
    • 컬럼의 데이터 타입이나 제약 조건을 변경
    • 여러 컬럼을 한 줄로 변경 가능

SQL Server

  • ALTER 컬럼
  • 여러 컬럼을 한 줄로 변경 불가능

 

 

 

 

DML

 

  • INSERT
  • UPDATE
  • DELETE
  • MERGE

 

 

 

 

DCL

 

사용자(USER)를 생성하고 데이터베이스에 대한 권한 부여하는 명령어

 

CREATE USER 사용자1 IDENTIFIED BY 패스워드1;

ALTER

DROP

 

  • REVOKE   ...  ON  ...
    • 권한 회수
  • GRANTE  ...  ON  ...
    • 접근 권한 부여

 

 

 

 

TCL

 

트랜잭션

  • 데이터베이스에서 작업, 동작의 최소 실행 단위
  • 더 이상 쪼개질 수 없는 작업
  • 전체가 되거나 전체가 안되거나

트랜잭션의 특징 (ACID)

  • 원자성 (Atomicty)
    • 하나의 트랜잭션으로 묶인 연산들은 모두 실행되거나 전혀 실행되지 않는다
  • 일관성 (Consistency)
    • 트랜잭션 이전에 데이터베이스에 오류가 없다면 이후에도 오류가 없다
  • 고립성 (Isolation)
    • 독립적으로 수행, 다른 트랜잭션이 실행 중간에 간섭, 영향 미치지 않음
  • 영속성 (Durability)
    • 트랜잭션의 결과는 영구적 저장, 유지

 

 

  • COMMIT
    • DML 명령들을 통한 변경사항을 DB에 영구적 반영하고 락을 해제하여 트랜잭션 완료
    • COMMIT 전에는 락이 걸려있으며 다른 트랜잭션 영향을 안 받는다
  • ROLLBACK
    • 변경사항을 취소하고 원래대로 되돌린다.
    • 락이 헤제됨
    • 커밋이 된 것에 대해서는 롤백 불가능
    • DDL 명령어는 자동 커밋되어 롤백 불가능
    • DML 명령어는 자동 커밋이 되지 않아 롤백 가능
  • SAVEPOINT
    • 롤백을 하기 위한 저장점

 

 

 

 

'SQL' 카테고리의 다른 글

SQLD 마무리  (1) 2024.11.12
sqld 공부 ( 2 과목 : SQL 활용 )  (0) 2024.11.09
sqld 공부 ( 2 과목 : SQL 기본 )  (1) 2024.11.03
sqld 공부 ( 1 과목 : 데이터 모델링의 이해 )  (4) 2024.11.02