반응형

STUDY/IT 14

BigDecimal 함수 사용법

Java에서 Double타입으로 계산을 하면 계산 차이에 따른 오류가 발생하기 때문에 금액이나 소수점 이하 계산은 BigDecimal이 필수적으로 사용해야 합니다. BigDecimal 많이 사용하는 함수 및 사용예시는 아래와 같이. 1. 기본 상수 많이 사용하는 0,1,10은 기본상수로 제공합니다. // 0 BigDecimal.ZERO // 1 BigDecimal.ONE // 10 BigDecimal.TEN 2. BigDecimal 초기화 2가지 방법이 있는데 개인적으로는 아래 방법을 주로 사용합니다. // 0.1 new BigDecimal("0.1"); // 0.1 BigDecimal.valueOf(0.1); 3. 비교 연산 == 연산은 오류가 발생하며 equals 는 소수점 아래자리 까지 같아야 tr..

STUDY/IT 2022.03.08

ORACLE Window function 함수 (rank, dense_rank, row_number...)

Oracle에서는 다른 DBMS와 같이 Window Function이 있음(분석 함수라고도 불림) Inline view를 이용해 작성해야 하는 행간 비교, 연산등이 해당 함수로 편하게 구현 가능함. 1. RANK - 특정 칼럼에 대한 순위를 구하는 함수. PARTITION 을 사용하여 특정 범위 내에 순위를 구할 수 있음 SELECT JOB, ENAME, RANK() OVER (ORDER BY SAL DESC) ALL_RANK, -- 전체 EMP에 대한 연봉 순위 RANK() OVER (PARTITION BY JOB ODER BY SAL DESC) JOB_RANK -- 각 JOB별 EMP에 대한 연봉 순위 FROM EMP; 2. DENSE_RANK - RANK와 다르게 동일 등수를 하나의 등수로 취급 e..

STUDY/IT 2021.05.24

오라클 테이블 변경(ORACLE, ALTER/DROP/TRUNCATE TABLE)

