데이터베이스
데이터베이스란?
창민이 개발일지
2022. 6. 17. 09:49
데이터베이스
![]() |
![]() |
- 출처: https://hongong.hanbit.co.kr/데이터베이스-이해하기-databasedb-dbms-sql의-개념/ [혼공]
- 출처: https://deftkang.tistory.com/38 [deftkang의 IT 블로그]
- 방대한 데이터를 효율적으로 관리하기 위해 컴퓨터에 통합.저장한 것으로, 데이터베이스관리시스템(DBMS)이라는 프로그램을 이용하여 관리한다.
- 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합
- 자료항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높인다.
데이터베이스 특징
- 응용 시스템 들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임
- 데이터베이스 구조는 데이터 모델에 의해 결정된다.
- 관계형
- 계층형
- 망형
- 모든 데이터가 중복을 최소화
- 한 attribute마다 제약조건을 달아 무결성을 유지한다. ex) INTEGER != TEXT
- 데이터베이스는 운영 데이터 뿐만 아니라 그 데이터에 관한 설명(scheme : 데이터베이스 구조 또는 metadata: 데이터 설명)까지 포함
- 프로그램(op_code)과 데이터(operand) 간의 독립성 유지-> 프로그램에 영향을 주지 않으면서 데이터베이스 구조를 변경할 수 있음.
- 효율적으로 접근이 가능하고 질의를 할 수 있음
- 시스템 카탈로그(데이터 사전:scheme:논리적) 와 데이터베이스(데이터 파일:block:물리적)로 구분
- 사용자의 질의를 빠르게 수행할 수 있는 인덱스 등의 접근 경로를 DBMS가 자동적으로 선택하여 수행.
- 동시성 접근및 동시성 제어
- DBMS는 다중 프로그래밍의 개념을 이용하기 때문에 한 트랜잭션을 실행하는 중에 다른 트랜잭션이 끼어들어 실행할 수 있다.
- transition은 많은 질의문을 묶어 하나의 작업을 수행하는 단위로서, 하나의 thread이다.
- transition은 thread이고 dbms는 다중 프로그래밍이여서 동시에 작업이 가능하다.
- 하지만 그로인해 데이터의 무결성이 깨지게 되고 신뢰성이 없는 데이터들로 꽉 차게 될 수 있다.
데이터 모델
- 데이터 모델이란 데이터를 저장하고 접근하는 방식을 개념적으로 정의한 것
- 데이터를 어떤 형태로 저장 및 저장된 데이터 중 원하는 데이터에 접근하기 위해서는 어떤 방식을 사용할 것인지를 구조적으로 추상화된 모형
- 1세대 데이터모델: 계층형 DBMS, 네트워크형 DBMS
- 2세대 데이터모델: 관계형 DBMS
- 3세대 데이터모델: 객체지향형 DBMS
- 4세대 데이터모델: NoSQL DBMS
- 사실상 현재 사용되는 데이터 모델은 관계형 DBMS와 NoSQL 두 모델만 사용된다.
Hierarchical DBMS(계층형)
- 레코드와 링크로 구성된 트리 형태의 구조로 조직된 것을 뜻함.
- 반복적인 부모-자식 관계 정보를 표현
- 오늘날의 데이터베이스들에서 거의 쓰이지 않지만 정보를 기록하는 기법은 다른 곳에서 쓰이고 있다.(파일 시스템, xml문서,...)
Network DBMS(네트워크형)
- 그래프 구조를 기반으로 한다.
- 레코드를 노드로 나타내고, 레코드와 레코드의 관계는 간선으로 나타낸다.
- 설계가 복잡하고 데이터 종속성 문제가 있어 구조를 변경하기 어려워 확장성이 떨어진다.
Relational DBMS(관계형)
- 행과 열로 구성된 2차원 테이블에 데이터(레코드)를 저장한다.
- 테이블은 고유한 이름을 가지며, 데이터베이스에서 표현하는 하나의 엔티티에 관한 정보를 저장.
- 노드(레코드)간의 링크 또는 간선등이 없어 구조를 변경하기 쉽다.
- 현재까지 가장 많이 사용되는 데이터 모델.
OODBMS(Object-Oriented-DBMS: 객체지향형)
- 정보를 객체의 형태로 표현하는 데이터베이스 모델.
- Java나 C++ 같은 객체 지향 프로그래밍의 패러다임을 기반으로 한다.
- 데이터를 각각의 독립된 객체로 하여 상속 등의 개념을 도입
NoSQL DBMS(Not-Only-SQL DBMS)
- 비정형 데이터를 저장하고 처리하는데 적합
- 대용량 데이터의 읽기와 쓰기에 강점을 지님
- 스키마에 대한 정의가 없다.
- 빅데이터와 실시간 웹 애플리케이션의 상업적 이용에 널리 쓰임
- 특성: Key-value, Document등