본문 바로가기
책 리뷰/Doit! 오라클로 배우는 데이터베이스 입문

[Chapter1] Do it! 오라클로 배우는 데이터베이스 입문 - 데이터베이스

by 조조링 2021. 9. 18.
728x90
반응형
다음 내용들은
책 제목 : Do it! 오라클로 배우는 데이터베이스 입문
출판사 : 이지스퍼블리싱
를 참고하여 작성하였음을 미리 말씀드립니다! ( 사진에 링크 연결 )

 

 

DBMS; Database Management System; 데이터베이스 관리 시스템 

 

01-1 데이터와 데이터베이스, DBMS

데이터와 정보

데이터베이스 분야에서 데이터(data)와 정보(information)는 다른 의미로 해석한다. 

흔히 데이터는 원석, 정보를 보석으로 비유한다. 

 

데이터(data)

어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값이나 사실 또는 자료 자체를 의미

 

정보(information)

수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과

즉, 목적의 유무와 가치의 차이로 볼 수 있을 것 같다. 

 

그러면 수집한 데이터의 보관 방법에 대해 알아보겠습니다. 

데이터 중 일부는 엑셀 같은 스프레드시트 파일에 나누어 저장하고, 일부는 특정 프로그램으로 관리하는 파일에 저장하고, 또 다른 일부는 실제 종이 문서에 기록해 캐비닛에 보관한다고 해봅시다. 

 

이와 같이 여러 가지 방법으로 수집한 데이터는 분석을 위한 통합 작업만으로도 시간과 비용이 많이 듭니다. 

즉, 필요한 데이터를 찾아내는 게 쉽지 않을 겁니다. 

 

데이터 보관이 제대로 되지 않는다면 정확한 분석 또한 기대할 수 없고, 비싼 비용과 많은 시간을 투자한 분석이 실패하게 됩니다.

따라서 가치 있는 정보를 얻기 위해서는 조건에 맞게 데이터를 효율적으로 수집 및 통합하여 관리해야 합니다.

 

## 효율적인 데이터 관리를 위한 조건 ##

1. 데이터를 통합하여 관리

2. 일관된 방법으로 관리

3. 데이터 누락 및 중복 제거

4. 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능 

 

위 조건을 만족하면서 특정 목적을 위해 여러 사람이 공유하여 사용할 수 있으며,

효율적인 관리와 검색을 위해 구조화한 데이터 집합을 '데이터베이스'라고 합니다. 

 

 

파일 시스템과 DBMS

데이터베이스 개념이 나오기 전에는 파일 시스템 방식을 사용하여 데이터를 관리했다. 

파일 시스템은 서로 다른 여러 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 각각 저장하고 관리한다. 

따라서 각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락이 발생할 수 있다. 

 

ex. 학사프로그램 => 학사 프로그램에서 관리하는 데이터

학번 이름 학과 학년 학기 상태
2018-00001 홍길동 철학과 1 2 군휴학
2018-00002 이수선 컴퓨터공학과 4 2 졸업

    장학금 신청 프로그램 => 장학금 신청 프로그램에서 관리하는 데이터 

신청 장학금 종류 신청 일자 학번 재학 상태 장학금 신청 가능 여부
국가 20180409 2018-00001 군 휴학 신청불가
성적 20180310 2018-00002 재학 신청가능

위와 같이 파일 시스템 방식으로 여러 응용 프로그램들이 각자 데이터를 관리하면 어떤 문제점이 발생할까?

이 두 프로그램은 학생의 졸업 여부에 관련된 데이터를 각 파일에 저장하고 있다. (상태/재학 상태)

 

만약 이수선 학생이 학사 프로그램에는 졸업생으로 등록되어 있지만 장학금 신청 프로그램에는 졸업했다는 내용이 누락되어 있다면, 실제로는 졸업생으로 분류된 학생도 장학금을 신청할 수 있는 상황이 발생한다. 

이러한 현상은 한생의 재학 상태를 관리하는 데이터가 각 응용 프로그램별로 흩어져 있기 때문에 발생한다. 

 

즉, 이러한 문제를 해결하기 위해서는

여러 응용 프로그램에서 관리하는 데이터를 한 곳에 모아 관리하고, 이렇게 한 곳에 모아둔 데이터를 각각의 응용프로그램이 함께 사용하면 응용프로그램별로 데이터를 직접 관리할 때 발생할 수 있는 데이터의 오류, 누락, 중복 등의 문제를 해결할 수 있다. 

