DataBase

[Oracle] 1장. 데이터 베이스 개념 잡기 (1-1 데이터베이스)

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

 

데이터베이스는 데이터(data)와 베이스(base)의 합성어

DBMS는 Database Management System의 약자로 '데이터베이스 관리 시스템'을 의미

 

데이터와 정보

데이터는 '자료', '정보'라는 두 가지 의미가 있습니다.

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

데이터를 원석, 정보를 보석이라고 비유한다.

데이터는 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나

정제하지 않은 값이나 사실 또는 자료 자체를 의미한다.

정보는 수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여

가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과로 볼 수 있다.

 

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

더보기
  • 데이터를 통합하여 관리
  • 일관된 방법으로 관리
  • 데이터 누락 및 중복 제거
  • 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능

 

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

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

 

파일 시스템과 DBMS

데이터베이스 개념이 등장하기 전에는 주로 파일 시스템 방식을 사용하여 데이터를 관리하였다.

파일시스템과 DBMS를 통한 데이터 관리 방식을 비교하며 알아보자.

 

파일시스템

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

고로 각 데이터는 서로 연관이 없고 중복 또는 누락이 발생할 수 있음.

(파일 시스템을 단층 파일 구조(flat file structure)라고 한다.)

 

DBMS를 통한 데이터 관리

효율적인 데이터 관리 조건을 만족하며 서비스 제공의 효율성을 높이기 위해 데이터베이스 관리 시스템이 등장

데이터베이스 관리 시스템은 데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어이다.

여러 목적으로 사용할 데이터의 접근, 관리 등의 업무를 DMBS가 전담하는 방식

즉 프로그램이 필요한 데이터 작업을 DBMS에 요청하면 이를 수행하고 결과 값을 제공

 

응용 프로그램 <-> DBMS <-> 데이터베이스

 

작업 영역의 분리로 응용 프로그램의 서비스 제공와 데이터 관련 작업 효율 증진

여러 응용프로그램이 하나로 통합된 데이터를 같은 방식으로 사용, 관리할 수 있으므로 데이터 누락이나 중복을 방지

 

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

 

1-2 데이터 모델

데이터 모델의 개념과 종류를 알아보고 관계형 데이터베이스와 관련된 기본 내용을 살펴보자.

 

데이터 모델이란 컴퓨터에 데이터를 저장하는 방식을 정의해 놓은 개념 모형이다.

대표 데이터 모델에는 계층형, 네트워크형, 관계형, 객체 지향형 등이 있다.

 

계층형 데이터 모델과 네트워크형 데이터 모델

 

계층형 데이터 모델

트리(tree) 구조를 활용, 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리

계층형 데이터 모델을 이해하기 위해서는 일대다(1:N) 관계의 데이터 구조를 파악해야 한다.

하나의 부모 개체가 여러 자식을 가질 수 있는 반면 자식 개체는 여러 부모 개체를 가질 수 없다.

 

네트워크형 데이터 모델

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

개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다는 점에서 계층형 데이터 모델과 차이가 있다.

객체 지향형 데이터 모델

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

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

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

다만 오라클 데이터베이스와 같은 여러 DBMS 제품군이 관계형 데이터 모델을 바탕으로 객체 개념을 도입하여

'객체 관계형 (object-relational data model) DBMS'로 영역을 확장하고 있다.

 

관계형 데이터 모델

현대에 가장 많이 사용하는 관계형 데이터베이스의 바탕이 되는 모델이며 데이터 간 관계(relationship)에 초점을 둔다.

각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눈다. 그리고 중복이 발생할 수 있는 데이터는 별개의 릴레이션(relation)으로 정의한 후 식별 코드를 포함시켜 객체 데이터를 연결한다.

이름 설명
개체(entity) 데이터베이스에서 데이터화하려는 사물, 개념의 정보 단위. 관계형 데이터베이스의 테이블(table) 개념과 대응되며 테이블은 릴레이션(relation)으로 표기하기도 한다.
속성(attribute) 개체를 구성하는 데이터의 가장 작은 논리적 단위로서 데이터의 종류, 특성, 상태 등을 정의. 관계형 데이터베이스의 열(column) 개념과 대응된다.
관계(relationship) 개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용.
관계형 데이터베이스에는 테이블 간의 관계를 외래키(foreign key)등으로 구현하여 사용.

이 핵심 구성 요소를 활용하여

데이터의 독립성(independency)과 무결성(integrity)과 같은 데이터를 안전하게 관리하기 위해 필요한 개념들을 정의하게 된다. 

 

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

관계형 데이터베이스란?

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

데이터베이스를 관리하는 시스템을 DBMS(Database Management System)

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

 

MS-SQL, MySQL, MariaDB, PostgreSQL, DB2, ORACLE등등 유명한 DBMS 제품은 대부분 관계형 데이터베이스 관리 시스템이거나 최소한 부분적으로 관계형 데이터베이스를 사용하고 있다.

실무에서 이야기하는 DB 또는 데이터베이스는 보통 DBMS를 가리키는데 이 중 대부분이 RDMBS라고 보아도 무방하다.

 

SQL이란?

SQL은 Structured Query Language의 약자로서 '에스큐엘' 또는 '시퀼'이라고 부른다.

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

예를 들어 어떤 사용자가 응용 프로그램에 SQL을 사용하여 '우리 회사 각 부서별 사원이 몇 명 있는지 가르쳐 줘',

'현재 접속한 사용자가 구매한 내역을 저장해 줘'와 같이 데이터 관련 내용을 데이터베이스에 물으면

데이터베이스는 그 결과를 제공한다.

즉 우리는 SQL문을 통해(정확히는 SQL을 사용해야만) 데이터베이스에서 여러 데이터 관련 작업을 수행할 수 있다.

SQL은 사용 목저에 따라 다음과 같이 나뉜다.

종류 설명 다루는 장
DQL(Data Query Language) RDBMS에 저장한 데이터를 원하는 방향으로 조회하는 명령어 04~ 09장
DML(Data Manipulation Language) RDBMS 내 테이블의 데이터를 저장, 수정, 삭제 하는 명령어 10장
DDL(Data Definition Language) RDBMS내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성, 수정, 삭제하는 명령어 12~14장
TCL(Transaction Control Language) 트랜잭션 데이터의 영구 저장, 취소 등과 관련된 명령어 11장
DCL(Data Control Language) 데이터 사용 권한과 관련된 명령어 15장

 


참조(reference)

 

https://afteracademy.com/blog/what-is-data-model-in-dbms-and-what-are-its-types/

 

What is Data Model in DBMS and what are its types?

In this blog, we will learn about various data models present in DBMS. We will also learn about various types of data models present along with advantages and disadvantages of each model.

afteracademy.com