트리거란 데이터 베이스 이벤트에 반응하여 실행되는 프로그램으로 프로시져와 구분해서 공부하는것이 좋다. 우선 트리거의 주된 사용목적은 데이터의 무결성을 보장하는 데이터베이스관리의 자동화이다. 이전 포스팅에서도 다루었듯이 오라클에서는 on update cascade를 지원하지 않으므로 트리거의 생성을 통해 부모테이블의 기본키를 수정한다면 기본키를 참조하는 자식테이블에서도 튜플이 갱신될수 있도록 한다. 트리거는 이런 데이터베이스의 이벤트에 반응하여 실행되는것으로 자동으로 실행되는것이고 수동으로는 실행될수 없다. 트리거의 생성 예시) 예제 : 부모릴레이션을 참조하는 자식릴레이션이 존재하는경우 부모릴레이션의 속성이 변경될때 자식릴레이션도 자동으로 참조하는 속성이 변경되는 트리거 (updata cascade) //..
오라클의 제약조건중 하나인 외래키는 데이터의 중복을 막기위해 정규화시 생성해 사용한다. 외래키는 부모테이블에서 파생되는 자식테이블에서 부모테이블의 기본키를 참조하는 키로 이를 사용해 테이블과 테이블을 연결해 사용이 가능하고 원하는 테이터를 논리적 결합의 형태로 사용이 가능하다. 외래키의 생성문법) // 테이블 생성시 외래키 생성하는 방법 create table 테이블명( 외래키명 타입, constrait 외래키별칭 foreign key (외래키명) references 부모테이블명 (부모테이블 기본키명) ); // 외래키 추가로 생성시 alter table 자식테이블명 add 외래키명 타입; alter table 자식테이블명 add constraint 외래키 별칭 foreign key (외래키명) refe..
개체와 개체의 관계를 파악후 데이터의 중복을 막기 위해 정규화를 하는데 이때 정규화의 한 방법을로 ERD 작성이 있다. ERD(entity relationship diagram) : 개체간 관계를 도식화 데이터가 중복되면 무결성을 위배할 소지가 있으므로 ERD 작성을 통해 개체간 관계르 도식화하고 대응관계를 살펴 기본키와 외래키를 식별하는것에 사용한다. 이때 개체란 속성으로 표현가능하고 독립적으로 표현이 가능한 것을 말하고, 관계란 개체와 개체와의 관계성을 의미한다. 1:N 관계) 1:N 관계의 경우 1의 기본키가 n의 개체의 외래키로 한다. 1:1 관계) 1:1의 관계는 어떤 개체든 상관없이 한쪽에서만 외래키를 다른 개체의 기본키를 참조한다. N:M 관계) N:M 관계는 별도의 테이블을 생성해 관계를 ..
오라클에서는 기본적으로 제공되는 함수들이 있다. 그러나 개발자가 임의로 함수를 생성해 사용하고 싶은 경우 함수를 직접 생성해 사용이 가능하다. 함수를 생성하는 문법의 형식은 다음과 같다. create function 함수명(매개변수1 타입, 매개변수2 타입) return 리턴값의 타입 is 변수명 타입 // 이때 varchar의 경우 범위지정해주어야함 begin // 함수 내용 작성 return 리턴할 값; end; / 간단히 문자열 합치기 함수를 만들어 예시를 들어보겠다. // 함수 생성 create function func0829(a varchar2, b varchar2) return varchar2 is str varchar2(40); begin str := a || b; return str; en..
oracle의 sql문은 크게 DDL, DCL, DML 세가지로 나눌수 있다. DDL : 테이블을 관리하는 명령어로 create , drop, alter 테이블 등의 명령어를 사용해 테이블의 생성, 삭제, 수정을 수행한다 DCL : 트랜잭션과 권한관리를 수행하는 명령어로 commit, rollback 등의 명령어를 사용해 트랙잭션을 수행하고, grant, revoke 등의 명령어를 사용해 사용자의 권한을 부여 및 회수하는 명령을 수행한다. DML : 튜플을 관리하는 명령어로 튜플의 CRUD 작업 수행시 사용한다. c : insert / r : select / u : update / d : delete 이제 각 명령어들의 세부 사용법을 정리하자면, DDL 테이블의 생성시) create table 테이블명 ..