본문 바로가기

개발기술/데이터베이스

(8)
Redis (Redis작동법, Spring 연결) 레디스 DB의 디스크가 아닌 메모리에 저장하여 휘발성이 있지만 영속성 기능을 지원하기도 함. 안정성이 비교적 떨어지기 때문에주로 캐시서버로 사용됨.인덱스방식이 아니라 key-value방식으로 저장다양한 방식의 데이터타입 적용가능 (hash나 list같은 데이터 저장가능)tomcat과는 다르게 embedded방식이 아니라 OS내에 설치하여 별도의 서버로 동작한다.(micro service) 레디스 종류싱글인스턴스방식 센티넬, 클러스터방식 - 마스터 슬레이브 구조을 하여, 서버 한대가 죽더라도 다른 서버가 살아있으면 구동 가능하도록 구현 레디스 활용점1. 캐쉬서버로서 DB로의 직접접근을 최소화시킴2. 동기화 문제를 해결하기 위해서 DB의 Serializable을 대신해서 SpinLock을 구현 OS 내에 레..
데이터 베이스 최적화 고려요인 저장되는 데이터 타입을 고려문자열인지, 숫자인지, 숫자의 범위인지, 문자열의 길이는 어떻게 되는지문자열과 숫자: 데이터의 성격에 따라 적절한 타입을 선택합니다. 예를 들어, 숫자 타입은 정수(INTEGER), 부동 소수점(FLOAT, DOUBLE), 고정 소수점(DECIMAL) 등이 있으며, 각 타입은 저장할 수 있는 값의 범위와 정밀도가 다릅니다. 문자열의 경우, 고정 길이(CHAR)와 가변 길이(VARCHAR)를 구분하여 사용해야 하며, 길이 제한을 설정함으로써 메모리 사용을 최적화할 수 있습니다.데이터 타입 선정 기준: 데이터의 최대 크기, 사용 빈도, 쿼리의 종류에 따라 타입을 선정합니다. 예를 들어, ID 값이나 코드 값은 VACHAR보다는 CHAR로 고정하는 것이 검색 속도 향상에 도움이 될 ..
데이터베이스 기술개념 - [북스터디] 데이터 베이스를 지탱하는 기술 1.데이터 베이스가 없으면 무엇이 곤란한가? 2. 인덱스로 고속 액세스 실현하기인덱스의 개념인덱스 : 리스트의 인덱스는 각 요소가 저장된 순서를 나타내는 숫자라면, 데이터베이스의 인덱스는 찾고자하는 레코드의 위치를 빠르게 탐색하기 위한 별도의 자료구조(B tree, Hash Table)이다. 데이터베이스는 Update문을 실행시킬때, record와 함께 index도 업데이트 하여 1가지 이상의 업데이트 행위를 함. 인덱스의 기본 원리 : 인덱스의 기본적인 원리는 대규모 데이터 집합에서 특정 데이터를 빠르게 찾기 위해 정렬된 상태를 유지하는 것입니다. 인덱스는 데이터베이스의 전체 데이터를 스캔하는 대신, 인덱스가 가리키는 특정 경로를 통해 데이터를 찾아 접근 시간을 단축합니다. B-트리 인덱스BST의 이진..
DB 트랜잭션 트랜잭션 정의트랜잭션 : 데이터 베이스의 상태를 변화시키기 위해 수행하는 작업단위. (DB에 쿼리문을 통해서 CRUD를 하는 행위)작업단위 :  여기서 작업단위는 작업단위의 세부 작업들을 묶음 정의하기 나름임, Spring에서 @Transacitional으로 표기한다. 트랜잭션의 필요성데이터 일관성 문제: 여러 작업이 하나의 트랜잭션으로 묶이지 않으면, 일부 작업만 완료되고 다른 작업은 실패할 수 있습니다. 이는 데이터의 일관성을 해칠 수 있습니다.데이터 무결성 문제: 트랜잭션 없이 수행된 작업은 롤백이 불가능합니다. 이는 애플리케이션의 데이터 무결성을 보장하는 데 큰 문제가 될 수 있습니다.동시성 문제: 트랜잭션은 동시에 접근하는 여러 트랜잭션 간의 충돌을 방지하고, 격리 수준을 통해 데이터의 일관성을..
Spring Persistence (JPA, JDBC, Entity, Repository) Persistence Framework데이터영속성(Persistence)이란 프로그램이 꺼져도 데이터는 사라지지 않는 것, 즉, 영구저장 DB를 사용하는 데이터를 말함. DB를 다루기 위해 필요한 프레임워크를 Persistence Framework라고 한다.  Persistence Framework를 사용하면, DB관련되어 개발자가 공통적으로 작성하는 코드를 대신하여 동작시켜주어, 코드 재사용 및 유지보수에 용이하며 코드가 직관적이다. 1. DB연결 : MongoDB, Reddis, Mysql 등에 맞는 코드를 Framework가 대신 동작하여 DB에 종속적이지 않도록 해준다2. DB와의 연결상태에 따른 코드를 Framework가 대신 동작하여 DB의 연결에 대한 관리를 대신해줌- DB와 최초 연결시 D..
데이터 관계와 모델링, ERD작성 데이터 모델링비즈니스를  추상화, 단순화, 명확화 표기하기 위해서 분석하고 데이터화 시키는 것, 정보시스템을 구축하는 과정에서 계획.분석.설계 단계에서 업무를 분석하고 설계할 때 또한, 이후 구축.운영 단계에서 변경과 관리할 때 사용됨. 데이터 모델링표기기법1. 피터첸 : 엔터티를 사각형, 엔터티간 관계를 마름모, 엔터티의 속성을 타원형 으로 표현.2. I/E Crow's Foot (까마귀발) :  데이터 모델링 개념엔터티 -객체, 실체, 사람, 장소, 물건, 사건, 개념 등의 명사에 해당.예를 들어,"학생” 이라는 엔터티는 학번, 이름, 학점, 등록일, 생일, 주소, 전화번호 등의 속성으로 특징지을 수 있음속성 -  업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더이상 분리되지 않는 최소의 ..
SQL문 정리 SQL문SQL : DBMS와 대화하기위한 특수목적의 언어로 데이터 그 자체 혹은 데이터를 관리하는 계정, 인스턴스를 관리한다SQL은 1. 데이터정의어 (초기화) 2. 데이터 조작어 (활용) 3. 데이터 제어(권한부여)어로 이루어져있다. SQL문 Keyword 정리-- or # : comment out"" : quotation for identifier'' :  quotation for string literal in sql% : like 연산자로 모든 단어를 지칭한다. (a% : a로 시작하는 모든 단어, %a% : a를 포함하는 모든단어)_ : like 연산자로 한글자를 지칭한다 (a_ : a로 시작하는 모든 두글자)LIKE IN , NOT LIKE 등으로 응용가능1. 데이터 정의어(DDL: Data ..
데이터베이스 환경구축 (Maria DB 초기설정, JDBC사용,JPA설정) 데이터베이스왜 사용하는가?데이터는 엑셀이나 파일시스템으로도 관리할 수 있지만, 1. 데이터의 동시성(웹의 특성상 복수의 사용자가 데이터를 저장하는 일이 발생)으로 인한 보안문제나 데이터 안정성의 문제도 있을 것임. 2. 데이터의 종속성(응용프로그램에 따라서 데이터가 변해야함), 3. 데이터의 중복성(동일한 데이터가 다른 위치의 여러파일에 존재하여 공간낭비가능)의 단점으로 데이터베이스의 도입이 필요하다.데이터베이스는 파일시스템과 같이 물리적 위치에 따라 참조하는 것이 아니라 데이터 값을 사용하여 조건을 제시하면 이에 해당하는 데이터를 찾을 수있다데이터베이스관리시스템DBMS : 데이터베이스를 운영하고 관리하는 소프트웨어정형화된 데이터를 관리하는 RDBMS, 비정형 데이터를 관리하는 NoSQL이 존재한다.오라..