본문 바로가기

CS/DB13

[DB] 트랜잭션 격리 수준(isolation level) 목차 1. 트랜잭션의 특성 ACID 트랜잭션을 성공적으로 처리하여 데이터베이스의 무결성과 일관성을 보장하기 위해서는 (1) 원자성 (Atomicity) (2) 일관성 (Consistency) (3) 격리성 (Isolation) (4) 지속성 (Durability) 의 4가지 특성을 만족해야 한다. 이중 격리성을 보장하기 위해서 모든 트랜잭션을 순차적으로 실행하면 동시성 처리 이슈가 발생한다. 반대로 동시성을 높이기 위해 여러 트랜잭션을 병렬처리하게 되면 데이터의 무결성이 깨질 수 있다. 따라서, 트랜잭션들을 병행 수행하면서 격리성을 보장하기 위해 ANSI 표준은 트랜잭션의 격리 수준을 4단계로 나누어 정의하고 있다. 2. 트랜잭션 격리 수준 트랜잭션의 격리 수준(isolation level)이란 동시에 .. 2022. 2. 8.
[DB - 데이터베이스 개론] Chapter 11. 보안과 권한 관리 목차 01. 보안 데이터베이스는 조직에서 허가한 사용자만 접근할 수 있도록 통제하여 보안을 유지하는 일이 무척 중요하다. 데이터베이스의 보안은 데이터를 보호하는 방법을 고려하는 측면에 따라 다양하게 구분할 수 있는데, 일반적으로 다음 세 가지 유형으로 구분된다. ① 물리적 환경에 대한 보안 - 자연 재해처럼 데이터베이스에 물리적으로 손신을 발생시키는 위험으로부터 데이터베이스를 보호해야 한다. ② 권한 관리를 통한 보안 - 접근이 허락된 사용자만 부여된 권한 내에서 데이터베이스를 사용할 수 있도록 한다. 계정이 발급된 사용자만 데이터베이스에 접근할 수 있도록 통제하고, 사용자별로 데이터베이스의 사용 범위와 수행 가능한 작업 내용을 제한할 수 있어야 한다. ③ 운영 관리를 통한 보안 - 데이터 무결성을 유지.. 2022. 2. 7.
[DB - 데이터베이스 개론] Chapter 09. 정규화 목차 01. 정규화의 개념과 이상 현상 1. 정규화의 개념 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입·수정·삭제 연산을 수행할 때 부작용이 발생할 수 있다. 이러한 부작용을 이상(anomaly) 현상이라 한다. 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해나가는 과정이 정규화다. 2. 이상 현상의 종류 이상 현상에는 아래와 같은 세 가지 종류가 존재한다. 삽입 이상(insertion anomaly) - 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신 이상(update anomaly) - 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 삭제 이상(deletion anomaly) - 튜플을 삭제하면 꼭 필.. 2022. 2. 5.
[DB - 데이터베이스 개론] Chapter 08. 데이터베이스 설계 목차 01. 데이터베이스 설계 단계 조직 구성원들의 다양한 요구 사항을 고려하여 제대로 된 데이터베이스를 구축하기 위해서는 사용자들의 요구 사항을 잘 분석하고, 분석한 결과를 바탕으로 데이터베이스의 논리적, 물리적 구조를 제대로 설계해야 한다. 데이터베이스 설계는 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. 품질 좋은 데이터베이스를 평가하는 대표적인 기준은 데이터베이스를 실제로 사용하는 구성원들의 요구 사항을 만족하는지 여부이다. 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계하는 방법에는 대표적으로 두 가지가 있는데 여기에서는 그 중 하나인 E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계를 알아보자. E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계는 .. 2022. 2. 3.
[DB] 데이터베이스의 INDEX 목차 인덱스란? 인덱스는 DBMS의 검색 성능을 높이기 위한 자료구조라고 할 수 있다. 인덱스가 필요한 이유 일반적으로 책을 보면 마지막에 색인이라고 되어 있는 부분이 있다. 우리는 이를 통해 내가 찾고 싶은 단어가 몇 페이지에 존재하는지를 쉽게 알 수 있다. 만약 색인이 없다면 우리는 원하는 단어를 찾기 위해 책을 처음부터 살펴보면서 해당 단어가 몇 페이지에 있는지를 찾아야만 한다. 데이터베이스의 인덱스는 책에 있는 색인과 유사하다. 데이터를 찾을 때 해당 데이터가 어디 위치에 있는지를 인덱스를 활용하면 빠르게 찾아낼 수 있다. 만약 인덱스를 사용하지 않는다면 테이블의 처음부터 끝까지 탐색하여 데이터를 찾아야 하는데 이를 전체 테이블 스캔(Full Table Scan)이라고 한다. 이는 튜플의 수가 많.. 2022. 1. 25.
[DB - 데이터베이스 개론] Chapter 07. 데이터베이스 언어 SQL 목차 01. SQL의 소개 SQL(Structured Query Language)은 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어이다. 사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 데이터를 어떻게 처리해야 하는지를 언급할 필요가 없어 비절차적 데이터 언어의 특징을 띤다고 할 수 있다. SQL은 기능에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나눈다. 데이터 정의어 : 테이블을 생성하고 변경&제거하는 기능을 제공한다. 데이터 조작어 : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정,삭제,검색하는 기능을 제공한다. 데이터 제어어 : 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공하는 언어다.. 2022. 1. 25.