전체 글
[SQLD]Ⅱ- 1장 SQL 기본 - 5절 WHERE 절
1. WHERE절 WHERE 절은 FROM 절 다음에 위치하며, 조건식은 아래 내용으로 구성된다. 칼럼(Column) 명 (보통 조건식의 좌측의 위치) 비교 연산자 문자, 숫자, 표현식(보통 조건식의 우측에 위치) 비교 칼럼명(JOIN 사용 시) 2. 연산자의 종류 우선순위 부정 연산자 > 비교 연산자 > 논리 연산자 1. '()'(괄호) 2. NOT 3. 비교 연산자 및 SQL 연산자 4. AND 5. OR 3. 비교 연산자 문자 유형 비교 방법 4. SQL 연산자 IN (list) 연산자 LIKE 연산자 BETWEEN a AND b 연산자 IS NULL 연산자 - NULL 값과의 수치 연산은 NULL 값을 리턴한다. - NULL 값과의 비교 연산은 거짓(FALSE)을 리턴한다. - 어떤 값과 비교할 ..
[SQLD]Ⅱ- 1장 SQL 기본 - 4절 TCL(TRANSACTION CONTROL LANGUAGE)
1. 트랜잭션 정의 데이터베이스의 논리적 연산 단위 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킴 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함됨 분할할 수 없는 최소의 단위 특성 원자성 : 트랜잭션에서 정의된 연산들은 전부 실행되거나 전혀 실행되지 않음(All or Nothing) 일관성 : 트랜잭션이 실행되기 전의 DB 내용이 잘못되어 있지 않다면 트랜잭션이 실행된 이후에도 DB의 내용이 잘못이 있으면 안 됨 고립성 : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 됨 지속성 : 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 DB의 내용은 영구적으로 저장됨 2. TCL 데이터 무결성 보장을 목적으로 하고 영구 변경 전 확인과 ..
[SQLD]Ⅱ- 1장 SQL 기본 - 3절 DML(DATA MANIPULATION LANGUAGE)
- 만들어진 테이블에 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회하는 명령어 1. INSERT - 데이터 입력 2. UPDATE - 데이터 수정 3. DELETE - 데이터 삭제 DELETE vs TRUNCATE TABLE - DELETE는 삭제된 데이터를 로그로 저장하지만 TRUNCATE는 로그도 같이 삭제하기 때문에 ROLLBACK이 불가하다. - 시스템 활용 측면에서는 삭제된 데이터를 로그로 저장하는 DELETE보다는 시스템 부하가 적은 TRUNCATE를 권고한다. 4. SELECT - 데이터 검색 ALL & DISTINCT - ALL : Default 옵션이므로 별도로 표시하지 않아도 된다. 중복된 데이터가 있어도 모두 출력한다. - DISTINCT : 중복된 데이터가 있는 경우 1건으로..
[SQLD]Ⅱ- 1장 SQL 기본 - 2절 DDL(DATA DEFINITION LANGUAGE)
1. 데이터 유형 - 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준 자주 쓰이는 데이터 유형 CHAR vs VARCHAR VARCHAR 유형은 가변 길이이므로 필요한 영역은 실제 데이터 크기뿐이다. 그렇기 때문에 길이가 다양한 칼럼과, 정의된 길이와 실제 데이터 길이에 차이가 있는 칼럼에 적합하다. 저장 측면에서도 CHAR 유형보다 작은 영역에 저장할 수 있으므로 장점이 있다. 문자열의 비교 방법 CHAR에서는 문자열을 비교할 때 공백(BLANK)을 채워서 비교 VARCHAR 유형에서는 맨 처음부터 한 문자씩 비교하고 공백도 하나의 문자로 취급하므로 끝의 공백이 다르면 다른 문자로 판단 CHAR 유형 : 'AA' = 'AA ' VARCHAR 유형 ..
[SQLD]Ⅱ- 1장 SQL 기본 - 1절 관계형 데이터베이스 개요
1. 데이터베이스(DB : DataBase) 정의 데이터를 일정한 형태로 저장해 놓은 것 DBMS를 이용하여 효율적인 데이터 관리와 데이터 손상 복구 가능 종류 계층형 DB : 트리 형태의 자료구조에 데이터 저장, 1:N 관계 표현 네트워크형 DB : 오너와 멤버 형태로 데이터 저장, M:N 관계 표현 관계형 DB : 릴레이션에 데이터 저장, 집합 연산과 관계 연산 가능 2. 관계형 DB(RDB : Relational Database) 특징 정규화를 통해 이상현상 및 중복 데이터 제거 동시성 관리와 병행 제어를 통해 데이터 동시 조작 가능 집합연산 합집합(Union) 차집합(Difference) 교집합(Intersection) 곱집합(Cartesian Product) : 각 릴레이션에 존재하는 모든 데이..
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 6절 분산 DB 데이터에 따른 성능
1. 분산 DB 정의 여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임 과거에는 위치 중심이었으나 현재는 업무 필요에 따라 분산 설계 설계 방식 상향식 : 지역 스키마 작성 후 전역 스키마 작성 하향식 : 전역 스키마 작성 후 지역사상 스키마 작성 장단점 2. 분산 DB의 투명성 - 분위지중장병행 분할 투명성 : 하나의 논리적 관계가 분할되어 각 다년의 사본이 여러 사이트에 저장됨 위치 투명성: 사용하려는 데이터 저장 장소가 명시되지 않아도 됨 지역사상 투명성: 지역 DBMS와 물리적 DB 사이의 사상이 보장됨 중복 투명성: DB 객체 중복 여부를 몰라도 ..
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 5절 데이터베이스 구조와 성능
1. 슈퍼타입/서브타입 모델의 성능 고려 방법 슈퍼/서브타입 데이터 모델 속성을 할당하여 배치하는 수평 분할된 형태의 모델 공통 속성은 슈퍼타입으로 모델링하고 차이가 있는 속성은 서브타입으로 구분함 변환을 통해 정확하게 업무를 표현할 수 있고 물리적 모델링 시 선택의 폭을 넓힐 수 있음 슈퍼/서브타입 데이터 모델의 변환 변환 기준 : 데이터 양, 트랜잭션 양 슈퍼/서브타입 데이터 모델의 변환 기술 2. 그 외 성능 향상 PK/FK 칼럼 순서 조절을 통한 성능 향상 등호 조건이나 BETWEEN 조건이 걸리는 칼럼을 앞으로 이동 여러 조건이 있을 경우 등호 조건이 걸리는 칼럼을 선두로 이동 인덱스 특성을 고려한 PK/FK DB 성능 향상 물리적인 테이블에 FK 제약을 걸어 인덱스를 생성
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 4절 대량 데이터에 따른 성능
- 테이블 반정규화 중 테이블 분할 관련 - 블록 : 테이블의 데이터 저장 단위 1. 대량 데이터 발생으로 인한 현상 블록 I/O횟수 증가 -> 디스트 I/O 가능성 상승(디스크 I/O 시 성능 저하) 로우 체이닝(Row Chaining) : 행 길이가 너무 길어 여러 블록에 걸쳐 저장되는 현상 로우 마이그레이션(Row Migration) : 수정된 데이터가 해당 블록이 아닌 다른 블록의 빈 공간에 저장되는 현상 2. 테이블 분할 - 반정규화 기법 수직분할 : 칼럼 단위로 테이블을 분할하여 I/O를 감소시킴. 너무 많은 수의 칼럼이 있는 경우 사용 수평분할 : 행 단위로 테이블을 분할하여 I/O를 감소시킴 3. 파티셔닝(Pratitioning) - 테이블 수평분할 기법 - 논리적으로는 하나의 테이블이지만..
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 3절 반정규화와 성능
1. 반정규화의 정의 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법 데이터 중복을 허용하여 조인을 줄이는 DB 성능 향상 방법 데이터 무결성을 희생하고 조회 성능 향상 2. 반정규화의 절차 반정규화 대상조사 범위처리빈도수 조사 대량의 범위 처리 조사 통계성 프로세스 조사 테이블 조인 개수 다른 방법유도 검토 뷰(VIEW) 테이블 클러스터링 적용 인덱스의 조정 응용 애플리케이션 반정규화 적용 테이블 반정규화 속성의 반정규화 관계의 반정규화 3. 반정규화의 기법 테이블 반정규화 칼럼 반정규화 관계 반정규화
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 2절 정규화와 성능
1. 정규화 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다. 정규화 : 데이터 분해 과정, 이상현상 제거 정규형 : 정규화로 도출된 데이터 모델이 갖춰야 할 특성 함수적 종속성 : 결정자와 종속자의 관계, 결정자의 값으로 종속자의 값을 알 수 있음 다치 종속 : 여러 칼럼이 동일한 결정자의 종속자 일 때 2. 정규화 이론 정규화 이론 1차, 2차, 3차, 보이스코드 정규화는 함수적 종속성에 근거 4차 정규화는 다치 종속을 제거 5차 정규화는 조인에 의한 이상현상을 제거하여 정규화를 수행함 1차 정규화 속성의 원자성 확보 다중값 속성을 분리함 2차 정규화 부분 함수 종속성 제거 일부 기본키에만 종속된 속성을 분리함 기본키..