반응형

전체 글 227

[ DB ] Chapter 19. Recovery System

1. Failure Classification트랜잭션이 실패하는 이유는 여러가지가 있다.Transaction failure : 코드의 오류나 deadlock 같은 시스템 적인 오류로 인해 트랜잭션을 종료해야하는 경우System crash : 전원이 갑자기 나가거나 OS 오류 (비활성화 메모리의 내용이 손상되지 않았다고 가정)Disk failure : 디스크 오류나 손상1.1 Recovery Algorithms트랜잭션 수행시 트랜잭션에서 업데이트 되었던 정보와 원래 DB의 정보가 분리된 공간에 저장되어있어야 data inconsistency하게 recovery할 수 있다. recovery 알고리즘에는 두가지 파트가 있다.장애로부터 복구하기에 충분한 정보가 존재하는지 확인하기데이터베이스 내용을 원자성, 일관..

[ DB ] Chapter 18. Concurrency Control

1. Lock-Based Protocols look-based protocol이란 lock을 이용하여 공유되는 데이터를 관리하는 시스템이다. lock이란 공유되는 데이터에 대한 동시접근을 제어하는 메커니즘이다. 동시접근을 방지하지 않으면 rase condition이 발생할 수도 있다. 공유데이터를 동시에 읽는것은 문제가 되지 않다. 이에 read연산은 굳이 막을 필요가 없다. 이에 lock은 두가지 모드로 존재한다.Exclusive(X) modelock-X instruction을 사용하여 얻어야한다트랜잭션이 이 모드로 lock을 잡았다면 write와 read 모두 가능하다.우리가 보통 알고있는 lock으로 데이터에 이 lock이 걸려있다면 이후에 오는 트랜잭션은 read도 write도 못한다.Shared..

[ DB ] Chapter 17. Transactions

1. Transaction Concept transaction이란 data에 접근하고 업데이트할 수 있는 프로그램의 실행 단위이다.DBS는 사용자가 트랜잭션의 기능을 잘 사용하기 위해 2가지 상황을 잘 처리해야한다.하드웨어 오류 및 시스템 충돌(seg fault)과 같은 오류여러 transaction들이 동시 실행 → 성능위의 두가지 상황이 일어나도 트랜젝션은 intergrity를 보존하기 위해 ACID를 보장해야한다.ACIDAtomic requitement트랜잭션은 전체가 DB에 반영되거나 아무것도 반영되지 않거나 하는 원자적인 상태여야한다. 일부만 실행되고 종료되어도 DB에 업데이트하면 안된다.Consistency requirement트랜잭션이 시작하기 전과 끝난 후의 DB의 상태는 일관되어야한다. ..

[ DB ] Chapter 14. Indexing

1. Storage Access cache 메모리는 byte 단위로 접근 가능하지만 SSD와 HDD는 block 단위로 접근한다. 이러한 block은 보통 4KB이며 main memory와 Disk 사이를 통신할때의 단위이다. DBS는 통신하는 block의 개수를 최소화하고자한다. main memory에 최대한 많은 block을 유지시키면 Data Access의 수를 줄일 수 있다.이를 위해 Buffer를 사용한다. 이는 disk block의 복사본을 저장하는데 사용되는 main memory의 일부분 공간이다. 이 buffer에 공간을 할당하고 관리하는 주체를 buffer manager라고 부른다.1.1 Buffer manager프로그램은 disk에 있는 block이 필요할때 buffer를 호출한다. 이..

[ DB ] Chapter 13. Data Storage Structures

1. File Organization 데이터베이스는 여러 파일들로 이루어져 있으며 이는 영구적으로 디스크에 저장된다. 파일은 record로 이루어져 있으며 이들은 디스크 block에 mapping 되어있다. 대부분 블록의 크기는 4KB 혹은 8KB이다. record들이 어떻게 저장되는지 살펴보자.Fixed-Length Records이는 record의 길이가 고정되어있는 table이다. 간단하지만 길이가 고정되어 있어 넣을 수 있는 data가 한정적이다.deletion을 하는 3가지 방법이 있다.지우고 밑에 있는 record들 땡기기 → 순서는 유지되지만 오버헤드가 크다지우고 마지막에 있는 레코드 빈자리에 넣기 → 순서가 유지 되지 않는다free list : 빈공간들끼리 linked list로 관리한다..

