DB/DB 개념 정리
-
트랜잭션 ( Transaction ) 이란DB/DB 개념 정리 2020. 2. 22. 18:08
트랜잭션(Transaction) 이란 -데이터베이스의 상태를 변환시키는 하나의 논리적인 작업 단위를 구성하는 연산들의 집합이다. -예를 들어, A 계좌에서 B계좌로 일정 금액을 이체한다고 가정하자. A 계좌의 잔액을 확인한다. A 계좌의 금액에서 이체할 금액을 빼고 다시 저장한다. B계좌의 잔액을 확인한다. B계좌의 금액에서 이체할 금액을 더하고 다시 저장한다. 이러한 과정들이 모두 합쳐져 계좌이체라는 하나의 작업 단위를 구성한다. 하나의 트랜잭션은 Commit 되거나 RollBack 된다. Commit 연산 한개의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝나 데이터베이스가 다시 일관된 상태에 있을 때, 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산이다. Roll..
-
정규화란DB/DB 개념 정리 2020. 2. 14. 20:35
정규화란? 한 릴레이션에 여러 엔티티의 애트리뷰트들을 혼합하게 되면 정보가 중복 저장되며, 저장 공간을 낭비하게 된다. 또 중복된 정보로 인해 갱신 이상이 발생하게 된다. 이러한 중복에 관한 문제를 해결하기 위해 정규화 과정을 거치는 것이다. 삽입 이상(insertion anomalies) 원하지 않는 자료가 삽입된다든지, 삽입하는데 자료가 부족해 삽입이 되지 않아 발생하는 문제점을 말한다. 삭제 이상(deletion anomalies) 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제됨으로 원하지 않는 정보 손실이 발생하는 문제점을 말한다. 수정(갱신)이상(modification anomalies) 정확하지 않거나 일부의 튜플만 갱신되어 정보가 모호해지거나 일관성이 없어져 정확한 정보..
-
Connection PoolDB/DB 개념 정리 2020. 2. 6. 14:44
Connection Pool 클라이언트의 요청에 따라 각 애플리케이션의 스레드에서 데이터베이스에 접근하기 위해서는 Connection 필요합니다. Connection pool은 이런 Connection 여러 개 생성해 두어 저장해 놓은 공간(캐시), 또는 이 공간의 Connection을 필요할 때 꺼내 쓰고 반환하는 기법을 말합니다. Connection Pool 라이브러리 Connection pool을 제공하는 라이브러리로는 대표적으로 Apache의 Commons DBCP와 Tomcat-JDBC, BoneCP, HikariCP 등이 있습니다. DB에 접근하는 단계 웹 컨테이너가 실행되면서 DB와 연결된 Connection 객체들을 미리 생성하여 pool에 저장합니다. DB에 요청 시, pool에서 Con..
-
DB 파티셔닝(partitioning) 이란?DB/DB 개념 정리 2020. 1. 22. 15:54
DB 파티셔닝이란 서비스의 크기가 점점 커지고 DB에 저장하는 데이터의 규모 또한 대용량화 되면서, 기존에 사용하는 DB 시스템의 용량(storage)의 한계와 성능(performance)의 저하 를 가져오게 되었다. 즉, VLDB(Very Large DBMS)와 같이 하나의 DBMS에 너무 큰 table이 들어가면서 용량과 성능 측면에서 많은 이슈가 발생하게 되었고, 이런 이슈를 해결하기 위한 방법으로 table을 ‘파티션(partition)’이라는 작은 단위로 나누어 관리하는 ‘파티셔닝(Partitioning)’기법 이 나타나게 되었다. ‘파티셔닝(Partitioning)’기법을 통해 소프트웨어적으로 데이터베이스를 분산 처리하여 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 할 수 있게 되었다...