DATABASE3 [Database] 인덱스 (Index) 인덱스란? 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 (특정 컬럼을 복사해서 정렬해 둔다!) ex) 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아보는 것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 보통 책의 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 주소를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕는다. 인덱스의 관리 DBMS는 index를 항상 최신의 정렬된 상태로 유지해야 원하는 값을 빠르게 탐색할 수 있다. 따라서 인덱스가 적용된 컬럼에 INSERT, UPDATE, DELETE가 수행된다면, 각각 다음과 같은 연산.. 2023. 6. 16. [Database] 트랜젝션 (Transaction) 트랜젝션이란? 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들 트랜젝션의 성질 (ACID) Atomicity (원자성) - All or Nothing - 트랜잭션은 "전부 성공"하거나 "전부 실패"하는 원자적인 단위로 처리되어야 한다. - 하나의 트랜잭션 내에서 수행되는 모든 연산은 모두 성공해야만 데이터베이스 상태가 변경되고, 어느 하나라도 실패하는 경우 이전 상태로 롤백(트랜젝션 전부 취소)된다. Consistency (일관성) - 트랜잭션 수행 전과 수행 후에 데이터베이스가 동일한 규칙과 제약조건을 따르며, 데이터 간에 일치성이 유지해야 한다. ex) 은행 송금 기능에서 트랜젝션 수행 이전의 송금자와 수금자의 잔앱 합이.. 2023. 6. 16. [Database] 정규화(Normalization) 정규화란? Attribute 간의 종속성으로 인한 이상현상이 발생하는 릴레이션을 분해하여 재디자인함으로써 이상현상을 없애는 과정 데이터의 중복 방지, 무결성을 충족하기 위해 데이터베이스를 설계하는 방법 정규화가 생겨난 배경 한 릴레이션(Relation)에 여러 엔티티의 속성을 혼합하면 정보가 중복 저장되며 저장 공간을 낭비하게 된다. 또 중복된 정보로 인해 '이상 현상'이 발생하게 된다. 이러한 문제를 해결하기 위해 정규화 과정을 거치는 것이다. 정규화의 3가지 원칙 - 정보의 무손실 : 분해된 릴레이션이 표현하는 정보는 분해되기 전의 정보를 모두 포함해야 한다. - 최소 데이터 중복 : 이상 현상을 제거, 데이터 중복을 최소화 - 분리의 원칙 : 하나의 독립된 관계성은 하나의 독립된 릴레이션으로 분리해.. 2023. 6. 16. 이전 1 다음