본문 바로가기
Database

SQLD 공부하다가 몰랐던 내용 정리하기

by KkingKkang 2023. 4. 5.

모델링의 특징

  • 추상화
  • 단순화
  • 명확화
  • 정보시스템 구축을 위한 데이터관점, 프로세스관점의 업무 분석
  • 데이터베이스 구축을 위한 분석 및 설계하는 과정의 의미

도메인

  • 엔터티 내에서 속성에 대한 데이터 타입크기 , NOT NULL, Check 조건을 지정한다

TRUNCATE TABLE

  • 특정 로우를 선택하여 지울 수 없다

ORDER BY 2

  • ORDER BY 1, 2, 3 → 테이블의 1,2,3번째 컬럼 기준으로 정렬

PROCEDURE, TRIGGER

  • PROCEDURE, TRIGGER 모두 CREATE 명령어로 생성한다
  • PROCEDURECOMMIT, ROLLBACK 명령어를 사용할 수 있다
  • TRIGGER 는 COMMIT, ROLLBACK 명령어를 사용할 수 없다
  • 프로시저
    • 프로시저는 특정한 로직을 처리하기만 하고 결과 값은 반환하지 않는 서브 프로그램입니다.
    • 테이블에 데이터를 입력하는 프로시저 :변수를 선언할 일이 있으면 IS뒤에다가 써주면 됩니다.
    • 동작은 BEGIN뒤에 명시합니다.
    • 파라미터로 받을 값을 프로시저명 뒤에 명시해주면 되고
    CREATE OR REPLACE PROCEDURE EX_PROC
    (
       P_DEPARTMENT IN VARCHAR2,
       P_STUDENT_CNT IN NUMBER
    )
    IS
    P_UNIVERSITY VARCHAR2(100)  := '서울대학교';
    
    BEGIN
    
    INSERT INTO UNIVERSITY1 (UNIVERSITY, DEPARTMENT, STUDENT_CNT)
    VALUES (P_UNIVERSITY, P_DEPARTMENT, P_STUDENT_CNT);
    COMMIT;
    
    END EX_PROC;
    
  • 트리거
    • 트리거는 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때 마다 자동적으로 수행되는 사용자 정의 프로시저이다.
    • 트리거는 TABLE과는 별도로 DATABASE에 저장된다.
    • 트리거는 VIEW에 대해서가 아니라 TABLE에 관해서만 정의될 수 있다.
    • 트리거는 SQL의 제약조건 방법을 통해 명시할 수 없는 무결성 제약조건을 구현하고,관련 테이블의 데이터를 일치시킬 때 주로 사용된다.
    • 제약조건과 함께 데이터 무결성을 지키는 하나의 방법으로써 특정 이벤트에 대해서 연속적으로 자동 동작하는 특수한 형태의 저장 프로시저라고 볼 수 있다.
    • 일반적으로 사용처는 많지만 예를 들어보자면 "입고"테이블에 새로운 제품이 들어왔을때 그 수량을 "재고"테이블에 자동으로 반영되게 하는 경우가 있다.
    CREATE [ OR REPLACE ]TRIGGER 트리거명
    
    BEFORE | AFTER
    
    [ 동작(INSERT,UPDATE,DELETE) ] ON 테이블명 
    
    [ REFERENCING  NEW | OLD  TABLE AS 테이블명 ]
    
    [ FOR EACH ROW ]
    
    [ WHEN 조건식 ]
    
    트리거 BODY문
    
    • NEW : 새로 추가되거나 변경된 후의 값에 트리거가 적용된다.(INSERT : 입력할 값, UPDATE : 수정할 값)
    • OLD : 변경 전의 값에 트리거가 적용된다. (UPDATE : 수정 전 값, DELETE : 삭제할 값)

COALESCE

  • COALESCE 함수는 처음으로 NULL이 아닌 컬럼 값을 만나면 그 컬럼 값을 리턴

NULLIF (표현식1, 표현식2)

  • 표현식1 과 2과 같으면 NULL, 다르면 표현식 1 리턴

NVL(표현식1, 표현식2) / ISNULL(표현식1, 표현식2)

  • expr1값이 Null인 경우 expr2 값으로 변경되어 출력된다.

NVL2(expr, expr1, expr2)

  • expr의 값이 NULL이 아닐 경우에는 expr1의 값을 반환 하고, NULL일 경우에는 expr2의 값을 반환 한다.

트랜잭션

  • 원자성 : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행 되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다.
  • 고립성 : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다.
  • 지속성 : 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.
  • 일관성 : 트랜잭션이 실행 되기 전의 데이터베이스 내용이 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안된다
반응형

'Database' 카테고리의 다른 글

식별 관계 비식별 관계  (0) 2023.04.04

댓글