본문 바로가기

📁 Database/Concept3

[ Database ] 정규화란? 📌 정규화 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정이다. 관계형 데이터베이스의 설계에서 테이블 간에 중복되는 데이터가 발생하지 않도록 릴레이션을 분해하여 구조화하는 프로세스를 말한다. 💡 정규화 장점 1. 데이터베이스 변경 시 이상현상(Anomaly)을 방지할 수 있다. 중복된 정보로 인해 이상이 발생하게 된다. 동일한 정보를 한 릴레이션에서는 변경하고 나머지 릴레이션에서는 변경하지 않은 경우 어느것이 정확한지 알 수 없게 된다. 🔸 이상현상의 종류 1. 삽입 이상 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 2. 갱신 이상 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 문제 3. 삭제 이상 튜플을 삭제하면 꼭 .. 2022. 12. 28.
[ Database ] 결합(복합) 인덱스란? (feat. 원리) 📌 결합(복합) 인덱스란? 결합 인덱스란 두 개 이상의 컬럼을 합쳐서 인덱스를 만드는 것을 말한다. 단일 컬럼보다 여러 개의 컬럼으로 합쳤을 때 좋은 분포도를 가질 경우 사용된다. 주로 WHERE절에서 AND 조건에 많이 사용되는 컬럼들을 결합 인덱스로 구성한다. 단일 인덱스 VS 결합 인덱스 단일 인덱스 결합 인덱스 1개의 컬럼으로 구성 2개 이상의 컬럼으로 구성 ◾ 조회속도개선에는 도움이되지만, 입력/수정/삭제가 빈번한 컬럼일 경우 성능이 저하됨 ◾ 단일 인덱스를 능가하는 성능을 낼수있으며, 여러개의 인덱스를 대신 할 수도 있음 ◾ 1번필드를 인덱스로 구성하면 1번필드는 인덱스에서 찾을수있지만 2번필드는 테이블에 접근해야만 확인 할 수 있음 ◾ 1번필드, 2번필드를 구성하면 모두 인덱스안에서 처리 가.. 2022. 12. 27.
[ Database ] 인덱스(Index)란? 📌 인덱스(Index) 란? 책을 보면 맨 앞장 또는 맨 뒷장에 Index 페이지가 있다. 그와 같은 개념이다. 원하는 카테고리에서 찾고자 하는 내용이 담긴 페이지 번호를 찾아가듯 인덱스에서도 원하는 데이터를 먼저 찾고 저장되어 있는 물리적 주소로 찾아간다. 인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조이다. SQL select문의 속도가 너무 느린 경우 해결방법 중 하나가 인덱싱 하는것이다. 만약 인덱스를 사용하지 않은 컬럼을 조회해야 한다면 어마무시한 양의 데이터를 전체 탐색하는 Full Scan을 수행해야 한다. Full Scan은 전체를 비교하여 탐색하기 때문에 처리 속도가 떨어진다. 그 과정을 빠르게 하기 위해서는 index라는 자료구조를 거쳐 검색하는 것이다. 보통 .. 2022. 12. 25.