서버 개발/데이터베이스 일반 5

RDBMS의 정규화 단계

정규화는 데이터베이스 설계 시 중복을 최소화하고 데이터 무결성을 보장하기 위한 과정입니다. 제1정규화(1NF)핵심: 모든 속성이 원자값(atomic value)을 가져야 함설명: 하나의 셀에는 하나의 값만 존재해야 합니다.예시:비정규화: 학생(학번, 이름, 수강과목)레코드 1 : (1001, 김철수, '수학, 영어, 과학')1NF: 학생(학번, 이름, 수강과목)레코드1: (1001, 김철수, 수학)레코드2: (1001, 김철수, 영어)레코드3: (1001, 김철수, 과학)제2정규화(2NF)핵심: 1NF를 만족하며, 부분 함수 종속성을 제거설명: 기본키가 복합키일 때, 일부 컬럼이 기본키의 일부에만 종속되는 경우를 제거합니다.예시:1NF: 수강정보(학번, 과목코드, 학생이름, 과목명, 성적)여기서 기본키는..

[MSSQL] 데이터 저장 구조

데이터 저장의 저장의 기본 단위가 '페이지'입니다. 페이지 관리의 기본 단위가 '익스텐트'입니다. [페이지] SQL Server의 페이지 크기는 8KB입니다. 1MB당 128페이지가 존재합니다. 각 페이지는 96바이트의 머리글로 시작하여 머리글에는 시스템 정보가 저장됩니다. 머리글 다음에 데이터 행과 이에 대응하는 행 오프셋 정보를 담고 있다. 구조는 다음과 같습니다. 대용량 행(varchar, nvarchar, varbinary, sql_variant등)의 경우에는 8KB를 초과하는 경우가 습니다. 실제 행들이 여러 페이지에 걸쳐 있을 수 없지만 이러한 행들은 전체 행의 8060바이트를 초과하면 ROW_OVERFLOW_DATA 할당 단위에 있는 페이지로 동적으로 옮기고 원래 페이지에는 이에 대한 24바..

Nested Loops/Sort Merge/Hash Join

SELECT a.FLD1, ..., b.FLD1,... FROM TAB1 a, TAB2 b WHERE a.KEY1 = b.KEY2 AND a.FLD1 = 'AB' AND b.FLD2 = '10' 1. Nested Loop Join : 어느 한쪽을 드라입밍 해서 조인하는 방식 : 실행 계획의 아이콘입니다. 중첩 루프 즉, for 루프 두 개를 연상하게 합니다. 순차적 (부분범위처리 가능) 종속적 (먼저 처리되는 테이블의 처리범위에 따라 처리량 결정) 먼저 처리되는 테이블의 범위가 넓다면 더 많은 처리량이 생기는 거죠. 랜덤 액세스 위주 연결고리 상태에 따라 영향이 큼(key2 = key1) 주로 좁은 범위 처리에 유리 2. Sort Merge Join : 테이블 각자 소트하여 머지 합니다. : 양쪽 테이블..

OLTP, OLAP, DW

OLTP(On-Line Transaction Processing) 여러 과정의 연산이 하나의 단위 프로세스(트랜잭션)로 실행되도록 하는 프로세스입니다. 즉, 흔히 말하는 "트랜잭션(Transaction) 처리" 를 OLTP 라 부른다. 예를 들어 A 테이블 업데이트 B 테이블 업데이트는 두 개의 연산이지만 하나의 트랜잭션으로 처리되게 합니다. 하나의 단위 프로세스 이므로 A 테이블을 업데이트하고 B 테이블 업데이트에서 오류가 발생하면 A테이블의 업데이트 내용도 되돌아 갑니다. OLAP(On-Line Analytical Processing) 위의 DW에서 데이터를 분석해서 의미있는 형태로 만들기 위한 과정및 도구. 의사결정 지원 시스템의 하나. DW의 통합 데이터베이스를 다양한 관점으로 추출, 분석 하는 ..

SQL의 분류 DML/DDL/DCL/TCL

SQL 명령어를 주로 DML, DDL로 분류하는 경우가 많아서 어떤 것들이 이러한 명령어인지 잘 알고 있어야 합니다. 이 밖게 DCL, TCL로 분류를 하는데 이것 또한 알아 두어야 겠습니다. 분류 명령어 설명 DML : Data Manipulation Language SELECT, INSERT, UPDATE, DELETE 테이블의 데이터를 다루는 명령어 데이터 조회, 입력, 수정, 삭제 DDL : Data Definition Language CREATE, ALTER, DROP, RENAME, TRUNCATE 테이블을 조작하는 명령어 테이블 생성, 변경, 삭제, 이름변경, 초기화 DCL : Data Control Language GRANT, REVOKE 권한 부여/제거 TCL : Transaction C..