목록전체 (106)
개발스토리
■ 이상(anomaly) 현상 - 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입/수정/삭제 연산을 수행할 때 발생할 수 있는 부작용을 말한다. 디비는 중복을 너무 싫어한다... 그럼, 먼저 이상 현상의 종류부터 알아보자..! 삽입 이상 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신 이상 중복 튜플 중 일부만 변경해서 데이터가 불일치하게 되는 문제 삭제 이상 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 ■ 정규화 - 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해 나가는 과정이다. - 이상 현상이 발생하지 않도록, 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해(decomposition)하는 과정이다. - 함수적 종속성..
데이터베이스 설계 ■ 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. ■ 관계 데이터베이스의 대표적인 설계 방법 - E-R 모델과 릴레이션 변환 규칙을 이용한 설계 - 정규화를 이용한 설계 이번 포스팅에서는 E-R모델과 릴레이션 변환 규칙을 이용한 설계를 이야기 해보겠다. E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정 ■ 설계 과정 중에 오류를 발견하여 변경이 필요하다면 이전 단계로 되돌아가서 설계 내용을 변경할 수 있다. 설계 1단계 : 요구 사항 분석 ■ 목적 - 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악한다. - 업무에 필요한 데이터가 무엇인지, 그 데이터에 어떤 처리가 필요한지 등을 고려 ■ 결과물 - 요구 사항 명세서 ■ 주요 작업 ..
const a = await ~Model.find({ _id: {$in: arr} }); const b = await ~Model.aggregate([ {$match: {_id: {$in: arr}}]); 배열을 넘겨서 매칭되는 모든 도큐먼트를 불러오는 것을 의도로 위 코드를 작성했는데 조회가 이루어지지 않았다. 알아보니까 aggregate의 match에서 _id 필드를 넣고 싶을 때는 ObjectId로 string을 바꾸어 주어야 한다.
SQL(Structured Query Language) ■ 의미 - 관계 데이터베이스를 위한 표준 질의어이다. - 비절차적 데이터 언어이다. ■ 사용 방식 - 대화식 SQL : 데이터베이스 관리 시스템에 직접 접근하여 질의를 작성하여 실행된다. - 삽입 SQL : 프로그래밍 언어로 작성된 응용 프로그램에 삽입된다. SQL의 분류 ■ 데이터 정의어(DDL) - 테이블을 생성하고 변경, 제거하는 기능을 제공한다. ■ 데이터 조작어(DML) - 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공한다. ■ 데이터 제어어(DCL) - 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공한다.