컴퓨터/database 8

몽고디비를 사용하면서 느낀점

전문적인 내용 아님 화나서 쓰는거임 1. 쓰지말아라 2. aggregate 어렵다. 예제도 너무 없다. 3. join의 개념을 생각하면 안되는데 계속 떠오른다. 4. 관계형 데이터 베이스 개념으로 생각하면, 컬렉션을 테이블로 생각하고 설계를 진행하였는데... 컬렉션을 책장으로 생각하고 다큐먼트를 테이블로 쓰는게 맞지 않았나 생각된다. 5. 진짜 모르겠다.

컴퓨터/database 2022.10.08

[MongoDB] 몽고DB 후다닥 시작하기 - 7 (복제)

복제 몽고DB를 실제 서비스로 사용하기 위해서 복사본을 여러 서버상에 보관하고 사용하게 할 수 있다. 몽고DB에서 지원하는 복제 셋을 생성하여 복제를 설정할 수 있다. 클라이언트 요청을 처리하는 Primary 서버 한대와 복사본을 갖는 Secondary서버 여러대로 이루어진다. Connection Format(연결형식) 몽고DB의 인스턴스 간 연결, 사용자 시스템에서 어떠한 몽고 DB의 인스턴스에 연결 하기 위해서 사용하는 포멧을 Connection String URI Format 이라고 한다. Standard Connection String Format(표준 연결 문자열 형식) MongoDB의 인스턴스에 연결되는 URI의 표준 형식이다. mongodb://[username:password@]host1[..

컴퓨터/database 2022.07.14

[MongoDB] 몽고DB 후다닥 시작하기 - 6 (집계 프레임워크)

드디어! C언어의 꽃 포인터, 몽고DB의 꽃 집계프레임워크!!!! 집계 프레임워크(Aggregation Framework) 애플리케이션의 데이터 분석을 위해 몽고 DB가 지원하는 집계 프레임워크가 있다. - 집계 프레임워크는 몽고DB내의 분석 도구 모음이다. - 하나 이상의 컬렉션의 도큐먼트 분석 수행이 가능하다. - 파이프라인 개념을 기반으로 한다. - 모든 파이프라인의 단계의 입출력은 도큐먼트(혹은 도큐먼트 스트림)이다. - 컬렉션 -> 단계 - 출력 의 파이프라인 구조를 갖는다. - tunables 셋은 각 단계에서 각종 연산 작업에 수행한다. 집계 단계(Aggregation Stage) 일치(match), 선출(projection), 정렬(sort), 건너뛰기(skip), 제한(limit) # 1..

컴퓨터/database 2022.07.10

[MongoDB] 몽고DB 후다닥 시작하기 - 4 (인덱스)

인덱싱(Indexing) 몽고DB의 인덱스는 책의 인덱스(=색인)과 유사하다. 인덱스를 사용하면 효율적으로 쿼리할 수 있다. - 컬렉션 스캔(collection scan) : 인덱스를 사용하지 않는 쿼리, 전체를 읽는 방식 - 전형적인 관계형 데이터베이스의 인덱스와 거의 동일하게 작동한다. - 인덱스는 모든 값을 정렬된 순서로 보관한다. 인덱스의 순서 또한 이부분에 영향을 가짐으로 정렬 최적화시 순서를 고려해야한다. // 많은 양을 갖는 도큐먼트 삽입 for(i=0;i db.users.find({"username":"user101"}).explain("executionsStats") // 인덱스 생성, username으로 인덱스 생성 > db.users.createIndex({"username":1}) ..

컴퓨터/database 2022.06.27

[MongoDB] 몽고DB 후다닥 시작하기 - 3

쿼리(Query) find - find는 첫 매개변수에 따라 어떠한 도큐먼트를 가져올지 결정한다. - 쿼리 도큐먼트에 여러 키/값 쌍을 추가하여 검색을 제한할 수 있다. - 반환 받을 키 값을 지정하여 받을 수 있다. - "_id" 값은 지정하지 않아도 항상 반환된다. # 조회 > db.${컬렉션 명}.find() # 특정 키 값만 조회 > db.${컬렉션 명}.find({},{${조회하고자 하는 키 값} : 1}); # 특정 키 값을 제외하고 조회 > db.${컬렉션 명}.find({},{${조회하고자 하는 키 값} : 0}); - 쿼리 도큐먼트의 값은 반드시 상수이어야한다. - 쿼리는 완전 일치(exact match) 외에도 범위, OR절, 부정 조건 등 복잡한 조건을 사용할 수 있다. - 비교연산자..

컴퓨터/database 2022.06.26

[MongoDB] 몽고DB 후다닥 시작하기 - 2

몽고DB의 데이터형 몽고DB는 도큐먼트의 값으로 다양한 데이터형을 지원한다. - 기본 데이터형 - null - boolean - 숫자 - 문자열 - 날짜 : 1970년 1월 1일부터 시간을 1/1000초 단위로 나타내는 64비트 정수로 날짜를 지정한다. 표준시간대는 저장하지 않는다. - 정규 표현식 : 자바스크립트의 정규표현식 문법을 사용할 수 있다. {"x" : /foobar/i} - 배열 : 값의 셋이나 리스트를 표현할 수 있다. - 내장 도큐먼트 - 객체 ID : 객체 ID는 도큐먼트용 12바이트 ID이다. - 이진 데이터 : UTF-8이 아닌 문자열을 저장하는 유일한 방법이다. 임의의 바이트 문자열이다. 셸에서는 조작이 불가능하다. - 코드 : 임의의 자바스크립트 코드를 포함할 수 있다. - 날짜..

컴퓨터/database 2022.06.26

[MongoDB] 몽고DB 후다닥 시작하기 - 1

몽고DB 유연하고 확장성 높은 범용 데이터베이스이다. 보조 인덱스(secondary index), 범위 쿼리(range query), 정렬(sorting), 공간 정보 인덱스(geospatial index) 등을 확장 기능과 결합한 데이터베이스이다. 도큐먼트 지향 데이터베이스(Document oriented database) 1. 관계형 데이터베이스보다 분산 확장(scale-out)을 쉽게 할 수 있다. - 유연한 모델인 도큐먼트를 사용하여 복잡한 계층관계를 하나의 레코드로 표현할 수 있다. 이 관점은 객체 지향언어를 사용하는 개발자 관점에 적합하다고 볼 수 있다. - 몽고DB는 분산확장을 염두에 두고 설계되어 있어 데이터를 여러 서버에 쉽게 분산하기에 적합하다. - 도큐먼트를 자동으로 재분배하고 사용자..

컴퓨터/database 2022.06.24

데이터베이스 암기 노트

데이터 모델링 모델 : 다양한 현상에 대해 일정한 표기법에 의해 표현해 놓은 모형이다. 모델링 : 표기법에 의해 규칙을 가지고 표기하는 것이다. 즉, 모델을 만들어가는 일 자체 특징 1. 추상화 2. 단순화 3. 명확화 진행 개념적으로 갈 수록 추상적이다. 1. 개념적 데이터 모델링 추상화 수준이 높고, 업무 중심적이며 포괄적인 수준의 모델링을 진행한다. 전사적 데이터 모델링, EA 수립시 이용한다. 2. 논리적 데이터 모델링 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현한다. 재사용성이 높다. 3. 물리적 데이터 모델링 실제 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계한다. 스키마 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를..

컴퓨터/database 2020.10.06