[기술면접준비] 데이터베이스

김혜민·2020년 11월 19일
0

기술면접 준비

목록 보기
6/6

데이터 베이스

사용하는 이유

  • 이전에는 파일 시스템을 이용하여 데이터를 관리 : 현재에도 부분적으로 사용
  • 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 앱과 상호연동이 되어야한다.
  • 이때 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성이다

데이터베이스의 특징

1. 데이터의 독립성

  • 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.
  • 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.

2. 데이터의 무결성

  • 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다.

3. 데이터의 보안성

  • 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현

4. 데이터의 일관성

  • 연관된 정보를 논리적 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.

5. 데이터 중복 최소화

  • 데이터베이스는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나의 자료의 중복과 데이터의 중복성 문제를 해결할 수 있다.

데이터베이스의 성능

  • 디스크 I/O를 어떻게 줄이느냐가 포인트
    디스크 I/O : 디스크 드라이브의 플래터(원판)을 돌려서 읽어야 할 데이터가 저장된 위치로 디스크 헤더를 이동시킨 다음 데이터를 읽는 것을 의미
  • 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정
  • 디스크의 성능은 디스크 헤더의 위치 이동없이 얼마나 만흔 데이터를 한번에 기록하느냐에 따라 결정된다.
  • 순차 I/O가 랜덤 I/O보다 빠를 수 밖에 없다.
  • 대부분의 I/O 작업이 랜덤 I/O이다

Index

index

  • 책의 맨 처음 또는 맨 마지막에 있는 색인
  • 데이터는 책의 내용이고 데이터가 저ㅈ아된 레코드의 주소는 인덱스 목록에 있는 페이지 번호가 될 것이다.
  • DBMS의 인덱스는 항상 정렬된 상태로 유지하기 때문에 원하는 값을 탐색하는데는 빠르지만, 새로운 값을 추가하거나 삭제, 수정하는 경우에는 쿼리문 실행 속도가 느려진다.
  • DBMS에서 인덱스는 데이터의 저장 성능을 희생하고 그 대신 데이터의 읽기 속도를 높이는 기능

index 자료구조

B+- Tree 인덱스 알고리즘

  • 일반적으로 사용되는 인덱스 알고리즘
  • 칼럼의 값을 변형하지 않고 원래 값을 이용해 인덱싱하는 알고리즘

Hash 인덱스 알고리즘

  • 칼럼의 값으로 해서 해시 값을 계산해서 인덱싱하는 알고리즘으로 매우 빠른 검색을 지원
  • 값을 변형해서 인덱싱하므로, 특정 문자로 시작하는 값으로 검색을 하는 등 전방 일치와 같이 값의 일부만으로 검색하고자 할 때는 해시 인덱스를 사용할 수 없다
  • 주로 메모리 기반의 데이터베이스에서 많이 사용

0개의 댓글