반응형

데이터베이스(DB: Database)/Database 4

[DB] 데이터베이스 인덱스(index) 개념 정리

인덱스 (index) 데이터베이스 인덱스(index)는 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블에 저장된 데이터의 검색 속도를 향상시키기 위한 자료구조이다. 인덱스는 데이터베이스 내의 특정 컬럼(열)이나 컬럼들의 조합에 대한 값과 해당 값이 저장된 레코드(행)의 위치를 매핑하여 데이터베이스 쿼리의 성능을 최적화하는 데 중요한 역할을 한다. 예를 들어, 책에서 원하는 내용을 찾는다고 가정하면, 책의 모든 페이지를 넘기면서 원하는 내용이 나올 때까지 찾는 것보다 목차 또는 저자가 남긴 색인(index)을 통해 찾는 것이 더욱 빠를 것이다. 데이터베이스의 인덱스가 책의 목차와 색인과 같은 역할을 한다. 이처럼 데이터베이스에서 인덱스를 사용하면, 데이터를 검색할 때 전체 테이블을 스캔하는 ..

[DB] 관계형 데이터베이스의 관계 (1:1, 1:N, N:M)

관계형 데이터베이스 구조화된 데이터는 하나의 테이블로 표현할 수 있다. 사전에 정의된 테이블을 릴레이션(relation)이라 하고, 테이블을 사용하는 데이터베이스를 관계형 데이터베이스(Relational database)라고 한다. 각 테이블 사이에는 관계라는 개념이 존재하며, 관계는 일대일(1:1), 일대다(1:N), 다대다(N:M) 관계가 있다. 관계 종류 1:1 관계 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우이다. 다음과 같이 User 테이블과 Phonebook 테이블이 있다고 가정한다. User 테이블은 user_id, name, phone_id를 가지고 있으며, phone_id는 외래키(foreign key)로 Phonebook 테이블의 phone_id와 연결되어 있다. Phon..

[DB] 트랜잭션(Transaction)과 ACID란?

트랜잭션(Transaction) 트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛이다. 각 트랜잭션은 하나의 특정 작업으로 시작해서 묶여 있는 모든 작업들이 모두 완료되어야 정상적으로 종료한다. 만약, 트랜잭션에 속해있는 여러 작업 중에서 단 하나의 작업이라도 실패하면, 해당 트랜잭션에 속한 모든 작업은 실패한 것으로 판단한다. 작업이 하나라도 실패를 하게 되면 트랜잭션도 실패이고, 모든 작업이 성공적일 때만 트랜잭션이 정상적으로 실행되고 종료되는 것이다. 즉, 트랜잭션은 성공 또는 실패 두 가지 결과만 존재하며 미완료된 작업 없이 모든 작업을 성공해야 한다. 데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다. ACID ACID는 데이터베이스 내에서 발생하는 하나의 트랜잭션(transaction..

[DB] 데이터베이스 SQL이란?

SQL이란? SQL(Structured Query Language)을 직역하면 구조화된 Query언어이다. SQL은 관계형 데이터베이스(RDBMS)에서 데이터를 관리하고 처리하기 위해 설계된 프로그래밍 언어이다. 여기서 Query는 질의문을 뜻한다. 저장되어 있는 정보를 필터링하기 위한 질문으로 검색창에 적는 검색어도 Query의 일종이다. 즉, SQL은 데이터베이스에 query를 보내 원하는 데이터만을 뽑아올 수 있도록 하는 언어이다. SQL을 사용하기 위해서는 데이터의 구조가 고정되어 있어야 한다. 데이터베이스의 필요성 전통적인 데이터를 처리하는 방법으로 파일 입출력(File I/O)을 통해 엑셀과 같은 스프레드 시트에 데이터를 저장하거나, 인메모리(In-memory) 형태로 데이터를 임시 저장하여 ..

반응형