전체 글 44

Join의 종류와 수행원리(1)

- JOIN의 종류Inner Join, Outer Join, Cross Join, Natural Join 외에도Nested Loop Join, Sort Merge Join, Hash Join이 있다. 우선 Join은 2개 이상의 테이블에서 조건에 맞는 데이터를 추출하기 위해 사용하는 쿼리문을 의미한다. 1. Inner Join2개 이상의 테이블에서 교집합만을 추출한다. 2. Left Outer Join2개 이상의 테이블에서 FROM문에 해당하는 부분을 추출한다. 보통 RIGHT JOIN보다 LEFT JOIN을 주로 사용한다. 3. Right Outer Join 2개 이상의 테이블에서 FROM문의 테이블과 JOIN하는 테이블에 해당하는 부분을 추출한다. 4. Cross Join한 쪽 테이블의 모든 행과 다..

DB 공부 2025.01.06

JOIN 종류와 수행 원리(2)

- JOIN의 종류Inner Join, Outer Join, Cross Join, Natural Join 외에도Nested Loop Join, Sort Merge Join, Hash Join이 있다. 1. Nested Loop Join- 중첩 for문과 같은 원리이다.ex) IDOL_GROUP, IDOL_MEMBER 테이블을 조인시키려 하고, 조인을 할 수 있는 연결고리는 GROUP_NAME이라고 할 때, 소녀시대 데이터(IDOL_GROUP) 데이터가 멤버 테이블(IDOL_MEMBER) 테이블로 가서 멤버들을 찾는다.IDOL_GROUP : Outer TableIDOL_MEMBER : Inner Table 이 되는 것이다. * 유의해야 할 점 : Inner Table에서 Join 컬럼이 인덱스에 걸려 있지..

DB 공부 2025.01.06

오라클 파티션 인덱스

파티션 테이블에 인덱스를 생성하게 될 때 인덱스에도 타입이 나눠지게 됨.로컬 파티션 인덱스, 비파티션 인덱스, 글로벌 파티션 인덱스가 있음.이 중 로컬 파티션 인덱스를 많이 사용함. - 로컬 파티션 인덱스 : 테이블 파티션 키 컬럼 기준으로 똑같이 인덱스가 구성되는 것.테이블의 파티션 구조가 바뀐다거나 파티션이 삭제가 된다거나 했을 때도 인덱스 재생성이 필요없이 Oracle에서 알아서 관리해주기 때문에 운영에 용이함.ex) 테이블의 파티션이 5개라고 했을 때, 인덱스도 똑같이 5개. 나뉘어지는 기준도 테이블과 동일함. - 비파티션 인덱스 : 테이블은 파티션으로 나뉘어져 있지만 인덱스는 통짜로 하나로 관리함. - 글로벌 파티션 인덱스 : 파티션으로 인덱스가 나뉘어져 있지만 테이블의 파티션과는 따로 논다. ..

DB 공부 2024.11.27

문자열 관련 함수들

Oracle1. LOWER(문자열) / UPPER(문자열) / INITCAP(문자열)LOWER : 문자열을 모두 소문자로 변환하여 반환한다.UPPER : 문자열을 모두 대문자로 변환하여 반환한다.INITCAP : 문자열의 첫 번째 문자는 대문자, 나머지는 소문자로 변환하여 반환한다.SELECT LOWER('hello ORACLE!') AS LOWER, UPPER('hello ORACLE!') AS UPPER, INITCAP('hello ORACLE!') AS INITCAPFROM test;LOWERUPPERINITCAPhello oracle!HELLO ORACLE!Hello Oracle! 2. LENGTH(문자열)SELECT LENGTH('Hello Oracle') AS LENGTHFROM tes..

DB 공부 2024.08.28

null 값 처리 함수들 특징

Oracle1. NVL(A, B)입력 값 A가 NULL일 경우 B로 대체하여 반환한다. 입력 값 A가 NULL이 아닐 경우에는 A 반환 2. NVL2(A, B, C)입력값 A가 NULL이 아니면 B, NULL이면 C로 변환하여 반환한다.  3. COALESCE(A, B, C, ...)A가 NULL이면 B, B도 NULL이면 C와 같이 변환하여 반환한다. ( NULL이 아닌 첫 번째 인자의 값을 반환한다는 뜻. 모든 인자가 NULL이면 NULL 반환)COALESCE 함수는 NVL 함수보다 확장된 개념으로 여러 개의 컬럼의 NULL 값 여부를 판별하면서 값을 변환할 때 사용함. 4. NULLIF(A, B)입력값 A가 B와 같으면 NULL로 변환하여 반환한다. 같지 않으면 A 반환  5. LNNVL(조건식)-..

