목록Computer Science/DataBase (4)
nathan_H
Intro 어플리케이션 개발을 함에 있어, 데이터베이스는 필수적으로 사용하게 된다. 그리고 데이터베이스도 SQL, NoSQL 중 선택의 갈림길에 놓이게 된다. SQL & NoSQL의 각 특징을 파악하고, 어떤 상황과 용도로 사용하는 것이 적절한지 정리하고자 한다. SQL SQL(Structured Query Language)은 데이터베이스 자체를 나타내는 용어는 아니다, 특정 유형의 데이터베이스와 상호 작용하기 위한 쿼리 언어이다. 그래서 정확히 이야기 하면, RDMBS에서 사용되는 쿼리 언어라고 보면 되는데, 설명을 위해 SQL을 RDBMS 의미로 같이 사용할 예정이다. RDBMS (관계형 데이터베이스) 특징 엄격한 스키마 : 정해진 데이터 스키마(구조)에 따라 데이터베이스 테이블에 저장된다. 관계 :..
이번 포스팅은 지난 트랜잭션 포스팅의 연장선으로 트랜잭션이 어떤 방식으로 관리되는지에 대한 내용을 담고자 한다. 병행 수행과 병행 제어 DBMS는 여러 사용자가 데이터베이스를 동시에 공유할 수 있도록 여러 개의 트랜잭션이 동시에 수행되는 병행 수행을 지원을 하기 되는데, 병행 수행은 실제로 여러 트랜잭션들이 차례로 번갈아 수행되는 인터리빙 방식을 진행함. 병행 수행을 하더라도 각 트랜잭션이 다른 트랜잭션의 방해를 받지 않고 정확한 수행 결과를 얻을 수 있도록 제어해야 함. 서로 다른 데이터를 사용하여 연산을 수행하는 경우에는 괜찮지만, 같은 데이터에 접근하여 변경하려고 할 때 문제가 발생함. 여러 개의 트랜잭션이 병행 수행하면서 같은 데이터 접근하여 연산을 실행하더라도, 문제가 발생하지 않고 정확한 수행..
데이터 베이스는 우리가 흔히 사용하는 파일 시스템과는 달리 기본적으로 4가지 특징이 존재한다. 1) 실시간 접근성 2) 계속적인 변화 3) 동시 공유 4) 내용에 따른 참조 이외에도 디비의 장점이라고 볼 수 있는 부분으로는 데이터의 일관성과 지속성이라고 볼 수 있다. 하지만 보통 DBA나 데이터 베이스를 깊게 다루지 않는 이상. 개발을 하는 입장에서는 DBMS가 어떻게 데이터의 일관성과 지속성을 관리하는지에 잘 모르는 경우가 많다. (나도 자세히 알지는 못한다.) 그리고 아직까지 짧은 나의 개발 경험상 개발자 입장에서는 질의에 대한 성능 최적화 부분에만 튜닝을 잘해주면 됐다. 그러나, DBMS가 어떻게 동작하고, 데이터를 관리하는지에 대해 한층 깊은 이해도가 생긴다면, 추후 데이터베이스를 활용한 개발 측..
Index 란? 나는 현재 노션을 적극 활용해 내가 공부하는 내용 정리를 많이 하는 편이다. 그리고 작성 때마다 항상 위와 같이 content 별로 바로 찾아서 갈 수 있도록 보여주는 색인 기능을 자주 활용한다. 만약 색인을 사용하지 않는다면, 데이터 삽입이라는 부분을 보고 싶을 때 스크롤을 쭉 내려야 하는 번거로움이 생긴다. 즉 색인(Index) 기능은 "내가 원하는 부분에 쉽고 빠르게 찾아서 전달해주는 역할"을 한다. 그리고 데이터 베이스에서도 색인이라는 기능은 똑같이 "정보 검색"에 있어 성능을 최적화시켜줄 수 있는 유용한 도구로 많이 사용된다. 왜 DB에서 Index를 사용해야 할까? 다시 한번 디비 관점에서 "왜" 인덱스를 사용해야 하는지에 이야기해보면, 위 예시서 SELECT 문을 활용해 SC..