3.1-3.2 데이터베이스의 종류, 관계형 데이터베이스

2024. 8. 19. 16:36·CS공부/데이터베이스

3.1.1 데이터베이스란

  • 사용자나 프로그램에서 사용하기 위해 저장 및 관리하는 데이터 집합
  • 특징
    • 실시간 접근: 데이터베이스에 언제든지 접근해 필요한 처리를 할 수 있음
    • 동시 공유: 여러 사용자가 데이터베이스에 접근할 수 있음
    • 지속적 변화: 데이터의 갱신, 삽입, 삭제 등을 통해 계속해서 변화
    • 내용 기반 참조: 데이터의 값을 이용해 데이터에 접근할 수 있음
  • 구성
    • 개체(entity): 데이터로 표현하려는 대상을 의미, 하나 이상의 속성으로 구성
    • 속성(attribute): 개체의 특성과 상태를 나타내며 데이터베이스를 구성하는 가장 작은 논리적 단위
    • 관계(relationship): 개체 간에 어떤 관련이 있는지를 나타내며 주로 동사로 표현

스키마(schema)

  • 데이터베이스의 전체적인 구조와 제약 조건을 명시하기 위해 사용
  • 내부 스키마: 사용자 측면에서 데이터베이스의 전체 구조
  • 개념 스키마: 데이터베이스의 전체 구조
  • 외부 스키마: 물리적 저장장치 측면에서 데이터베이스의 구조

 

3.1.2 관계형 데이터베이스

  • 데이터가 2차원 테이블에 저장되며 데이터의 구조와 데이터 간 종속성을 알 수 있음
  • 스키마를 바탕으로 데이터베이스의 구조를 정의
  • 스키마는 개체-관계 다이어그램 또는 문자열로 표현
  • 릴레이션: 관계형 데이터베이스에서 데이터의 개념적 모델
  • 테이블: 릴레이션을 실제로 구현한 개체

3.1.3 NoSQL 데이터베이스

  • 비관계형 데이터베이스로 보다 유연한 형태의 데이터베이스를 의미

NoSQL의 종류별 특징

3.2.1 키

  • 데이터베이스에서 튜플을 구분하기 위한 속성 또는 속성의 집합
  • 유일성과 최소성이라는 두 가지 특성을 가질 수 있음
    • 유일성: 하나의 키 값으로 튜플을 식별할 수 있는 특성
    • 최소성: 튜플을 식별하는 데 필요한 속성만으로 이루어져있는 특성
  • 종류
    • 슈퍼키: 튜플을 식별할 수 있어서 유일성은 만족하지만, 최소성을 만족하지 않아도 됨
    • 후보키: 튜플을 식별할 수 있는 유일성과 필요한 속성만으로 구성되는 최소성을 만족해야함
    • 기본키: 후보키 중에서 메인이 되는 키로 NULL값을 가지면 안됨
    • 대체키: 후보키 중 기본키를 제외한 키
    • 외래키: 다른 테이블의 기본키를 참조하는 키

3.2.2 무결성

  • 데이터베이스에 저장된 데이터와 실제 데이터가 일치하는 정확성과 데이터가 일정하게 유지되는 일관성을 의미
  • 종류
    • 개체 무결성: 모든 테이블이 기본키를 가져야함. 기본키는 null이 될 수 없으며 중복되지 않고 고유한 값을 가져야함
    • 도메인 무결성: 테이블의 속성 값은 도메인에 속해야함. 도메인은 속성이 가질 수 있는 값의 집합을 의미
    • 참조 무결성: 외래 키의 값은 참조하는 테이블의 기본 키 값과 동일하거나 NULL이어야 함

3.2.3 인덱스

  • 데이터베이스에서 튜플의 검색 성능을 높이기 위해 속성 값과 튜플이 저장된 주소를 저장하는 것
  • 키-값 형태로 '속성 값-튜플 주소'를 인덱스 테이블에 저장
  • 인덱스 테이블은 속성값을 기준으로 정렬 상태를 유지
  • 장점: 인덱스 테이블에 데이터가 정렬되어 있어서 검색 속도가 빠름
  • 단점: 인덱스 테이블을 저장하기 위한 추가 공간이 필요, 정렬된 상태를 유지하기 위해 데이터를 추가, 수정, 삭제하는 경우 속도가 느림
  • 따라서 데이터 양이 방대하며 데이터 변경보다는 검색을 자주하는 경우 인덱스를 사용하는 것이 유리

해시 테이블 인덱스

  • 해시 테이블: 속성 값으로 해시 값을 계산해 인덱싱하는 방법
  • 해시 함수의 특성상 속성 값을 그대로 검색해야해서 검색하려는 값을 온전히 입력할 때만 사용 가능
  • 검색속도는 빠르지만 주로 사용하지 않음

B+- 트리 인덱스

  • 인덱스 테이블을 구현할 때 B+트리 인덱스 또는 B-트리 인덱스 방식을 많이 사용
  • B는 Balanced의미
  • B+ 트리는 단말 노드에만 데이터를 저장하고 단말 노드 간에는 연결리스트로 연결되는 방식

  • B- 트리는 모든 노드에 데이터가 저장되는 방식

3.2.4 ORM

  • Object-Relational Mapping
  • 객체와 관계형 데이터베이스를 매핑하는 도구

  • 데이터베이스를 프로그래밍언어의 객체 관점으로 바라볼 수 있어서 객체 지향 프로그래밍 언어를 이용해 프로그램을 개발할 때 편리
  • SQL문을 사용하지 않고 객체 지향적 코드를 작성할 수 있어서 코드의 가독성을 높이고 편의성을 증대할 수 있음
  • EX) 자바의 하이버네이트, 파이썬의 장고, 루비의 액티브 레코드

'CS공부 > 데이터베이스' 카테고리의 다른 글

3.3-3.4 트랜잭션, 조인  (0) 2024.08.19
'CS공부/데이터베이스' 카테고리의 다른 글
  • 3.3-3.4 트랜잭션, 조인
Jaemin0604
Jaemin0604
정재민님의 블로그 입니다.
  • Jaemin0604
    정재민님의 블로그
    Jaemin0604
  • 전체
    오늘
    어제
    • 분류 전체보기 (23)
      • 알고리즘 (9)
      • 자료구조 (3)
      • 코딩테스트 (1)
        • 백준 (1)
        • 프로그래머스 (0)
      • CS공부 (7)
        • 운영체제 (2)
        • 네트워크 (2)
        • 데이터베이스 (2)
        • 자료구조 (1)
        • 알고리즘 (0)
      • 프로그래밍 언어 (3)
        • Java (3)
        • Swift (0)
      • 백엔드 개발 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Jaemin0604
3.1-3.2 데이터베이스의 종류, 관계형 데이터베이스
상단으로

티스토리툴바