모델링의 특징
- 추상화
- 단순화
- 명확화
- 정보시스템 구축을 위한 데이터관점, 프로세스관점의 업무 분석
- 데이터베이스 구축을 위한 분석 및 설계하는 과정의 의미
도메인
- 엔터티 내에서 속성에 대한 데이터 타입과 크기 , NOT NULL, Check 조건을 지정한다
TRUNCATE TABLE
- 특정 로우를 선택하여 지울 수 없다
ORDER BY 2
- ORDER BY 1, 2, 3 → 테이블의 1,2,3번째 컬럼 기준으로 정렬
PROCEDURE, TRIGGER
- PROCEDURE, TRIGGER 모두 CREATE 명령어로 생성한다
- PROCEDURE 는 COMMIT, 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 |
---|
댓글