[데이터베이스] 01. 데이터베이스 시스템의 기본 개념과 세부 요소를 파악해 보자

“데이터베이스 개론”을 읽으며 공부한 내용들을 정리한다!

데이터베이스 시스템의 정의와 구성요소

이미지 출처

데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다.

전체적인 구조는 위와같이 사용자, 데이터언어(SQL), 데이터베이스 관리 시스템(DBMS), 데이터베이스로 이루어 진다.

데이터베이스

정의

특정 조직의 여러 사용자가 공유해서 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합이다.

즉, 여러 사용자가 함께 소유하고 이용할수 있는 공용데이터이고, 중복성을 최소화한 통합데이터이며, 저장하여 보관하고, 지속적으로 유지하눈 운영 데이터이다.

구조

  • 스키마 : 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것

  • 인스턴스 : 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값

  • 3단계 구조

이미지 출처

  • 외부 스키마(외부 단계)

개별사용자가 사용자의 필요에의해 생각하여 정의한 데이터베이스를 표현한 논리적 구조이다.

  • 개념 스키마(개념 단계)

데이터베이스 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스를 표현한 논리적 구조이다.

  • 내부 스키마(내부 단계)

저장 장치의 관점에서 전체 데이터베이스가 실제로 저장되는 방법을 정의한 구조이다.

데이터

  1. 정형데이터

구조화된 데이터로서 미리 정해진 구조에 따라 저장된 데이터이다. (ex. 엑셀의 스프레드시트)

  1. 반정형데이터

데이터 내용안에 구조에대한 설명이 함께 존재하며 파싱과정이 필요하고 주로 웹에서 데이터를 교환할때나 로그, 센서데이터에 많이 쓰인다. (ex. JSON, XML)

  1. 비정형데이터

정해진 구조가 없는 데이터이다. 최근 SNS의 발달로인해 많이 발생한다. (ex. 영상, 이미지, 멀티미디어 데이터)

데이터베이스 관리 시스템(DBMS)

정의

파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어로, 필요한 데이터를 데이터베이스에 통합하여 저장하고 이를 관히하는 시스템이다.

주요기능은 데이터베이스의 구조를 정의하는 정의 기능, 데이터를 삽입,삭제,수정,검색하는 조작 기능, 데이터를 정확하고 안전하게 유지하는 제어기능이 있다.

데이터의 중복을 최소한으로 유지하고, 독립성을 확보하여 무결성을 유지할 수 있게한다. 또한 접근권한을 제어하여 데이터의 보안을 강화할 수 있다는 장점이 있다.

발전과정

네트워크 DBMS > 관계 DBMS > 객체지향 DBMS > NoSQL DBMS > NewSQL DBMS

  • 관계 DBMS(RDBMS)

데이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용하여 테이블과 테이블 간의 연관관계(주로 외래키형태)를 이용해 필요한 정보를 구하는 방식을 사용한다. 또한 정규화를 통해 데이터 중복문제를 개선 할 수 있고, 독립성과 무결성 유지에 도움을 줄 수 있다. (ex. 오라클, MySQL, 엑세스)

  • NoSQL DBMS

데이터 구조를 미리 정해두지 않기 때문에 비정형 데이터를 저장하고 처리하는데 적합한 DBMS이다. 안정성과 일관성 유지를 위한 복잡한 기능을 포기하였지만 그로인해 뛰어난 확장성과 유연성을 가지고 있다. (ex. MongoDB, HBase, 레디스)

  • NewSQL DBMS

RDBMS의 안정성과 일관성을 유지하면서 NoSQL의 확장성과 유연성을 가지고 있어 다양하고 복잡한 데이터 처리를 편리하게 요청할 수 있다. 따라서 비정형, 정형 데이터를 빠르게 처리할 수 있다. (ex. 구글 스패너, 볼드DB, 누오DB)

구성

이미지 출처

사용자

데이터베이스 관리자

데이터베이스 시스템을 운영, 관리 하는역할이다. 주로 DDL, DCL을 사용하여 데이터베이스를 유지 보수한다. 또한 데이터 사전과 같은 시스템데이터베이스를 관리하며, 시스템 성능을 저해하는 여러현상(병목현상..)을 감시하고 해결한다.

최종 사용자

데이터를 조작(삽입,삭제,수정,검색)하기 위해 데이터베이스에 접근한다. 주로 DML을 사용하여 필요한 데이터에대한 처리를 하며 직접 SQL을 사용하지 않더라도 GUI로 구현된 응용 프로그램을 사용하기도 한다.

응용 프로그래머

프로그래밍 언어를 사용하여 데이터베이스에 접근할 수 있는 응용프로그램을 개발한다. 사용자의 요구에 맞게 데이터를 활용하는 여러 기능을 구현한다.

데이터 언어(SQL)

데이터 정의어(DDL)

새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 수정하기 위해 사용하는 데이터 언어이다.

CREATE table : 테이블 생성

ALTER table : 수정

DROP table : 삭제

데이터 조작어(DML)

사용자가 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 데이터베이스에 요청하기 위한 데이터 언어이다.

SELECT : 데이터 검색

INSERT : 데이터 삽입

UPDATE : 데이터 수정

DELETE : 데이터 삭제

데이터 제어어(DCL)

데이터베이스에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 공유할 수 있도록 내부적으로 필요한 규칙이나 기법을 정의하는데 사용되는 데이터 언어이다.

GRANT : 권한 부여

REVOKE : 권한 회수

COMMIT : 작업 저장

ROLLBACK : 이전 과정으로 복구


© 2020. All rights reserved.