SQL 4

SQL - DB 트랜잭션(Transaction)

🔎 트랜잭션이란?데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다 = SQL 질의어를 통해 DB에 접근하는것 (SELECT, INSERT, DELETE, UPDATE) 쉽게 말해 한꺼번에 수행되어야 할 연산을 모아놓은 것으로, 연산들을 모두 처리하지 못한 경우에는 원 상태로 복구한다.작업의 일부만 적용되는 현상이 발생하지 않는다!→ 작업의 완전성을 보장해준다. 사용자 A가 사용자 B에게 만원을 송금한다.1. 사용자 A의 계좌에서 만원을 차감한다.2. 사용자 B의 계좌에서 만원을 추가한다.출금 UPDATE문 + 입금 UPDATE문이를 통틀어 하나의 트랜잭션이라고 한다.위 두 쿼리문 모두 성공적으로 완료되어야만 하나의 작업, 트랜잭션이 완료되는 것이다. = commit작업 단위에 ..

CS 2024.11.13

SQL - 저장 프로시저(Stored Procedure)

🔎 저장 프로시저란?DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리 집합 * 프로시저를 만들어두면, 애플리케이션에서 여러 상황에 따라 해당 쿼리문이 필요할 때 인자 값만 전달하여 쉽게 원하는 결과물을 받아낼 수 있다.  프로시저 생성CREATE OR REPLACE PROCEDURE 프로시저명(변수명1 IN 데이터 타입, 변구명2 OUT 데이터 타입)IS[변수명1 데이터 타입;변수명2 데이터 타입;..]BEGIN 필요한 기능;END;인자 값은 필수가 아니다.BEGIN과 END 사이에 인자 값을 활용할 수 있다.프로시저 호출EXEC 프로시저명; 프로시저의 장점과 단점장점최적화 & 캐시프로시저의 최초 실행 시 최적화 상태로 컴파일되며, 그 이후 프로시저 캐시에 저장된다.만약 ..

CS 2024.11.12

B Tree & B+ Tree

B Tree 자료구조이진 탐색 트리와 유사한 자료구조자식 노드를 둘 이상 가질 수 있고 Balanced Tree 라는 특징이 있다.✅ 탐색 연산에 있어 O(log N)의 시간 복잡도를 가진다.모든 노드들에 대해 값을 저장하고 있으며 포인터 역할을 동반한다.규칙노드의 자료수가 N이면, 자식 수는 N+1이어야 한다.각 노드의 자료는 정렬된 상태여야 한다.루트 노드는 적어도 2개 이상의 자식을 가져야 한다.루트 노드를 제외한 모든 노드는 적어도 M/2개의 자료를 가지고 있어야 한다.외부 노드로 가는 경로의 길이는 모두 같다.입력 자료는 중복될 수 없다.데이터 삽입추가는 항상 리프 노드에 한다.노드가 넘치면 가운데 key를 기준으로 좌우 key들을 분할하고 가운데 key는 승진한다.📢 노드가 넘치는 경우 : ..

CS 2024.11.11

SQL - 인덱스(Index)

🔎 인덱스?추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 * 데이터베이스의 index는 책의 색인과 같다 주의! 오히려 필요 없는 인덱스를 만들게 되면 데이터베이스가 차지하는 공간만 더 늘어나고, 인덱스를 이용해서 데이터를 찾는 것이 전체 테이블을 찾아보는 것보다 느려질 수 있다. 인덱스의 장점과 단점장점적절한 인덱스를 생성하고 인덱스를 사용하는 SQL을 만든다면 기존보다 아주 빠른 응답 속도를 얻을 수 있다.전체 시스템의 성능이 향상되는 효과도 얻을 수 있다.단점인덱스도 공간을 차지하기 때문에 데이터베이스 안에 추가적인 공간이 필요하다.SELECT가 아닌 데이터의 변경 작업(INSERT, UPDATE, DELETE)이 자주 일어나면 오히려 성능이..

CS 2024.11.10