본문 바로가기

데이터베이스

(6)
06. 데이터베이스 - Buffer Management 앞서 Disk Space Management와 File Management를 다루었습니다. 데이터베이스의 입출력 동작을 위해서는 실질적으로 Disk Space Management만 있어도되지만, 더 빠른 검색을 위해 File (Index) Management를 통해 페이지를 관리하도록 하였습니다. Buffer Management 이때, File Management가 동작하는 RAM과 Disk Space Management가 동작하는 Disk 사이의 속도 차가 매우 크기 때문에 매번 Disk로 I/O작업을 요청하면 오버헤드가 커지게 됩니다. 따라서 두 레이어 사이에 Buffer Management를 추가적으로 두어 Disk와 Memory의 속도차를 메울 수 있습니다. Buffer management lay..
05. 데이터베이스 - File Management, Index File Management는 레코드를 쉽게 찾을 수 있도록, 데이터베이스의 테이블을 페이지로 나누어서 관리합니다. Index Management 라고 부르기도 하는데, Index는 이후에 다시 설명하겠습니다. 그리고 해당 레이어에서 중요한 것은 파일에 페이지를 어떻게 구성하여 관리할 지를 정하는 것입니다. 앞선 글에서도 나왔듯이 파일에 페이지를 구성하는 여러 방법이 존재하고, Heap File, Sorted File, Index File 방법에 대해 다루었습니다. 여기서 무조건적으로 좋은 파일 구조는 없으며, 상황에 따라 좋은 방식을 잘 선택하는 것이 중요합니다. 우선 Heap File로 데이터베이스를 구성하면, 예를 들어, Heap File은 레코드를 순서없이 그냥 모아둔 것이므로 모든 레코드를 순회..
04. 데이터베이스 - Disk Space Management 다양한 저장장치 간단하게 저장장치들을 살펴보는데, 중요한 것은 각 저장장치의 속도 차이입니다. Register L1 Cache L2 Cache RAM SSD Disk 위와 같은 저장장치들이 있는데, 위로 갈수록 빠르고 가격이 높아집니다. 따라서 낮은 가격으로 큰 용량을 사용할 수 있는 디스크가 데이터베이스에서 많이 사용됩니다. Disk 왼쪽 사진에 원판 하나를 Platter라고 하고, 이 Platter들은 빠르게 회전할 수 있습니다. 왼쪽부분에 헤드는 앞뒤로(트랙과 수직하게) 움직일 수 있고, 따라서 특정 트랙에 위치할 수 있습니다. 그리고 헤더가 위치한 트랙들을 '실린더' 라고 합니다. 한번에 하나의 헤드만이 디스크에 읽거나 쓸 수 있습니다. 플래터는 여러 Sector로 나뉘는데, Page의 사이즈는 ..
03. 데이터베이스 - DBMS Architecture DBMS의 구조 사용자는 SQL을 통해 데이터베이스에 접근할 수 있습니다. 그리고 사용자가 요청한 SQL 쿼리는 DBMS 내부에서 처리되는데, 아래와 같은 레이어를 거칩니다. 1. Query 파싱 & 최적화 사용자가 입력한 SQL 쿼리가 올바른지 체크한 후 해당 쿼리를 수행하는데 시간이 적게 걸리는 효율적인 Relational 쿼리로 변환하는 작업을 진행합니다. 2. File(Index) Management 데이터베이스의 테이블과 레코드들을 페이지로 나누어서 관리하기 위한 레이어입니다. 페이지로 나누는 이유는 원하는 레코드를 더 용이하게 찾기 위함입니다. 4. Disk Space Management 실제 디스크에 접근하여 I/O 작업을 수행하는 레이어입니다. File Management에서 logical..
02. 데이터베이스 - SQL SQL (Structured Query Language) SQL은 DBMS와 사용자들이 상호작용할 수 있도록 해주는 인터페이스입니다. 즉, SQL은 데이터베이스의 데이터를 관리하기 위한 프로그래밍 언어입니다. DML (Data Manipulation Language) : Insert, Delete, Update 와 같은 데이터를 조회하거나 조작하는 등의 명령어 DDL (Data Definition Language) : 관계형 스키마를 정의하는데 사용되는 명령어 (테이블 혹은 테이블 내 attribute 에 대한 생성/삭제/변경) DCL (Data Control Language) : 데이터베이스에 접근할 수 있는 권한을 제어하는 명령어 Relation / Table : tuple들의 multiset Mul..
01. 데이터베이스 Intro 데이터베이스란 데이터베이스는 데이터들이 '스키마'를 통해 구조화된 방식으로 조직되어있는 데이터들의 모임입니다. DBMS (Database Management System) DBMS는 Concurrency Control을 통해 다수의 사람들이 데이터베이스에 접근할 수 있도록 관리해주는 소프트웨어입니다. DBMS & File System 파일시스템은 운영체제에서 제공하는 소프트웨어로, 디스크에서 파일을 관리하며 생성, 검색, 삭제, 읽기 등의 기능을 제공합니다. 하지만 파일시스템의 경우, 동일한 파일을 동시에 수정하는 등의 상황에서 데이터의 중복, 불일치 등의 문제가 발생합니다. 또한 파일 단위로만 데이터 보안을 제공하고, 파일 내의 더 세부적인 단위로는 접근을 통제할 수 없습니다. 그리고 파일을 사용하던 ..