본문 바로가기

Computer Science/Data Base4

[DB] 정규화(Nomalization) 정규화(Normalization) 정규화란 관계형 데이터베이스의 데이터 모델 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 의미하며 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것을 목표로 합니다. 정규화는 테이블 간의 종속성을 분석하고 데이터를 여러 테이블로 분할하여 중복을 줄이는데 중점을 두고있으며 하나의 테이블에서의 데이터의 삽입, 삭제, 변경이 정의된 관계들로 인하여 데이터베이스의 나머지 부분들로 전파되게 하는 것입니다. 출처 또한 정규화는 여러 단계로 정의되어 있는 정규형(Normal Form)이라는 규칙을 따라 데이터 모델의 정규화가 이루어지는데 각 단계는 아래와 같습니다. 먼저 다음과 같은 정규화 되지 않은 테이블이 존재한다고 가정하겠습니다. 관리자 아이디 관리자.. 2023. 11. 17.
[DB] 인덱스(Index) 인덱스(Index) 출처 인덱스란 데이터베이스 테이블 내의 특정 열에 대한 검색 및 정렬 성능을 향상시키기 위해 사용되는 자료 구조를 뜻합니다. 인덱스 구조의 유일한 목적은 데이터를 검색하는 동안 디스크의 I/O를 최소화하도록 제한하는 것에 있습니다. 즉 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 및 정렬 성능을 향상시키는 자료 구조로 인덱스가 생성되면 인덱스된 열과 연결된 테이블의 값 위치가 기록됩니다. 인덱스는 특정 열에 대한 정렬된 키와 해당 키가 위치한 데이터 블록에 대한 포인터로 구성되어 있습니다. 테이블의 다른 세부 항목들은 갖고 있지 않기 때문에 보통 테이블을 저장하는데 필요한 디스크 공간보다 작으며 관계형 데이터베이스에서의 인덱스는 테이블 부분에 대한 하나의 사본.. 2023. 11. 15.
[DB] Lock Lock 출처 데이터베이스 락이란 여러 사용자 또는 프로세스와 같이 여러 스레드를 실행하는 환경에서 데이터 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화 장치를 뜻합니다. 락은 상호 배제 동시성 제어 정책을 강제하기 위해 설계되며 자원에 대한 접근에 제한을 강제하기 위한 동기화 메커니즘입니다. 락은 데이터베이스 관리 시스템(DBMS) 내에서 사용되며 데이터베이스 객체에 대한 동시 엑세스 및 수정을 제어하는데 사용됩니다. Level 출처 Locking Level이 낮을수록 동시성은 좋지만 관리해야할 락의 개수가 증가하기 때문에 더 많은 리소스를 소비하게 됩니다. 반면에 Locking Level이 높을수록 적은 양의 락 리소스를 사용하지만 하나의 락으로 많은 레코드를 관리하.. 2023. 11. 9.
[DB] Transaction Transaction 트랜잭션은 데이터베이스에서의 상호 작용의 단위이며 하나 이상의 작업을 처리하는 개념으로 데이터베이스의 무결성과 데이터의 일관성을 보장하기 위한 단위를 의미합니다. 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적인 작업 단위를 구성하는 연산들의 집합입니다. 데이터베이스에서 수행되는 일련의 여러 작업이며 모두 단일 논리적 작업 단위로 사용됩니다. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위입니다. 하나의 트랜잭션은 Commit 되거나 Rollback 됩니다. 트랜잭션은 "전체"로 처리하려는 작업 단위이며 이는 완전히 일어나거나 전혀 일어나지 않아야 합니다. 동작 데이터베이스는 초당 수백만 개의 동시 요청을 처리하며 대부분의 경우 이런.. 2023. 11. 2.