본문 바로가기

안녕하세요!

SQLD

[ SQLD ] TCL(Transaction Control Language) TCL TCL(Transaction Control language)는Transaction을 제어하는 명령어로COMMIT, ROLLBACK, SAVEPOINT 등이 있다.여기서 TRANSACTION이란더 이상 쪼개질 수 없는 업무 처리의 단위이다. 특징설명원자성(Atomicity)Transaction이 묶여 있는 동작들은 모두 성공하거나 실패해야 함일관성(Consistency)Transaction이 완료된 이후에도 계산된 결괏값 등, DB의 Data에 일관성이 있어야 함고립성(Isolation)하나의 Transaction은 한 고객에게 할당된 제품은 구매 불가능한 것처럼 고립되어 수행되어야 함지속성(Durability)Transaction이 성공적으로 수행되었을경우, Transaction이 변경한 Data.. 더보기
[ SQLD ] SQL 삭제 문(DROP, TRUNCATE, DELTE) 비교 DROP TABLETRUNCATE TABLEDELETE FROMDDLDDL(+DML)DMLAuto CommitAuto CommitUser CommitROLLBACK 불가능ROLLBACK 불가능Commit 전에 ROLLBACK 가능Table의 모든 Data 삭제Table의 모든 Data 삭제Table의 모든 Data 삭제Disk 초기화(= 로그 제거)Disk 초기화(= 로그 제거) Disk 초기화(= 로그 유지) Schema 정의까지 모두 삭제Table Schema 구조 유지Table Schema 구조 유지   [ SQLD ] DML(Data Manipulation Language)DML DML(Data Manipulation Language)은SELECT, INSERT, UPDATE, DELETE 등으로.. 더보기
[ SQLD ] DML(Data Manipulation Language) DML DML(Data Manipulation Language)은SELECT, INSERT, UPDATE, DELETE 등으로DB 내의 Data를 조작하는 데에 사용돤다.DML은 Host 프로그램 속에 삽입되어 사용하기에,데이터 부속어(Data Sub Language)라고도 불리우기도 한다. INSERT INSERT INTO TESTTABLE (ID, NAME, AGE, COUNTRY) VALUES(1, 'DERRIK', 32, 'KOREA'); UPDATE UPDATE TESTTABLE SET AGE = 23 WHERE NAME = 'DERRIK'; DELETE DELETE FROM TESTTABLE WHERE NAME = 'DERRIK'; SELECT SELECT DISTINCT AGE FROM TE.. 더보기
[ SQLD ] DDL(Data Definition Language) DDL DDL(Data Definition Language)은Schema와 Domain, Table, View, Index를 정의 및 변경, 제거할 때 사용한다.DDL의 경우, Auto COMMIT 되기 때문에DDL이 수행되면 ROLLBACK이 되어도 데이터는 COMMIT 된다. CREATE TABLE AS CREATE TABLE TESTTABLE AS SELECT COLUMN1, COLUMN2, ... FROM EXAMPLETABLE WHERE ... CREATE TABLE AS 문장을 사용하는 경우,테이블의 구조를 복하기 때문에 별도로 작성할 필요가 없다.다만, NOY NULL과 일부 제약 조건만 복사가 된다.PK, FK, UNIQUE, CHECK 등의 제약 조건은 복사되지 않으므로 다시 적용해.. 더보기
[ SQLD ] Row Migration / Row Chaining / Partitioning 로우 마이그레이션 로우 마이그레이션은데이터 블록에서 수정이 발생 하였을 때수정된 데이터를 해당 블록에 저장하지 못하고다른 블록에 있는 빈 공간을 찾아 저장하는 방식이다. 이순신최민식거북선-----------------------------------이순신강강술래   "이순신"을 "강강술래"으로 UPDATE 하였을 때행의 길이가 증가하면서 저장 공간이 부족해진다.이때 원래 정보를 기존 블록에 남겨두고실제 데이터는 다른 블록에 저장하게 되는데,데이터 조회 시 기존 블록에서 주소를 먼저 읽고 다른 블록을 찾아야 하므로성능이 감소될 수밖에 없어진다. 로우 체이닝 로우 체이닝이란,행 길이가 길어서 데이터 블록 하나에 데이터를 모두 저장하지 않고,두 개 이상의 블록에 걸쳐서 하나의 로우를 저장하는 형태이다. O O.. 더보기
[ SQLD ] 성능 데이터 모델링 성능 데이터 모델링 성능 데이터 모델링은 DB 성능 향상을 목적으로 하며, 설계 단계의 데이터 모델링 시기 부터 정규화, 반정규화, 테이블 통합 및 분할, JOIN, 기본키, 외래키 등이 데이터 모델링에 반영되도록 하는 것을 말한다. 함수적 종속성 함수적 종속성(Functional Dependency)은 데이터들이 어떤 기준값에 의해 종속되는 현상이다. 기준값은 결정자(Determicant), 종속되는 값을 종속자(Dependent)라고 한다. 반정규화 반정규화란 엔터티, 속성, 관계에 대해 시스템의 성능 향상 및 개발과 운영의 단순화를 위해 중복과 통합, 분리 등을 수행하는 데이터 모델링 기법이다. 데이터 무결성이 깨질 수도 있지만, 데이터를 조회할 때 디스크 I/O의 양이 많거나, 경로가 복잡하여 조.. 더보기
[ SQLD ] 성능 데이터 모델링 - 정규화 성능 데이터 모델링 성능 데이터 모델링은 DB의 성능 향상 목적으로 설계 단계의 데이터 모델링 때부터 정규화와 반정규화, 테이블 통합, 테이블 분할, 조인, 기본키 및 외래키 등의 여러 성능과 관련된 것들이 데이터 모델링에 반영되도록 하는 것이다. 고려 사항 먼저 데이터 모델링을 할 때 정규화를 수행해야 한다. 여기서 정규화란 이상현상이 있는 릴레이션을 분해해 이상현상을 제거하는 과정이다. 두 번째로 DB 용량 산정을 수행한다. 그리고 DB에서 발생되는 트랜잭션의 유형을 파악한다. 네 번째로 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다. 그 다음 이력 모델의 조정, 기본키와 외래키의 조정, 슈퍼 타입과 서브 타입의 조정 등을 수행한다. 마지막으로 성능 관점에서 데이터 모델을 검증한다. [ 정보처리기.. 더보기
[ SQLD ] 데이터 모델링 - Identifier 식별자 식별자(Identifier)는 여러 개의 instance 집합인 Entity를 각기 구분할 수 있는 논리적인 이름이다. 식별자 특징 구분 내용 유일성 주식별자를 사용해 엔터티에 속해 있는 인스턴스들을 유일하게 구분해야 함 최소성 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 불변성 주식별자가 특정 엔터티에 지정되면, 그 식별자의 값은 변하지 않아야 함 존재성 주식별자 지정되면, 반드시 데이터 값이 존재해야 함 식별자 분류 구분 식별자 내용 대표성 여부 주식별자 엔터티 내 각 행을 구분할 수 있는 구분자, 다른 엔터티와의 참조 관계 연결 보조 식별자 주식별자에 비해 대표성이 없어 참조관계 연결 불가 자가 생성 여부 내부 식별자 엔터티 내부에서 자체적으로 만들어지는 식별자 .. 더보기

loading