2024. 6. 14. 17:07ㆍDatabase
데이터베이스란 무엇일까?
데이터베이스란 서로 연관된 데이터의 모임이다. 데이터베이스는 어떤 목적을 위해 디자인된다.
그 목적은 기업 비지니스와 연관이 되어 있다.
온라인 비지니스 기업은 대부분 데이터 베이스를가지고 있다.
비지니스를 위해 데이터를 수집, 검색, 업데이트한다.
또 비지니스가 유지되는 것뿐만 아니라 성장하기 위해 이러한 데이터를 수집하고 분석한다.
예를 들어 아마존은 비지니스 운영을 위해 사용자 데이터를 수집할 뿐만 아니라 더 나은 추천 알고리즘을 제공하기 위해 데이터를 사용한다.
이 모든 일이 데이터베이스에서 일어나고 있기에 데이터베이스는 오늘날 가장 중요한 컴퓨팅 기술 중 하나다.
오늘날 대기업에서는 엄청난 양의 데이터가 저장되고 처리되기 때문에, 데이터베이스를 어떻게 효율적으로 운영할지는 매우 중요한 이슈다.
이 데이터베이스를 관리하는 시스템을 Database Management System(DBMS)라고 한다.
이 시스템은 데이터 베이스를 생성하고 유지한다. 또 데이터에 접근하고 저장하고 불러오는 프로그램을 제공한다.
대표적으로 MySQL, MongoDB 등이 있다.
데이터베이스 아키텍처는 데이터 추상화(Abstraction)를 고려해서, 시스템의 복잡함을 최대한 감춰야한다.
마치 자동차를 운전할 때 운전자는 엑셀과 브레이크만 알면되지, 이 두 기능이 어떻게 작동하는지는 알 필요가 없기 때문에 패달을 제외한 세부 부품들이 차체 안에 감춰져 있는 것과 유사하다.
이렇게 깔끔하게 데이터를 제공하기 위해서는 데이터베이스를 3단계의 스키마(3-Level Schema)로 설계해야한다.
외부단계(External Level)는 사용자 관점에서 View를 제공하는 것으로, 아래 그림처럼 각 부서에 필요한 데이터만 제공하는 것이다.
데이터 베이스 전체를 제공하지 않는다.
개념단계(Conceptual Level)는 조직 전체의 데이터 베이스를 개념적으로 가지고 있는다. 개념적이라는 것은 물리적인 정보까지는 고려하지 않는 것을 뜻한다. 각 필드와 필드의 타입을 갖는다고 보면 된다.
내부단계(Physical Level)는 저장장치의 관점에서 데이터베이스를 가지고 있기 때문에, 물리적인 정보를 포함한다.
개념적인 스키마뿐만 아니라 필드크기가 몇 바이트인지, OFFSET, 인덱스 등 물리적인 정보까지 모두 고려해야한다.
3 Level-schema의 장점은 독립성이 생긴다는 것이다.
각 레벨의 변화가 다른 레벨에 영향을 주지 않는다.
개념 스키마를 변경해도 외부 스키마에는 영향이 가지 않는다.
내부 스키마를 변경해도 개념 스키마와 외부 스키마에는 영향이 가지 않는다.
그러나 각 스키마의 Interface를 변경하면 큰 영향을 받는다.
데이터 모델은 데이터를 구조화하고 조직화하는 방식이다.
대표적으로 관계형 모델이 있다. 관계형 모델은 우리에게 익숙한 방식인 테이블로 데이터를 저장한다.
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;
이처럼 데이터 베이스의 정의와 데이터베이스가 구축되는 방식과 과정을 정리해보았다.