이렇게 여러 응용 프로그램이 사용할 데이터를 한곳에서 관리하기 위해 데이터베이스를 활용한다. 

 

 

  1). 효율적인 데이터 관리 조건을 만족 2). 서비스 제공의 효율성 높이기 위해 DBMS 등장 

  데이터베이스를 통한 데이터 관리란 여러 목적으로 사용할 데이터의 접근, 관리 등의 업무를 DBMS가 전달하는 방식을 말한다. 

파일 시스템 방식의 문제 -----------> DBMS를 통한 데이터 관리
데이터 중복 하나의 소프트웨어가 데이터를 관리하므로 데이터 중복을 피할 수 있음
응용 프로그램이 개별 데이터를 직접 관리 여러 응용프로그램이 하나의 DBMS를 통해 데이터를 사용하므로 데이터를 동시에 공유할 수 있음
응용 프로그램이 데이터를 쓰는 방식이 각각 다름 하나의 DBMS를 통해 데이터를 관리하기 때문에 각각의 응용 프로그램이 데이터를 관리하는 방식이 통합됨
데이터가 특정 응용 프로그램에 종속되어 있으므로 응용 프로그램을 변경하면 기존 데이터를 사용할 수 없음 응용 프로그램과는 별도로 데이터가 DBMS에 의해 관리,보관되기 때문에 응용 프로그램의 업데이트 또는 변경과 관계없이 데이터를 사용할 수 있음 

 

 

01-2 데이터 모델

 

계층형 데이터모델

계층형 데이터 모델은 나뭇가지 형태의 트리 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리한다.

이 모델에서 데이터가 저장된 파일은 아래 그림과 같이 상위 개념에 하위 개념이 포함되어 있는 특징이 있다. 

기본적으로 하나의 부모 개체는 여러 자식을 가질 수 있는 반면에 자식 개체는 여러 부모 개체를 가질 수 없는 1:N 관계가 정의된다. 

 

 

네트워크형 데이터 모델

네트워크형 데이터 모델은 망형 데이터 모델이라고도 하며 그래프 구조를 기반으로 한다. 

즉, 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다. 

 

객체 지향형 데이터 모델

객체 지향형 데이터 모델은 객체 지향 프로그래밍에서 사용하는 객체 개념을 기반으로 한 데이터 모델이다.

데이터를 독립된 객체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에 사용되는 강력한 기능 활용

하지만 이런 객체 지향형 모델 개념을 데이터베이스에 완전히 적용하는 것은 쉽지 않기 때문에 이를 적용한 상용 DBMS는 많지 않다. 

 

 

관계형 데이터 모델

관계형 데이터 모델은 현대에서 가장 많이 사용하는 관계형 데이터베이스의 바탕이 되는 모델이다. 

관계형 데이터모델은 다른 모델과 달리 데이터 간 관계(relationship)에 초점을 둔다. 

 

예를 들어, 회사의 회사 사원 정보와 소속된 부서 정보를 데이터로 관리하는 경우를 생각해보자. 

사원 정보와 부서 정보를 하나의 묶음으로 관리하면 데이터 구조는 간단해진다. 

하지만 같은 부서 사람들은 부서 정보가 중복되므로 효율적인 관리가 어려워진다. 

(WHY?) 부서 이름이 바뀌면 해당 부서 사원들의 부서 정보를 일일이 찾아서 모두 변경해줘야 하기 때문에 

 

따라서 관계형 데이터 모델에서는 각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눈다. 

그리고 중복이 발생할 수 있는 데이터(ex. 부서 정보)는 별개의 relation으로 정의한 후 사원 정보에 소속된 부서를 식별하는 '부서 코드'를 포함하여 사원 정보 데이터와 부서 정보 데이터를 연결한다. (아래 예시 참고)

 

사원 정보

사원 번호 사원 이름 사원 직급 부서 코드
0001 홍길동 과장 10
0002 성춘향 대리 20

부서 정보

부서 코드 부서 이름 위치
10 회계 서울
20 연구 인천

 

## 관계형 데이터 모델의 핵심 구성 요소 ##

1. 개체(entity)

데이터베이스에서 데이터화하려는 사물, 개념의 정보 단위

2. 속성(attribute)

개체를 구성하는 데이터의 가장 작은 논리적 단위로서 데이터의 종류, 특성, 상태 등을 정의

3. 관계(relationship)

개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용 

 

** 학교 수업에서 배운 것과 연관시키면 Employee가 개체고, name/age,.. 등이 속성이 된다. 

 

 

01-3 관계형 데이터베이스와 SQL

 

관계형 데이터베이스란?

관계형 데이터 모델 개념을 바탕으로 데이터를 저장/관리하는 데이터베이스

관계형 데이터베이스를 관리하는 시스템은 RDBMS(Relational Database Management System)이라 부른다. 

 

SQL; Structured Query Language

SQL은 RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어이다. 

 

728x90
반응형

댓글