본문 바로가기
DataBase/Oracle

DB) DB의 정의, 특징, DBMS, RDBMS, 정규화

by 박채니 2022. 4. 12.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


Database 개요

Data란?

- 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값 의미

 

정보란?
- 데이터를 기반으로 하여 의미를 부여한 것

예) 에베레스트 높이 : 8848m (Data)

      에베레스트는 세계에서 가장 높은 산이다. (정보)

 

☞ Database란?

- 한 조직에 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록 논리적으로 연관된 데이터의 모음

- 중복되는 데이터를 최소화하여 구조적으로 통합/저장해놓은 것

 

Database의 정의

① 운영 데이터 (Operational Data) : 조직의 목적을 위해 사용되는 데이터

② 공용 데이터 (Shared Data) : 공동으로 사용되는 데이터

③ 통합 데이터 (Integrated Data) : 중복을 최소화하여 중복으로 인한 데이터 불일치 현상 제거

④ 저장 데이터 (Stored Data)  : 컴퓨터 저장장치에 저장돤 데이터

 

Database 특징

① 실시간 접근성 (real time accessibility)

  : 사용자가 데이터를 요청하면 실시간으로 결과를 서비스

② 계속적인 변화 (continuous change)

  : 데이터 값은 시간에 따라 항상 바뀜

③ 동시 공유 (concurrent sharing)

  : 서로 다른 업무 또는 여러 사용자에게 동시 공유됨

④ 내용에 따른 참조 (reference by content)

  : 데이터베이스에 저장된 데이터는 데이터의 물리적 위치가 아니라 데이터 값에 따라 참조

 

☞ DBMS(DataBase Management System)란?

- 데이터베이스에서 데이터를 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램

DBMS의 기능

① 데이터 추출 : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터 추출

② 데이터 조작 : 소프트웨어가 요청하는 데이터의 삽입, 수정, 삭제 작업 지원

③ 데이터 정의 : 데이터의 구조를 정의하고, 데이터 구조에 대한 삭제 및 변경 기능 수행

④ 데이터 제어 : 데이터베이스 사용자 생성, 모니터링하며 접근 제어, 백업과 회복/동시성 제어 등의 기능 지원

 

☞ 관계형 데이터베이스 : RDBMS

특징

데이터를 쪼개어 (정규화) 관리

사원들을 관리하는 테이블을 하나 만들어서 정규화가 어떤 의미인 지 알아보겠습니다.

-- 테이블 조회 sql문
select * from employee;

 

select * from department;

 

select * from location;

 

select * from nation;

 

select * from job;

 

select * from sal_grade;

데이터들을 하나하나 살펴보면 알 수 있듯이, 부서/국가/직급/연봉 등의 데이터들을 나눠서 관리하고 있다는 것을 알 수 있습니다.

굳이 데이터를 나눠서 관리해야 하는가에 대한 의문이 들 수 있습니다.

나누지 않고 처음부터 곧이 곧대로 쓰면 안되나 라는 생각이 저는 들었습니다....^^

 

데이터를 정규화하여 표현하는 이유는,

데이터 저장 공간 절약 혹은 관리의 편리성 때문입니다.

 

영문은 한 글자 당 1byte이지만, 한글은 한 글자 당 무려 3byte를 차지 합니다.

직급 중 D5 (해외영업1부)을 예로 들어보겠습니다.

D5 → 2byte

해외영업1부 → 16byte

같은 부서를 가리키고, 의미하지만 차지하는 데이터는 정말 많이 차이가 나죠..

만일 관리해야하는 데이터가 5000개라면 엄청난 메모리의 소비가 이루어지게 됩니다.

 

또한, 만일 부서명이 해외영업1부에서 해외영업1팀으로 변경이 되었을 때 정규화하지 않으면 몇 천개의 데이터들을 하나하나 수정해줘야 합니다.

단 한 글자만 바뀐 건데....ㅎ 만일 정규화하여 관리했다면 그냥 한 번만 바꿔주면 되겠죠?

 

이러한 이유 등으로 인해 정규화하여 데이터를 관리해줍니다.