데이터베이스

데이터베이스

RDBMS의 구조

개념과 구조RDB개념IBM소속 Edgar F. “Ted” Codd가 1970년에 RDB 개념제시, 구조와 접근 방식을 테이블(릴레이션)로 정리한 관계형 DB데이터를 테이블 형식으로 저장하며, 행과 열로 구성테이블 간의 관계는 키(기본키 → 외래키)를 사용하여 정의구조- 주 구성요소SQL엔진: SQL 쿼리의 해석, 최적화, 실행을 담당하며, 데이터베이스의 논리적 데이터 구조를 관리스토리지 엔진: 데이터의 물리적 저장, 검색을 처리하며, 다양한 스토리지 엔진 옵션(My SQL의 경우 InnoDB, MyISAM 등)이 존재InnoDB: 트랜잭션 지원, ACID준수, 무결성 보장과 동시성 제어 중시MyISAM: 트랜잭션 지원x, 빠른 읽기 작업과 낮은 메모리 사용 중점HDD: 데이터를 실제로 저장하는 하드웨어 ..

데이터베이스/ElasticSearch

Elasticsearch DB 구축 과정과 최적화 전략

필요성교내 프로젝트 진행시에 금전적인 문제로 최종 배포 전에 테스트 단계에서는 AWS ec2 t2.medium 단계를 사용하여 Elasticsearch DB 서버를 구축해야 했습니다. 이 과정에서 DB의 노드 개수와 메모리 할당 크기를 결정해야 했습니다.과정  Docker를 이용하여 Elasticsearch를 구축했기 때문에 Docker compose.yml 파일과 설정 파일 .env 파일을 수정하여 테스트를 진행했습니다.  테스트를 진행할 때는 top 명령어를 이용하여 서버의 메모리 할당 상태를 모니터링하고, 동시에 Docker Elasticsearch 노드의 로그를 분석하여 테스트를 진행했습니다. 이를 통해 각 단계에서의 메모리 사용량과 서버의 상태를 확인하고 최적의 구성을 찾았습니다테스트 과정 및 ..

데이터베이스/ElasticSearch

Elasticsearch 8.* 버전의 복잡한 쿼리를 QueryDSL의 BoolQuery로 처리하기

과거 Spring에서의 BoolQuery사용기존에는 AbstractElasticsearchConfiguration을 통해 Elasticsearch 설정을 처리해주고 elasticsearch.core.query 안의 관련 항목들을 통해 복잡한 쿼리문을 진행했던 것과 달리, Spring 3.* 및 Elasticsearch 8.* 버전에서는 많은 변경 사항이 있습니다. 이러한 변경 사항은 Elasticsearch와 Spring Data Elasticsearch 라이브러리의 최신 업데이트로 인해 발생했습니다. 이 글에서는 이러한 변경 사항에 대해 자세히 알아보고, 새로운 버전에서 Elasticsearch를 설정하는 방법과 주요 기능을 살펴보겠습니다."복잡하지 않은 쿼리문동적이지 않은 쿼리가 필요할때는 Elast..

데이터베이스/ElasticSearch

Start Elasticsearch with docker

Elasticsearch정의ElasticSearch는 아파치 루씬 기반 검색인진으로 문서 검색, 지도 위치 검색, 머신 러닝 기반 검색, 로그분석등 다양한 용도로 활용되고 있다. 이런 검색 관련 데이터 처리시 사용이유는 여러 노드에 분산하여 구성함으로써 데이터의 가용성을 높이고 성능을 향상 시킬수 있다 역인덱싱기본적으로 ElasticSearch는 데이터 저장시 이를 색인화한다. 이후에 역 인덱싱을 통해 검색을 빠르고 효율적으로수행한다. 쉽게 말하면 책 뒤에 순서대로 적혀있는 단어와 해당 단어의 위치 적혀있는 것을 예시로 들면 쉬울 것이다. Kibana키바나는 ElasticSearch와 함께 사용되는 데이터 시각화 및 관리 도구이다. 키바나를 사용하면 ElasticSearch에서 수집된 데이터를 시각적으로..

데이터베이스

[데이터베이스] DB전체 요약(조르디 CS강의)

