본문 바로가기

Computer Science/DB4

정규화를 하는 이유와 방법 1. 정규화란? 관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화 하는 작업 2. 정규화를 하는 이유? 중복된 데이터를 제거해 이상(anormaly)을 제거 하는 것 Anomaly 이상이란? 어노멀리는 데이터 이상현상으로, 중복된 데이터 때문에 발생함. 어떤 처리를 할 때, 중복된 데이터를 동시에 전부 처리하지 못하고 일부만 처리할 경우 어떤 데이터가 맞는지 모르고 결국 데이터는 이상해짐. 정규형 모델에서는 어노멀리가 최소화되며, 중복 데이터를 채택한 모델에는 다음과 같은 아노말리가 발생함. 갱신 이상 : 릴레이션에서 속성의 값을 업데이트할 때 일부만 갱신되고 정보에 모순이 발생하는 현상 삭제 이상 : 릴레이션에서 인스턴스를 삭제할 때 의도와 상관없는 값이 삭제되는 현상 삽입 이상 : 릴레.. 2021. 5. 31.
ACID 속성이란? ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다. 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계를 트랜잭션이라고 한다. 예를 들어, 은행에서의 계좌이체를 트랜잭션이라고 할 수 있는데, 계좌이체 자체의 구현은 내부적으로 여러 단계로 이루어질 수 있지만 전체적으로는 '송신자 계좌의 금액 감소', '수신자 계좌의 금액 증가'가 한 동작으로 이루어져야 하는 것을 의미한다. 원자성(Atomicity) 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 예를 들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해.. 2021. 5. 31.
인덱스란? 1. 인덱스란? 추가적인 쓰기 작업과 저장 공간을 활용하여 테이블에 대한 동작 속도를 향상시키기 위한 자료구조다. 책의 색인과 같은 역할을 수행(자료의 위치 기억) INDEX를 활용하면 SELECT, UPDATE, DELETE의 성능이 향상된다. 만약 INDEX를 사용하지 않는다면 특정 컬럼을 조회할 때 전체를 탐색하는 FULL SCAN을 수행하게 되어 처리 속도가 떨어진다. 2. 인덱스의 관리 DBMS는 index를 항상 최신의 정렬된 상태로 유지해야 원하는 값을 빠르게 탐색할 수 있다. 그렇기 때문에 인덱스가 적용된 컬럼에 INSERT, UPDATE, DELETE가 수행된다면 각각 다음과 같은 연산을 추가적으로 해주어야 하며 그에 따른 오버헤드가 발생한다. INSERT: 새로운 데이터에 대한 인덱스를.. 2021. 5. 31.
DDL, DCL, DML, TCL 1. DDL (Data Definition Language) 데이터 정의어 종류 역할 CREATE 데이터베이스, 테이블 등을 생성하는 역할을 합니다. ALTER 테이블을 수정하는 역할을 합니다. DROP 데이터베이스, 테이블을 삭제하는 역할을 합니다. TRUNCATE 테이블을 초기화 시키는 역할을 합니다. RENAME 테이블 이름을 변경합니다. 2. DCL (Data Control Language) 데이터 제어어 종류 역할 GRANT 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여 합니다. REVOKE 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈, 회수 합니다. 3. DML (Data Manipulation Language) 데이터 조작어 종류 역할 SELECT 데이터.. 2021. 5. 31.