이번 포스트에서는 데이터베이스의 트랜잭션, 장애와 회복, 병행 제어에 대해 알아보겠습니다.트랜잭션(Transaction)[ 트랜잭션의 개념 ]트랜잭션(Transaction)은 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산들을 모아놓은 것으로, 논리적인 작업의 단위.트랜잭션은 데이터베이스에 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 된다.데이터베이스의 연산은 SQL 문으로 표현되므로 트랜잭션을 작업 수행에 필요한 SQL 문들의 모임으로 이해해도 좋다.트랜잭션을 통해 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공할 수 있다.[ 트랜잭션의 특성 ]트랜잭션이 성공적으로 처리되어 데이터베이스의 무결성과 일관성이 보장되려면 트랜잭션의 네 가지 특성인 원자성, 일관성..
이번 포스트에서는 이상현상(Anomaly), 정규화(Normalization)에 대해 알아보겠습니다.이상 현상(Anomaly)이상현상(Anomaly)은 불필요한 데이터의 중복으로 인해 발생하는 부작용들.함수 종속 관계 여러 개를 하나의 릴레이션으로 표현하는 경우에 주로 발생한다.이상 현상에는 삽입 이상(insertion anomaly), 갱신 이상(update anomaly), 삭제 이상(deletion anomaly)이 있다. 위 그림의 이벤트참여 릴레이션은 고객들이 이벤트에 참여한 결과를 저장하고 있는 릴레이션이다. 고객에 대한 정보인 고객아이디, 고객이름, 등급과 고객이 참여한 이벤트에 대한 정보인 이벤트번호, 당첨여부를 포함하고 있다. 한 고객이 여러 이벤트에 참여할 수 있으므로 고객아이디만으로..
이번 포스트에서는 데이터베이스 설계에 대해 정리하겠습니다.데이터베이스 설계 단계데이터베이스 설계 단계는 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정.[ E-R 모델과 릴레이션 변환 규칙을 이용한 설계 ]관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 두 가지 방법을 주로 사용한다. 1. E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계2. 정규화를 이용한 데이터베이스 설계 (이상 현상을 제거하면서 올바르게 설계해나가는 방법으로 다음 포스트에서 정리 예정) 아래와 같이 5단계로 진행된다.[ 1단계: 요구사항 분석 ]요구사항 분석 단계는 데이터베이스의 용도를 파악하고 요구사항을 수집한다.결과물: 요구 사항 명세서[ 2단계: 개념적 설계 ]개념적 설계 단계는 1단..
이번 포스트에서는 관계 데이터 연산에 대해 정리하겠습니다.관계 데이터 연산의 개념[ 관계 데이터 모델 ]관계 데이터 모델 = 연산 + 데이터 구조 + 제약조건 으로 이루어진다.[ 관계 데이터 연산 ]연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것. 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다.대표적인 관계 데이터 연산은 관계 대수와 관계 해석이 있다.관계 대수는 원하는 데이터를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어(procedural language)관계 해석은 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어(nonprocedural language)관계 대수와 관계 해석은 능력이 동일함. -> 즉, 관..