기존에 생성된 테이블에 대해 변경하고자 할때는 ALTER TABLE 명령어를 사용한다. 1. 컬럼 추가/삭제/변경 -- 컬럼 추가 ALTER TABLE [테이블명] ADD [컬럼명] DATATYPE; -- 컬럼 삭제 ALTER TABLE [테이블명] DROP COLUMN [컬럼명]; -- 컬럼 변경 ALTER TABLE [테이블명] MODIFY ([컬럼명] DATATYPE [DEFAULT 형식] [제약조건]; - 컬럼을 추가하면 항상 제일 뒤로 컬럼이 들어감 - 컬럼변경시에는 기존 컬럼에 데이터가 있으면 데이터에 따라 변경이 불가할 수 있음(ex. 데이터 길이 축소) 2. 제약조건 추가/삭제 -- 제약조건 추가 ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건] ([칼..

STUDY/IT 2021.05.13

오라클 테이블 생성 (Oracle, CREATE TABLE)

테이블 생성 구문은 아래와 같음 CREATE TABLE [테이블명] ( [칼럼명 1] DATATYPE [DEFAULT 형식] [칼럼명 2] DATATYPE [DEFAULT 형식] . . . ) DATATYPE은 CHAR(size), VARCHAR2(size), DATE, TIMESTAMP, NUMBER 등을 입력 하면 된다 VARCHAR2(size [BYTE | CHAR]) NVARCHAR2(size) NUMBER[(precision [, scale]]) LONG DATE BINARY_FLOAT BINARY_DOUBLE RAW(size) LONG RAW ROWID CHAR [(size [BYTE | CHAR])] NCHAR[(size)] CLOB NCLOB BLOB BFILE TIMESTAMP [(fra..

STUDY/IT 2021.05.13

[SQLD] 데이터 모델과 성능

- 성능 데이터 모델링 고려사항 a. 데이터 모델링을 할 때 정규화를 정확하게 수행 b. 데이터 베이스 용량 산정을 수행 c. 데이터 베이스에 발생되는 트랜젝션의 유형 파악 d. 용량과 트랜젝션 유형에 따라 반정규화 수행 e. 이력모델의 조정. PK/FK 조정, 슈퍼타입/서브타입 조정 수행 f. 성능관점에서 데이터 모델 검증 - 반정규화 성능 저하 사례 1 : 2차 정규화를 통해 비효율이 발생하는 경우는 없을 수 있다 - 반정규화 성능 저하 사례 2 : 드라이빙 테이블에 대한 정규화 처리 - 반정규화 성능 저하 사례 3 : 중복속성코드 컬럼에 대해 자식 테이블로 별도 생성 - 함수적 종속성에 근거한 정규화 수행 - 반정규화 : 성능을 향상시키기 위해서 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수..

STUDY/IT 2021.05.13

[SQLD] 데이터 모델링의 이해 2

- 엔티티의 개념 : 실체, 객체, 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 - 엔터티의 특징 a. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보 b. 유일 식별자에 의해 식별 가능해야 함 c. 영속적으로 존재하는 인스턴스의 집합 d. 엔터티는 업무 프로세스에 의해 이용되어야 함 e. 엔터티는 반드시 속성이 있어야 함 f. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함 - 엔터티의 분류 a. 유무형에 따른 분류 : 유형엔터티, 개념엔터티, 사건엔터티 b. 발생시점에 따른 분류 : 기본엔터티, 중심엔터티, 행위엔터티 - 속성의 정의 : 업무에서 필요로 함, 더이상 의미가 분리되지 않음, 엔터티를 설명하고 인스턴스의 구성요소가 됨 - 엔터티, 인스턴스, 속성, 속..

STUDY/IT 2021.05.11

[SQLD] 데이터 모델링의 이해 1

I. 데이터 모델링의 이해 1. 모델링의 이해 - 모델링 : 가설적 또는 일정양식에 맞춘 표현, 복잡한 현실세계를 단순화 시켜 표현, 사물이나 사건에 대한 양상이나 관점을 명확하게 하는 것, 현실세계의 추상화된 반영 - 모델링의 특징 a. 추상화 : 현실세계를 일정한 양식에 맞추어 표현 b. 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현 c. 명확화 : 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술 - 모델링의 세가지 관점 : 데이터 관점, 프로세스 관점, 데이터와 프로세스 상관관점 - 데이터 모델링이란? a. 정보시스템을 구축하기 위한 데티어 관점의 업무 분석 기법 b. 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정 c. 데이터베이스를 구축하기 위..

STUDY/IT 2021.05.10

Conda 명령어 모음

conda search - 설치된 패키지 조회 ex. conda search python conda env list - 가상환경 목록 확인 conda create - 가상환경 생성, 기존 환경에서 가져오는 것도 가능 ex. conda create -n testproject python=3.8 ex2. conda create -f testproject.yaml conda env remove - 가상환경 삭제 ex. conda env remove -n testproject conda activate - 가상환경 활성화 ex. conda activate testproject conda deactivate - 가상환경 비활성화 conda env export - 가상환경 내보내기 ex. conda env expo..

STUDY/IT 2020.06.30

DBeaver 설치 및 사용

DB 클라이언트 프로그램이 많은데 저는 DBeaver 를 사용합니다. Community Edition은 free license 이고 기능도 나쁘지 않고 Oracle, Mysql, MariaDB 다 지원해서 DB를 이것저것 쓰면 편해서 주로 사용합니다. 다운로드는 아래에서 https://dbeaver.io/download/ 왼쪽에 Community Edition아래 본인 OS에 맞게 설치파일 다운로드 해서 설치 진행하시고 jre 포함 설치 버전 받았으면 jre 체크 해제 하지 마시고요 :) 실행하시면 아래와 같은 화면이 나오고 좌상단에 접속 버튼 클릭하면 이렇게 여러 DBMS에 접속할 수 있네요 Oracle 같은 경우 jdbc 없는 경우가 많은데 https://www.oracle.com/technetwor..

STUDY/IT 2019.04.15

리눅스 vi 에디터 명령어 모음

리눅스에서 vi 에디터를 참 많이 사용하긴 하는데 사용할때마다 항상 명령어가 헷갈립니다. 자주 쓰는 명령어를 정리해 봅니다. 명령어는 대소문자를 구별하니 잘 확인하고 사용해야 합니다! ■ 커서 이동 h - 왼쪽으로 이동 l - 오른쪽으로 이동 j - 아래로 이동 k - 위로 이동 0(숫자 0) - 현재 행의 시작 위치로 이동 $ - 현재 행의 끝 위치로 이동 H - 화면의 왼쪽 상단(화면에서 첫 행)으로 이동 L - 화면의 왼쪽 하단(화면에서 마지막 행)으로 이동 ■ 텍스트 추가 a - 커서 위치의 오른쪽에서 텍스트 입력 A - 현재 행의 끝에서 텍스트 입력 i - 커서 위치의 왼쪽에서 텍스트 입력 I - 현재 행의 시작에서 텍스트 입력 ■ 텍스트 붙여넣기 P - 복사된 텍스트를 커서의 왼쪽에 붙여넣기...

STUDY/IT 2017.09.28