1. 트랜잭션 개요 트랜잭션이랑 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. 트랜잭션은 분할할 수 없는 최소의 단위이다. 트랜잭션은 ALL or NOTHING 개념이다. 2. COMMIT 입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 전혀 문제가 없다고 판단되었을 경우 COMMIT 명령어를 통해서 트랜잭션을 완료할 수 있다. COMMIT 명령어는 이처럼 INSERT 문장, UPDATE 문장, DELETE 문장을 사용한 후에 이런 변경 작업이 완료되었음을 데이터베이스에 알려주기 위해 사용한다. COMMIT 이후의 데이터 상태 - 데이터에 대한 변경 사항이 데이터베이스에 반영된다 - 이전 데이터는 영원히..
1. INSERT #두 방식 모두 같은 의미 INSERT INTO 테이블명 (COLUMN_LIST)VALUES (COLUMN_LIST에 넣을 VALUE_LIST); INSERT INTO 테이블명 VALUES (전체 COLUMN에 넣을 VALUE_LIST); 2. UPDATE UPDATE 테이블명 SET 수정되어야 할 칼럼명 = 수정되기를 원하는 새로운 값; UPDATE 다음에 수정되어야 할 칼럼이 존재하는 테이블명을 입력하고 SET 다음에 수정되어야 할 칼럼명과 해당 칼럼에 수정되는 값으로 수정이 이루어진다. 3. DELETE DELETE [FROM] 삭제를 원하는 정보가 들어있는 테이블명; DETLETE FROM 다음에 삭제를 원하는 자료가 저장되어 있는 테이블명을 입력하고 실행한다. 이때 FROM 문..
1. 데이터 유형 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준 즉, 특정 칼럼을 정의할 때 선언한 데이터 유형은 그 칼럼이 받아들일 수 있는 자료의 유형을 규정한다. 따라서, 선언한 유형이 아닌 다른 종류의 데이터가 들어오려고 하면 데이터베이스는 에러를 발생시킨다. 2. CREATE TABLE 테이블과 칼럼 정의 테이블에 존재하는 모든 데이터를 고유하게 식별할 수 있으면서 반드시 값이 존재하는 단일 칼럼이나 칼럼의 조합들 (후보키) 중에 하나를 선정하여 기본키 칼럼으로 지정한다. 기본키는 단일 칼럼이 아닌 여러개의 칼럼으로도 만들어질 수 있다. 그리고 테이블과 테이블 간에 정의된 관계는 기본키와 외부키를 활용해서 설정하도록 한다. CREATE T..
1. 데이터베이스 데이터베이스는 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미한다. 데이터의 손상을 피하고, 필요시 데이터를 복구하기 위해 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DBMS (Database Management System)라고 한다. 2. SQL SQL (Structured Query Language)은 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어다. - 테이블에 대한 내용을 건드리지 않고 단순히 조회하는 SELECT 문장 - 테이블에 들어 있는 데ㅣ터에 변경을 가하는 UPDATE, DELETE, INSET 문장은 테이블에 들어있는 데이터들을 ..
1. 슈퍼타입/서브타입 모델의 성능고려 방법 슈퍼/서브타입 데이터 모델 : 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있음 즉, 공통의 부분을 슈퍼타입으로 모델링하고 차이가 있는 속성에 대해서는 별도의 서브엔터티로 구분하여 업무의 모습을 정확하게 표현 2. 분산 데이터베이스 장단점 글에서 나오는 그림과 내용은 책 SQL 전문가 가이드에서 가져옴을 알립니다.
1. 대량 데이터발생에 따른 테이블 분할 개요 로우체이닝 현상 - 로우 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태 로우마이그레이션 - 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식 로우체이닝과 로우마이그레이션이 발생하여 많은 블록에 데이터가 저장되면 데이터베이스 메모리에서 디스크와 1/0(입력/출력)가 발생할 때 불필요하게 1/0가 많이 발생하여 성능이 저하된다. 2. 대량 데이터 저장 및 처리로 인해 성능 - Range Partition 적용 - List Partition 적용 4. 테이블에 대한 수평분할/수직분할의 절차 - 데이터 모델..
정규화 제 1정규화 - 속성의 원자성을 확보한다 - 기본키를 설정한다 - 중복속성에 대한 분리가 1차 정규화의 대상이 되며, 로우단위의 중복도 1차 정규화의 대상이 되지만 칼럼 단위로 중복이 되는 경우도 1차 정규화의 대상이다 제 2정규화 - 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)한다 제 3정규화 - 기본키를 제외한 칼럼간에 종속성을 제거한다 - 즉, 이행 함수 종속성을 제거한다 BCNF - 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해한다. 반정규화 1. 반정규화를 통한 성능향상 전략 반정규화의 정의 - 데이터를 중복하여 성능을 향상시키기 위한 기법 - 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모..
1. 성능 데이터 모델링의 정의 성능 데이터 모델링이란, 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다. 2. 성능 데이터 모델링 수행시점 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 기하급수적으로 증가하게 된다. 3. 성능 데이터 모델링 고려사항 - 데이터 모델링을 할 때 정규화를 정확하게 수행한다 - 데이터베이스 용량산정을 수행한다 - 데이터베이스으ㅔ 발생되는 트랜잭션의 유형을 파악한다 - 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다 - 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 등을 수행한다 - 성능관점에서 데이터 모델을 검증한다 글에서 나오는 코드와 내용은 책 SQL 전문가 가이드..