본문 바로가기

CS/데이터베이스

(5)
[Database] MongoDB 이해하기 MongoDB란 MongoDB는 NoSQL 데이터베이스로, Document-Oriented(문서 지향) 모델을 사용하는 오픈소스 데이터베이스 시스템이다. NoSQL 데이터베이스답게 동적으로 스키마 구성이 가능하고, 대용량의 데이터 처리 속도가 빠르며, 수평적 확장, 높은 가용성에 장점이 있다. Document 데이터베이스 Document란 필드와 값의 쌍으로 이루어진 데이터를 JSON과 같은 형식으로 저장한 문서를 뜻한다. 이러한 구조는 복잡한 관계형 데이터베이스의 테이블을 사용하지 않고도 데이터를 자연스럽게 표현할 수 있도록 한다.(실제 현실세계와 요구사항에 매우 유연하게 적용 가능) 관계를 갖는 데이터의 경우, 중첩 Document와 배열을 사용하여 1개의 Document로 표현이 가능하다. 또한 M..
[Database] NoSQL 이해하기 NoSQL이란? Non Relational Operation Database SQL의 줄임말로 관계형 데이터베이스가 아닌 SQL을 의미하였지만, SQL뿐만 아닌 여러 기능들도 부가적으로 지원한다는 Not Only SQL로 일반화되었다. 관계형 데이터베이스의 고정된 스키마 구조, 수평적 확장의 불가, 복잡한 조인 작업 등의 불편한 점들이 존재했다. 이러한 단점으로 인해 NoSQL이 등장하게 되었다. NoSQL 데이터베이스는 데이터 모델을 유연하게 변경할 수 있었고, 수평적 확장, 불필요한 Join을 최소화할 수 있다. 유연성 : 스키마 선언 없이 필드의 추가 및 삭제가 자유로운 Schema-less 구조 확장성 : Scale-Out에 의한 서버 확장 용이 고성능 : 빅데이터 처리에 특화. 대용량 데이터를 ..
[DATABASE] 인덱스란? Real MySQL 8.0 책과 유튜브 [쉬운 코드]님의 데이터베이스 강의를 참고하여 작성하였습니다. 1. 인덱스란 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 데이터베이스에서 검색, 정렬 및 필터링 작업을 빠르게 수행하는데 도움을 주며, 특정 열에 대한 검색을 최적화하는 역할을 한다. 인덱스는 책의 찾아보기(index, 색인)와 같이 내용을 바로 찾을 수 있도록 지원한다. 사전순으로 키워드별로 나열이 되어 있고, 키워드 옆에는 해당 키워드가 담겨있는 책의 페이지를 가리키는 것처럼 데이터베이스의 인덱스 테이블에서도 데이터 칼럼과 실제 메모리 상의 주소 위치를 담고 있다. SELECT * FROM user WHERE id = "mysterlee"; 테이블에서 위의 조건을 만족하는 데..
Key of Database 한빛 아카데미의 책을 참고하였습니다. 키의 종류 특징 Super Key 슈퍼 키 유일성의 특성을 만족하는 속성 또는 속성들의 집합 Candidate Key 후보 키 유일성과 최소성을 만족하는 속성 또는 속성들의 집합 Primary Key 기본 키 여러 후보 키 중에서 기본으로 사용할 수 있는 키 Alternate Key 대체 키 기본 키를 제외한 후보 키들 Foreign Key 외래 키 어떤 테이블(Relation)에서 다른 테이블의 기본 키를 참조하는 속성 Composite Key 복합 키 2개 이상의 속성(attribute)을 사용하여 유일성의 특성을 만족하는 키 Key의 종류 및 특징 ※ Uniqueness (유일성) : 한 테이블에서 키로 지정된 속성(Attribute)값은 튜플들 사이에서 구분될..
Transaction 데이터 베이스에 다수의 사용자가 접근하더라도 데이터베이스 내의 데이터는 손상되지 않고 반드시 정확하고 일관되게 유지되어야 한다. 데이터 베이스의 데이터가 손상이 되었어도 빠르게 복구하여 원래의 기능을 다 할 수 있도록 해야 한다. DB 내에는 데이터를 보호하기 위해 다양한 기능들이 제공되는데 그 중심에 트랜잭션이 있다. 한빛 아카데미의 책을 참고하였습니다. Transaction 트랜잭션이 수행되는 예로 비밀번호를 변경하기 위한 과정을 생각해보자. 비밀번호 변경하기를 누르고, 해당 이메일로 관련 Entity를 가져오고 업데이트하는 과정을 하나의 작업이라 볼 수 있다. 이 작업을 처리하기 위해 다수의 연산이 동작해야 하며 이 연산들의 집합을 트랜잭션이라고 볼 수 있다. 트랜잭션은 데이터베이스의 데이터가 변경..