Database
-
Intro 여러 데이터베이스를 다룰 때, 스키마를 설계하는 것은 중요한 요소다. 최근에도 ORM 을 설계할 때, 정규화를 무시한 경우도 있었다. 이에 대해 보다 자세히 다뤄보기 위해 위 글을 작성한다. 🟢 정규화(Normalization)데이터베이스 정규화(Normalization)는 데이터베이스 설계를 최적화하기 위해 데이터를 구조화하는 과정이다. 이 과정은 테이블 간에 데이터의 중복을 최소화하고, 데이터 무결성(Integrity)을 유지하기 위해 실시하며, 데이터베이스의 저장 용량 또한 줄일 수 있다. 정규화를 통해 데이터 모델의 일관성을 유지하고, 업데이트 시 발생할 수 있는 오류를 줄일 수 있다. 일반적으로 여러 단계의 정규형이 있으며, 각 단계는 특정한 이상 현상을 제거하는 데 중점을 둔다...
[Database] 데이터베이스 정규화에 대하여Intro 여러 데이터베이스를 다룰 때, 스키마를 설계하는 것은 중요한 요소다. 최근에도 ORM 을 설계할 때, 정규화를 무시한 경우도 있었다. 이에 대해 보다 자세히 다뤄보기 위해 위 글을 작성한다. 🟢 정규화(Normalization)데이터베이스 정규화(Normalization)는 데이터베이스 설계를 최적화하기 위해 데이터를 구조화하는 과정이다. 이 과정은 테이블 간에 데이터의 중복을 최소화하고, 데이터 무결성(Integrity)을 유지하기 위해 실시하며, 데이터베이스의 저장 용량 또한 줄일 수 있다. 정규화를 통해 데이터 모델의 일관성을 유지하고, 업데이트 시 발생할 수 있는 오류를 줄일 수 있다. 일반적으로 여러 단계의 정규형이 있으며, 각 단계는 특정한 이상 현상을 제거하는 데 중점을 둔다...
2024.05.15 -
WITH RECURSIVE 📌 프로그래머스 59413 번 문제를 풀다가 0시부터 23시까지의 모든 시간에 대한 COUNT 를 해야 하는 경우가 생겼다. 언어로 그걸 구현하는 것은 단순 for() 를 사용해서 처리하는 등의 다양한 방법이 있지만 SQL 에서는 어떠한 방법으로 구현을 해야 할 지 막막했다. UNION 으로 해결할 수는 있지만 예쁜 코드? 가 아닌 것 같아 다양한 풀이를 찾아보다 with recursive 라는 기능을 찾게 되었다. 추후에도 유용하게 사용할 수 있을 것 같아 정리하고 넘어가고자 이 글을 작성한다. 📚 WITH RECURSIVE MySQL에서 제공하는 WITH RECURSIVE 구문은 말 그대로 재귀함수처럼 동작한다. WITH RECURSIVE 생성할_뷰_이름 AS ( 초기_SQ..
[MySQL] WITH RECURSIVEWITH RECURSIVE 📌 프로그래머스 59413 번 문제를 풀다가 0시부터 23시까지의 모든 시간에 대한 COUNT 를 해야 하는 경우가 생겼다. 언어로 그걸 구현하는 것은 단순 for() 를 사용해서 처리하는 등의 다양한 방법이 있지만 SQL 에서는 어떠한 방법으로 구현을 해야 할 지 막막했다. UNION 으로 해결할 수는 있지만 예쁜 코드? 가 아닌 것 같아 다양한 풀이를 찾아보다 with recursive 라는 기능을 찾게 되었다. 추후에도 유용하게 사용할 수 있을 것 같아 정리하고 넘어가고자 이 글을 작성한다. 📚 WITH RECURSIVE MySQL에서 제공하는 WITH RECURSIVE 구문은 말 그대로 재귀함수처럼 동작한다. WITH RECURSIVE 생성할_뷰_이름 AS ( 초기_SQ..
2023.12.07 -
Redis란 ? 선착순 이벤트를 진행하는데 선착순의 기준을 무엇으로 잡을 것이냐 라는 질문을 받았다. 이러한 이벤트를 진행할 때 당연히 의도한 무언가가 생성된 시간을 기준으로 하면 되지 않냐는 대답에 시간까지 동일하고, 그 과정에서 트랜잭션 처리는 어떻게 할 것이냐는 질문이 돌아왔을 때 아무 대답도 하지 못했다. 알아보니 이러한 시스템 설계엔 Redis 의 Sorted Set 자료구조를 사용하여 차례대로 일정 범위만큼 처리를 한다고 한다. 추후에 Redis 를 활용한 선착순 서비스를 생성해보고 싶은 욕심에 Redis 에 대해 정리해보려고 한다.Redis란?Redis ( Remote Dictionary Server) 는 메모리 기반의 "키-값" 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저..
[Database] Redis란 ?Redis란 ? 선착순 이벤트를 진행하는데 선착순의 기준을 무엇으로 잡을 것이냐 라는 질문을 받았다. 이러한 이벤트를 진행할 때 당연히 의도한 무언가가 생성된 시간을 기준으로 하면 되지 않냐는 대답에 시간까지 동일하고, 그 과정에서 트랜잭션 처리는 어떻게 할 것이냐는 질문이 돌아왔을 때 아무 대답도 하지 못했다. 알아보니 이러한 시스템 설계엔 Redis 의 Sorted Set 자료구조를 사용하여 차례대로 일정 범위만큼 처리를 한다고 한다. 추후에 Redis 를 활용한 선착순 서비스를 생성해보고 싶은 욕심에 Redis 에 대해 정리해보려고 한다.Redis란?Redis ( Remote Dictionary Server) 는 메모리 기반의 "키-값" 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저..
2023.12.06 -
MySQL 와 Maria DB 는 무엇이 다른 걸까 ?📌문뜩 Maria DB 와 MySQL 이 다른 점이 무엇인가 ? 에 대한 물음이 생겼다. 그 물음을 해결하고자 친구한테 물어봤을 때 " 똑같은 거 아냐 ? " 라는 답변이 돌아왔고 그에 대한 해답을 찾아보고자 한다. 🔗 MySQL90년대 중반에 개발된 MySQL은 시장에서 사용할 수 있는 최초의 오픈 DB중 하나이며 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)이다. MySQL은 단순 쿼리 처리 성능이 어떤 제품보다 압도적이며 이미 오래 사용되어 왔기 때문에 성능과 신뢰성 등에서 꾸준히 개선되어 온 것도 장점이다. 또한 MySQL은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원하고 C언어, ..
[Database] MySQL 와 Maria DB 는 무엇이 다른 걸까MySQL 와 Maria DB 는 무엇이 다른 걸까 ?📌문뜩 Maria DB 와 MySQL 이 다른 점이 무엇인가 ? 에 대한 물음이 생겼다. 그 물음을 해결하고자 친구한테 물어봤을 때 " 똑같은 거 아냐 ? " 라는 답변이 돌아왔고 그에 대한 해답을 찾아보고자 한다. 🔗 MySQL90년대 중반에 개발된 MySQL은 시장에서 사용할 수 있는 최초의 오픈 DB중 하나이며 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)이다. MySQL은 단순 쿼리 처리 성능이 어떤 제품보다 압도적이며 이미 오래 사용되어 왔기 때문에 성능과 신뢰성 등에서 꾸준히 개선되어 온 것도 장점이다. 또한 MySQL은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원하고 C언어, ..
2023.07.27 -
DB, DBMS 와 RDBMS의 차이? 📌현업에서 DB 를 항상 사용하고 있다. 항상 사용해 오고는 있지만 "DB란 무엇이고 그거에 연관된 개념이 무엇이 있을까" 라는스스로에 대한 물음에 명확히 대답할 수 없었다. 개념을 정리하고 기초를 갖춰보고자 이번 포스팅을 준비했다. 🔗 DB, 데이터베이스 흔히 들을 수 있는 데이터베이스 (Database) 는 데이터의 저장소라고 정의할 수 있다.이 데이터베이스를 운영하고 관리하는 소프트웨어가 DBMS (Database Management System), 즉, 데이터베이스를 관리하는 시스템이다.계층형, 망형, 관계형 DBMS 중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS 의 형태로 사용되는데이를 RDBMS 라고 한다. 이를 하나씩 정리해보자. 🔗 DB..
[Database] DB, DBMS 와 RDBMS의 차이DB, DBMS 와 RDBMS의 차이? 📌현업에서 DB 를 항상 사용하고 있다. 항상 사용해 오고는 있지만 "DB란 무엇이고 그거에 연관된 개념이 무엇이 있을까" 라는스스로에 대한 물음에 명확히 대답할 수 없었다. 개념을 정리하고 기초를 갖춰보고자 이번 포스팅을 준비했다. 🔗 DB, 데이터베이스 흔히 들을 수 있는 데이터베이스 (Database) 는 데이터의 저장소라고 정의할 수 있다.이 데이터베이스를 운영하고 관리하는 소프트웨어가 DBMS (Database Management System), 즉, 데이터베이스를 관리하는 시스템이다.계층형, 망형, 관계형 DBMS 중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS 의 형태로 사용되는데이를 RDBMS 라고 한다. 이를 하나씩 정리해보자. 🔗 DB..
2023.07.26 -
MySQL LIMIT OFFSETPaging 처리를 진행하려다 보니 LIMIT & OFFSET 에 대해 알게 되었고, 정리를 해보려고 한다.MySQL 에서는 LIMIT OFFSET을 이용해서 출력되는 행의 갯수를 지정할 수 있다.# 사용법[ LIMIT '행 갯수' OFFSET '시작행' ]: 첫 행은 0부터 시작. ( 0이 아님 ) # 예시첫 행만 출력SELECT * FROM '테이블명' LIMIT 0, 1;SELECT * FROM '테이블명' LIMIT 1 OFFSET 0;네 번째부터 10개 출력SELECT * FROM '테이블명' LIMIT 10 OFFSET 3;
[MySQL] LIMIT OFFSETMySQL LIMIT OFFSETPaging 처리를 진행하려다 보니 LIMIT & OFFSET 에 대해 알게 되었고, 정리를 해보려고 한다.MySQL 에서는 LIMIT OFFSET을 이용해서 출력되는 행의 갯수를 지정할 수 있다.# 사용법[ LIMIT '행 갯수' OFFSET '시작행' ]: 첫 행은 0부터 시작. ( 0이 아님 ) # 예시첫 행만 출력SELECT * FROM '테이블명' LIMIT 0, 1;SELECT * FROM '테이블명' LIMIT 1 OFFSET 0;네 번째부터 10개 출력SELECT * FROM '테이블명' LIMIT 10 OFFSET 3;
2022.09.01