데이터베이스 13

정규화

정규화는 어떤 배경에서 생겨났는가? 한 릴레이션에 여러 엔티티의 애트리뷰트들을 혼합하게 되면 정보가 중복 저장되며, 저장 공간을 낭비하게 된다. 또 중복된 정보로 인해 갱신 이상이 발생하게 된다. 동일한 정보를 한 릴레이션에는 변경하고, 나머지 릴레이션에서는 변경하지 않은 경우 어느 것이 정확한지 알 수 없게 되는 것이다. 이러한 문제를 해결하기 위해 정규화 과정을 거치는 것이다. 갱신 이상에는 어떠한 것들이 있는가? 삽입 이상(insertion anomalies) 똑같은 데이터가 중복 저장되어 저장 공간 낭비 실수로 진호의 dept_name을 DEB라고 입력하였을 경우, 데이터 불일치 문제가 생김 임직원이 아직 없는 부서를 만들면, 위 테이블은 임직원 정보도 같이 표현하기 때문에 ?를 채울 수 없음 삭..

데이터베이스 2023.04.03

Index

인덱스(Index)란 무엇인가? 인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조이다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함꼐 저장된다. 인덱스를 책에서의 목차라고 생각하면 이해하기 쉽다. 책에서 원하는 내용을 찾을 때 목차나 색인을 이용하면 훨씬 빠르게 찾을 수 있듯이 테이블에서 원하는 데이터를 찾기 위해 인덱스를 이용하면 빠르게 찾을 수 있다. 그러므로 데이터=책의 내용, 인덱스=책의 목차, 물리적 주소=책의 페이지 번호라고 생각하면 된다. B- Tree B-tree는 Binary search tree와 유사하지만, 한 노드 당 자식 노드가 2개 이상 가능하다. B+ Tree B+tree는 B-tree의..

데이터베이스 2023.04.02

데이터베이스

데이터베이스를 사용하는 이유 데이터베이스가 나오기 이전에 파일 시스템을 이용해 데이터를 관리하였는데 여기에는 데이터 중복, 데이터 무결성 등의 문제가 있어서 이를 해결한 데이터베이스가 나오게 되었고 보다 더 효율적인 것을 인정받아 지금까지 사용하고 있습니다. 데이터베이스 특징 데이터의 독립성 물리적 독립성 : 데이터베이스에서 특정 테이블의 물리적인 저장 위치를 변경하더라도, 해당 테이블의 논리적 구조는 변경되지 않는다는 뜻입니다. 논리적 독립성 : 예를 들어, 학생 정보 데이터베이스에 학생 정보, 학과 정보, 교수 정보들이 논리적으로 나눠져 있을 때, 교수 정보를 추가하거나 수정하는 것은 다른 데이터에 영향을 미치지 않습니다. 이를 논리적 독립성이라고 합니다. 데이터의 무결성 예를 들어 "은행 잔고는 0..

데이터베이스 2023.04.02