SQL and Data Modeling

Contents

  • What is Database?
  • Relational Database
  • Advantages of Relational Database
  • Relational Database Management Systems(RDBMS)

What is Database?

여러분은 아마도 데이터베이스에 대해 한번이라도 들어봤을 것입니다. 데이터베이스에 대한 개념을 간단히 살펴보면, 데이터베이스란 개인이나 단체가 특정 목적을 가지고 데이터를 정돈해 저장하는 것을 말합니다. 파일이나 스프레드시트와 같은 곳에 데이터를 저장해 관리할 수도 있겠지만, 이 글에서 데이터베이스란 용어는 애플리케이션을 이용해 저장하는 것을 의미하는 것으로 사용하도록 할게요.

데이터베이스에는 크게 Operational Database, Analytical Database 두 가지 타입이 있습니다.

Operational Database는 온라인에서 발생하는 트랙잭션을 처리하는데 주로 사용됩니다.(OnLine Transaction Processing, OLTP) 조직 내에서 일상적으로 데이터를 생성, 수정해야 하는 작업이 빈번한 상황에서 사용하며, 대부분의 기업, 단체에서 사용하는 데이터베이스 타입입니다. 쇼핑몰, 제조업체, 병원 등을 예로 들 수 있고, 데이터베이스 내 데이터는 최신 데이터를 항상 반영해야 합니다.

이와는 대조적으로, Analytical Database는 온라인 분석 처리(OLAP)에 사용되며, 시간의 흐름에 따른 정적인 데이터를 저장할 용도로 주로 사용합니다. Analytical 데이터베이스는 특정 기간의 데이터 통계나 트랜드 등을 추적하고 이를 기반으로 의사 결정을 할 때 사용할 수 있습니다. 특정 연구소나 마케팅 분석 회사 등에서 사용할 수 있습니다.

이 글에서는 일반적으로 회사나 개인이 많이 사용하는 Operational 데이터베이스 설계에 대해 다루도록 하겠습니다.

Relational Database

관계형 데이터베이스는 1960, 1970년대 IBM 연구원으로 있던 에드거 커드에 의해 고안되었습니다. 수학과 화학을 전공한 그는 기존 데이터베이스가 가지고 있던 문제점을 수학적인 개념을 도입해 개선할 수 있다고 믿었고 집합론과 1차 논리를 기반으로 관계형 데이터베이스를 고안했습니다.

관계형 데이터베이스는 relation에 데이터를 저장하는데, 흔히 relation을 테이블이라 부릅니다. 그리고 각 relation은 레코드와 필드로 구성됩니다.

Advantages of Relational Database

관계형 데이터베이스가 생겨난지 오래되었지만, 아직까지 널리 사용되는데는 이유가 있을건데요. 이번에는 관계형 데이터베이스 사용 시 장점 몇 가지에 대해 알아보도록 할게요.

  • 테이블, 레코드, 필드 단위 별 무결성 데이터 저장 단위별 무결성을 유지할 수 있습니다. 필드 단위에서 데이터의 정확성을 검증할 수 있습니다. 테이블 레벨에서 중복된 레코드나 누락된 Primary Key가 없는지 검증할 수 있습니다. 그리고, 테이블 간 관계에서는 올바른 관계를 형성하고 있는지 확인할 수 있습니다. 마지막으로, 비즈니스적인 관점에서 데이터가 올바르게 형성된 것인지 검증할 수 있습니다.
  • 데이터의 독립성 사용자의 데이터 설계 변경이나 데이터베이스 소프트웨어의 변경에 따른 영향을 받지 않고 독립성을 유지합니다.
  • 일관성 및 정확성 데이터베이스가 내포하고 있는 여러 겹의 무결성으로 인해 데이터의 일관성, 정확성을 보증할 수 있습니다.
  • 쉬운 데이터 검색

Relational Database Management Systems(RDBMS)

관계형 데이터베이스를 생성하고 수정 관리하는데 사용하는 소프트웨어입니다. 널리 알려진 RDBMS 중 몇 가지를 예로 들면 Oracle RDBMS, PostgresSQL, MySQL, SQLite 등이 있습니다.