DB

DB

DB Connection Pool (커넥션 풀) 개념부터 적절한 설정 방법까지 (feat. HikariCP & MySQL)

개인 프로젝트 및 팀프로젝트를 하던 중 백엔드 서버와 DB 서버가 연결이 끊기거나 타임 아웃이 나는 경우가 종종 생겼다. 머리 한편으로는 커넥션풀의 문제겠거니하고 설정들에서 풀을 늘려주거나 시간을 늘리거나 하는등 임시방편으로 해결을 하였는데, 이번 기회로 커넥션풀의 개념과 설정 방법까지 정리해 보려고 한다. 해당 게시물을 유튜브 쉬운코드 님의 영상을 보고 정리한 글입니다. 들어가기 앞서 백엔드 서버와 DB의 통신은 네트워크를 공부해본 개발자라면 알고있는 TCP 연결을 기반으로 하고있다. 커넥션 open(연결)시에는 3-way handshaking이 일어나고, close(끊음)시엔 4-way handshaking을 한다. 즉 커넥션을 맺고, 끊는 과정에서 복잡한 일이 일어나고 비용도 크다는 의미이다. 이말..

DB

SQL 1. 데이터 정의어(DDL)

SQL(Structured Query Langauge) 관계 데이터베이스를 의한 표준 질의어 1974년 IBM연구소에서 데이터베이스 시스템, "시스템 R"을 질의하기 위해서 만들어진 구조화된 언어 SQL의 분류 데이터 정의어(DDL) 테이블을 생성하고 변경,제어하는 기능을 제공 CREATE : 테이블 생성 ALTER : 테이블 변경 DROP : 테이블 삭제 데이터 조작어(DML) 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정,삭제,검색하는 기능을 제공 SELECT : 데이터 검색 시 사용 INSERT : 데이터 입력 UPDATE : 데이터 수정 DELETE : 데이터 삭제 데이터 제어어(DCL) 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공..

DB

정규화(Normalization)!!!!!!!!!!!!!!!!!!!!!

느낌표 갯수만큼 어렵다는 뜻 정규화의 개념과 이상현상 이상 현상 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입,수정,삭제 연산을 수행할 때 발생할 수 있는 부작용 이상현상의 종류 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 이벤트 참여 릴레이션에 신규 고객을 가입하려 한다.하지만 이 고객이 참여한 이벤트가 아직 없다면 이벤트 참여 릴레이션에 이고객에 대한 데이터를 삽입할 수 없다 갱신 이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 아이디가 apple인 고객의 등급이 gold->vip로 변경된다면 이 고객에 대한 투플 3개의 등급 속성값이 모두 변경 되어야 한다 삭제 이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되..

DB

관계 데이터 모델의 기본 개념

관계 데이터 모델이란? 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장 관계 데이터 모델의 기본 용어 릴레이션 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것 파일 관리 시스템 관점에서 파일(file)에 대응 속성 릴레이션의 열을 속성 또는 어트리뷰트라고 부른다 파일 관리 시스템 관점에서 필드(field)에 대응 투플 릴레이션의 행 파일관리 시스템 관점에서 레코드(record)에 대응 도메인 하나의 속성이 가질 수 있는 모든 값의 집합 - ex)Int,Char(10),Char(20) ... 속성 값을 입력 및 수정할 때 적합성의 판단 기준이 됨 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의 널 값 속성 값을 아직 모르거나 ..

DB

데이터 베이스(DB) 설계 - 개념적 데이터 모델링

앞서 E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정 1.요구 사항 분석 : 데이터베이스의 용도 파악 - 결과물 : 요구 사항 명세서 개념적 설계 : DMBS에 독립적인 개념적 구조 설계 - 결과물 : 개념적 스키마(E-R 다이어그램) 논리적 설계 : DBMS에 적합한 논리적 구조 설계 - 결과물 : 논리적 스키마(릴레이션 스키마) 물리적 설계 : DBMS로 구현 가능한 물리적 구조 설계 - 결과물 : 물리적 스키마 구현 : SQL 문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스 생성 설계 1단계 : 요구 사항 분석 목적 - 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악 주요 작업 - 데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정 - 사용자가 조직에서 수..

DB

데이터 모델링을 ARABOZA

데이터베이스 설계 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정 E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정 E-R 모델과 릴레이션 변환 규칙을 이용한 설계의 과정 요구 사항 분석 : 데이터베이스의 용도 파악 결과물 : 요구 사항 명세서 개념적 설계 : DMBS에 독립적인 개념적 구조 설계 결과물 : 개념적 스키마(E-R 다이어그램) 논리적 설계 : DBMS에 적합한 논리적 구조 설계 결과물 : 논리적 스키마(릴레이션 스키마) 물리적 설계 : DBMS로 구현 가능한 물리적 구조 설계 결과물 : 물리적 스키마 구현 : SQL 문을 작성한 후 이를 DBMS에서 실행하여 데이터베이스 생성 데이터 모델링 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정 ..

DB

데이터 언어 (DB language)

1.데이터 정의어 스키마를 정의하거나, 수정 또는 삭제하기 위해 사용 2.데이터 조작어 데이터의 C.R.U.D등의 처리를 요구하기 위해 사용 절차적 데이터 조작어와 비절차적 데이터 조작어로 구분 절차적 데이터 조작어 - 사용자가 어떤 데이터를 원하고 그 데이터를 얻기 위해 어떻게 처리해야하는지도 설명 비절차적 데이터 조작어(ex - SQL) - 사용자가 어떤 데이터를 원하는지만 설명 - 선언적 언어라고도 함 3.데이터 제어어 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용 사용 목적 - 무결성 : 정확하고 유효한 데이터만 유지 - 보안 : 허가받지 않은 사용자의 데이터 접근 차단, 허가된 사용자에 권한 부여 - 회복 : 장애가 발생해도 데이터 일관성 유지 - 동시성 제어 : 동시 공유 지원

DB

데이터베이스(DB) 사용자

1.데이터베이스 관리자 데이터베이스 시스템을 운영하고 관리하는 사람 주로 데이터 정의어와 데이터 제어어를 사용 주요 업무로는 - 데이터베이스 구성 요소 선정 - 데이터베이스 스키마 정의 - 물리적 저장 구조와 접근 방법 결정 - 무결성 유지를 위한 제약조건 정의 - 보안 및 접근 권한 정책 결정 - 백업 및 회복 기법 정의 - 시스템 데이터베이스 관리 - 시스템 성능 감시 및 성능 분석 - 데이터베이스 재구성 2.최종 사용자 데이터베이스에 접근하여 데이터를 조작(CRUD)하는 사람 주로 데이터 조작어를 사용 캐주얼 사용자와 초보 사용자로 구분 3.응용 프로그래머 데이터 언어를 삽입하여 응용 프로그램을 작성하는 사람 주로 데이터 조작어를 사용

맹수호빵
'DB' 카테고리의 글 목록