DBMS

·DBMS/Database
1. 이상 현상 (Anomaly)이상 현상은 데이터베이스를 설계할 때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류이다.정규화를 거치지 않은 데이터베이스에서 발생할 수 있는 현상이다. (1) 삽입 이상 (Insertion Anomaly)데이터를 삽입할 때 의도하지 않은 값까지 추가해야 해당 데이터를 테이블에 삽입할 수 있는 현상이다. 예를 들어 {student_id, course_id, department, grade} 를 저장하는 테이블이 있다고 가정하자.해당 테이블의 기본 키(PK)가 {student_id, course_id} 인 경우, 아무 강의도 수강하지 않은 학생은 course_id 가 없는 현상이 발생한다.그러나 course_id 는 기본 키이기 때문에 null 로 추..
·DBMS/Database
1. 트랜잭션 (Transaction)트랜잭션(Transaction)의 사전적 의미는 거래이다. 컴퓨터 과학 분야에서의 트랜잭션은 더 이상 분할이 불가능한 업무 처리의 단위를 의미한다.즉, 트랜잭션은 한꺼번에 수행되어야 하는 일련의 연산 모음을 의미한다. (1) 간단한 예시를 통한 트랜잭션 설명예를 들어, A가 B에게 송금하는 상황을 가정하자. A가 B에게 송금하는 행위는 크게 출금과 입금 두 개의 과정으로 이루어진다.우선 A의 계좌에서 송금할 금액만큼 차감한 다음, B의 계좌에 송금한 금액만큼 입금되어야 한다. 이때 출금만 되고 입금이 안되는 경우가 발생하면 안되므로, 트랜잭션이 필요하다.즉, 출금과 입금 두 과정은 동시에 성공하거나, 그렇지 않다면 동시에 실패해야 한다.이렇게 두 과정을 (atomic..
·DBMS/MySQL
1. IN서브쿼리의 결과를 모두 가져온 후, 메인 쿼리의 WHERE 절에서 결과 집합과 비교하는 방식이다.서브쿼리의 결과에 NULL 이 포함되는 경우에는 결과가 의도와 다르게 동작할 수 있으므로 주의해야 한다. 아래는 IN 을 사용하여 작성한 쿼리의 예시이다.SELECT *FROM aWHERE a.key IN ( SELECT b.key FROM b);b 테이블에 먼저 접근한다.b.key 를 IN 리스트에 나열한 후 a.key 에 공급한다.즉, 이 쿼리에서 b 테이블은 공급자 역할을 수행한다. 2. EXISTS서브쿼리에서 조건을 만족하는 행이 존재하는지 여부를 확인하는 방식이다.즉, 서브쿼리에서 결과 집합을 반환하는 것이 아니라, 서브쿼리에서 조건을 만족하는 행을 찾는 즉시 반환하는 것이다. 따..
·DBMS/MySQL
1. WITH 절과 공통 테이블 표현식 (CTE, Common Table Expression)WITH 절은 MySQL에서 공통 테이블 표현식(CTE)을 정의하기 위해 사용하는 구문이다.공통 테이블 표현식(CTE)은 단일 SQL 문 내에서 임시 이름이 붙은 임시 결과 집합으로, 해당 SQL 문 내에서 여러 번 참조하여 사용할 수 있다. 2. WITH 절과 공통 테이블 표현식(CTE)의 특징WITH 절과 공통 테이블 표현식은 성능 최적화 관점에서 반복된 서브쿼리를 줄이고 가독성과 유지보수성을 높이는 데 도움을 준다.중첩된 서브쿼리를 사용하지 않고도 논리적으로 쿼리를 나눌 수 있다.공통 테이블 표현식은 같은 statement 내에서 여러 번 참조될 수 있으며, 여러 번 참조되더라도 한 번만 실행되어 그 결과가..
인피케이
'DBMS' 카테고리의 글 목록