본문 바로가기

SQLD15

SQL 이론 - 2과목 1장 (5) 1. JOIN - 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력 - 일반적으로 행들은 PK나 FK 값의 연관에 의해 JOIN 성립 어떤 경우에는 PK, FK 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립가능 - 5가지 테이블을 JOIN 하기 위해서는 최소 4번의 JOIN 과정 필요 (N-1) 2. EQUI JOIN - 2개의 테이블 간에 칼럼값들이 서로 정확하게 일치하는 경우에 사용 대부분 PK, FK의 관계를 기반으로 한다 - WHERE 절에 JOIN 조건 넣기 (ANSI/ISO 방식엔 ON 절에 JOIN 넣기) - SELECT PLAYER.PLAYER_NAME FROM PLAYER 위처럼 컬럼명 SQL 앞에 테이블 명을 기술해줘야해 3. NON EQUI JOIN - 2개의 테이.. 2023. 6. 17.
SQL 이론 - 2과목 1장 (4) 1. 다중행 집계 함수 1) 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수 2) GROUP BY 절은 행들을 소그룹화 3) SELECT, HAVING, ORDER BY 절에 사용 가능 - ALL : Default 옵션. 생략 가능 - DISTINCT : 같은 값을 하나의 데이터로 간주 옵션 2. GROUP BY / HAVING 절 1) GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용 2) 집계 함수는 NULL 값을 가진 행을 제외하고 수행 3) GROUP BY 절에서는 ALIAS 사용 불가 4) 집계 함수는 WHERE 절에 올 수 X 5) HAVING 절에는 집계 함수를 이용하여 조건 표시 O 6) HAVING 절은 일반적으로 GROUP BY .. 2023. 6. 17.
SQL 이론 - 2과목 1장 (3) 1. 단일행 함수 - SELECT, WHERE, ORDER BY 절에서 사용 가능 - 행에 개별적 조작 - 여러 인자가 있어도 결과는 1개만 출력 - 함수 인자에 상수, 변수, 표현식 사용 가능 - 함수 중첩 가능 2. 문자형 함수 3. 숫자형 함수 4. 날짜형 함수 5. 단일행 변환형 함수 6. CASE 표현 7. NULL 관련 함수 ** 참고사이트 ** https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=4&mod=document&uid=342 2023. 6. 17.
SQL 이론 - 2과목 1장 (2) 1. WHERE 절 SELECT [DISTINCT/ALL] 칼럼명 [ALIAS명] FROM 테이블명 WHERE 조건식; 조건식: 칼럼(Column)명 - 비교 연산자 - 문자, 숫자, 표현식 - 비교 칼럼명 (JOIN 사용시) 2. 연산자의 종류 - 연산자 우선순위 : 1) 괄호 → 2) NOT 연산자 –→ 3) 비교연산자 / SQL 비교연산자 → AND → OR - ROWNUM (Oracle버전) : 원하는 만큼의 행을 가져올 때 사용 : 1개의 행을 가져오고 싶을 때 SELECT PLAYER_NAME FROM PLAYER WHERE ROWNUM = 1; : n개의 행을 가져오고 싶을 때 (=이 아니라 범위로 표현하기) SELECT PLAYER_NAME FROM PLAYER WHERE ROWNUM 2023. 6. 17.
SQL 이론 - 2과목 1장 (1) 1. SQL 기본 DB : 필요에 의해 데이터를 일정한 형태로 저장 DBMS : 데이터 관리, 데이터 손상 예방, 복구 SW SQL : 관계형 DB에서 사용하는 언어 - DML : SELECT, INSERT, UPDATE, DELETE - DDL : CREATE, ALTER, DROP, RENAME - DCL : GRANT, REVOKE - TCL : COMMIT, ROLLBACK 2. DDL [ 데이터 유형(DATATYPE) ] 1) CHAR(s) : 고정 길이 문자열 정보. 최대 길이 (SQL, Oracle 둘다 사용) ‘AA’ = ‘AA ’ (공백포함) 2) VARCHAR(s) : 가변 길이 문자열 정보 (SQL 경우) 할당된변수 값의 바이트만 적용 ‘AA’ ≠ ‘AA ’ (공백포함 X) Oracl.. 2023. 6. 17.
SQL 이론 - 1과목 2장 (4) 1. 대량데이터 발생 : 대량의 데이터 발생 → 많은 트래잭션 발생 → 디스크 I/0 많이 유발 → 성능저하 - 로우 체이닝 : 로우 길이가 너무 길어서 하나의 로우를 데이터 블록 하나에 데이터가 다 저장 X, 2개의 블록에 걸쳐 저장된 형태 - 로우 마이그레이션 : 데이터 블록에서 데이터 수정이 발생하면 해당 블록에서 저장하지 못하고 다른 블록의 빈 공간에 저장하는 방식 - 로우 체이닝, 로우 마이그레이션 발생 ↑하면 많은 I/O가 발생해 성능저하 - 트랜잭션을 분석하여 적절하게 1:1관계로 분리함으로써 성능향상 2. 분산 데이터 베이스 (분-위-지-중-장-병) - 여러 곳으로 분산되어있는 DB를 하나의 가상 시스템으로 사용할 수 있도록 한 DB - 분산 DB 6가지 투명성 1) 분할 투명성(단편화) .. 2023. 6. 17.
SQL 이론 - 1과목 2장 (3) 1. 반정규화 - 정규화했다가 성능땜에 다시 거꾸로 돌아가는 것 - 정규화된 엔터티, 속성, 관계에 대해 중복, 통합, 분리 등을 수행 - 조인에 의한 성능 저하를 막기 위해 수행 2. 반정규화 절차 - 반정규화 대상조사 1) 프로세스 수가 많고 일정범위 조회하는 경우 2) 대량의 데이터 범위를 처리하는 경우 3) 통계성 정보를 필요한 경우 4) 테이블 조인 많아져서 조회작업 어려운 경우 - 다른 방법유도 검토 1) VIEW 사용 : 많은 조인이 걸려 데이터 조회 작업이 어려울 경우 VIEW를 사용하면 해결할 수도 있다 (VIEW 자체가 성능향상X) 2) 클러스터링 : 대량의 데이터처리로 성능이 저하되는 경우 클러스터링 적용 or 인덱스 조정 (조회가 대부분일 때 클러스터링 적용) 3) 파티셔닝 : 대량.. 2023. 6. 17.
SQL 이론 - 1과목 2장 (2) 1. 정규화 - 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치 - 테이블 데이터 용량 최소화 - 1차 정규화 : 같은 내용 중복일 때 중복제거 - 2차 정규화 : 함수종속 관계일 때 테이블 분리 - 3차 정규화 : PK가 아닌 일반 컬럼에 의존하는 컬럼 분리 (일반속성끼리 종속) * 칼럼 = 열, 로우 = 행 * 정규형 = 정규화를 완료한 상태 - 1NF (제 1정규형) : 모든값이 원자값 (더이상 쪼개지지 않는 값) - 2NF (제 2정규형) : 부분함수 종속 제거 (PK가 2개 이상일 때) - 3NF (제 3정규형) : 이행함수 종속 제거 2.정규화의 성능 - 정규화는 입력/수정/삭제의 성능 향상 - 반정규화는 조회의 성능 향상 - 그러나 정규화로 조회 성능이 향상되는 경우 O.. 2023. 6. 17.
SQL 이론 - 1과목 2장 (1) 1. 성능 데이터 모델링의 정의 - 성능 데이터 모델링 : DB 성능향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능을 고려하여 모델링 : 성능 데이터 모델링 단계는 위그림과 같이 [분석/설계 – 구현 – 테스트 – 운영] : 중간단계가 아닌 맨 처음 분석/설계 단계에서 성능을 고려해 모델링해야 재업무 비용 최소화 : 데이터의 증가 빠르면 성능개선비용 증가 - 성능 데이터 모델링 고려사항 ① 정규화 정확하게 수행 ② DB 용량산정 ③ DB에 따라 트랜잭션 유형 파악 ④ 용량, 트랜잭션의 유형에 따라 반정규화 수행 ⑤ 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브 타입 조정 등을 수행 ⑥ 데이터 모델 성능 검증 ** 참고사이트 ** https://dataonair.or.kr/db-tech-refe.. 2023. 6. 16.
SQL 이론 - 1과목 1장 (5) 1. 식별자(Identifiers) 개념 - 엔터티 내에서 인스턴스를 구분하는 구분자 - 하나의 엔터티에 하나의 유일한 식별자가 존재 - 식별자: 업무적으로 구분이 되는 정보, 논리적 데이터 모델링 단계에서 사용 - 키: 데이터베이스 테이블에 접근을 위한 매개체, 물리 데이터 모델링 단계에서 사용 2. 식별자의 특징 (최-불-유-존) - 최소성: 속성의 수는 유일성 만족하는 최소의 수 예) 사원번호도 있고 이미 고유한데 사원 분류 코드까지하면 부적절 - 불변성: 주식별자 값 자주 변하지 않음 예) 사원번호 변하면 이전기록 말소하 고 새롭게 만든다 - 유일성: 모든 인스턴스들이 유일하게 구분됨 예) 사원번호 개인별로 모두 부여 - 존재성: 주식별자가 지정이 되면 반드시 값 존재 예) 사원번호 없는 직원은 .. 2023. 6. 16.