전체 글 2595

[3장] 도큐먼트 생성, 갱신, 삭제

1. 도큐먼트 삽입삽입은 몽고DB에 데이터를 추가하는 기본 방법이며 도큐먼트를 삽입하기 위해 컬렉션의 insertOne 메서드를 사용그러면 도큐먼트에 "_id" 키가 추가되고 도큐먼트가 몽고DB에 저장됨 1.1 insertMany여러 도큐먼트를 컬렉션에 삽입하려면 insertMany로 도큐먼트 배열을 데이터베이스에 전달해야 함코드가 삽입된 각 도큐먼트에 대해 데이터베이스로 왕복하지 않고도큐먼트를 bulk insert 하므로 훨씬 더 효율적   insertMany는 여러 도큐먼트를 단일 컬렉션에 삽입할 때 유용함데이터를 몽고DB에 저장하기 전에 날짜를 날짜형으로 바꾸거나 별도로 생성한 "_id"를 추가하는 식으로 가공해 두면 편리하게 insertMany 사용 가능몽고DB의 4.2.X 버전은 48MB보다 큰..

[2장] 몽고DB 기본

1. 도큐먼트몽고DB의 핵심은 정렬된 키와 연결된 값의 집합으로 이루어진 도큐먼트도큐먼트 표현 방식은 프로그래밍 언어마다 상이하지만 대부분의 언어는 Map, Hash, Dictionary와 같이 도큐먼트를 자연스럽게 표현하는 자료구조를 가짐i.g. 자바스크립트에서 도큐먼트는 객체로 표현 도큐먼트의 키는 문자열이며 다음 예외 몇 가지를 제외하면 어떤 UTF-8 문자든 사용 가능키는 \0 (null 문자)을 포함하지 않음, \0은 키의 끝은 나타나는 데 사용.과 $ 문자는 몇 가지 특별한 속성을 가지며 특정 상황에만 사용해야 함, 해당 문자들은 보통 예약어로 취급해야 하며 부적절하게 사용하면 드라이버에서 경고 발생 도큐먼트의 값은 데이터형 또는 내장 도큐먼트 전체가 되기도 함아래 예제에서 "greeting"..

[1장] 몽고DB 소개

몽고DB 소개몽고DB는 강력하고 유연하며 확장성 높은 범용 데이터베이스보조 인덱스 (Secondary Index), 범위 쿼리 (Range Query), 정렬 (Sorting), 집계 (Aggregation), 공간 정보 인덱스 (Geospatial Index) 등을 확장 기능과 결합했음 몽고DB 프로젝트의 주 관심사는 확장성이 높으며 유연하고 빠른, 즉 완전한 기능을 갖춘 데이터 스토리지를 만드는 일 1. 손쉬운 사용몽고DB는 도큐먼트 지향 데이터베이스 (Document-Oriented Database)관계형 모델을 사용하지 않는 주된 이유는 분산 확장 (Scale-Out)을 쉽게 하기 위함이지만 다른 이점도 있음도큐먼트 지향 데이터베이스에서는 행 개념을 사용하지 않고 보다 유연한 모델인 도큐먼트를 사..

[과목 II 2장 1절] 서브 쿼리

서브 쿼리 (Subquery)서브 쿼리란 하나의 SQL 문안에 포함돼 있는 또 다른 SQL 문을 지칭메인 쿼리가 서브 쿼리를 포함하는 종속적인 관계조인은 조인에 참여하는 모든 테이블이 대등한 관계에 있기 때문에 조인에 참여하는 모든 테이블의 칼럼을 어느 위치에서라도 자유롭게 사용할 수 있는 반면 서브 쿼리는 메인 쿼리의 칼럼을 모두 사용할 수 있지만, 메인 쿼리는 서브 쿼리의 칼럼을 사용할 수 없음질의 결과에 서브 쿼리 칼럼을 표시해야 할 경우 조인 방식으로 변환하거나 함수, 스칼라 서브 쿼리 등을 사용해야 함 서브 쿼리는 서크 쿼리 레벨과는 상관없이 항상 메인 쿼리 레벨로 결과 집합이 생성됨i.g. 메인 쿼리로 조직(1), 서브 쿼리로 사원(M) 테이블을 사용하면 결과 집합은 조직(1) 레벨이 됨 SQ..

[과목 II 1장 8절] 표준 조인

