| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- SW개발자를 위한 성능좋은 SQL
- 오픽
- 서버아키텍처
- clean code
- DP
- sqld요약
- Python
- git
- 알고리즘
- 파이썬
- MFC
- SQLD이론
- 클린 코드
- sqld
- 폴링vs이벤트
- 역행자
- 게임서버개발
- 주석
- 자청
- beautifulsoup
- 클린코드
- 백준
- N-Queen
- Javascript
- 서버최적화
- BFS
- c++
- SQLD 이론
- 오픽 초보
- Backtracking
- Today
- Total
가취공부하자
** 아래 설명은 비클러스터 인덱스 기준으로 설명 SARG 란 : Predicate에서 검색 대상 및 범위를 제한할 수 있는 식 -> Predicate : where 절에 사용되는 조건식 -> 해당 열에 인덱스 사용 및 쿼리 최적화를 위한 필요 조건 Non-SARG (비 검색 인수) : 검색을 제한하지 않는 식 : 인덱스 사용이나 쿼리 최적화에 방해 요소
컬럼이 not null인데인데 ISNULL 함수를 사용하는 경우 CHECK 조건이 있는데 중복으로 다시 확인 하는 경우 PK가 있는데 DISTINCT 사용하는 경우 컬럼 LIKE 'VALUE' ==> 불필요하게 LIKE 사용 '=' 사용해야함 EXISTS (SELECT DISTINCT ~ ) --> 불필요하게 DISTINCT 함 ORDER BY에에 PK가 있는 경우 다른 컬럼을 사용할 필요 X SELECT .. GROUP BY ShipCountry Having ShipCountry IN ('USA', 'Switzerlan') 는 Having 이 아닌 Where 절에 왔어야 함. 중복 할 데이터가 없는데 UNION 사용하는 경우 -> UNION ALL 로 해주는게 좋아 옵티마이저가 수정해주긴하는데 쿼리 작..
의미에 맞게 구분해서 지정해야 한다. 조인 조건 : 조인할 때 어떤 대상이 조인될것인지 검색조건 : SELECT ,DELECT ,UPDATE 대상들을 결정짓는 대상 ** 둘이 혼재해서 쓸 때 성능이 좋아지는 경우가 있는데 기본적으로 작성할 때는 의미에 맞게 구분해서 작성하는게 맞다. **INNER JOIN 은 혼재해도 괜찮지만 ,OUTER JOIN 데이터 자체가 달라지기 때문에 주의해서 사용해야 함. --------------------------------------------------------------------------------------------------------------------------------------------- 제안 : 코드에서 임의/매개변수 쿼리의 호출 식별자 달..
서비스용 쿼리에서는 최대한 금지 pivot 목적 : group by + case 문 혹은 Pivot 명령으로 구현 row-to-cal : STRING_AGG() 등 사용 그 외 가능한T-SQL로 구현 꼭 필요할 경우, 튜닝 고려! 1) Local 2) FAST_FORWARD -> tempdb/worktable 부하 제거됨
엔터티의 종류 종류 설명 독립 엔터티 사람, 물건, 장소 등과 같이 현실세계에 존재하는 엔터티 업무중심 엔터티 Transaction이 실행되면서 발생하는 엔터티 종속 엔터티 주로 1차 정규화로 인해 관련 중심엔터티로부터 분리된 엔터티 교차 엔터티 M:M의 관계를 해소하려는 목적으로 만들어진 엔터티 - 유형과 무형에 따른 엔터티 종류 (물리적 형태의 존재 여부) 종류 설명 유형 엔터티 업무에서 도출되며 지속적으로 사용되는 엔터티 개념 엔터티 개념적으로 사용되는 엔터티, 유형 엔터티는 물리적 형태가 있지만, 개념 엔터티는 물리적 형태가 없다. 사건 엔터티 비지니스 프로세스를 실행하면서 생성되는 엔터티 - 발생 시점에 따른 엔터티 종류 종류 설명 기본 엔터티 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성..
마지막 마무리 중인데 아직 헷갈리는 부분 정리 1. 정규화 - 1차 정규화 중복 속성에 대한 분리 * 로우단위 중복제거 : 테이블의 칼럼이 원자 값(하나의 값)을 갖도록 테이블을 분해하는 것 * 컬럼단위 중복제거 : 칼럼 단위로 중복된 내용이 있는 경우 제거한다. 전 이름 좋아하는 가수 지수 블랙핑크, 에이핑크 지성 엔시티, 엔믹스 후 이름 좋아하는 가수 지수 블랙핑크 지수 에이핑크 지성 엔시티 지성 엔믹스 - 2차 정규화 1차 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것 (완전 함수 종속 : 기본키의 부분 집합이 결정자가 되어선 안된다는 것) 예를 들어 학생정보 테이블의 기본키가 '학번', '이름'일 경우 학번으로도 기본키 역할이 가능하지만 불필요한 '이름'이 추가된..
ROLE = 많은 DBMS 사용자에게 개별적으로 많은 권한을 부여하는 번거로움과 어려움을 해소하기 위해 다양한 권한을 하나의 그룹으로 묶어놓은 논리적인 권한의 그룹이다. 절차형 SQL - 분기, 반복이 가능한 모듈화 된 프로그램, DBMS에서 직접 실행됨 - 프로시저 (Procedure), 사용자 정의 함수 (User Defined Function), 트리거(Trigger) - PL/SQL, [SQL Server] T-SQL PL/SQL의 특징 - BLOCK 구조로 되어있어 각 기능별로 모듈화가 가능하다 - 변수/상수등을 선언해 SQL문장간 값을 교환한다. - IF/LOOP 등의 절차형 언어 등을 사용해 절차적 프로그램이 가능하도록 한다. - DBMS 정의 에러나 사용자 정의 에러를 정의해 사용할 수 있..
순수 관계 연산자 - SELECT(where) , PROJECT (select ) ,JOIN, DIVIDE CROSS JOIN (카타시안 곱 = Cartesian Product) - 테이블간 조인 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말한다. - NxM건의 데이터 조합이 발생한다. UNION vs UNION ALL UNION : 여러개 SQL 문의 결과에 대한 합집합으로 결과에서 중복된 모든 행은 하나의 행으로 만든다. (중복 제거) + 앞의 쿼리에 UNION ALL이 있더라도 나중에 UNION이 나오면 중복 제거 됨. UNION ALL : 여러개 SQL문의 결과에 대한 합집합으로 결과에서 중복된 행은 그대로 중복되게 결과에 포함한다. INTERSECT vs EXCETPT INTERSEC..
데이터 모델링의 결과물인 ER모델을 기반으로 관계형 DB가 구축된다. SQL(Structed Query Language) = SQL은 관계형 DB의 표준언어이다. = 구조적, 집합적, 선언적인 언어이다. SQL문의 종류 1. select : 데이터를 조회하는 명령문 2. DML(Data Manipualtion Language) : 데이터 조작(입력, 수정, 삭제)하는 명령문 ->(UPDATE, DELETE, INSERT, SELECT) 3. TCL(Transaction Control Language) : 논리적 작업 단위 (DML)에 의해 조작된 결과를 트랜잭션으로 제어하는 명령문 (Rollback, Commit) 4. DDL(Data Definition Language) : 데이터 구조를 정의(생성, ..
데이터 모델링 - 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 - 현실 세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정 데이터 모델링을 하는 이유 - 업무정보를 구성하는 정보들에 대해 일정한 표기법으로 표현함으로써 정보시스템 구축의 대상이 되는 대상을 정확하게 분석하기 위해 - 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터베이스만을 구축하기 위해 * 즉, 데이터 모델리은 데이터베이스 구축 하기 위한 용도로만 쓰이는 것이 아니라 데이터 모델링 자체로서 업무를 설명하고 분석하는 부분에서도 매우 중요한 의미를 가지고 있다. 모델링의 특징 3가지 - 추상화 : 현실세계를 일정한 형식에 맞추어 표현 - 단순화 : 복잡한 현실세계를 약속한 규약에 의해 제한된 표기법이나 언어..