DBMS

DBMS

[DBMS] noSQL vs SQL, ORM, ODM

SQL과 NoSQL SQL과 NoSQL에 대한 간단한 기초 개념, 그리고 각각의 장단점에 대해 알아보자. SQL(관계형 DB) "Structured Query Language" 관계형 데이터베이스를 조작하고 액세스하는 데 사용되는 구조화된 쿼리 언어 즉, SQL은 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는 데 사용되는 쿼리 언어이다. 데이터를 관리하는 시스템인 DBMS 중에 RDBMS(Relational DBMS)라고 부르는 관계형 데이터베이스 관리 시스템이 있다. SQL을 사용하여 RDBMS를 이용할 수 있다. 이러한 관계형 데이터베이스에는 핵심적인 두 가지 특징이 있다. 데이터는 엄격한 데이터 스키마(=structure)를 따라 데이터베이스 테이블에 저장된다...

DBMS/RDBMS

[MySQL] datetime vs timstamp

Mysql의 time datatype에는 대표적으로 datetime과 timestamp를 적용할 수 있다. 이 둘의 차이점에 대해 알아보자. Datetime 특징 5.6버전 이상부터 CURRENT_TIMESTAMP 적용 가능 날짜와 시간 모두 포함한 타입(YYYY-MM-DD hh:mm:ss) time_zone과 상관없이 고정된 값 저장(current_timestamp 적용 시 utc-0 기준 저장) 날짜 및 시간 정보를 모두 포함하는 값이 필요할 때 사용 지원범위 : '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. 용량 : 8byte timestamp 특징 날짜와 시간 모두 포함한 타입(YYYY-MM-DD hh:mm:ss) time_zone에 의존하여 UTC 값 저장..

DBMS/RDBMS

[MySQL] MySQL id컬럼의 data type (INT vs BIGINT)

MySQL id컬럼의 data type에 대하여 1. 상황 ID컬럼이 INT 타입인 DB에 맞춰 typescript로 개발한 app이 있는데, BIGINT 타입으로 변경했더니 많은 에러가 발생함. (변경 이유는 생략) 2. 원인 BIGINT는 INT와 달리 Number type이 아닌 별도의 타입(bigint)을 사용함. 전부 Number type으로 개발되어 있고, 비지니스 로직에서 계속해서 분리하여 사용해야 하는 번거로움이 발생 따라서, BIGINT가 아닌 INT를 사용하여 번거로움을 줄이고자 INT와 BIGINT의 차이를 확인함. 3. 개념 INT / BIGINT 특징 Type Maximum Value Signed Maximum Value Signed Maximum Value Unsigned Min..

DBMS/ORM, ODM

[Prisma] Prisma soft delete 적용

1. 상황 및 원인 Prisma를 사용하여 백엔드 서버를 마이그레이션 중이다. 기존에 사용하던 ORM인 sequielize에는 delete 관련 Column이 있을 경우, sequelize 설정으로 간단하게 soft delete를 적용시킬 수 있었다. Prisma에는 그런 기능이 없으니 한 번 구현해보자. Prisma를 사용하고 있는 이유 Node.js 와 TypeScript 를 위한 Auto-generated & Type-safe 한 Querybuilder 제공 prisma client 생성 시, model에 대한 schema와 type들을 완벽하게 인식하여 type 안정성이 높음 기존 DB를 사용하기 위한 간편한 Introspect 기능 제공 prisma generate로 model 선언 불필요 여러..

Isthis
'DBMS' 카테고리의 글 목록