Data Base DBMS(Data Base Management System) RDB, NoSQL RDB(관계형 데이터베이스): MySQL, Oracle, Ms-SQL, SQLite NoSQL(Not Only SQL): Redis, Hbase, mongo DB DELETE vs TRUNCATE vs DROP DELETE: 데이터(ROW)만 삭제(따라서 1,2 삭제후 새로운 데이터 넣을때 다시 1,2id 지급) TRUNCATE: ROW도 삭제하는데 메타데이터도 삭제(1,2삭제후 데이터 넣을때 3,4id 지급) DROP: 완전히 테이블 자체를 삭제 DML, DDL, DCL 차이도 알아두면 좋음 DML(Data Manipulation Language): CRUD(Create, Read, Update, Dele..

데이터베이스/SQL

[SQL] SQLD 50회 후기 및 문제유형

공부기간 및 공부법, 잡담 시험은 9/9(토요일) 10시에 치뤘다.(10분전 이렇게 도착하지말고 가능하면 25~30분전에 도착하자, 은근 뭐가있다) 신청 이후에 시험장에 갈때는 검정볼펜, 컴싸, 신분증, 수험표(선택, 어차피 번호 알려주신다)챙겨가야한다 다른 블로그 보고 수험번호 물어보면 시간걸린다길래 외워갔는데 시험전에 알려주시는거라 큰 상관없다. 그리고 화이트 못씀, 추가로 가채점 불가능하다. 혹시라도 작성자 본인처럼 번호 객관식 번호 외워도 네이버 데이터 전문가 포럼에서 복원하는거보면 번호가 대부분 문제답으로 하기때문에 의미없다. 공부는 7월 중순부터 학교 학술 동아리 사람들과 매주 스터디하는씩으로 진행했고 노랭이 문제집으로 진행했다. 보통 1주에 5시간공부+블로그정리2시간으로 진행한거같고 막판 5..

데이터베이스/SQL

[SQL] SQL 활용(2)

그룹 함수 데이터분석 개요 세가지 함수 AGGREGATE FUNCTION: COUNT, SUM, AVG, MAX, MIN 등 각종 집계함수가 포함된다 GROUP FUNCTION: 결산개념(소개, 중계, 합계), SQL테이블 한번 읽는것으로 원하는값 찾는다 WINDOW FUNCTION: 분석함수, 순위함수가 여기에 포함된다 ROLLUP 계층적 요약, 특정 열 또는 집합에 대한 총합 및 소계 계산한다 예시(쿼리문과 결과문) SELECT OrderDate, Product, SUM(Amount) AS TotalAmount FROM OrderTable GROUP BY ROLLUP(OrderDate, Product); -------------------------------- | OrderDate | Product..

데이터베이스/SQL

[SQL] SQL 활용(1)

표준 조인 개요 ANSI/ISO SQL2(1992년) 표준 SQL명세 부족, 상호 호환성과 학습효율 많이 부족했다. ANSI/ISO SQL3(1999년): 기능정리, 호환가능한 여러기능 추가하였다. ANSI/ISO SQL(2003년): 기준 소폭추가, 현재 대부분 DB가 사용 현재의 SQL에는 STANDARD JOIN기능이 추가되어있다. 일반 집합 연산자 UNION: 합집합, 중복 제거해준다 INTERSECT: 교집합이다 EXCEPT/MINUS(ORCALE): 차집합(DIFFERENCE)이다 CROSS JOIN: 곱집합(PRODUCT), JOIN조건이없는 경우 생길 수 있는 모든 조합이다 순수 관계 연산자 SELECT: WHERE절로 구현되어 있다 PROJECT: SELECT절로 구현되어 있다 NATUR..

데이터베이스/SQL

[SQL] 기본 정리

관계형 데이터베이스 정규화를 통해 이상 현상을 제거하고 데이터 중복을 피함으로써 데이터 불일치성 문제를 해결한다. 동시성 관리와 병행 제어를 통해 여러 사용자가 동시에 데이터를 공유하고 조작할 수 있다. 메타 데이터를 통해 데이터의 성격, 속성, 표현 방법을 체계화하고 데이터 표준화를 지원한다. 보안 기능을 제공하여 인증된 사용자만이 참조할 수 있도록 한다. 다양한 제약조건을 이용하여 데이터 무결성을 보장하고 오류를 방지합니다. 1970년에 E.F.Codd 박사가 논문에 처음 소개했다. 기존의 파일시스템, 망형(네트워크형 데이터베이스), 계층형 데이터베이스를 대체하는 장점이있다.(데이터 중복제거, 동시성 관리와 병행 제어, 합리적인 테이블 모델링, 보안 기능 제공 등등) DML, DDL, DCL, TCL..

데이터베이스/JPA

JPA소개와 기본세팅

JPA란 ORM(객체 - 관계 자동매핑)중 하나이자 Java Persistence API의 약자로 자바 플랫폼에서 객체와 관계형 데이터베이스를 매핑하고, 객체 지향적인 방식으로 데이터를 영속화 하는 기술이다. 보통 JPA 프레임워크로는 Hibernate를 사용해서 구현한다. ※Hibernate: 자바 언어를 위한 ORM 프레임워크이다. 자바 객체를 통해 데이터베이스가 Oracle, MySql, MSSQL등에 상관없이 다룰수있게 해준다. 이를 통해 개발자는 SQL을 사용하지 않고 메서드 호출만으로 쿼리가 수행된다. JPA구동방식 먼저 persistenc.xml 파일을 조회해서 설정에 맞게 DB를 구상한다. DB에 접근할때 매번 커넥션을 생성해주는 EntityManagerFactory를 생성합니다. Fact..

Ash_jisu
'데이터베이스' 카테고리의 글 목록