본문 바로가기

데이터베이스5

[DB] 정규화란? 정규화란? 데이터의 중복을 줄이고 무결성 (정확성, 일관성)을 지키기 위해 데이터를 구조화하는 과정 정규화를 왜 사용할까? 한 테이블에 관련이 없는 속성들을 혼합하게 되면 테이블 내에 불필요하게 중복된 데이터가 쌓이게 됩니다. 이로 인하여 테이블에 이상 현상들이 발생하게 되는데, 이 현상을 해결하기 위해 정규화를 사용합니다. 정규화는 함수 종속성을 기준으로 데이터를 구조화하기 때문에 먼저 함수 종속성에 대해서 알아보겠습니다. 함수 종속성(Functional Dependency)이란? 테이블 안의 특정 속성 값에 의해 다른 속성 값을 결정하는 종속 관계 예시 테이블을 구성하는 두 개의 속성 X, Y가 있을 경우 속성 X의 값을 통해 속성 Y의 값을 바로 식별할 수 있거나, 속성 X값에 따라 속성 Y값이 달.. 2022. 7. 28.
[DB] 관계(Relationship)란? 관계(Relationship)란? 두 개 이상의 엔터티(Entity)가 서로 연관이 있는 상태 엔터티(Entity)란? 사람, 장소 등 관리하고자 하는 데이터들(Instance)의 논리적 집합 관계 패어링(Relationship Paring) 관계의 정의를 통해 고려해볼 때, 엔터티 안의 인스턴스가 모두 동일한 관계를 가지고 있다고 생각할 수 있지만 엔터티 안의 인스턴스는 개별적으로 관계를 가지게 됩니다. 예시 위 그림과 같이 학생 엔터티와 수업 엔터티가 있다고 가정하겠습니다. 학생 엔터티의 인스턴스인 김철수와 김길동은 각각 수업 엔터티의 인스턴스인 수학과 영어에 대해 서로 다른 관계를 가지고 있습니다. 김철수 인스턴스는 수학과 영어 인스턴스 모두와 관계를 가지고 있으며, 김길동 인스턴스는 영어 인스턴스.. 2022. 6. 26.
[DB] DBMS의 키(key)의 개념과 종류 개요 DBMS는 데이터를 일관성 있게 관리할 수 있도록 데이터를 입력받을 때, 다양한 제약조건(Constraint)을 제공하고 있습니다. 오늘은 다양한 제약 조건 중 데이터를 식별하는 기준인 키(Key)에 대하여 알아보겠습니다. 키의 종류 키는 여러 가지 종류가 존재하나 크게 슈퍼키, 후보키, 기본키, 대체키, 외래키 5가지로 분류합니다. 슈퍼 키(Super Key) 테이블에서 각 행을 유일하게 식별할 수 있는 속성들의 집합 예시 고객의 정보가 있는 테이블을 예시로 들어보겠습니다. 고객 아이디 속성은 모든 고객 행마다 값이 달라야 하고 이를 통해 다른 행과 유일하게 구별이 가능하므로 슈퍼 키가 될 수 있습니다. 그러나 나이·직업·등급·적립금 속성은 값이 같은 고객이 있을 수 있으므로 유일성을 만족시키지 .. 2022. 6. 6.
인덱스(Index)란? 정의 데이터베이스의 데이터 검색 속도를 높이기 위한 자료 구조 인덱스를 왜 써야 할까? 인덱스를 사용하지 않은 칼럼을 조회해야 하는 상황이라면? 테이블 전체를 읽어야 하는 Full Scan을 수행해야 하며, Full Scan은 테이블 전체 내용을 하나하나 비교하여 탐색하기 때문에 처리 시간이 오래 걸립니다. 따라서 내가 원하는 자료를 빠르게 검색하기 위해 도와주는 인덱스 사용을 고려해보면 좋을 거 같습니다. 종류 MariaDB의 인덱스 종류는 크게 기본, 고유, 일반, 전체 텍스트 인덱스 총 4가지가 있습니다. 기본 인덱스 (null이 아닌 고유) 기본 인덱스는 고유하며 절대 null 일 수 없습니다. 항상 하나의 레코드만을 식별하며, 각 레코드를 표시해야 합니다. 각 테이블에는 기본 키가 하나만 있을 .. 2021. 11. 10.