
14강 반복문 의존증 SQL에는 반복문이 없다. - 일부러 반복문을 언어 설계에서 제외한 것, 처음부터 '반복문을 제외'하고 만들어진 언어 관계 조작은 관계 전체를 모두 조작의 대상으로 삼는다. 이러한 것의 목적은 반복을 제외하는 것이다. 최종 사용자의 생산성을 생각하면 이러한 조건을 만족해야 한다. 그래야만 응용 프로그래머의 생산성에도 기여할 수 있을 것이다. 1. 내부적으로는 반복문 사용 반복문이 없어 당황하는 사용자들은 일단 하나의 레코드마다 작은 SQL을 사용해 접근하고, 비즈니스 로직은 호스트 언어(절차형 언어)에서 반복 처리를 구현하는 것이 일반적 15강 반복계의 공포 1. 반복계의 단점 '성능' 같은 기능을 구현한다고 가정하면, 반복계로 구현한 코드는 포장계로 구현한 코드에 성능적으로 이길 ..
8강 UNION을 사용한 쓸데없이 긴 표현 1, 정확한 판단 없는 UNION 사용 회피 SELECT item_name, year, price_tax_ex AS price FROM Items WHERE year = 2002; UNION 을 사용했을 때 -쓸데 없이 긴 SQL문, Items 테이블에 2회 접근 + 그때마다 TABLE ACCESS FULL 발생 -> 쓸데없는 테이블 접근을 발생시키며 SQL의 성능을 나쁘게 만듦 2. WHERE 구에서 조건 분기 "조건 분기를 WHERE 구로 하는 사람들은 초보자다. 잘 하는 사람은 SELECT 구만으로 조건 분기를 한다." 3. SELECT 구문에서 CASE 식을 사용한 조건분기 SELECT item_name, year, CASE WHEN year = 2002..

DBMS 아키텍쳐 개요 1. 쿼리 평가 엔진 사용자로부터 입력받은 SQL 구문을 분석하고, 어떤 순서로 기억장치의 데이터에 접근할지를 결정 계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈 • 실행계획: 결정되는 계획 • 접근 메서드: 실행 계획에 기반을 둬서 데이터에 접근하는 방법 2. 버퍼 매니저 DBMS는 버퍼라는 특별한 용도로 사용하는 메모리 영역을 확보해두는데, 이 때 메모리 영역을 관리하는 것이 버퍼 매니저 3. 디스크 용량 매니저 데이터베이스는 데이터를 영구적으로 저장해야 하므로, 어디에 어떻게 데이터를 저장할지를 관리하며 데이터의 읽고 쓰기를 제어 4. 트랜잭션 매니저와 락 매니저 수많은 사람들이 동시에 데이터베이스에 접근해서 사용하므로, 트랜잭션의 정합성을 유지하면서 실행시키고..
3장 SQL 최적화 기본 원리 1절옵티마이저와 실행계획 1. 옵티마이저: SQL문에 대한 최적의 실행방법을 결정하여 실행 계획 도출, SQL문에 대한 파싱 후 실행됨, 내비게이션 %SQL문 실행 순서 파싱: SQL문법 검사 및 구문 분석 작업 실행: 옵티마이저의 실행 계획에 따라 인출: 데이터를 읽어 전송 옵티마이저 엔진 -질의 변환기: 작성된 SQL문을 처리하기 용이한 형태로 변환하는 모듈 -비용 예측기: 생성된 계획의 비용을 예측하는 모듈 -대안계획 생성기: 동일한 결과를 생성하는 다양한 대안 계획을 생성하는 모듈, 1) 연산 적용 순서 2) 연산 방법 3) 조인 순서의 변경을 통해 대안 계획 생성 종류 -규칙기반 옵티마이저: 우선순위 규칙에 따라 실행계획 생성, 인덱스가 있으면 반드 시 인덱스 사용..
6절 함수 1. 단일 행 함수: 1) SELECT 절 2)WHERE 절 3)ORDER BY 절에 사용 가능, 각 행에 개별적으로 작용, 여러 인자를 입력해도 단 하나의 결과만 출력 A. 문자형 함수: 문자열 입력 시 문자열이나 숫자 반환 i. LOWER, UPPER, LENGTH ii. CONCAT: 문자열 결합 iii. SUBSTR: 문자열 부분 추출 iv. LTRIM, RTRIM, TRIM: 왼쪽 공백 제거, 오른쪽 공백 제거, 양쪽 공백 제거 v. ASCII : 아스키 코드값 출력 B. 숫자형 함수 i. ABS, SIGN : 절대값, 부호 (1,0,-1 중 출력) ii. MOD: 나머지, 연산자 ‘%’로 대체 가능함 iii. ROUND, CEIL, FLOOR: 반올림, 올림, 버림 (‘함수(E,N)..
2장. 데이터 모델과 성능 성능 데이터 모델링: DB 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 데이블분할, 조인구조, PK, FK 등 여러가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능저하에 따른 재업무 비용을 최소화 할 수 있음. 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 기하급수적으로 증가하게 된다. 성능 데이터 모델링 고려사항 순서 1. 데이터 모델링을 할 때 정규화를 정확하게 수행 2. DB 용량산정을 수행한다. 3. DB에 발생되는 트랜잭션의 유형을 파악한다. 4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행. 5. 이력모델의 조정, P..
데이터 모델링의 중요성 및 유의점 -중복: 같은 시간 같은 데이터 제공 -비유연성: 사소한 업무변화에 데이터 모델이 수시로 변경되면 안됨. 데이터 정의를 사용 프로세스와 분리한다. -비일관성: 데이터 간 상호 연관 관계에 대해 명확히 정의해야 한다. 1. 중복: 중복 데이터는 데이터베이스 내의 일관성과 정확성을 저해할 수 있습니다. 중복을 최소화하고 데이터의 표준화를 유지하여 데이터의 일관성을 확보해야 합니다. 2. 비유연성: 데이터 모델링은 비즈니스 프로세스의 변화에 유연하게 대응할 수 있도록 구조를 설계해야 합니다. 데이터 정의를 프로세스와 분리하여 업무 변화에 유연하게 대처할 수 있는 환경을 조성해야 합니다. 3. 비일관성: 데이터 간의 관계를 명확하게 정의하여 데이터베이스 내의 정보가 일관되고 정..
- Total
- Today
- Yesterday
- SQLD
- 비영속
- 로깅
- 자바
- 스프링 북마크
- JPA
- 스프링부트
- 지연로딩
- 영속
- 웹 MVC
- 백준
- SQL 레벨업
- 프론트엔드
- 다이나믹 프로그래밍
- 백준 파이썬
- 스프링
- 커뮤니티
- 자바 스프링
- 웹MVC
- 파이썬
- 로그아웃
- 회원탈퇴
- 스프링 커뮤니티
- EnumType.ORDINAL
- SQL
- elasticsearch
- 인텔리제이
- 북마크
- 준영속
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |