[CS스터디] DB(데이터베이스) 구조와 유형

김주희·2023년 8월 30일
0

내배캠 16주차 TIL

목록 보기
4/11

0. 컴퓨터와 데이터베이스

파일 시스템 VS 데이터베이스

  • 파일 시스템
    - 개별적인 파일들을 보관, 정리
    - 여러 폴더에 파일이 저장되고, 사용자가 직접 파일을 관리.
  • 데이터베이스
    - 데이터를 구조화하고 연결시키는 기능 제공.
    - 테이블, 레코드, 필드 등의 개념을 사용하여 데이터를 구성, 데이터를 효율적으로 관리하고 검색.
    - 데이터의 일관성, 무결성, 안정성 유지, 복잡한 데이터 조작 작업 간편하게 수행.

1. 데이터베이스

1-1. 데이터베이스 시스템 개요

데이터베이스 스키마

  • 전체적인 데이터베이스 구조를 의미. 자주 변경되지 않음.
  • 데이터베이스의 모든 가능한 상태를 미리 정의.

데이터베이스 상태

  • 특정 시점의 데이터베이스의 내용을 의미.
  • 데이터베이스에 수정이 일어날 때마다 상태가 바뀜.

데이터베이스 시스템(DBS)

  • DB, DBMS, USER(개발자, 사용자 등)를 포함한 가장 큰 범위

데이터베이스

  • 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임.

DBMS

  • 기능
    - 사용자가 새로운 데이터베이스 생성
    - 데이터베이스의 구조를 명시
    - 사용자가 데이터를 질의하고 수정할 수 있도록
    - 데이터를 안전하게 보호
    - 동시에 여러 사용자 접근하는 것 제어

1-2. 파일 시스템 vs DBMS

DBMS 단점

  • 추가적인 하드웨어 구입 비용이 들고, DBMS 자체의 구입 비용도 상당히 비쌈.
  • 직원들의 관리도구 사용법 교육 비용 많이 소요됨.
  • 비밀과 프라이버시 노출 등의 단점이 존재할 수 있음.

1-3. DBMS 발전 과정


1-4. DBMS 언어

1) 데이터 정의어 (DDL : Data Definition Language)

  • 데이터 모델에서 지원하는 데이터 구조를 생성 (예, SQL에서 CREATE TABLE)
  • 데이터 구조의 변경 (예, SQL에서 ALTER TABLE)
  • 데이터 구조의 삭제 (예, SQL에서 DROP TABLE)
  • 데이터 접근을 위해 특정 애트리뷰트 위에 인덱스를 정의 (예, SQL에서 CREATE INDEX)

2) 데이터 조작어 (DML : Data Manipulation Language)

  • 데이터의 검색 (예, SQL에서 SELECT)
  • 데이터의 수정 (예, SQL에서 UPDATE)
  • 데이터의 삭제 (예, SQL에서 DELETE)
  • 데이터의 삽입 (예, SQL에서 INSERT)

3) 데이터 제어어 (DCL : Data Control Language)

  • 사용자는 데이터 제어어를 사용하여 데이터베이스 트랜잭션을 명시하고 권한을 부여하거나 취소

1-5. DBMS 사용자

응용 프로그래머(개발자)

  • 프로그래밍 언어로 응용 프로그램을 개발하면서 데이터베이스를 접근하는 부분은 내포된 데이터 조작어를 사용

데이터베이스 관리자(DBA : Database Administrator)

  • 데이터베이스 관리자는 조직의 여러 부분의 상이한 요구를 만족시키기 위해서 일관성 있는 데이터베이스 스키마를 생성하고 유지하는 사람(팀)

오퍼레이터 (인프라팀)

  • DBMS가 운영되고 있는 컴퓨터 시스템과 전산실을 관리하는 사람

최종 사용자 (유저)

  • 질의하거나 갱신하거나 보고서를 생성하기 위해서 데이터베이스를 사용하는 사람

2. 데이터베이스 유형

2-1. 관계형 데이터 베이스 (SQL)

  • 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용
  • 중첩된 복잡한 구조가 없음
  • 집합 위주로 데이터를 처리
  • 숙련되지 않은 사용자도 쉽게 이해할 수 있음
  • 표준 데이터베이스 응용에 대해 좋은 성능을 보임

2-2. 비관계형 데이터 베이스 (NoSQL)

  • 분산 환경에서의 데이터 처리를 더욱 빠르게 하기 위해 개발됨.
  • 관계형 db와 달리 PK,FK JOIN등 관계를 정의하지 않음.
  • 스키마에 대한 정의가 없음.

2-3. SQL vs NoSQL

1) SQL 사용이 적합한 경우

  • 데이터베이스의 ACID 성질을 준수해야 하는 경우
  • 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우

2) NoSQL 사용이 적합한 경우

  • 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
  • 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
  • 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경우
profile
꾸준히 하자

0개의 댓글