DB 공부 2024.08.27

Oracle vs PostgreSQL

Oracle의 특징대규모 데이터베이스를 지원한다. MSSQL, MYSQL보다 대량의 정보관리를 할 때에 가장 좋은 성능을 보인다.(고가의 HW를 효율적으로 활용할 수 있도록 영역 사용을 완벽하게 제어한다. )고성능 트랜잭션 처리를 제공하여 속도가 빠르다.SQL문을 실행하는 가장 효율적인 방법을 선택한다.Oracle 서버가 운영되려면 인스턴스가 메모리에 할당되어야 하며, 이를 위해서는 파라미터 파일이 필요하다.다중 동시 데이터 베이스 사용자를 지원한다.여러 사용자가 동일한 데이터에서 작동하는 다양한 데이터베이스 응용 프로그램을 실행하도록 지원하여 데이터 경합을 최소화하고 데이터 동시성을 보장데이터 경합(row level locking) : 데이터 경쟁, 한 사용자가 데이터를 변경하려고 접근할 때 데이터에 ..

DB 공부 2024.08.26

오라클 쿼리 힌트

힌트(Hint) : dbms에게 SQL의 최적화를 위해 힌트를 주는 것. 데이터베이스관리자나 개발자가 오라클 내부 Optimizer가 선택한 explain plan(실행 계획)을 인위적으로 조정할 수 있는 방법. Oracle 힌트란/* */로 둘러싸여 있음. 단순 주석이 아닌 힌트로 특정 실행계획을 변경하는 지시어힌트 작동 방식은 SQL 쿼리를 처리할 때 비용 기반 최적화를 수행함. 비용을 계산해 가장 효율적인 실행 계획을 결정함. Oracle 힌트 사용법힌트는 오라클 Optimizer에게 힌트를 준다고 생각해도 무방함. 사용하는 방법은 /* + */ 안에 지정하는 형태임.만약 /*+ordered*/ 라고 했다면 테이블이 조인되는 순서를 정하는 효과가 난다. from절에 테이블 순서대로 조인하라는 의미이..

DB 공부 2024.08.26

5과목 정보시스템 구축 관리

1. 소프트웨어 생명주기폭포수 모형 (Water fall)- 고전적 생명 주기 모형- 선형- 순차적 모형- 한 번 지나간 과정을 다시 보기 어려움. 나선형 모형(Spiral)- 리스크 최소화(위험 관리 중심)- 나선형- [계획수립-위험분석-개발 및 검증-고객 평가] 과정을 여러번 반복- 어차피 계속 반복하기 때문에 지나간 과정 다시 보기 좋음. 폭포수 모형 vs 나선형 모형- 폭포수 모형 : 고전적, 전통적- 나선형 모형 : 과정반복, 리스크 최소화 방화벽 종류- IDS : 침입 탐지 시스템- VPN : 가상 사설 통신망(네트워크 암호화)+ ZIGBEE : 저전력 라디오 이용한 개인 통신망 2. 비용 산정 모델LoC(Lines of Code) : 원시적 라인수의 낙관치, 중간치, 비관치를 측정해 예측치를..

데크(Deque)

1. 정의데크(Deque) : Double-ended-queue의 줄임말스택은 나중에 들어온 것이 먼저 나가는 LIFO, 큐는 먼저 들어온 것이 먼저 나가는 FIFO의 형태.데크는 양쪽 모두에서 삽입, 삭제 연산을 할 수 있음. 2. 특징- 양쪽 끝에서 빠른 연산 : deque는 양쪽 끝에서 O(1) 시간 복잡도로 삽입 및 삭제가 가능함. 반면, 리스트는 왼쪽 끝에서의 삽입 및 삭제가 O(n) 시간이 걸릴 수 있음.- 선형 자료구조 : 데이터를 순차적으로 저장함. 2. 데크 구현하기맨 앞에서 삽입과 삭제 연산이 일어나야 하고, 맨 뒤에서도 삽입과 삭제 연산이 일어나야 하므로 스택, 큐는 삽입과 삭제 연산을 한 번씩 구현하지만,데크에서는 삽입과 삭제 연산을 각각 두 번 구현해야 함.deque의 주요 메서드..

알고리즘 공부 2024.08.14

N과 M (2)

문제자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열고른 수열은 오름차순이어야 한다.입력첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다. [풀이]N과 M (1) 에서는 순열이었고, 이 문제는 조합이다.그래서 (2)에서는 N과 M (1) 코드에서 오름차순 후 같은 것을 제거하는 과정을 거쳐야 한다. ex) N과 M (1)입력이 아래와 같을 때4 2 출력으로 이렇게 나오게 된다.1 2..

알고리즘 공부 2024.08.14