1. FROM 절 조인 형태ANSI/ISO SQL에서 표시하는 FROM 절의 조인 형태는 다음과 같음INNER JOINNATURAL JOINUSING 조건절ON 조건절CROSS JOINOUTER JOIN ANSI/ISO SQL에서 규정한 조인 문법은 WHERE 절에 조인 조건을 기술하는 전통적인 방식의 조인 무법과 차이가 있음사용자는 기준 WHERE 절의 검색 조건과 테이블 간의 조인 조건을 구분 없이 사용하던 방식을 그대로 사용할 수 있으면서추가된 선택 기능으로 테이블 간의 조인 조건을 FROM 절에서 명시적으로 정의할 수 있게 됨 INNER JOIN은 조인의 DEFAULT 옵션으로 조인 조건을 만족하는 행들만 반환DEFAULT 옵션이므로 생략 가능CROSS JOIN, OUTER JOIN과는 같이 사용..

[과목 II 1장 7절] 조인

1. 조인 개요두 개 이상의 테이블들을 연결해서 데이터를 출력하는 것을 조인 (JOIN)이라고 지칭조인은 관계형 데이터베이스의 가장 큰 장점이면서 핵심 기능일반적인 경우 행들은 PK (Primary Key)나 FK(Foreign Key) 값의 연관에 의해 조인이 성립되지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 조인이 성립될 수 있음한 가지 주의할 점은 FROM 절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어난다는 것FROM 절에 A, B, C 테이블이 나열됐더라도 특정 두 개의 테이블만 먼저 조인 처리되고, 조인의 결과인 중간 데이터 집합과 남은 한 개의 테이블이 다음 차례로 조인되는 것해당 순서는 네 개 이상의..

[과목 II 1장 6절] ORDER BY절

1. ORDER BY 절ORDER BY 절은 SQL 문장으로 조회한 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬 및 출력하는 데 사용ORDER BY 절에 칼럼명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능별도로서를 나타내는 정수도 사용 가능별도로 정렬 방식을 지정하지 않으면 기본적으로 오름차순이 적용되며, SQL 문장의 제일 마지막에 위치ORDER BY 절은 두 가지의 정렬 방식이 있음ASC (Ascending): 조회한 데이터를 오름차순으로 정렬 (Default 값이기 때문에 생략 가능)DESC (Descending): 죄한 데이터를 내림차순으로 정렬  ORDER BY 절의 특징은 다음과 같음기본적인 정렬 순서는 오름차순 (ASC)숫자형 데이터..

[과목 II 1장 5절] GROUP BY, HAVING 절

1. 집계 함수여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 다중행 함수 중 집계함수 (Aggregate Function)의 특성은 다음과 같음여러 행들의 그룹이 모여 그룹당 단 한의 결과를 돌려주는 함수GROUP BY 절은 행동을 소그룹화시킴SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있음 집계함수명 ( [DISTINCT | ALL] 칼럼이나 표현식 ) 집계함수명에 사용되는 두 가지 옵션에 대한 설명은 다음과 같음ALL: Default 옵션이므로 생략 가능DISTICNT: 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션 자주 사용되는 주요 집계함수는 다음과 같음집계함수는 그룹에 대한 정보를 제공하므로 주로 숫자 유형에 사용되지만MAX, MIN, COUNT 함수는..

[과목 II 1장 4절] WHERE 절

1. WHERE 조건절 개요사용자들은 자신이 원하는 자료만을 검색하기 위해 SQL 문장에 WHERE 절을 이용해 자료를 제한할 수 있음WHERE 절에는 두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수 있음현실의 데이터베이스는 많은 사용자나 프로그램들이 동시에 접속해 다량의 트랜잭션을 발생시키고 있음만약 WHERE 조건절을 사용하지 않을 경우 필요 없는 많은 자료를 DB로부터 요청하는 SQL 문장은 대량의 데이터를 검색하기 위해 DB가 설치된 서버의 CPU나 메모리 등의 시스템 자원을 과다하게 사용하게 됨이런 문제점을 방지하기 위해 WHERE 절에 조건이 없는 Full Table Scan 문장은 SQL 튜닝의 1차적인 검토 대상이 됨 (물론 병렬 처리 등을 이용해..

[과목 II 1장 3절] 함수

1. 내장 함수 개요함수 (Function)은 다양한 기준으로 분류할 수 있는데, 벤더에서 제공하는 함수인 내장 함수 (Built-in Function)와 사용자가 정의할 수 있는 함수 (User Defined Function)로 나눌 수 있음내장 함수는 SQL을 더욱 강력하게 해 주고 데이터 값을 간편하게 조작하는 데 사용됨벤더별로 가장 큰 차이를 보이는 부분이지만, 핵심적인 기능들은 이름이나 표현법이 다르더라도 대부분의 데이터베이스가 공통적으로 제공함 내장 함수는 다시 함수 입력 값이 단일행 값이 입력되는 단일행 함수 (Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수 (Multi-Row Function)로 나눌 수 있음다중행 함수는 다시 집계 함수 (Aggregate Fu..