DB 14

💻 [SQL] 날짜와 시간(DATE and TIME) 자료형

💻 [SQL] 날짜와 시간(DATE and TIME) 자료형 1. DATE 타입 DATE 타입은 날짜는 포함하지만 시간은 포함하지 않을 때 사용하는 타입입니다. DATE 타입 YYYY-MM-DD 형식 입력가능하며, '1000-01-01' 부터 '9999-12-31' 까지만 입력가능합니다. 2. DATETIME 타입 DATETIME 타입은 날짜와 시간을 모두 포함할 때 사용하는 타입입니다. YYYY-MM-DD HH:MM:SS의 형태로 사용되며 '1001-01-01 00:00:00'부터 '9999-12-31 23:59:59'까지 입력이 가능하다 3. TIME 타입 TIME은 HH:MM:SS의 형태를 지닌다.(HHH:MM:SS의 형태를 띄기도 한다) -..

DB/Mysql 2022.07.19

💻[SQL] Null 일 경우 Default 값 처리 방법

💻[SQL] Null 일 경우 Default 값 처리 방법 테이블의 컬럼값이 NULL 일 경우 Default 값을 넣어 주어야 할 경우가 생깁니다. outer join을 했을 때 일부 row의 필드 값이 null일 경우가 존재하는데 이를 IFNULL()를 통해서 default 값을 지정해줄 수 있습니다. MySQL에서는 IFNULL로 My Sql 의 경우엔 IFNULL('Data','Default Value') 를 사용한다. 문법 -- 문법 IFNULL(expression_1,expression_2); -- 예제 SELECT a.id, a.name, IFNULL(b.cnt ,0) as cnt FROM table_a a LEFT JOIN table_b b ON a.id = b...

DB/Mysql 2022.07.15

💻NoSQL이란

💻NoSQL이란 1. NoSQL NoSQL이란(Not Only SQL)의 약자로 말 그대도 위에서 설명한 RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하고 있습니다. 또한 NoSQL에서는 RDBMS와는 달리 테이블 간 관계를 정의하지 않습니다. 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능합니다. NoSQL은 말했다시피 2차원 테이블 간의 관계로 정보를 매핑하는 SQL과는 다르다. NoSQL은 “관계형이지 않은”(여집합) DB를 아우르기 때문에 종류가 매우 다양한데 대표적으로는 연관배열을 사용하는 key-value, 기존의 행 대신 열로 데이터를 저장하는 Column-based, Json이나 XML를 데이터..

DB/MongoDB 2022.06.16

💻RDB 와 NoSQL의 차이점

