목록Certification/Sqld (28)
습관처럼
1. 내장 함수(BUILT-IN FUNCTION) 개요 함수는 다양한 기준으로 분류할 수 있는데, 벤더에서 제공하는 함수인 내장 함수(Built-in Function)와 사용자가 정의할 수 있는 함수(User Defined Function)로 나눌 수 있다. 본 절에서는 각 벤더에서 제공하는 데이터베이스를 설치하면 기본적으로 제공되는 SQL 내장 함수에 대해 설명한다. 내장 함수는 SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는데 사용된다. 내장 함수는 벤더별로 가장 큰 차이를 보이는 부분이지만, 핵심적인 기능들은 이름이나 표현법이 다르더라도 대부분의 데이터베이스가 공통적으로 제공하고 있다. 내장 함수는 다시 함수의 입력 값이 단일행 값이 입력되는 단일행 함수(Single-Row Functi..
5. WHERE 절 - 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL 문장에 WHERE 절을 이용하여 자료들에 대하여 제한 - WHERE 절에 조건이 없는 FTS(Full Table Scan) 문장은 SQL 튜닝의 1차적인 검토 대상이 된다. (FTS가 무조건 나쁜 것은 아니며 병렬 처리 등을 이용해 유용하게 사용하는 경우도 많다.) - WHERE 절의 JOIN 조건에 대해서는 1장 9절에서 설명하고 FROM 절의 JOIN에 대해서는 2장 1절에서 설명 연산자의 종류 문자 유형간의 비교 방법 연산자의 우선순위 예제 소속팀이 삼성블루윙즈이거나 전남드래곤즈에 소속된 선수들이어야 하고, 포지션이 미드필더(MF:Midfielder)이어야 한다. 키는 170 센티미터 이상이고 180 이하여야 한다. 1..
1. 트랜잭션 개요 트랜잭션이란? - 데이터베이스의 논리적 연산단위 - 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 의미한다. - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. - 트랜잭션은 분할할 수 없는 최소의 단위이다. - 따라서, 전부 적용하거나 전부 취소 / 즉, 트랜잭션은 ALL OR NOTHING 트랜잭션을 컨트롤하는 TCL (TRANSACTION CONTROL LANGUAGE) 커밋(COMMIT) : 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것 롤백(ROLLBACK) : 트랜잭션 시작 이전의 상태로 되돌리는 것 저장점(SAVEPOINT) 트랜잭션 대상이 되는 SQL UPDATE, INSERT, DELETE 등 데이터를 수정하는 DML 문. S..
DML이란? 자료들을 입력, 수정, 삭제, 조회하는 명령어 INSERT, UPDATE, DELETE, SELECT 1. INSERT INSERT문 기본 형태 ▶ INSERT INTO 테이블명 (컬럼 리스트) VALUES (컬럼 리스트에 넣을 값); ▶ INSERT INTO 테이블명 VALUES (전체 칼럼에 넣을 값); - 해당 칼럼과 입력값을 1:1 매핑하여 입력한다. - 칼럼의 데이터가 문자 유형일 경우 '(single quotation)로 입력할 값 을 입력한다. 숫자일 경우 붙이지 않는다. INSERT문 예제 1 (정의된 칼럼에 데이터 입력하기) INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_N..
1.데이터 유형 - 숫자 타입 ANSI/ISO 기준 : NUMERIC, DECIMAL, DEC, SMALLINT, INTEGER, INT, BIGINT, FLOAT, REAL, DOUBLE PRECISION SQL Server와 Sybase : 작은 정수형, 정수형, 큰 정수형, 실수형 등 + MONEY, SMALLMONEY Oracle : 숫자형 타입에 대해서 NUMBER 한 가지 숫자 타입의 데이터 유형만 지원 - 벤더에서 ANSI/ISO 표준을 사용할 때는 기능을 중심으로 구현하므로, 일반적으로 표준과 다른 용어를 사용하는 것이 허용 (ex: NUMERIC → NUMBER, WINDOW FUNCTION → ANALYTIC/RANK FUNCTION) - 테이블의 칼럼이 가지고 있는 대표적인 4가지 데..
1. 데이터베이스 (정의) 특정 기업이나 조직 또는 개인이 필요에 의해(ex: 부가가치가 발생하는) 데이터를 일정한 형태로 저장해 놓은 것. (데이터베이스 관리 소프트웨어) -> DBMS(Database Management System) ■ 데이터베이스의 발전 - 1960년대 : 플로우차트 중심의 개발 방법 - 1970년대 : 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스 같은 제품 - 1980년대 : 관계형 데이터베이스가 상용화되었으며 Oracle, Sybase, DB2와 같은 제품 - 1990년대 : 객체 관계형 데이터베이스로 Oracle, Sybase, Informix, DB2, Teradata, SQL Server ■ 관계형 데이터베이스(Relational D..
슈퍼/서브타입 모델의 성능고려 방법 가. 슈퍼/서브타입 데이터 모델(Extended ER Model)의 개요 최근 가장 많이 쓰임 이유) 업무를 구성하는 데이터를 공통과 차이점을 특징을 고려하여 효과적으로 표현할 수 있기 때문 공통의 부분 >> 슈퍼타입 공통으로부터 상속받아 다른 엔티티와 차이가 있는 속성 >> 서브타입 논리적 데이터 모델에서 이용되는 형태이며, 분석단계에서 많이 쓰이는 모델 물리적 데이터 모델로 설계시의 문제점이 나타남 이유) 적당한 노하우가 없음 결과) 1:1 타입이 되거나 All in one 타입이 되어버림 -> 성능저하 나. 슈퍼/서브타입 데이터 모델의 변환 - 성능저하의 원인 3가지 1) 트랜젝션은 항상 일괄로 처리하는데 테이블은 개별로 유지되어 Union 연산에 의..
대량 데이터발생에 따른 테이블 분할 개요 - 차선이 넓은 도로에서 정체현상? ** 테이블 분할 설계를 통한 성능 저하의 예방 1) 수평분할 : 컬럼 단위로 분할하여 I/O(Input/Output) 경감 2) 수직분할 : 로우 단위로 분할하여 I/O 경감 ** 성능저하의 원인 1) 하나의 테이블에 데이터 대량집중 : 한 테이블에 데이터가 대량으로 집중될때 테이블 구조가 너무 커져서 효율성이 떨어져 테이버를 처리할 때 디스크 I/O를 많이 유발하게 된다. 2) 하나의 테이블에 여러개의 컬럼 존재 : 이 경우 디스크의 점유량이 높아지고 데이터를 읽는 I/O량이 많아져서 성능이 저하된다. 3) 대량의 데이터가 처리되는 테이블의 경우 : SQL문장에서 데이터를 처리하기 위한 I/O의 양이 증가한다. 인덱스를 적절..