전체 글(100)
-
[데이터베이스] 트랜잭션(Transaction)이란
하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합을 트랜잭션이라고 한다. 트랜잭션의 예로 계좌 간의 자금 이체가 많이 언급된다. 한 계좌에서 10만 원을 인출하여 다른 계좌로 10만 원 입금하는 이체 작업은 전체 작업이 정상적으로 완료되거나, 만약 정상적으로 처리될 수 없는 경우에는 아무 것도 실행되지 않은 처음 상태로 되돌려져야 한다. 이러한 트랜잭션은 다양한 데이터 항목들을 액세스하고 갱신하는 프로그램 수행의 단위가 된다. 흔히 트랜잭션은 ACID 성질이라고 하는 다음의 네 가지 성질로 설명된다. Atomicity(원자성): 이체 과정 중에 트랜잭션이 실패하게 되어 예금이 사라지는 경우가 발생해서는 안 되기 때문에 DBMS는 완료되지 않은 트랜잭션의 중간 상태를 데이터베이스에 반영해서는 안 된..
2022.08.13 -
[데이터베이스] 정규화 (1차, 2차, 3차, BCNF)
데이터베이스를 잘못 설계했을 때 불필요한 데이터 중복으로 인한 공간 낭비를 넘어 부작용을 초래할 수 있다. 이러한 부작용을 이상(Anomaly)라고 하는데, 이상 현상의 종류로 삽입이상, 갱신이상, 삭제이상이 있다. 정규화를 설명하기 앞서 이 이상현상에 대해 짚고 넘어가야 할 필요성이 있다. ※ 데이터베이스의 이상 현상(Anomaly) 삽입 이상(Insertion Anomaly) : 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다. 갱신 이상(Modification Anomaly) : 반복된 데이터 중에 일부를 갱신할 시 데이터의 불일치가 발생한다. 삭제 이상(Deletion Anomaly) : 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다. ▷ ..
2022.08.13 -
[데이터베이스] 인덱스(Index)
※ 인덱스란? 인덱스(Index) : 추가적인 쓰기 작업과 저장 공간을 활용해 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 데이터베이스에서 테이블의 모든 데이터를 검색하면 시간이 오래 걸릴 수밖에 없기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕는다. 인덱스를 활용하게 되면 데이터를 조회하는 SELECT 외에도 UPDATE나 DELETE의 성능이 같이 향상된다. 그것이 가능한 이유는 해당 연산을 수행하기 위해 해당 대상을 조회해야만 작업이 가능하기 때문이다. 만일, index를 사용하지 않은 컬럼을 조회해야 하는 상황이면 전체를 탐색하는 Full Scan을 수행하게 되는데, 이는 처리 속도가 떨어진다. ※ 인덱스의 관리 DBMS는 index를..
2022.08.13 -
[데이터베이스] 데이터베이스 키(key)의 개념 및 종류
데이터베이스에서 키(key)는 조건에 만족하는 튜플을 찾거나, 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성이다. 튜플(Tuple) : 릴레이션을 구성하는 각각의 행, 속성의 모임으로 구성된다. 키의 종류로는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다. 키를 알아보기에 앞서, 최소성과 유일성의 개념을 먼저 짚을 필요가 있다. ▷ 유일성 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질을 뜻한다. 여러 개의 튜플이 존재할 때 서로 구분할 수 있는 속성이 존재해야 함. ▷ 최소성 키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질을 말한다. 만약, (주민번호, 나이) 가 키로 지정이 되어 있다면 이 키로 튜플(개개인의 정보)을 구별할 수 있는 것은 맞다..
2022.08.12 -
[데이터베이스] 커넥션 풀이란? (Connection Pool)
※ DB Connection DB를 사용하기 위해 DB와 애플리케이션 간 통신을 할 수 있는 수단 DB Connection은 Database Driver와 DB 연결 정보를 담은 URL이 필요하다. Java의 DB Connection은 JDBC를 주로 이용하는데, URL 타입을 사용한다. 만약 예를 들어, 웹 어플리케이션 서버를 가정했을 때 서버는 클라이언트의 요청을 받은 후 DB에서 데이터를 조작해야 하는 요청이라면 DB로 쿼리문을 날리는데, 이 때 DB서버에 접근하기 위해 DB Connection 객체가 필요하다. ※ DB Connection 구조 2Tier - 클라이언트로써 자바 프로그램(JSP)이 직접 DB 서버로 접근하여 데이터에 액세스하는 구조 3Tier - 자바 프로그램과 DB서버 중간에 미..
2022.08.12 -
[데이터베이스] 데이터베이스 vs 파일시스템
데이터베이스가 등장하기 이전, 컴퓨터는 파일시스템을 이용하여 데이터를 관리하였다. 하지만, 이 파일시스템을 사용하는 방식은 데이터베이스에 비해 많은 단점을 가지고 있었다. 따라서, 이 데이터베이스와 파일시스템이 갖고 있는 특징과 왜 데이터베이스를 사용하는가를 알아보도록 하자. 파일시스템 데이터베이스 구조 특정 구조가 없음 table 형태 접근 방식 순차적 접근만 가능 비순차적 접근 가능 중복 O 비교적 덜 발생 불일치 O 비교적 덜 발생 트랜잭션 X O 다중 사용자의 접속 X O 보안 및 관리 각 프로그램마다 데이터를 가지고 있어 보안이 까다롭다. 사용자마다 다른 권한 부여가 가능 질의어 X SQL 회복 X O ▷ 파일 시스템의 단점 중복 데이터가 많다. 회복 기능이 없다. 데이터의 추가/수정/삭제가 번..
2022.08.12