본문 바로가기

분류 전체보기81

데이터베이스 JOIN 데이터베이스 JOIN이란 둘 이상의 테이블을 연결해서 테이블을 검색하는 방법 두 릴레이션으로부터 관련된 튜플들을 결합하여 하나의 튜플로 만드는 가장 대표적인 데이터 연결 방법이다. jOIN의 종류는 INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN이 있다. 다음의 두 테이블을 예시로 조인에 대해 알아보겠다. INNER JOIN INNER JOIN은 위의 그림처럼 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인 방식으로, 공통 존재 컬럼의 값이 같은 경우를 추출하는 것을 말한다. 가장 일반적인 조인으로, 조인 사용시 명령어로 INNER JOIN 대신 JOIN 만을 입력해도 INNER JOIN이 사용된다. 기본적으로 SQL문은 다음의 형태를 띈다. SELECT A.컬럼.. 2023. 3. 26.
데이터베이스 인덱스 인덱스의 정의 데이터베이스 인덱스란 데이터 베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 하는 것이다. 테이블의 특정 컬럼에 대해 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 (key, value)의 쌍의 형태로 저장된다. 장점 테이블 검색 속도, 성능이 향상 되어 이에 따른 전반적인 부하를 줄일 수 있다. 인덱스에 의해 데이터들이 정렬된 형태를 가진다. ( = join, order by가 많은 경우 유리하다) 기존에는 where문으로 테이블의 전체를 조회하는 Full Table Scan 작업이 필.. 2023. 3. 25.
데이터베이스 정규화 데이터베이스 정규화란 데이터베이스의 설계를 재구성하는 테크닉이며, 기본적으로 테이블 간에 중복된 데이터 허용하지 않는다는 것을 목표로 한다. 정규화에는 아래와 같은 3가지 원칙이 있다. 정보의 무손실 : 분해된 릴레이션이 표현하는 정보는 분해되기 전의 정보를 모두 포함해야 한다. 최소 데이터 중복 : 이상 현상을 제거, 데이터 중복을 최소화 분리의 원칙 : 하나의 독립된 관계성은 하나의 독립된 릴레이션으로 분리해서 표현 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, 불필요한 데이터가 삭제되어 데이터베이스의 저장 용량 역시 줄일 수 있다는 장점이 있다. 이상(Anomaly)의 종류 삽입 이상(Insertion Anomaly) : 릴레이션에 데이터를 삽입할 때 의도와 상.. 2023. 3. 25.
RDBMS과 NoSQL RDBMS RDBMS는 Relational DataBase Management System의 약자로, 관계형 데이터베이스 관리 시스템을 말한다. 즉 Relational DataBase를 관리하는 시스템이라는 뜻인데, Relational DataBase는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스이다. 다음 그림과 같이 각 테이블들이 다른 테이블과 관계를 맺고 집합체로서 모여있는 것이 RDBMS이다. 관계를 나타내기 위해 외래 키를 사용하고, 그 키를 이용하여 테이블 간 Join이 가능하다는 특징이 있다. 장점 SQL이라는 구조화 된 질의를 통해 데이터를 다룰 수 있다. 작업의 안정성을 보장한다. 데이터의 UPDATE가 빠르다. 데이터의 중복을 방지할 수 있.. 2023. 3. 25.
Database key 데이터베이스 상에서 Key란, 데이터베이스에서 조건을 만족하는 Tuple을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 Attribute를 말한다. 유일성과 최소성 key의 종류에 대해 알아보기 전에, 유일성과 최소성의 개념에 대해 먼저 알아보도록 하자. 유일성 : 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질 최소성 : 키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질 예를 들어 (주민번호, 나이, 사는 곳, 혈액형) 의 속성으로 구성된 릴레이션이 있다고 하자. 이 때 나이, 사는 곳, 혈액형은 튜플끼리 중복될 수 있는 속성이지만 주민번호는 중복될 수 없는 속성이다. 이 릴레이션의 주민번호처럼, 각각의 튜플을 구분지을 수 있게 하는 속성을 유일성.. 2023. 3. 23.
Spring batch에서의 Step, Tasklet, Chunk Step은 Job을 구성하는 하나의 단계로서, 실제 배치 처리를 정의하고 컨트롤하는 데 필요한 정보를 가지고 있는 객체이다. Job은 Steps라는 리스트 변수를 통해 여러 개의 Step을 담고, 각각의 Step들을 execute하여 실행시킨다. 또한 Step은 내부적으로 Tasklet이라는 속성을 가지고 있어 수행 중에 자신의 tasklet들을 execute한다. Tasklet은 ItemReader, ItemProcessor, ItemWriter와 같은 chunk 기반의 클래스들을 포함하고 있다. Chunk 여러 개의 아이템을 묶은 하나의 덩어리, 블록을 의미한다. 한번에 하나씩 아이템을 입력 받아 Chunk 단위로 트랜잭션(commit, rollback)을 처리한다. Item 하나를 읽고 또다른 It.. 2023. 3. 21.