[DataBase] 데이터베이스론 1

SJ.CHO·2024년 8월 22일

CS공부용 용어정리

목록 보기
3/5

데이터베이스란?

  • 파일시스템의 단점을 보완하여 대규모의 데이터를 저장 및 검색의 중점을 두는 대규모 데이터저장 시스템.

데이터베이스의 특징

  • 독립성 : 데이터베이스의 성능을 향상시키더라도 관련된 응용 프로그램을 수정할 필요가 없음.
  • 무결성 : 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능, 데이터의 유효성 검사를 통해 데이터 무결성을 구현.
  • 보안성 : 인가된 사용자들만 데이터베이스에 접근할 수 있도록 구현하여 데이터에 보안을 구현할 수 있다.
  • 일관성 : 데이터를 논리적구조로 관리함으로써 연결된 데이터가 변경되더라도 데이터의 불일치성을 배제할 수 있다.
  • 중복최소화 : 데이터를 통합관리함으로 자료의 중복과 데이터의 중복을 해결한다.

인덱스(Index)란?

  • 말 그대로 색인 이라는 뜻으로 테이블의 컬럼을 색인화 하여 레코드를 풀스캔하는게 아닌 색인화되어있는 인덱스 파일을 통해 데이터에 접근하여 검색속도를 높힌다.
  • RDBMS에서 사용하며, Tree 구조를 지님.
  • Index화 되어있지않은 SELECT 쿼리라면 해당 테이블을 풀스캔함.

인덱스의 장점

  • 키 값을 기초로하여 테이블에서 검색과 정렬 속도를 향상시킨다.
  • 테이블 행의 고유성이 강화된다.
  • 기본키는 자동으로 인덱스가 된다.
  • 다중필드 인덱스를 사용하면 첫 필드값이 같은 레코드도 구분이 가능하다.

인덱스의 단점

  • DB파일의 크기가 늘어난다.
  • 사용자가 한페이지를 동시에 수정할 수 있는 병행성이 줄어든다.
  • 필드에서 데이터를 업데이트,추가,삭제시 성능이 떨어진다.
  • 인덱스 생성에 자원이 소모된다.
  • 데이터 변경작업이 자주 일어날 경우 인덱스 또한 재작성이 되야하기에 성능이슈가 발생한다.

Unique Index

  • 컬럼에대한 중복값을 배제하고, 여러개의 컬럼으로 구성시 모두 값이 유일해야만 레코드 생성이 가능하다.

  • PK를 사용하지않을시 데이터모델에 대한 파악이 불분명하다. (NULL값 허용, 참조무결성 등)

장점

  • PK/FK가 존재하지않아 DBA가 DB를 관리하기쉽다.
  • 개발시점에 데이터제약이 없으므로 개발이 쉽다.
  • 성능향상이 이루어질 수도 있다.

단점

  • 데이터무결성을 보장하지않는다.
  • 관계가 일치하지않는다.
  • PK 구분이 불가능하다.

KEY

  • 검색이나 정렬시 Tuple(행)을 구분할수 있는 기준이 되는 Attribute(열)

  • Candidate Ley(후보키) : 릴레이션을 구성하는 속성들 중 Tuple을 유일하게식별할 수 있는 속성들의 부분집합.

    • 모든릴레이션은 1개이상의 후보키를 갖는다.
    • 유일성, 최소성을 만족해야한다.
    • 유일성 : key로 하나의 Tuple을 유일하게 식별함.
    • 최소성 : 꼭 필요한 속성으로만 구성.
  • Primary Key(기본키) : 후보키중 선택한 Main Key

    • 특정 튜플을 유일하게 구별할 수 있는 속성.
    • NULL 값을 허용하지않음.
    • 기본키로 정의된 속성은 동일한 값이 중복으로 저장될수 없다.
    • 유일성, 최소성, 개체무결성을 만족해야함.
    • 개체무결성 : 가지고있는 값의 유일성을 보장받아야한다.
  • Alternate Key(대체키) : 후보키가 둘 이상일때 기본키를 제외한 나머지 후보키

  • Super Key(슈퍼키) : 한 릴레이션내에 있는 '속성들의 집합' 으로 구성된 키

    • 유일성은 만족하지만 최소성은 만족 X
  • Foreignn Key(외래키) : 관계를 맺는 다른 테이블의 기본키

    • 참조관계를 표현하는중요한 도구, 기본키에없는 값을 참조되는 곳에서 입력불가능.

Primary Key와 Unique Index의 차이

  • 기본키는 제약조건이고 유니크인덱스는 인덱스이다.
  • 기본키는 암묵적으로 NULL 비허용을 가짐.
  • 유니크인덱스는 NULL을 허용함
  • PK에비해 개발과 유지보수에서 약간의 편리함을 제공함.
  • 데이터 무결성을 보장하지않기에 DB가아닌 다른단에서 보장해줘야함

정규화

  • 하나의 릴레이션에서 여러개의 애트리뷰트를 혼합하게되면 중복된 정보로 인해 이상현상(Anomaly)가 발생할 수 있다.
    이러한 문제를 초기에 예방하기위해 정규화과정을 거친다.
  • 데이터의 중복을 피하기위해 데이터를 구조화하고 분해하는 작업.

이상현상

  • 삽입이상(Insertiom Anomaly) : 데이터를 삽입하기위해 불필요한 데이터 생성이나 삽입이 필요한경우
  • 삭제이상(Deletion Anomalies) : 하나의 자료를 삭제하여 연관된 자료가 모두 삭제되는경우
  • 갱신이상(Modification Anomalies) : 데이터를 갱신시 일부만 갱신되어 데이터의 일관성이 깨지는경우.

제 1정규형

  • 애트리뷰트의 도메인이 오직 '원자값' 만을 포함하고 튜플의 모든 애트리뷰트가 도메인에 속하는 하나의 값을 지님.
  • 각 컬럼이 하나의 속성만을 가짐, 같은 종류나 타입의 값을 가짐.
  • 더 이상 값을 나눌수없을때 까지 나눠야한다.

제 2정규형

  • 모든 컬럼이 부분적 종속이 없고 완전 함수 종속을 만족해야한다.
  • 기본키의 부분집합이 결정자가 되면 안됌. X -> Y

제 3정규형

  • 기본키에 대해서 이행적으로 종속되어선 안됌.
  • A->B, B->C가 만족할때 A->C가 성립되어선 안됌.

BCNF(Boyce-codd Normal Form)

  • 여러후보키가 존재하는 릴레이션에 해당하는 정규화.
  • 모든 결정자가 후보키 집합에 속해있어야한다.

장점

  • 이상현상에대한 문제를 해결할 수 있다.
  • DB구조 재확장시 구조변경이 불필요하거나 일부만 변경후 재사용이가능하다.

단점

  • 릴레이션 분해로인한 JOIN연산이 많아진다.
  • 질의에대한 응답속도가 느려질수'도' 있다.

반정규화

  • JOIN구문이 많아져 성능저하가 발샐될경우 사용.
  • 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상 및 개발과 운영의 단순화를 위해 중복 통합, 분리 등을 수행하는 데이터 모델링 기법 중 하나
profile
70살까지 개발하고싶은 개발자

0개의 댓글