본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


RDBMS

DBMS 공부 1 - DMBS 기초

반응형
T아카데미 데이터베이스 기초 강의를 요약한 내용입니다.

1. DBMS 란?

  • 데이터베이스를 관리하는 시스템
  • 데이터를 저장하고 유지보수하고 이를 검색하는 시스템
  • 대량의 데이터를 처리하는 시스템
  • 다양한 자료구조와 검색구조(소팅 , 인덱식)을 사용해 빠른 검색 가능
  • 대부분의 시스템은 R (검색) >> >> CUD(업데이트)의 빈도수가 많다 (반대의 경우 NoSQL과 같은 다른 기술들이 필요하다 )
  • 검색에 최적화 되어있다

정렬

  • 빠른검색을 위해서는 데이터는 반드시 정렬(Sorting)되어 있어야 한다.  
  • 정렬 되어 잇지 않다면 평균적으로 전체 데이터의 절반의 시간이 필요하다 (최선 : 1 , 최악 : N  , 평균:N/2)
  • 정렬되어 있다면 데이터를 빠른 시간안에 찾을 수 있다 (O(NlogN)-ON²)
  • 퀵정렬/힙정렬 계열이 주로 사용된다.

인덱스

 

 -B-Tree 계열검색을 위해 미리 만들어 놓는 자료구조를 말한다.

 

검색에 사용되는 2가지 방식

 

이진검색 (Binary Search)

  •  최대 log₂(N)번 내에 검색이 가능하다 (아래의 예로는 데이터는 10개가 존재하기때문에  2ᴺ>10 인값은 최대 검색 수는 4번)
  •  데이터를 절반으로 나누며 검색한다 . 
  • 데이터를 나누는 특정 기준점이 되는 값들을 인덱스라 한다 (아래의 예시로는 절반이되었던 지점들)
  • 데이터가 추가 / 삭제 / 변경될 대마다 인덱스 값도 변경 되어야 한다
ex) 1~10 까지가 정렬 되있다 할때 9가 찾고 싶다고 가정한다면 전체 데이터에서 한가운데에서 5을 찾고 뒤쪽에서의 절반을 나눠 8 다시 뒤쪽 절반을 나눠 9를 찾게된다.

 

B-Tree 계열

  •  최대 log₃(N)번 내에 검색이 가능하다 
  •  상용 DBMS에서 가장 일반적으로 많이 사용된다.
  • 이진 검색과 유사하지만 한번에 비교를 3번한다.
  • 작은 값보다 작은경우 x < a
    큰 값과 작은 값 사이인 경우  a < x < b
    큰 값보다 큰 경우 x > b

2. DBMS의 종류

  • 계층형 데이터베이스 
  • 네트워크형 데이터베이스
  • 관계형 데이터베이스 (RDBMS)
  • 객체지향 데이터베이스
  • 객체관계형 데이터베이스 (ORDBMS)
  • NoSQL(Not Only SQL)

3. RDBMS 란?

  • 관계형 데이터베이스 시스템을 말한다.
  • 테이블끼리의 중복정보는 최소화시켜야한다.(정규화 Nomarlize)
  • 테이블 기반의 DBMS이다 (테이블-컬럼형태의 데이터 저장 방식 , 테이블과 테이블 간의 연관관계(주로 외래키 형태)를 이용해 필요한 정보를 구한다.)
  • 모델링은 E-R(Entity Relationship) 모델을 사용한다.
  • 테이블을 엔티티(기본)와 릴레이션십(유도) 테이블로 구분하는 방식이다
  • 연관관계의 테이블을 join 문을 통해 필요한 정보를 뽑아낼 수 있다.

RDBMS 기본 용어 

스키마(Schema) - DB , 테이블 정의 내역
SQL 쿼리 - 관계형 DBMS를 사용하는 전용 질의언어 
- 대소문자를 가리지 않는다
기본키(Primary key) - 테이블에서 하나의 레코드를 지정할 수 있는 하나 이상의 컬럼집합
예) 주민등록번호 , SSN(Social Security Number)
외래키(Foreign Key) - 어떤 테이블의 기본키가 다른 테이블의 컬럼에 들어 있을 경우
테이블  - 정보들의 묶음단위
컬럼 - 테이블을 구성하는 정보들
레코드 - 테이블에 들어 잇는 여러가지 인스턴스 하나하나를 말한다
- 기본키로 구별가능
도메인 값(Domain Value) - 각 컬럼에서 나올 수 있는 후보값

 

반응형