본문 바로가기
728x90

넓고 얕은 데이터베이스 지식45

뷰(View)에 대해 알아보고 엔티티(Entity) 객체와 매핑해보자. 📌 MySQL에서의 뷰(View) 뷰(View)는 가상의 테이블로 하나 이상의 테이블로부터 개발자가 미리 유도한 결과 집합을 보여준다. 데이터를 실제로 저장하지 않고 쿼리를 실행할 때마다 기본 테이블에서 데이터를 가져와서 결과를 생성한다. 기존 테이블을 커스텀한, 읽기 전용의 테이블이라고 볼 수 있으며 매번 뷰가 참조하는 실제 테이블에 수정, 삭제 등의 쿼리가 있을 때마다 변경된 결과로 갱신된다. 일반적으로 뷰를 통해 데이터를 수정하거나 삭제하는 것은 불가능하며 수정 작업은 해당하는 기본 테이블에서 직접 수행되어야 한다. MySQL의 경우 옵션을 이용하여 수정이 가능하기는 하나 기존 데이터의 가공과 조회를 위한 용도로 활용하는 것이 적합하다. 데이터의 가공, 필터링, 보안 설정 등 다양한 용도로 활용된다.. 2024. 1. 30.
MySQL Replication : DB 서버 이중화(master - slave)하기 📌 MySQL Replication MySQL Replication은 데이터베이스 서버 간 데이터의 동기화를 위해 사용되는 기술이다. 주 서버에서 변경된 데이터를 다른 서버로 복사하여 데이터의 일관성과 가용성을 보장한다. MySQL Replication의 세 가지 역할 첫째, 마스터 서버(master)는 데이터의 원본이 되는 서버로, 변경된 데이터를 기록하고 복제 로그(binlog)를 생성한다. 둘째, 슬레이브 서버(slave)는 마스터 서버로부터 변경된 데이터를 복사받아 동기화한다. 슬레이브 서버는 읽기 작업에 사용되며 읽기 부하를 분산시킬 수 있다. 셋째, 중간 마스터 서버(Intermediate Master)를 이용하여 복제 체인(replication chain)을 형성해 복제의 유연성을 높일 수 .. 2024. 1. 10.
MySQL VS PostgreSQL JSON 데이터 INSERT & 조회 성능 및 장단점 비교하기 👨🏻‍🔬 테스트 주제 MySQL(5.7 이상)과 PostgreSQL 모두 JSON 타입의 컬럼을 지원한다. Spring boot 2.7 + Spring Data JPA 사용 시 데이터베이스에 JSON 형식의 컬럼을 INSERT 하고, JSON 데이터의 특정 key 값으로 value를 조회할 때의 속도 및 기타 특징을 비교해보려고 한다. MySQL의 주요 특징 MySQL의 경우 JSON 데이터 내 전체 키를 인덱싱 하는 방법을 제공하지 않는다. JSON 데이터 내 특정 키를 선택하여 인덱싱 할 수는 있다. 무조건 JSON 타입으로 저장해야 하는 특별한 상황이 아니면 해당 key만 따로 빼서 컬럼으로 추가하는 것이 더 좋은 선택일 수 있다. 별도의 컬럼으로 관리하는 것이 RDBMS의 장점을 온전히 활용할 수.. 2023. 8. 23.
PostgreSQL의 JSON 데이터 저장 타입 JSON vs JSONB 비교하기 💡 PostgreSQL은 JSON과 JSONB 두 가지 데이터 타입을 제공한다. 두 타입을 통해 데이터베이스에 JSON 데이터를 효율적으로 저장하고 처리할 수 있다. PostgreSQL에서의 JSON과 JSONB 데이터 타입의 차이점과 각각의 장단점을 비교해 보자. 저장 형식 JSON 타입 원본 JSON 형식의 텍스트로 데이터를 저장한다. 이 때문에 저장 공간이 더 크게 필요하며 처리 속도가 JSONB 타입 대비 느릴 수 있다. JSONB 타입 바이너리 형식으로 JSON 데이터를 저장한다. 바이너리 형식으로 저장한 덕분에 데이터 저장 공간을 절약하고 쿼리 속도를 높일 수 있다. 데이터 구조 JSON 타입 원본 JSON 문자열의 공백과 순서를 그대로 유지한다. JSONB 타입 공백이 제거되고, 객체의 키 .. 2023. 8. 22.
Spring Data JPA + PostgreSQL을 이용하여 JSON 데이터 타입의 컬럼에 JSON 데이터를 저장하기 이 글은 이전 글의 내용과 이어집니다. 방법만 알고 싶으신 분들은 아래에 테스트 시작 부분부터 읽으시면 됩니다. 💡 요약 및 변경사항 Spring boot + Spring Data JPA 환경에서 엑셀 데이터를 파싱하고 데이터베이스에 저장해야 한다. 엑셀 데이터에는 여러 단체의 회원 정보가 담겨 있다. 초기 기획에서는 회원 정보에 대한 액셀 형식이 완전히 자유였지만 정확한 엑셀 파싱을 위해 어느 정도 형식을 지정하기로 결정됐다. 1. 첫 번째 행은 헤더이며 공백 없이 두 번째 행부터 데이터가 들어간다. 2. 첫 번째 칼럼은 이름(회원명)이며, 두 번째 칼럼은 전화번호여야 한다. 3. 나머지 칼럼은 앱에서 정의한 칼럼이나 직접 생성한 칼럼으로 구성할 수 있다.(주소, 학교명, 회사명, 직급 등) 예를 들어.. 2023. 8. 19.
macOS에서 PostgreSQL을 설치하고 DBeaver에 연결하기 https://www.postgresql.org/ PostgreSQL The world's most advanced open source database. www.postgresql.org PostgreSQL를 설치하기 전에 공식 문서에 접근하는 방법을 간단히 알아보자. 공식 문서 살펴보기 공식 홈페이지에 들어간다. 상단바에 Document에 들어간다. View the manual을 클릭한다. 화면 상단에 버전이 나와있는데 Supported Version에서 Current로 표시된 버전이 현재 가장 안정화된 버전인 것 같아 나는 15를 선택했다. 여기서 공식 문서를 확인할 수 있다. 공시문서에는 XCode를 이용하여 설치하는 방법만 적혀있다.(15.4 기준) 나는 Homebrew를 이용하여 설치할 생각이.. 2023. 8. 14.
속성으로 익히는 mongoDB (관련 용어 & 명령어 요약 정리) MongoDB 문서 지향 데이터 모델을 사용하는 오픈 소스 NoSQL 데이터베이스 관리 시스템이다. 유연한 JSON과 유사한 문서에 데이터를 저장한다. 주요 용어 문서(Document) mongDB에서의 기본 데이터 단위로 일반적으로 JSON 형식으로 표시된다. 문서는 관계형 데이터베이스의 행 또는 레코드와 유사하다. 데이터베이스(Database) 여러개의 컬렉션으로 구성되며 컬렉션의 집합이다. 컬렉션(Collection) mongoDB의 문서 집합이다.(그룹으로 묶은 것) 컬렉션은 관계형 데이터베이스의 테이블과 유사하다. 문서 ID(Document ID) 각 컬렉션 내 문서에 대한 고유 식별자이다. 기본적으로 몽고DB는 각 문서에 _id 필드를 자동으로 생성한다. 쿼리(Query) 특정 기준을 바탕으로.. 2023. 8. 11.
macOS에서 mongoDB를 설치해보자 mongoDB 공식문서를 통해 macOS 환경에 mongoDB를 설치해 보자. 구글에 "mongodb 공식 문서"라고 검색하면 공식문서 웹사이트가 나온다. 왼쪽 메뉴에 MongoDB Manual을 통해 버전을 확인한다. 안정된 6.0 현재 버전을 다운로드할 생각이다. 이 글을 보는 시점에서 적절한 버전을 선택하면 된다. mongoDB Community Edition이 오픈소스 라이선스(무료 버전)이므로 선택한다. 아주 친절하게 운영체제 및 컨테이너 별 설치 방법이 나와있으므로 로컬 환경에 맞는 링크로 들어가면 된다. 나는 macOS로 들어갔다. 설치방법을 확인해 보니 Xcode 명령어나 Homebrew를 이용하여 다운로드할 수 있다고 나온다. 가장 기본적인 Homebrew를 이용하겠다. 위의 스크린샷에 .. 2023. 8. 10.
728x90