📂 트랜잭션(Transaction) 트랜잭션(Transaction)은 데이터베이스에서 일어나는 일련의 연산들의 집합으로서, 하나의 논리적 기능을 수행하기 위한 작업의 단위이다. 이는 데이터베이스의 상태를 하나의 일관된 상태에서 다른 일관된 상태로 변환시킨다. 이를 위해 트랜잭션에 포함된 모든 연산은 완전히 처리되거나 아니면 하나도 처리되지 않아야 하는 "All-or-Nothing" 방식으로 처리되어야 한다. 트랜잭션을 표현할 때는 Begin_Trans와 End_Trans를 하나로 묶은 형태로 표시하고, 하나의 트랜잭션은 Begin_Trans와 End_Trans 안에서 실행되는 모든 명령문들을 말한다. 📄 트랜잭션의 특성 데이터베이스의 회복과 병행 제어는 대부분 트랜잭션을 기반으로 수행된다. 트랜잭션은 아..
백업(Backup)은 현재의 데이터베이스를 다른 매체에 보관하는 작업을 말한다. 회복(Recovery)은 데이터베이스에 문제 발생 시에 다른 매체에 백업된 데이터를 이용해서 원상태로 돌려놓는 작업을 말한다. 회복과 관련된 데이터 저장장치로 다양한 종류가 존재할 수 있는데, 이들은 고장에 대한 회복력에 따라 휘발성, 비휘발성, 안정 저장장치로 구분해 볼 수 있다. 휘발성 저장장치(Volatile storage) : 메인 메모리와 같이 시스템 고장 시에 저장된 정보가 유실된다. 비휘발성 저장장치(Nonvolatile storage) : 디스크나 자기 테이프와 같이 시스템 고장 시에도 일반적으로 저장된 정보는 손실되지 않는다. DB 시스템에서는 디스크가 가장 많이 사용되고, 자기 테이프는 백업용으로 사용된다...
📂 무결성(Integrity) 데이터베이스에서 무결성(Integrity)이란, 데이터의 정확성 또는 유효성 을 의미한다. 하지만, 동적으로 변화하는 DB 환경 하에서 데이터의 정확성을 유지한다는 것은 상당히 어려운 일이다. 그렇기 때문에 실제로는 어떤 무결성 규칙(Integrity Rule)을 정해 놓고 이것에 위배되지 않는 한 DB의 무결성은 유지되는 것으로 간주한다. 무결성 규칙에는 다음과 같은 것들이 있다. 🏷 도메인 무결성 규칙(Domain Integrity Rules) 주어진 애트리뷰트의 값이 그 애트리뷰트가 정의된 도메인에 속한 값이어야 한다는 것을 규정하는 것이다. 예를 들어, 전화번호 애트리뷰트의 경우 일반적으로 '010-1234-4567'와 같은 형태로 숫자와 '-'로만 구성될 수 있다고..
데이터베이스 설계란, 조직체의 운영 및 목표 달성을 위해 데이터베이스를 생성하는 일련의 과정이다. 기본적으로 정보 시스템 개발 절차를 따른다. 아래 그림은 데이터베이스 개발의 생명 주기(Life cycle)를 보여주고 있다. 이러한 DB 개발 과정에는 요구사항 분석, 설계, 구현, 운영, 감시 및 개선으로 나누어 볼 수 있다. 유의할 사항은 생명 주기의 어떤 단계에서 문제가 발생하면 그 피드백을 받아 그 앞의 적절한 단계로 되돌아가 그 단계부터 다시 계속된다는 것이다. 이 중에서 "설계" 단계에 중점을 두고 알아보자. 데이터베이스 설계 단계에는 다음과 같이 5단계로 구분하고 있다. 데이터베이스 설계 단계는 데이터베이스 개발 과정 중에서 요구사항 분석을 기초로 하여 데이터베이스 구조를 작성하는 과정이다. ..
이번 포스팅에서는 어떻게 좋은 데이터베이스를 설계할 것인가에 대한 이론적인 해결 방안에 대해 알아보자. 다음은 잘못 설계된 데이터베이스의 예이다. 왜냐하면 같은 학번이 나타날 때마다 학년 애트리뷰트 값도 똑같이 중복적으로 나타나기 때문이다. 위 테이블과 같이 잘못 설계된 데이터베이스에서는 다음과 같은 삭제, 삽입, 갱신 이상이 발생된다. 이러한 이상(Anomaly) 현상에 대해 예를 들어 살펴보자. 🏷 삭제 이상(Deletion anomaly) 위 테이블에서 학번 3654 '고영준' 학생이 과목 'CO234'의 등록을 취소할 때는 DB에서 학번 3654인 튜플을 삭제하면 된다. 이때 3654번 학생의 학년이 4라는 정보가 이 튜플에만 존재해 있다. 따라서 이 튜플을 삭제하게 되면 3654번 학생이 4학년..
📂 SQL 뷰(View) 뷰(View)는 하나 또는 둘 이상의 기본 테이블로부터 유도되어 만들어지는 가상 테이블(Virtual table)을 말한다. 기본 테이블은 디스크에 공간이 할당되어 데이터를 저장한다. 하지만, 뷰(View)는 데이터 딕셔너리 테이블에 뷰에 대한 정의(SQL문)만 저장되어 디스크 저장 공간 할당이 이루어지지 않는다. 또한, 전체 데이터 중에서 일부만 접근할 수 있도록 하고, 뷰에 대한 수정 결과는 뷰를 정의한 기본 테이블에 적용된다. 뷰를 정의한 기본 테이블에서 정의된 무결성 제약조건은 그대로 유지된다. 뷰는 독자적인 인덱스를 가질 수 없다. 뷰는 논리적 독립성을 제공한다. 📄 뷰 생성 질의 : 학생 테이블의 '컴퓨터'과 학생들로 구성된 학생뷰를 생성하라. CREATE VIEW s..