💻RDB와 NoSQL의 차이점 1. Database와 DBMS 그리고 SQL Databse란 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미합니다. DBMS란(DataBase Management System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어입니다. RDBMS에는 DBMS앞에 R이 붙어 있습니다. 이 R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미합니다. SQL이란(Strucured Query Language) 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 ..

DB/Mysql 2022.06.16

mongoDB 백업 및 복구 파일만들기

mongoDB 백업 및 복구 서비스에서 사용되고 있는 DB가 터져버릴 수 있는 상황을 대비하여 백업파일을 만들어두면 좋을것 같아서 이와 같은 내용을 올립니다. 📌mongoDB 백업하기(dump) mongodump -u user_name -p user_password --authenticationDatabase=admin --out /home/ubuntu/dev/teaming_backend --db db_name --collection collection_name --gzip 옵션 설명 -u : 계정명 -p : 계정의 비밀번호 --authenticationDatabase=admin : 인증 --host : 원격 시 IP 주소 및 포트 --out : Dump 받을 폴더 경로 --db : Dump 받을 DB ..

DB/MongoDB 2022.04.12

mongoDB 데이터 모델링

mongoDB 데이터 모델링 1.mongoDB 데이터 모델링이란? 데이터 모델링은 업무 수행 시 발생하는 데이터를 정확하고 효율적으로 데이터베이스에 저장하기 위해 데이터 구조를 설계하는 과정을 의미합니다. 이러한 데이터 모델링 개념에 mongoDB의 특성을 고려하여 데이터 구조를 설계하는 것을 mongoDB 데이터 모델링이라고 합니다. 관계형 데이터베이스 데이터 모델링이 테이블 설계 후 칼럼을 설계하는 순서로 진행된다면, mongoDB 데이터 모델링은 도큐먼트 설계 후 컬렉션을 설계하는 순서로 진행됩니다. 또한 애플리케이션의 처리방안을 고려한 도큐먼트 구조를 어떻게 설계하느냐에 따라 데이터 정합성과 성능에 큰 영향을 주게 되므로 이에 대한 정확한 이해가 필요합니다. 1.1 도큐먼트 구조란? 도큐먼트는 관..

DB/MongoDB 2021.12.28

[mongoDB] 데이터베이스, 콜렉션, 도큐먼트 네이밍 관습

1. 데이터베이스 네이밍 -카멜게이스나 전부 소문자로 작성할 것(소문자 추천) -영문자a-z, 숫자0-9사용 -대소문자 구별에 주의한다. -소문자로 작성하는 것이 좋다 -64바이트 미만 -운영체제에 따라 금지되는 특수문자가 있다. -데이터 베이스 이름은 공백일 수 없다. -널 문자열이나 공백 문자 띄어쓰기를 포함해선 안된다. -가독성 좋게 구분자를 넣는 것을 권유한다. 구분자는 "-", "_"를 쓸 수 있다. 2. 콜렉션 네이밍 -카멜게이스나 전부 소문자로 작성할 것(소문자 추천) -콜렉션의 이름은 $, 공백문자, 널문자, 접두사 사용 금지는 포함되선 안된다. -구분자를 포함하는 것이 가독성이 좋아진다. -120바이트 이하 -복수형을 권장한다.(ex. products, employees) 3. 도큐먼트 ..

DB/MongoDB 2021.12.23

[보안]DB연결 할때 비밀 키(SECRET_KEY) 관리하기

1. 비밀 키(SECRET_KEY) 관리하기 프로젝트를 배포하기 위해 SECRET_KEY를 분리하는 실습을 진행하려고 합니다. 1.1 비밀 값을 관리하는 이유 만약에 설정값에 시크릿 값이 포함되어 있는 상태에서 Github이나 Bitbucket과 같은 버전 관리 시스템에 코드를 공개하는 경우, 자칫하면 시크릿 값을 잘못 관리함으로 인해 큰 피해를 볼 수도 있다. 가령 시크릿 값을 탈취해 남의 서버 자원을 비정상적으로 사용하는 경우도 있고, 암호키 값인 경우 서버 애플리케이션을 향한 악의적 공격이나 해킹 문제로 이어질 수도 있다. 이 SECRET_KEY는 프로젝트마다 유일한 값으로 세팅되어야 합니다. 또한 VCS(Version Control System)에서 제외되어야 하는데 git과 같은 사이트에 올라갔..

DB/MongoDB 2021.12.16

물리적 데이터 모델링

물리적 데이터 모델링 1. 물리적 설계 물리적 설계란 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다. 이상적인 표를 제품에 맞는 구체적인 표로 만드는 작업 여기서 중요한건 성능입니다. 2. 역정규화 역정규화란 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위해하는 행위이다. 역정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있다. 과도한 반정규화는 오리혀 성능을 저하시킬 수 있다. 역정규화를 위해서는 사전에 데이터의 일관성과 무결성(정확성)을 우선으로 할지, 데이터베..

DB/Mysql 2021.11.03

논리적 데이터 모델링

1.논리적 데이터 모델링 논리적 설계 단계에서는 개념적 데이터 모델링 작업에서 만든 ERD를 기반으로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다. 즉 ERD( 개념적 스키마)를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계이다. 관계형 데이터베이스의 데이블을 설계하는 단계이다. 1.1 ERD -> 논리적 데이터 모델링의 스키마 ERD 논리적 스키마 2. 논리적 데이터 모델링 - 정규화(Normalization) 2.1 정규화(Normalization) 정규화란 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마를 만들어가는 과정입니다. 정규화는 데이터베이스의 논리적 설계 단계에서 수행한다. 정규화된 데..

DB/Mysql 2021.11.03