DB

데이터베이스

tenacy 2021. 5. 7. 03:10

Database와 DBMS

Database는 말 그대로 Data(데이터)와 Base(베이스)의 합성어이고, DBMS는 DataBase Mangement System의 약자로 데이터베이스 관리 시스템을 의미한다.

 

데이터와 정보

데이터와 정보는 다르다. 흔히 데이터를 제련되지 않은 원석으로, 정보를 제련된 보석으로 비유한다. 즉, 데이터는 어떤 필요에 의해 수집됐지만 특정 목적을 위해 평가하거나 정제하지 않은 값, 정보는 특정 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과로 볼 수 있다.

 

데이터를 저장하는 과정에서 여러 방법으로 저장될 수 있고, 여러 경로로 흩어질 수도 있고, 데이터가 누락되거나 중복될 수 있다. 이렇게 되면 데이터를 제대로 분석할 수 없다. 내가 데이터를 통해 가치 있는 정보를 얻기 위해서는 데이터를 제대로 저장해야 한다. 즉, 데이터를 효율적을 수집, 통합하고 체계적으로 관리, 분석해야 한다.

 

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

  • 데이터를 통합하여 관리
  • 일관된 방법으로 관리
  • 데이터 누락 및 중복 제거
  • 여러 사용자가 공동으로 실시간 사용 가능

 

위 조건을 만족하면서 효율적인 관리와 검색을 위해 구조화한 데이터 집합을 데이터베이스라고 한다.

 

파일 시스템과 DBMS

데이터베이스의 개념이 등장하기 전에는 주로 파일 시스템 방식을 사용하여 데이터를 관리했다. 파일 시스템은 서로 다른 여러 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 각각 저장하고 관리한다. 따라서 각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락이 발생할 수 있다.

 

모든 응용 프로그램의 목적은 특정 서비스를 제공하는 것이다. 시간이 지남에 따라 수도 없이 쌓이는 데이터를 각각의 응용 프로그램이 직접 관리한다면 그 비용이 너무 클 것이다. 따라서 하나의 서비스를 처리하는 데 역할 분담이 필요하다.

 

DBMS를 통한 데이터 관리

효율적인 데이터 관리 조건을 만족하고 서비스 제공의 효율을 극대화하기 위해 DBMS가 등장했다. DBMS는 데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어이다. 보통 DBMS를 DB라고 부른다.

 

DBMS는 데이터의 접근, 관리 등의 업무를 전담한다. 다시 말해 응용 프로그램이 필요한 데이터 작업을 DBMS에 요청하면 DBMS는 자신이 관리하는 DB로 관련 작업을 수행하고 결과값을 제공한다. DBMS가 등장하면서 앞서 말한 역할 분담이 실현된다.

 

데이터 모델

계층형 데이터 모델

계층형 데이터 모델은 트리 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 관계(1:N)를 정의하고 데이터를 관리한다. 자식 개체가 여러 부모 개체를 가질 수 없다는 제약이 있다. 즉, N:N 관계를 표현할 수 없다.

 

네트워크형 데이터 모델

네트워크형(망형) 데이터 모델은 그래프 구조를 기반으로 한다. 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다(N:N)는 점에서 계층형 데이터 모델과 차이가 있다.

 

객체 지향형 데이터 모델

객체 지향형 데이터 모델은 객체 개념을 기반으로 한 데이터 모델이다. 데이터를 독립된 객체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에 사용되는 강력한 기능을 활용할 수 있다. 하지만 이를 DB에 적용하는 것은 쉽지 않기 때문에 이를 적용한 상용 DB는 많지 않다.

 

관계형 데이터 모델

현대 가장 많이 사용하는 관계형 DB의 바탕이 되는 모델이다. 관계형 데이터 모델은 다른 모델과 달리 데이터 간 관계에 초점을 둔다.

 

예를 들어, 사원 정보와 소속 부서 정보를 데이터로 관리하는 경우를 생각해보자. 부서의 이름이 바뀌면 해당 부서에 소속된 사원의 정보를 모두 변경해야 하는 일이 발생한다. 따라서 관계형 데이터 모델에서는 각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눈다. 그리고 중복이 발생할 수 있는 데이터는 별개의 릴레이션으로 정의한 후 해당 그룹의 식별자를 데이터에 포함하여 각 그룹을 연결한다.

 

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

  • 개체
    • DB에서 데이터화하려는 사물, 개념의 정보 단위
    • 관계형 데이터베이스의 테이블 개념과 대응되며 릴레이션으로 표기하기도 함
  • 속성
    • 개체를 구성하는 데이터의 가장 작은 논리적 단위로서 데이터의 종류, 특성, 상태 등을 정의
    • 관계형 데이터베이스의 컬럼 개념과 대응됨
  • 관계
    • 개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용함
    • 관계형 데이터베이스에서는 테이블 간의 관계를 외래키 등으로 구현하여 사용

 

이 핵심 구성 요소를 활용하여 데이터의 독립성과 무결성과 같은 데이터를 안전하게 관리하기 위해 필요한 개념들을 정의하게 된다.

 

RDBMS와 SQL

관계형 데이터베이스란?

관계형 데이터베이스는 앞에서 살펴본 관계형 데이터 모델 개념을 바탕으로 데이터를 저장, 관리하는 데이터베이스를 의미한다. 관계형 데이터베이스를 관리하는 시스템은 DBMS에 데이터 간의 관계를 강조하여 RDBMS(Relational DBMS), 즉 관계형 데이터베이스 관리 시스템이라고 부른다. 보통 DB는 DBMS를 가리키고 이 중 대부분이 RDBMS라고 봐도 무방하다.

 

SQL이란?

SQL은 Structured Query Language의 약자로서 RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어이다. 우리는 SQL을 사용해야만 데이터베이스에서 여러 데이터 관련 작업을 수행할 수 있다.

 

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

  • DQL(Data Query Language): RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어
  • DML(Data Manipulation Language): RDBMS 내 테이블의 데이터저장, 수정, 삭제하는 명령어
  • DDL(Data Definition Language): RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체생성, 수정, 삭제하는 명령어
  • TCL(transaction Control Language): 트랜잭션 데이터영구 저장, 취소 등과 관련된 명령어
  • DCL(Data Control Language): 데이터 사용 권한과 관련된 명령어

 

 

참고

  • 오라클로 배우는 데이터베이스 입문 | 이지훈 저 | 이지스퍼블리싱