DataBase/Oracle

    트랜잭션(Transaction) 이란?

    트랜잭션(Transaction) 하나의 단위로 수행되길 바라는 쿼리의 묶음 논리적인 작업 단위 여러 가지 DML작업들을 하나의 단위로 묶어 둔 것 해당 트랜잭션 내에 있는 모든 DML이 성공해야 해당 트랜잭션이 성공하는 것이고 만약 1개의 DML이라도 실패하면 전체가 실패하게 된다. ✅ 은행에서 계좌 입,출금(송금)과 같은 개념 은행에서는 송금 자체를 하나의 트랜잭션(거래)로 보고 A통장에서 출금한 돈이 B통장에 정확히 입금히 확인되면 그 때 거래를 성사시키고(commit) 네트워크 장애로 인해 출금만 발생하고 입금이 되지 않았을 경우에는 이를 모두 취소(rollback)하게 된다. 💡 Commit 트랜잭션 내의 작업의 결과를 확정하는 명령어 메모리 상에서 변경된 내용을 데이터 파일에 반영. 💡 Roll..

    PL/SQL (3) 트리거

    본 포스팅은 Oracle 11g를 이용하고있으며, Tool은 Toad for Oracle 13.4 를 이용했습니다. 트리거 🔎 insert, update, delete의 DML문이나 DDL문의 실행을 데이터베이스에서는 특정 이벤트가 발생되었다고 하는데, 이런 이벤트가 발생하면 자동으로 정해진 동작 을 실행하는 데이터베이스 객체를 트리거라고 함 서브 프로그램 단위의 하나인 트리거는 테이블, 뷰, 스키마 또는 데이터베이스에 관련된 PL/SQL 블록(또는 프로시저)으로 관련된 특정 사건(event)이 발생될 때마다 자동으로 해당 PL/SQL 블록이 실행 된다. 사전적인 의미로 보자면 방아쇠 를 뜻하는데, 방아쇠를 당기는 이벤트가 발생하면 총알이 발사된다는 의미처럼 오라클에서도 어떤 이벤트가 발생할 경우 연관된..

    PL/SQL (2) 저장프로시저, 커서, 함수

    본 포스팅은 Oracle 11g를 이용하고있으며, Tool은 Toad for Oracle 13.4 를 이용했습니다. PL/SQL 서브 프로그램 💡 데이터베이스 객체로 저장해서 필요할 때마다 호출하여 사용할 수 있는 PL/SQL 블록 익명블록과 달리 저장하여 공유할 수 있으므로 메모리, 성능, 재사용성 등의 장점이 있다. 프로시저 : 결과값을 반환하지 않는다. SQL문에서 사용 할 수 없다. 함수 : 리턴 값을 반드시 반환해야 하는 프로그램, SQL문에서 사용 가능 하다. 패키지 : 하나 이상의 프로시저, 함수, 변수, 예외 등의 묶음 트리거 : 지정된 이벤트가 발생하면 자동으로 실행되는 PL/SQL 블록 저장 프로시저 매개 변수를 받을 수 있고, 반복해서 사용할 수 있는 이름이 있는 PL/SQL 블록 연..

    PL/SQL (1) 개요, 조건문, 반복문, 예제

    본 포스팅은 Oracle 11g를 이용하고있으며, Tool은 Toad for Oracle을 이용했습니다. Procedural Language extension to Structured Query Language SQL과 일반 프로그래밍 언어의 특성을 결합한 언어 변수, 상수 선언 가능 조건문, 반복문 사용 가능 DBMS의 역할이 커지면서 SQL을 넘어서는 일반 프로그래밍 언어가 처리할 수 있는 기능들이 필요하게되었는데, 1989년 Oracle 6 버전부터 PL/SQL 이 등장 하게 되었다. 💡 변수가 없으며, 한번에 하나의 명령문만 사용 가능 (트래픽 증가) 그리고 제어문이 없으며 (IF, LOOP) , 예외처리가 없었던 SQL의 단점들을 개선해준다. ✅ 왜 PL/SQL을 써야 할까? C나 JAVA에 비..