CS 지식/Database

데이터베이스에서 사용되는 트랜잭션은 기본 동작의 단위가 되므로 중요한 개념이다. 트랜잭션에 대해 알아보자.트랜잭션 (Transaction)이란?단일한 논리적인 작업 단위, 즉 더이상 분할이 불가능한 업무처리 단위이다.데이터베이스에서 트랜잭션의 의미를 적용해본다면 한꺼번에 수행되어야 할 일련의 연산 모음집이라고 생각하면 되겠다. SQL문을 실행할 때, 일부의 쿼리만 성공한다면 DB에 실제로 반영되는 일은 일어나지 않는다. 하나의 SQL 쿼리문이 트랜잭션이기 때문이다. 커밋 (Commit)지금까지 작업한 내용을 DB에 영구적으로 저장한다.트랜잭션을 종료한다. 롤백 (Rollback)지금까지 작업들을 모두 취소하고 트랜잭션 이전 상태로 되돌린다.트랜잭선을 종료한다. 자동 커밋 (Autocommit)각각의 SQ..
데이터베이스에서 인덱스는 성능 향상의 열쇠라고 할 수 있을 정도로 핵심적인 요소 중 하나이다. 인덱스가 무엇이고, 어떻게 적용되어 있는지 알아보자.인덱스란?추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 인덱스를 쓰는 이유만약 다음과 같은 기본적인 조회 쿼리문이 있다고 해보자.SELECT *FROM UESRSWHERE NAME = "GAMJA";WHERE문을 통해 NAME 열을 조회할 때, 만약 단순히 완전탐색(Full scan)을 한다면 데이터의 개수만큼의 시간이 걸릴 것이다. 즉 데이터의 개수가 N개라면 시간복잡도는 O(N)이 된다. 이는 데이터가 많아지게 되면 쉽게 부하가 올 수 있을 것이다. 이를 인덱스를 통해 좀 더 효율적인 방법으로 개선한다..
데이터베이스 정규화는 그 정도에 따라 같은 양의 데이터를 보다 적은 비용으로 관리할 수 있게 해준다. 정규화에 대해 알아보자.정규화란?정규화란 데이터 중복과 insertion, update, deletion anomaly를 최소화하기 위해 일련의 normal forms(NF)에 따라 relational DB를 구성하는 과정이다.  정규화의 목적1. 불필요한 데이터(data redundancy)를 제거하여 불필요한 중복을 최소화2. 삽입/갱신/삭제 시 발생할 수 있는 각종 이상 현상(Anomaly)를 방지하기 위해서 테이블의 구성을 논리적이고 직관적으로 한다.  정규화 과정정규화는 실제로 6NF까지 존재하지만, 보통 3NF까지 도달하면 '정규화 됐다'라고 표현하며 BCNF 이후의 단계는 실무에서는 많이 사..
말도 못하는 감자
'CS 지식/Database' 카테고리의 글 목록