Database 생성 `use` 메소드만으로 `DB` 생성과 변경이 가능함. use blog Collection 생성 `createCollection()` 을 통해 콜렉션을 생성. db.createCollection("posts") 데이터 생성 `insertOne()` 은 하나의 데이터를 입력하는데 사용. 입력시에 내용을 `JSON`형식 으로 입력, `MongoDB` 는 `BSON` 타입을 지원하기에 가능함. db.posts.insertOne({ title: "Post Title 1", body: "Body of post.", category: "News", likes: 1, tags: ["news", "events"], date: Date() }) `insertMany()` 는 여러개의 데이터를 입력하..
옵티마이저와 실행계획 옵티마이저란 사용자가 질의한 SQL문에 대한 최적의 실행방법을 결정하는 역할을 수행. 이러한 최적의 실행방법을 실행 계획이라고 한다. 다양한 실행 방법들을 도출하고 그중에서 최적의 실행방법을 결정하는 것이 옵티마이저의 역할이다. 비용기반 옵티마이저 SQL문을 처리하는데 비용이 가장 적게 드는 실행계획을 선택하는 방식. 여기서 비용이란 SQL문을 처리하는데 예상되는 시간 또는 자원을 의미. 테이블, 인덱스 등의 통계 정보와 시스템 통계정보를 이용하여 최적의 실행계획을 도출. 인덱스를 사용하는 비용이 테이블 풀 스캔보다 크다고 판단되면 테이블 풀 스캔을 유도. 옵티마이저의 구성 요소 질의 변환기 : 사용자가 작성한 SQL문을 처리하기에 보다 용이한 형태의 SQL문으로 변환. 비용 예측기..
표준 조인(STANDARD JOIN) 일반 집합 연산자와 SQL의 비교 일반 집합 연산자 SQL문 설명 UNION 연산 UNION - UNION 연산은 공통 교집합 중복을 없애도 정렬작업을 발생. - UNION ALL 연산은 공통 집합을 중복해서 보여주고 정렬 작업을 하지 않음. INTERSECTION 연산 INTERSECT - 두 집합의 공통 집합을 추출함. DIFFERENCE 연산 EXCEPT (MINUS) - 차집합으로 첫 번째 집합에서 두 번째 집합과의 공통 집합을 제외. - Orcale은 MINUS 용어를 사용. PRODUCT 연산 CROSS JOIN - 곱집합으로 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합. - M * N 건의 데이터 조합이 발생 - CARTESIAN PROD..
관계형 데이터 베이스 데이터베이스 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것. 효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DBMS하고 함. 관계형 데이터베이스 정규화를 통한 합리적인 테이블 모델링을 수행. 정규화를 통해 이상 현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작 가능. 메타 데이터를 총괄 관리할 수 있기 대문에 데이터의 성격, 속성 또는 표현 방법등을 체계화 가능. 데이터 표준화를 통한 데이터 품질을 확보할 ..
SQL vs NOSQL `SQL(Structured Query Language)`과 `NoSQL(Not only SQL)`은 데이터베이스 시스템의 두 가지 주요한 유형입니다. 이들은 데이터를 저장하고 조회하기 위한 다른 접근 방식과 구조를 가지고 있습니다. 다음은 `SQL`과 `NoSQL`의 주요 차이점과 각각의 장단점에 대한 설명입니다. SQL (관계형 데이터베이스) 구조화된 데이터 SQL 데이터베이스는 테이블과 열(Column)로 구성된 구조화된 데이터를 사용합니다. 데이터는 정해진 스키마에 따라 정확한 형식으로 저장됩니다. 관계 SQL 데이터베이스는 관계(Relationship)를 통해 여러 테이블을 연결할 수 있습니다. 이를 통해 데이터 간의 관계를 정의하고 관계형 모델을 사용하여 데이터를 조작하..
성능 데이터 모델링 성능 데이터 모델링의 정의 데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것. 모델링 시점 성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 들지 않음. 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우, 성능 저하에 따른 재업무 비용을 최소화할 수 있음. 분석/설계 단계에서 데이터베이스 처리 성능을 향상 시킬 수 있는 방법을 주도면밀하게 고려해야 함. 고려사항 데이터 모델링을 할 때 정규화를 정확하게 수행한다. 데이터베이스 용량 산정을 수행한다. 데이터베이스에 발생되는 트랜..