상세 컨텐츠

본문 제목

SQL이란?

보건학

by zinomi 2024. 5. 6. 15:12

본문

빅데이터

오늘은 보건의료 빅데이터를 다루는 데 필수적으로 이해해야할 필요가 있는 데이터베이스와 대표적인 데이터베이스인 관계형 데이터베이스, 그리고 SQL에 대하여 알아보도록 하겠습니다.

 

데이터베이스란?

오늘날과 같은 빅데이터 시대에 데이터베이스에 대한 개념의 올바른 정립은 필수적입니다. 데이터가 4차 산업혁명 시대의 중요하고 유용한 자원이라면, 데이터베이스는 데이터를 저장하고, 가공하고, 정제하고, 사용하기 위한 도구라고 생각해볼 수 있습니다. 즉, 데이터를 잘 활용하겠다는 목적을 달성하기 위한 유용한 도구이자 수단입니다.

데이터베이스

 

관계형 데이터베이스와 비관계형 데이터베이스

가장 흔하게 들어봄직한 데이터베이스로는 관계형 데이터베이스가 있습니다. 그러나 관계형 데이터베이스 외에도 다양한 데이터베이스가 존재합니다. 여러 종류의 데이터베이스가 생겨난 배경과 맥락을 하나씩 살펴보는 것은 개념의 명확한 이해에 더욱 큰 도움이 됩니다. 컴퓨팅 자원이 폭발적으로 증가하고 과학 기술이 급속도로 발전함에 따라, 소셜 네트워크와 같이 이전에는 분석 대상으로서 활용되지 않았던 소재들이 활용되기 시작했습니다. 이에 따라 과거에 사용하던 데이터베이스를 활용하기에는 여러 한계점이 보이기 시작했고, 관계형 데이터베이스와는 또 다른 데이터베이스가 요구되기 시작하고 등장하기 시작했습니다. 관계형 데이터베이스가 아닌 이러한 종류의 새로운 개념의 데이터베이스를 Not Only SQL(NoSQL)이라고 부릅니다. 이러한 NoSQL 데이터베이스들은 실시간으로 엄청난 양으로 생성되는 데이터들을 분산으로 빠르게 처리하고, 이러한 데이터를 이용한 개발과 서비스의 운영에서도 효율성을 향상시키고 비용을 많이 절감할 수 있습니다. 특히나 이러한 NoSQL 데이터베이스들은 오픈 소스 프로그램들을 기반으로 급속도로 발전하고 있습니다.

 

NoSQL 데이터베이스란?

대표적인 NoSQL 데이터베이스들을 간략히 살펴보겠습니다. 데이터베이스의 핵심은 어떤 형태로 데이터를 저장하는가에 있습니다. 관계형(relational) 데이터베이스 외에는 키-값(key-value) 데이터베이스, 문서형(document-oriented) 데이터베이스, 컬럼형(column-oriented) 데이터베이스, 그래프(graph) 데이터베이스 등이 있습니다. 이러한 데이터베이스들은 실제로 활용되는 과정에서 발생하는 문제들을 해결하기 위해서 하나씩 설계되기 시작했습니다. 예를 들어, 관계형 데이터베이스의 경우에는 스키마의 유연성보다는 쿼리의 유연성이 더 중요하다는 관점에서 생겨나게 되었습니다. 이해 반해 컬럼형 데이터베이스의 경우에는 관계형 데이터베이스에서처럼 데이터 간의 관계에 주목하기보다는, 수평 확장, 즉, 여러 저장소를 활용하게 되는 대용량 데이터를 저장할 때에 보다 최적화되도록 생성 및 정착되었습니다.

NoSQL

이렇듯 수많은 NoSQL 데이터베이스들 중 어떤 것을 선택해야 할 지는 내가 지금 해결해야 하는 문제와 상황에 따라서 어떤 데이터베이스를 사용하거나, 어떤 데이터베이스들을 조합해서 사용하는 것이 가장 적절하고 효과적으로 문제를 해결할 수 있게 하는지에 따라 결정할 수 있습니다.

 

관계형 데이터베이스란?

그렇다면 SQL에 대해서 알아보기에 앞서, 관계형 데이터베이스의 개념과 특징을 먼저 정리해보도록 하겠습니다. 관계형 데이터베이스 관리 시스템(RDBMS)은 행과 열로 구성된 2차원 테이블 형태로 구현이 됩니다. 그리고 이러한 관계형 데이터베이스를 사용하기 위한 표준적인 방법이 바로 SQL(Structural Query Language)을 사용하여 쿼리를 작성하는 방법인 것입니다. 데이터는 숫자, 문자열, 날짜 등 여러 가지 타입으로 구성되어 있고, 이러한 타입에 맞추어 시스템에서 데이터를 처리하게 됩니다. RDBMS는 집합이라는 이론적 기반을 가지고 있는데, 여기에서 파생한 특징들을 지니고 있습니다. 예를 들어, 테이블 간에 조인을 하여 더 복잡한 구조의 테이블을 만들 수 있습니다. 오픈 소스 관계형 데이터베이스의 대표적인 예시로는 MySQL, SQLite, PostgreSQL 등이 있습니다.

SQL

 

관계형 데이터베이스 시스템(RDBMS)란?

