일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- RabbitMQ
- 예약
- 인프라
- 리눅스
- 실비용
- 여행 #
- 경험
- ip
- 여행
- 이탈리아
- 일정
- #DB#SQLD#자격증
- 준비
- JAVA #객체지향 #프로그래밍 #언어 #IT #기초
- 계획
- IT
- JAVA #언어 #프로그래밍 #코딩 #static #정적함수 #정적변수 #클래스
- 1달살기
- 배낭여행
- 유럽여행
- 영국
- 서버
- 샐러리
- 유럽
- 메시지 큐
- 내심정
- 파이썬
- JAVA #언어 #프로그래밍 #IT #개발 #코딩
- 추억
- 겨울
- Today
- Total
목록<SW>/데이터베이스 (18)
YoonWould!!
제6절 함수(FUNCTION)1. 내장 함수(BUILT-IN FUNCTION) 개요다양한 기준으로 분류를 할수 있는데 밴더에서 제공하는 함수인 내장 함수(Built-in Function)와 사용자가 정의할 수 있는 함수(User Defined Function)로 나눌 수 있다.내장 함수는 다시 함수의 입력 값이 단일행 값이 입력되는 단일행 함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(Multi-Row Function)로 나눌 수 있다. 다중행 함수는 다시 집계 함수(Aggregate Function), 그룹 함수(Group Function), 윈도우 함수(Window Function)로 나눌 수 있다.형식: 함수명 (칼럼이나 표현식 [, Arg1, Arg2, ... ..
1. WHERE 조건절 개요데이터를 가져오기 위해서는 SELECT 절과 FROM 절만을 사용하여 기본적인 SQL 문장을 구성한다면 자신이 원하는 자료만을 검색하기 위해서 SQL 문장에 WHERE 절을 이용하여 자료들에 대하여 제한할 수 있다.현실의 데이터베이스는 많은 사용자나 프로그램들이 동시에 접속하여 다량의 트랜잭션을 발생하고 있다. WHERE 조건절을 사용하지 않고 필요 없는 많은 자료들을 데이터베이스로부터 요청하는 SQL 문장은 해당 데이터 베이스의 CPU와 메모리를 과다 사용하게 되어 성능을 저하 시키게 된다. 뿐만아니라 조건이 없는 SELECT문은 테이블을 전체(FTS) 를 읽게 되어 데이터의 양에 따라 성능을 저하 시키게 된다 (FTS가 무조건 나쁜 것은 아니며 병렬 처리 등을 이용해 유용하..
1. 트랜잭션 개요트랜잭션은 데이터베이스의 논리적 연산단위이다.밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. 트랜잭션은 분할할 수 없는 최소의 단위이다.하나의 트랜잭션은 전부 적용하거나 전부 취소한다. 즉, TRANSACTION은 ALL OR NOTHING의 개념인 것이다.은행에서의 계좌이체 상황을 연상하면 트랜잭션을 이해하는데 도움이 된다. 계좌이체는 최소한 두 가지 이상의 작업으로 이루어져 있다. 우선 자신의 계좌에서 잔액을 확인하고 이체할 금액을 인출한 다음 나머지 금액을 저장한다. 그리고 이체할 계좌를 확인하고 앞에서 인출한 금액을 더한 다음에 저장하면 계좌이체가 성공한다.계좌이체 사례STEP1. 100번 계좌의..
1. INSERT테이블에 데이터를 입력하는 방법은 두 가지 유형이 있으며 한 번에 한 건만 입력된다. ▶ INSERT INTO 테이블명 (COLUMN_LIST) VALUES (COLUMN_LIST에 넣을 VALUE_LIST); ▶ INSERT INTO 테이블명 VALUES (전체 COLUMN에 넣을 VALUE_LIST); -- 아래는 SELECT절에서 읽어온 값을 저장할때(컬럼명, 데이타 타입 동일하게) ▶ INSERT INTO 테이블명 SELECT * FROM 테이블명; 해당 칼럼명과 입력되어야 하는 값을 서로 1:1로 매핑해서 입력하면 된다. 해당 칼럼의 데이터 유형이 CHAR나 VARCHAR2 등 문자 유형일 경우 『 ' 』(SINGLE QUOTATION)로 입력할 값을 입력한다. 숫자일 경우 『 ..
1. 데이터 유형데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준특정 칼럼을 정의할 때 선언한 데이터 유형은 그 칼럼이 받아들일 수 있는 자료의 유형을 규정선언한 유형이 아닌 다른 종류의 데이터가 들어오려고 하면 데이터베이스는 에러를 발생시킴데이터 유형과 더불어 지정한 크기(SIZE)도 중요한 기능을 제공, 지정한 데이터의 크기를 넘어선 자료가 입력되는 상황에서 에러를 발생데이터 유형(숫자 타입)ANSI/ISO 기준에서는 NUMERIC Type의 하위 개념으로 NUMERIC, DECIMAL, DEC, SMALLINT, INTEGER, INT, BIGINT, FLOAT, REAL, DOUBLE PRECISIONSQL Server와 Sybase는 ANSI..
1. 데이터베이스데이터베이스는 일상적인 정보들을 모아 놓은 것 자체를 의미한다.효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DBMS(Database Management System)라고 한다.데이터베이스의 발전1960년대 : 플로우차트 중심의 개발 방법을 사용하였으며 파일 구조를 통해 데이터를 저장하고 관리하였다.1970년대 : 데이터베이스 관리 기법이 처음 태동되던 시기였으며 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스 같은 제품들이 상용화 되었다.1980년대 : 현재 대부분의 기업에서 사용되고..
1.분산 데이터베이스의 개요분산 데이터베이스란?여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스논리적으로 동일한 시스템에 속하나, 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임데이터베이스를 연결하는 빠른 네트워크환경을 이용하여 데이터베이스를 여러 지역 및 노드로 위치시켜 사용성/성능을 극대화시킨 데이터베이스2. 분산 데이터베이스의 투명성(Transparency)분산데이터베이스가 되기 위해서는 6가지 투명성을 만족해야 한다.분할 투명성(단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 사이트에 저장위치 투명성 : 사용하려는 데이터의 저장장소를 명시가 필요하지 않음. 위치정보는 System Caltalog에 유..
1. 슈퍼타입/서브타입 모델의 성능고려 방법가.슈퍼/서브타입 데이터 모델의 개요슈퍼/서브타입 모델 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있으므로, 자주 쓰이는 모델링의 방법이다.이 모델은 논리데이터 모델에서 이용되는 형태이고, 물리적인 데이터 모델을 설계하는 단계에서는 일정한 기준에 의해 변환을 해야 한다.아무런 기준없이 막연히 변환하는 것 자체가 성능 저하의 위험이 있다.나.슈퍼/서브타입 데이터 모델의 변환슈퍼/서브타입에 대한 변환을 잘못하면 성능이 저하되는 이유는 트랜잭션 특성을 고려하지 않고 테이블이 설계되었기 때문이다.1) 트랜잭션은 항상 일괄로 처리하는데 테이블은 개별로 유지되어 Union연산에 의해 성능저하 2) 트랜잭션은 항상 서브타입 개별로 ..
1. 대량 데이터발생에 따른 테이블 분할 개요대량 데이터가 발생하는 테이블의 문제점설계가 잘 되어 있는 데이터 모델이라도 대량의 데이터가 하나의 테이블에 집약되어 있고 하나의 하드웨어 공간에 저장되어 있으면 성능 저하를 피하기 힘들다.인덱스도 또한 트리가 커지고 깊이가 깊어져, 조회성능에 영향을 미치게 된다.입력/수정/삭제의 트랜잭션인 경우도 인덱스의 특성상 일량이 증가하여, 더많은 성능저하를 유발하게 된다.컬럼이 많아지게 되면 물리적인 디스크의 여러 블록에 걸쳐 데이터가 저장되게 되며, 로우 길이가 너무 길어서 로우체이닝과 로우 마이그레이션이 많아지게 되어 성능이 저하된다.2. 한 테이블에 많은 수의 칼럼을 가지고 있는 경우200개의 컬럼을 가진 도서정보 테이블이 있다고 가정하고, 하나의 로우 길이가 ..
1. 반정규화를 통한 성능향상 전략가.반정규화의 정의반정규화는 정규화된 엔티티,속성,관계를 시스템의 성능향상 및 개발과 운영의 단순화를 위해 중복,통합,분리 등을 수행하는 데이터 모델링 기법이다.디스크 I/O량이 많아서 조회시 성능이 저하되거나, 테이블끼리의 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나, 컬럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된다.업무적으로 조회에 대한 처리성능이 중요하다고 판단될때 부분적으로 반정규화를 고려하게 된다.설계단계에서 반정규화를 적용하게 되며, 반정규화 미수행시에는 다음과 같은 현상이 발생된다.성능이 저하된 데이터베이스가 생성될 수 있다.구축단계나 시험단계에서 반정규화를 적용할 때 수정에 따른 노력비용이 많이 든다.나.반정규화..