[Database] 데이터베이스란?

2024. 6. 14. 17:07Database

데이터베이스란 무엇일까?

데이터베이스란 서로 연관된 데이터의 모임이다. 데이터베이스는 어떤 목적을 위해 디자인된다.

그 목적은 기업 비지니스와 연관이 되어 있다.

온라인 비지니스 기업은 대부분 데이터 베이스를가지고 있다.

비지니스를 위해 데이터를 수집, 검색, 업데이트한다.

또 비지니스가 유지되는 것뿐만 아니라 성장하기 위해 이러한 데이터를 수집하고 분석한다.

예를 들어 아마존은 비지니스 운영을 위해 사용자 데이터를 수집할 뿐만 아니라 더 나은 추천 알고리즘을 제공하기 위해 데이터를 사용한다.

 

이 모든 일이 데이터베이스에서 일어나고 있기에 데이터베이스는 오늘날 가장 중요한 컴퓨팅 기술 중 하나다.

오늘날 대기업에서는 엄청난 양의 데이터가 저장되고 처리되기 때문에, 데이터베이스를 어떻게 효율적으로 운영할지는 매우 중요한 이슈다.

이 데이터베이스를 관리하는 시스템을 Database Management System(DBMS)라고 한다.

이 시스템은 데이터 베이스를 생성하고 유지한다. 또 데이터에 접근하고 저장하고 불러오는 프로그램을 제공한다.

대표적으로 MySQL, MongoDB 등이 있다.

https://d3an9kf42ylj3p.cloudfront.net/uploads/2023/10/kf_typesofdbms_oct23.png

 

데이터베이스 아키텍처는 데이터 추상화(Abstraction)를 고려해서, 시스템의 복잡함을 최대한 감춰야한다.

마치 자동차를 운전할 때 운전자는 엑셀과 브레이크만 알면되지, 이 두 기능이 어떻게 작동하는지는 알 필요가 없기 때문에 패달을 제외한 세부 부품들이 차체 안에 감춰져 있는 것과 유사하다.

이렇게 깔끔하게 데이터를 제공하기 위해서는 데이터베이스를 3단계의 스키마(3-Level Schema)로 설계해야한다.

외부단계(External Level)는 사용자 관점에서 View를 제공하는 것으로, 아래 그림처럼 각 부서에 필요한 데이터만 제공하는 것이다.

데이터 베이스 전체를 제공하지 않는다.

개념단계(Conceptual Level)는 조직 전체의 데이터 베이스를 개념적으로 가지고 있는다. 개념적이라는 것은 물리적인 정보까지는 고려하지 않는 것을 뜻한다. 각 필드와 필드의 타입을 갖는다고 보면 된다.

내부단계(Physical Level)는 저장장치의 관점에서 데이터베이스를 가지고 있기 때문에, 물리적인 정보를 포함한다.

개념적인 스키마뿐만 아니라 필드크기가 몇 바이트인지, OFFSET, 인덱스 등 물리적인 정보까지 모두 고려해야한다.

 

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F1b6Xe%2FbtrsxEXvu6w%2FAAAAAAAAAAAAAAAAAAAAAFg4q650CT1z0XkM8--BYZuwVZ4y4YRy1D1fqMeWmL2z%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D0soJbX0uVzUFeuAh1UkBSwGu%252Fjc%253D
https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F1b6Xe%2FbtrsxEXvu6w%2FAAAAAAAAAAAAAAAAAAAAAFg4q650CT1z0XkM8--BYZuwVZ4y4YRy1D1fqMeWmL2z%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D0soJbX0uVzUFeuAh1UkBSwGu%252Fjc%253D

 

3 Level-schema의 장점은 독립성이 생긴다는 것이다.

각 레벨의 변화가 다른 레벨에 영향을 주지 않는다.

개념 스키마를 변경해도 외부 스키마에는 영향이 가지 않는다.

내부 스키마를 변경해도 개념 스키마와 외부 스키마에는 영향이 가지 않는다.

그러나 각 스키마의 Interface를 변경하면 큰 영향을 받는다.

 

데이터 모델은 데이터를 구조화하고 조직화하는 방식이다. 

대표적으로 관계형 모델이 있다. 관계형 모델은 우리에게 익숙한 방식인 테이블로 데이터를 저장한다.

https://www.tcpschool.com/lectures/img_mysql_table.png

 

DBMS에서 데이터베이스를 정의하고, 관리하기 위해 프로그래밍 언어가 필요하다.

이 언어를 SQL(Structured Query Language)이라고 한다.

여기서 테이블을 생성하고, 관리하는 언어는 DDL(Data Definition Langauge)라고 한다.

다음 예제처럼 SQL을 통해 데이터베이스에 테이블을 생성할 수 있다.

CREARE TABLE MEMBER(
    Id int NOT NULL,
    Name varchar(255) NOT NULL,
    PRIMARY KEY (Id)
);

 

 

데이터에 접근하고 데이터를 변경하는 언어는 DML(Data Manipulation Language)라고 한다.

다음 SQL을 통해 데이터를 조회할 수 있다.

SELECT * FROM MEMBER;

 

이처럼 데이터 베이스의 정의와 데이터베이스가 구축되는 방식과 과정을 정리해보았다.