Mongo DB.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

© 2014 CUBRID Co., Ltd. All rights reserved. 0 / 20 Date: 공공/국방부문 클라우드 추진현황 및 오픈소스 DBMS 적용사례.
이혁재 /KASA NoSQL. 요약 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머.
1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
SQLite 소개 및 안드로이드에서의 사용법
DB Injection과 대응방안 nwkim.
DB2 Information Management DB2 UDB CLP Command Summary.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
소리가 작으면 이어폰 사용 권장!.
데이터 모델링 방법론 2003년 03월.
DRIMS-Cloud 소개.
소프트웨어시스템설계(6주) 데이터베이스 연동
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
Database & Internet Computing Laboratory 한 양 대 학 교
웹어플리케이션 보안 Web application security
제 5 장 인덱스 생성 및 관리.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
Chapter 05 SQL 인젝션 공격.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
MySQL performance Xhark 김재홍.
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
11장. 데이터베이스 서버 구축과 운영.
Korea University of Technology and Education Hongyeon Kim
오라클 데이터베이스 성능 튜닝.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
Chapter 05 데이터베이스 프로그래밍.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
ER-Win 사용 방법.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
12 데이터베이스 사용하기.
SQL.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
You YoungSEok Oracle 설치 You YoungSEok
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Chapter 3: Introduction to SQL
DataBase 연결 및 사용방법
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
Chapter11 웹 스토리지 & 웹 데이터베이스
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
McGraw-Hill Technology Education
시스템 분석 및 설계 글로컬 IT 학과 김정기.
NoSQL 박훈
SQL INJECTION MADE BY 김 현중.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
06. SQL 명지대학교 ICT 융합대학 김정호.
과제 #5 MySQL 연동 php문서에서 SQL문의 삽입, 삭제, 수정, 검색을 수행한다. 주어진 form을 최대한 활용한다.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 장종원
Data Base Mysql.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
Presentation transcript:

Mongo DB

Contents 1주 2주 MongoDB Setup Data Structure Query Index Java Driver Management 2주 Sharding GridFS MapReduce 분산 MongoDB 구축 실습 Java Application 개발 실습

Mongo DB MongoDB (from "humongous") is an open source, high-performance, schema-free, document-oriented database written in the C++ programming language Document-oriented storage Index Support Replication & High Availability Auto-Sharding Fast In-Place Updates Map/Reduce GridFS

Mongo DB Consistent UTF-8 encoding Cross-platform support: Windows, Linux, OS X, and Solaris Type-rich: supports dates, regular expressions, code, binary data, and more (all BSON types) Cursors for query results Language Support : C++, Java, Haskell, JS, Ruby, PHP, Python

SQL to Mongo Mapping - Terminology SQL Term Mongo Term Database Table Collection Index Row BSON Document Column BSON Field Primary Key Id field

Mongo DB System

Setup

Mongo DB 설치 버전 선택 플랫폼 선택 http://www.mongodb.org/display/DOCS/Downloads 짝수 : Stable (1.6.0, 1.6.1, 1.6,15 …) 홀수 : Experimental (1.7.0, 1.7.1, …) 플랫폼 선택 Mac OS X Linux Windows http://www.mongodb.org/display/DOCS/Downloads Mac OSX의 경우는 MacPorts등으로 설치 가능

Mongo DB 실행 실행 서비스 등록하기 DB file prealloc Linux나 Mac의 경우에도 동일 $cd > mongod.exe $cd > mongod.exe –dbpath C:\mydb\ 서비스 등록하기 $cd > mongod.exe –dbpath C:\mydb\ --install DB file prealloc $cd > mongod.exe --noprealloc Linux나 Mac의 경우에도 동일

Shell 쉘 띄우기 $cd> mongod.exe URL:PORT/dbname $cd > mongod.exe –node Javascript등의 사용시 유용

Shell

Data Structure

Document {“greeting” : “Hello, world!”} 문서(Document)는 하나의 {Key, Value} set {“greeting” : “Hello, world!”} {“greeting” : “Hello, world!” , “foo” : 3} {“foo” : 3 , “greeting” : “Hello, world!”} Key .과 $는 예약어 _는 대부분 예약어 예약어를 제외한 어떠한 UTF-8 문자라도 사용 가능 Value mongoDB에서 지원하는 Data type

