전체 글 77

NULL과 공집합(NULL의 특성, 집계함수, 공집합)

NULL의 특성 1) 널 값은 아직 정의되지 않은 값으로 0 또는 공백과 다르다. → 0은 숫자이고 공백은 하나의 문자이다. 2) 테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 널 값을 포함할 수 있다. 3) 널 값을 포함하는 연산의 경우 결과 값도 널 값이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다. 4) 결과값을 NULL이 아닌 다른 값을 얻고자 할 때 NVL/ISNULL 함수를 사용한다. NULL 값의 대상이 숫자 유형 데이터인 경우는 주로 0(Zero)으로, 문자 유형 데이터인 경우는 블랭크보다는 'x' 같이 해당 시스템에서 의미 없는 문자로 바꾸는 경우가 많다. 5) AVG, SUM, COUNT와 같은..

트랜잭션과 무결성(트랜잭션, 원자성, 일관성, 고립성, 지속성, 무결성)

트랜잭션 트랜잭션: 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 최소 단위. 여러 개의 쿼리들을 하나로 묶는 단위를 말한다. 트랜잭션의 특성(ACID) - 원자성(Automicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability) 1) 원자성(Automicity) 원자성: 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되든지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. (all or nothing) - 커밋(commit)과 롤백(rollback) 커밋: 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어. 트랜잭션 단위로 수행되며 변경된 내용이 모두 영구적으로 저장되는 것을 말한다. 커밋이 수행되었다. = 하나의 트랜잭션이 성공적으로 ..

SQL 문장들의 종류(DML, DDL, DCL, TCL)

1) 데이터 조작어(DML: Data Manipulation Language) DML: 데이터베이스에 들어있는 데이터 검색, 삽입, 수정, 삭제를 위한 명령어 → 데이터 검색(SELECT), 삽입(INSERT), 수정(UPDATE), 삭제(DELETE) 2) 데이터 정의어(DDL: Data Definition Language) DDL: 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어. 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 명령어 → 데이터 구조(테이블) 생성(CREATE), 변경(ALTER), 삭제(DROP), 이름을 바꾸는(RENAME) 명령어 3) 데이터 제어어(DCL: Data Control Language) DCL: 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회..

반정규화

반정규화란? 반정규화: 정규화된 엔터티, 속성, 관계에 대해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법 - 목적: 시스템의 성능 향상, 개발과 운영의 단순화 반정규화 수행하는 경우 1) 데이터 조회 시 디스크 I/O량이 많아서 성능이 저하될 경우 2) 경로가 너무 멀어 조인으로 인한 성능 저하가 예상될 경우 3) 칼럼을 계산해서 읽을 때 성능 저하가 예상될 경우 테이블의 반정규화 - 테이블 병합 - 1:1 관계, 1:M, 슈퍼(상위개체)/서브타입(하위개체) 테이블 병합 - 테이블 분할 - 수직, 수평분할 - 테이블 추가 - 중복, 통계, 이력, 부분 테이블 추가 1) 테이블 병합 - 두 개의 테이블이 JOIN 되는 경우가 많아 통합하는 것이 성능 측면에서 유리할 경우 하나의 테이블로 만들어 사..

성능 데이터 모델링(성능 데이터 모델링 정의, 성능 데이터 모델링 수행 절차)

성능 데이터 모델링이란? 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것. - 목적: 데이터베이스 성능 향상 - 수행 시점: 분석/설계 단계 - 고려 사항: 정규화, 반정규화 성능 데이터 모델링 수행 절차 정규화 → 용량 산정 → 트랜잭션 유형 파악 → 반정규화 → 이력 모델 · PK/FK · 슈퍼/서브 타입 조정 → 성능 관점 데이터 모델 검증

728x90
반응형