[ DB ] Chapter 12. Physical Storage Systems

1. Overview of Physical Storage storage Hierarchystorage는 크게 volatile과 non-volatile로 구별할 수 있다.volatile storage : 전원이 꺼지면 내용을 모두 잃는다.non-volatile storage : 전원이 꺼져도 내용을 유지된다.storage마다는 각기 다른 speed, cost, reliability 를 가지고 있다. 아래로 갈수록 speed는 느리고 비용은 저렴해진다.가장 빠르고 휘발성을 띄는 cache, main memory와 같은 저장장치를 primary storage 즉 주기억장치라고 한다. 그리고 주 기억장치보다 느리고 비휘발성을 띄는 flesh memory, HDD를 senodary storage , on-line..

[ DB ] Chapter 7. Relational Database Design

해당 게시물은 건국대학교 김욱희 교수님의 데이터베이스 강의와DATABASE SYSTEM CONCEPTS 7th 원서를 참고하여 작성하였습니다. 1. Features of Good Relational Designs 위 table은 {ID, name, salary, dept_name}과 {dept_name, building, budget}이 합쳐진 table이다. table를 잘 보면 {dept_name, building, budget}의 정보가 굉장히 중복이 많아 데이터가 낭비되고있다.Decomposition위 테이블처럼 자원을 낭비하지 않기 위해서는 table을 분해하는 것이 좋다.table을 어떻게 나눌지 고민될 때는 functional defendency를 보면된다. 위 테이블에서는 dept_nam..

[ DB ] Chapter 6. Database Design Using the E-R Model

해당 게시물은 건국대학교 김욱희 교수님의 데이터베이스 강의와DATABASE SYSTEM CONCEPTS 7th 원서를 참고하여 작성하였습니다. 1. Entity-Relationship Model ER data model은 데이터베이스의 전체적인 논리적 구조를 나타내기 위한 스키마 표현 기법이다. E-R 모델은 실제 세계의 의미와 상호작용을 개념적 스키마로 매핑하는 데 매우 유용하다.ER 데이터 모델은 엔티티 집합(entity sets), 관계 집합(relationship sets),속성(attributes)이라는 세 가지 기본 개념을 사용하며, 이와 대응하는 ER diagram도 가지고 있다.Entity SetsEntity는 현실 세계에서 다른 모든 물체와 구별 가능한 객체로, 예로는 학생이나 학과가 있..

[ DB ] Chapter 5. Advanced SQL

해당 게시물은 건국대학교 김욱희 교수님의 데이터베이스 강의와DATABASE SYSTEM CONCEPTS 7th 원서를 참고하여 작성하였습니다. 1. Accessing SQL from Programming Language SQL만으로는 범용언어를 완전히 표현하기 힘들기 때문에 모든 쿼리를 SQL만으로 표현하기는 힘들다. 또, print와 같이 쿼리를 GUI로 보내는 작업들은 SQL에서 수행할 수 없다. 따라서 우리는 범용 프로그래밍 언어에 액세스 할 수 있어야한다.이를 위해 데이터베이스 서버와 연결하고 쿼리를 수행하는 표준방식은 Dynamic SQL과 Embedded SQL가 있다.Dynamic SQL일련의 함수 또는 메서드를 사용하면 데이터베이스 서버에 연결하고 통신하는 프로그램을 작성할 수 있다. Dy..

[ DB ] Chapter 4. Intermediate to SQL

해당 게시물은 건국대학교 김욱희 교수님의 데이터베이스 강의와DATABASE SYSTEM CONCEPTS 7th 원서를 참고하여 작성하였습니다. 1. Join Expressions join은 두개의 relation을 합쳐 하나의 relation을 만들어 주는 연산자이다. 이는 from에 서브쿼리로도 많이 쓰인다.Natural Joinnatural join은 relational algebra에서 나온 의미와 동일하다. 같은 attribute의 튜플 값이 같은 attribute끼리만 곱셈연산을 취한다. 아래의 두 쿼리는 같은 결과를 도출한다. 이는 두 테이블 외에도 여러 테이블에 적용할 수 있다. 하지만 이는 오답률이 높다. 두개의 테이블이 이름은 같고 의미는 다른 attribute를 가지고 있다면 충돌이 될..

반응형