데이터베이스

·2022년 11월 21일
0

TIL

목록 보기
37/46

컴퓨터에 체계적으로 저장한 데이터를 데이터베이스(Database)라 하며, 데이터베이스를 관리하는 시스템을 DBMS(DataBase Management System)라 한다. 'DBMS'와 '데이터베이스'라는 용어는 크게 구분하지 않고 사용된다.

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

파일 시스템은 원시 데이터 파일을 컴퓨터의 하드 디스크 등에 저장하는 시스템이다. 중복 데이터가 많이 발생하고 데이터의 일관성이 떨어지며 보안, 백업·복구가 불편한 문제가 있었다

데이터베이스는 그러한 파일 시스템의 단점을 보완하고 데이터의 모델링, 무결성, 다수 사용자를 위한 동시성 제어 등을 제공한다

데이터 레이크, 데이터 웨어하우스, 데이터 마트

  • 데이터 레이크(Data Lake): 정형 및 비정형(소셜, 센서, 이미지, 동영상 등)의 다양한 형태의 원시 데이터를 모은 저장소의 집합
  • 데이터 웨어하우스(Data Warehouse): 데이터 분석을 효율적으로 수행하기 위한 OLAP(온라인 분석 처리) 데이터베이스와 같이 데이터베이스로부터 가져온 데이터의 계층을 생성한다. 주제 중심적이고 비휘발성의 특징을 갖는다
  • 데이터 마트(Data Mart): 특정 부서의 의사 결정 지원을 목적으로 하는 부서별 또는 부분별 데이터 웨어하우스. 분석 요건을 중심으로 한 요약 데이터로 구성된다

데이터베이스의 종류

데이터베이스는 데이터를 바라보는 관점에 따라 관계형 데이터베이스, 계층형 데이터베이스, 그래프 데이터베이스 등으로 나눌 수 있다

관계형 데이터베이스(Relational Database)

관계형 데이터베이스는 데이터를 관계(relation)로 나타낸다

일반적으로 DBMS라고 하면 RDBMS(Relational DBMS)를 가리킨다. 오라클 데이터베이스 서버, 마이크로소프트 SQL 서버, MySQL과 MariaDB, PostgreSQL 등이 이에 해당한다

SQLite: SQLite는 가장 널리 사용되는 데이터베이스 엔진으로2, 임베디드 디바이스, 사물 인터넷, 데이터 분석, 작은 규모의 웹사이트에 사용하기 적합하다

SQLite 특징

  • SQLite는 임베디드 SQL 데이터베이스 엔진으로 독립적인 서버 프로세스를 갖지 않는다
  • 설치 과정이 없고 설정 파일도 존재하지 않는다
  • 테이블, 인덱스, 트리거, 뷰 등을 포함한 완전한 데이터베이스가 디스크 상에 단 하나의 파일로 존재한다
  • 퍼블릭 도메인5으로서 개인적 또는 상업적 목적으로 사용할 수 있다

계층형 데이터베이스(Hierachical Database)

계층형 데이터베이스는 데이터를 계층적인 트리(tree)로 표현한다. 데이터는 레코드(record)로서 저장되며 레코드들은 링크(link)를 통해 연결된다. 레코드는 필드(field)들의 모음이며 필드는 단일한 값을 갖는다

그래프 데이터베이스(Graph Database)

그래프 데이터베이스는 데이터를 그래프 형태로 표현한다

💡 NoSQL
근래에 들어 관계형 데이터베이스 모델을 벗어난 몽고DB(MongoDB), 카산드라(Cassandra), Neo4J 등을 NoSQL로 통칭한다

relation, tuple, attribute

관계형 데이터베이스에서는 데이터를 ‘관계’로 나타내며, 이는 ‘테이블’로 구현된다. ‘행’과 ‘열’에 해당하는 것을 ‘튜플’과 ‘속성’이라는 용어로 가리킨다. ‘레코드’와 ‘필드’라는 용어도 많이 사용한다

relation(관계, 릴레이션) = table(테이블)
tuple(튜플)= row(행, 로우) = record(레코드)
attribute(속성, 어트리뷰트) = column(열, 컬럼, 칼럼) = field(필드)

스프레드시트

1) 소프트웨어 애플리케이션이다
2) 행(row)과 열(column)의 형식으로 데이터를 구조화한다
3) 정보를 셀(cell)에 조직화(organize)한다
4) 제한적인 양의 데이터에 대한 액세스를 제공한다
5) 수동으로 데이터를 입력한다
6) 일반적으로 한 번에 한 명의 사용자
7) 사용자에 의해 통제된다

데이터베이스

1) SQL과 같은 질의 언어(query language)를 사용해 액세스하는 데이터 스토어(data store)다
2) 규칙(rule)과 관계(relationship)로 데이터를 구조화한다
3) 정보를 복합적인 컬렉션에 조직화한다
4) 대량의 데이터에 대한 액세스를 제공한다
5) 엄격하고 일관적인 데이터 입력
6) 다중 사용자
7) 데이터베이스 관리 시스템(database management system)에 의해 통제된다

0개의 댓글