Collection 컬렉션(Collection)은 Document들의 모음 Schema를 정하지 않고 사용 서로 다른 구조의 Document를 한 Collection내에 저장할 수 있음 Collection별 관리 이유 개발 및 관리의 편의성 질의 속도 향상 효율적인 Index생성 {“greeting” : “Hello, world!”} {“foo” : 3} {“name” : “John”}

Database Database는 Collection들의 모음 Application 별로 Database를 분리하는 것을 권장 빈 문자열(“”)를 사용 불가 공백, ., $, \, \, null을 사용 불가 소문자만 사용 최대 64byte 길이 허용 Database의 이름이 DB파일명으로 저장

Data type null Boolean Int (32, 64) Double String {“x” : null} {“x” : true} Int (32, 64) Javascript의 한계상 표현 불가능. 숫자를 입력할 경우 Double으로 간주 Double {“x” : 3.14} String {“x” : “foobar”}

Data type objectID Date Code (Javascript) Array Long 형 Document의 고유한 12byte ID임 {“x” : ObjectId()} Date Long 형 {“x” : new Date()} Code (Javascript) Javascript를 문서에 포함할 수 있음 {“x” : function() { /* … */ } Array 값의 집합이나 목록을 배열로 표현할 수 있음 {“x” : [“a”, “b”, “c”] }

Query

Insert / Delete Insert Delete Db.foo.insert({“bar” : “hello”}) Db.users.remove() : 해당 컬렉션(users)에 있는 모든 문서 삭제 Db.users.list.remove({“name” : “john”}) : 이름이 john인 모든 문서 삭제

Update

안전 연산 Insert, Remove, Update는 기본적으로 Fire and forget방식 해당 연산들의 수행 후 getLastError 명령어를 수행하여 반환 코드를 기다림 성능의 희생과 안전 사이에서 선택

Select db.collection.find({name: {first: 'John', last: 'Doe'}}) Find all documents in the collection with name of John Doe db.collection.find({name.last: 'Doe'}) Find all documents in the collection with last name of Doe db.collection.find({keywords: {$in: ['storage', 'DBMS']}}) Find all documents with 'storage' or 'DBMS' in its keywords array

질의 조건 Range, OR, Negation이 가능 비교연산자 OR Not %lt : < %lte : <= %gt : > %gte : >= Start = new Date(“01/01/2007”) db.user.find({“registered” : {“$lt” : start}}) OR Db.c.find({“ticket_no” : {“$in” : [725, 542, 390]}}) Not Db.c.find({“ticket_no” : {$not” : {“$in” : [725,542,390]}})

Count, Distinct Count

Count, Distinct Distinct 주어진 키의 고유한 값들을 찾음 >db.runCommand({“distinct” : “people”, “key” : “age”})

SQL to Mongo Mapping - Query CREATE TABLE USERS (a Number, b Number) db.createCollection(“USERS") INSERT INTO USERS VALUES(3,5) db.users.insert({a:3,b:5}) SELECT a,b FROM users db.users.find({}, {a:1,b:1}) SELECT * FROM users db.users.find() SELECT * FROM users WHERE age=33 db.users.find({age:33}) SELECT * FROM users WHERE age=33 ORDER BY name asc db.users.find({age:33}).sort({name:1}) SELECT * FROM users WHERE age>33 db.users.find({age:{$gt:33}}) SELECT * FROM users WHERE name LIKE "%Joe%" db.users.find({name:/Joe/}) UPDATE users SET a=1 WHERE b='q' db.users.update({b:'q'}, {$set:{a:1}}) DELETE FROM users WHERE z="abc" db.users.remove({z:'abc'});

Index

Indexing >db.people.find({“username” : “mark”}) >db.people.ensureIndex({“username” : 1}, {“background” : true)

Explain / Hint Explain Hint >db.foo.find().explain() Result는 document의 형태 Hint >db.foo.find({“age” : 14}).hint({“username” : 1})

Spatial Index >db.map.ensureIndex({“gps” : “2d”})

Management

Logging File로의 Logging방법 >mongodb –logpath mongo.log

Monitoring Admin Console http://server url:27017

Account

Java Drivers

Jar Github(http://www.github.com/mongodb/mongo-java-driver/downloads ) Com.mongodb 내부 클래스 사용

Next week.. Sharding를 통한 분산 구축 MapReduce 활용 MongoDB 구축, Java Application 개발 실습