안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
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팀으로 변경이 되었을 때 정규화하지 않으면 몇 천개의 데이터들을 하나하나 수정해줘야 합니다.
단 한 글자만 바뀐 건데....ㅎ 만일 정규화하여 관리했다면 그냥 한 번만 바꿔주면 되겠죠?
이러한 이유 등으로 인해 정규화하여 데이터를 관리해줍니다.
'DataBase > Oracle' 카테고리의 다른 글
SQL) 기본 SQL 문법 종류 (DDL, DML, DCL, DQL, TCL) 정리 (0) | 2022.04.12 |
---|---|
자료형) 오라클의 구조, table의 구조(용어), DB의 자료형 (문자형,숫자형, 날짜형) (0) | 2022.04.12 |
계정 생성) 계정 생성 및 권한 부여 (0) | 2022.04.12 |
환경설정) SQL Developer 환경설정 및 파일 생성 방법 (0) | 2022.04.12 |
다운로드 방법) Oracle / SQL Developer 설치 방법 (0) | 2022.04.12 |