추가적으로 관계형 데이터베이스 시스템(RDBMS)의 구성 요소를 간단하게 살펴보겠습니다. RDBMS는 SQL을 사용하여 데이터를 저장 및 관리하게 되는데, 서로 연관된 여러 가지 데이터베이스 테이블을 저장합니다. 관계형 데이터베이스 관리 시스템의 주요 사례로는 MS SQL Server, MySQL, MS Access 같은 것들이 있습니다.

  • SQL 테이블: 관계형 데이터베이스의 기본 구성 요소로, 흔히 생각하는 표와 같이 행과 열로 구성되어 있습니다. 하나의 테이블로도 활용이 되기도 하지만, 여러 데이터베이스 테이블 간의 관계를 생성함으로써 더 복잡한 데이터베이스를 구축하는 동시에, 데이터 저장 공간도 최적화하게 됩니다.
  • SQL 쿼리: SQL 쿼리는 관계형 데이터베이스 관리 시스템을 작동시키고 활용하기 위해 사용하는 명령어입니다. SQL 쿼리 또는 SQL 문을 구성하는 언어 요소들로는 식별자, 변수, 조건 등이 있습니다.
  • 저장 프로시저: 저장 프로시저란 하나 이상의 여러 SQL 쿼리의 집합이라고 이해할 수 있습니다. 관계형 데이터베이스에 저장된 저장 프로시저를 활용해서 관계형 데이터베이스의 효율성과 성능을 개선할 수 있습니다. 구축된 저장 프로시저를 활용함으로써 같은 SQL 쿼리를 여러 번 사용하지 않고도 보다 효율적으로 데이터베이스를 활용하고 관리할 수 있게 되는 것입니다.

 

SQL이란?

다음으로는 본격적으로 SQL에 대하여 알아보겠습니다. SQL(구조적 쿼리 언어)란, 한 마디로 정리하면 관계형 데이터베이스에 정보를 저장 및 처리할 목적으로 활용되는 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 행과 열로 구성된 테이블(표)의 형태로 저장하게 되는데, 테이블을 구성하는 행과 열을 활용하여 데이터의 다양한 속성과 여러 데이터 값 간의 관계를 저장 및 표현하게 되는 것입니다. 기본적으로 SQL을 활용하여 데이터베이스에 정보를 생성(Create), 조회(Read), 갱신(Update), 삭제(Delete)할 수 있습니다. 또한 이를 바탕으로 데이터베이스의 성능을 관리하고 최적화하기 위해 SQL을 사용합니다.

 

SQL

 

SQL의 탄생 배경을 잠시 살펴보자면, SQL은 1970년대에 개발되었으며, 초기의 명칭은 SQL이 아니라 SEQUEL이었다는 역사를 가지고 있습니다. 지금은 여러 오픈 소스 RDBMS가 활발히 활용되고 있지만, 최초의 상용 RDBMS는 Oracle이었습니다.

 

SQL은 대부분의 애플리케이션에서 빈번하게 사용되는 언어이기 때문에 중요합니다. SQL은 서로 다른 프로그래밍 언어와 잘 통합되고 잘 연동되는 특징을 가지고 있기 때문에 더 많은 영역의 전문가들이 SQL을 배우고 또 사용하고 있습니다. 또한 SQL은 쉽고 직관적으로 이해될만 한 영어 키워드를 주로 사용하기 때문에 배우고 활용하기에도 매우 쉽다는 장점도 가지고 있습니다.

 

SQL은 NoSQL에 비해서 비교적 일관된 언어를 가지고 있습니다. SQL 명령문은 데이터 정의 언어, 데이터 쿼리 언어, 데이터 조작 언어, 데이터 제어 언어, 트랜잭션 제어 언어로 크게 구분할 수 있습니다. 데이터 정의 언어는 데이터베이스의 구조를 설계하는 데 주로 사용됩니다. 데이터 정의 언어를 사용하여 고객의 요구 사항에 따라 데이터베이스 객체를 만들고 저장하고 수정합니다. 대표적인 명령어로는 CREATE가 있습니다. CREATE 명령어를 사용하여 테이블(표), 뷰, 인덱스 등의 데이터베이스 객체들을 생성할 수 있습니다. 데이터 쿼리 언어는 데이터베이스에 저장되어 있는 데이터들을 검색하기 위한 명령어입니다. 예를 들어, SELECT 명령어를 사용함으로써 특정 조건을 만족하는 테이블의 결과를 불러올 수 있습니다. 데이터 조작 언어는 새로운 정보를 생성하거나 관계형 데이터베이스를 구성하고 있는 기존 데이터를 수정하기 위한 목적으로 사용합니다. 대표적인 명령어로는 INSERT가 있습니다. 데이터 제어 언어는 데이터베이스에 대한 접근 권한을 부여하고 데이터베이스의 활용 범위를 관리하기 위한 목적으로 사용됩니다. 대표적인 명령어 예시로는 GRANT가 있습니다. 마지막으로 트랜잭션 제어 언어는 데이터베이스를 자동으로 변경하기 위한 명령어로, 대표적인 예로 ROLLBACK 명령어를 사용하여 잘못된 트랜잭션을 실행되기 이전으로 되돌릴 수 있습니다.

 

마무리하며

오늘은 이렇게 SQL에 대하여 공부해보았습니다. 데이터베이스 및 관계형 데이터베이스, SQL, 그리고 NoSQL 데이터베이스들에 대한 탄탄한 배경 지식은 보건의료 빅데이터를 제대로 활용하기 위한 유용한 밑바탕이 될 것입니다.

'보건학' 카테고리의 다른 글

주요 우울 장애란?  (0) 2024.04.10
트라우마성 근육 손상이란?  (0) 2024.04.10
방광암이란?  (0) 2024.04.10
흉터란?  (0) 2024.03.30
ADHD란?  (0) 2024.03.30

관련글 더보기