오늘 나는 (TIL)

[TIL 240702] Why SQL over Excel?

thebuck104 2024. 7. 2. 17:01

오늘은 아티클 스터디를 위해

비개발자를 위한 엑셀로 이해하는 SQL: ① 엑셀로 온라인 서비스의 RDB 이해하기 | 요즘IT (wishket.com) 를 읽었다

 

학습 내용은 아래와 같다.

 


1.     정말로 데이터 분석이란 것은 우리가 경험하지 못한 신개념 기술일까?

2.     엑셀을 우리는 오랜 기간 사용해 왔고, 이는 데이터 기록과 관리의 기능을 가진다.

3.     둘의 비슷한 점들은?

공통점
  엑셀 DB
1 파일 >> 시트 >> 테이블 >> 행과 열
로 이루어져 있음
 
데이터 베이스 >> 테이블 >> 행과 열
로 이루어져 있음
 
2  
데이터의 기록, 저장, 관리, 조회, 추출이 가능하다
 

 

4.     그렇다면 둘의 다른 점들은?

차이점
  엑셀 DB
1 마우스와 단축키 사용
직관적
 
명령어 사용
복잡하고 추상적
 
2 사용자가 모든 권한을 누림  
권한을 나누고 제한함
 

 

 

여기서 얻은 나의 인사이트

 

 

그렇다면 왜 엑셀 보다 sql을 사용해야 하는가?

 

 

1.     대용량 데이터 처리

-       성능: 엑셀로 대용량 데이터를 처리하면 성능이 저하될 수 있음. 반면 SQL은 확장이 가능해 수백만 건의 데이터를 처리할 수 있음

 

 

2.     데이터의 원자성과 일관성

-       원자성 트랜잭션 (Atomic Transaction): 모든 쿼리가 성공/실패로만 실행되어, 데이터베이스의 부분적 갱신으로 야기되는 문제들을 방지한다.

 

-       참고) Database ACID (Atomicity 원자성, Consistency 일관성, Isolation 고립성, Durability 지속성)

 

-       트랜잭션은 "원자적"이어야 한다. 이는 트랜잭션이 작업의 모든 단계를 완전히 수행하거나 아무 작업도 수행하지 않은 상태로 유지되어야 함을 의미한다. 트랜잭션 내의 모든 작업은 전부 성공적으로 완료되거나, 어느 하나라도 실패할 경우 모든 작업이 롤백되어 이전 상태로 복원된다.

-       트랜잭션은 데이터베이스의 일관성을 유지해야 한다. 이는 트랜잭션이 데이터베이스에서 정의된 규칙과 제약 조건을 준수해야 함을 의미한다. 트랜잭션의 시작 전과 끝난 후에도 데이터베이스는 일관된 상태여야 한다.

-       트랜잭션은 다른 트랜잭션으로부터 독립적으로 실행되어야 한다. 각 트랜잭션은 서로 영향을 주지 않고, 동시에 실행되는 다른 트랜잭션에 영향을 받지 않아야 한다. 이는 한 트랜잭션이 다른 트랜잭션의 실행 결과를 볼 수 없고, 별도의 공간에서 작업을 수행하는 것을 의미한다.

-       트랜잭션이 성공적으로 완료되면, 해당 트랜잭션에 의한 변경 내용은 영구적으로 저장되어야 한다. 시스템 장애 또는 전원 손실과 같은 예상치 못한 상황이 발생하더라도, 데이터베이스는 영구적으로 변경된 상태를 유지해야 한다.

 

 

3.     복잡한 고급 쿼리

-       SQL에서 구현하는 복잡한 쿼리, 조인, 집계 함수들은 엑셀에서 구현하기 어렵거나 불가능할 수 있다.

-       동적 데이터 조회: SQL은 동적 데이터 조회가 가능해, 실시간 응용 프로그램에 적합함

-       참고) 정적 데이터 조회 & 동적 데이터 조회

-       정적 데이터 조회란, 미리 정의된 SQL 쿼리로 주로 애플리케이션의 고정된 데이터 접근 패턴을 다룰 때 사용됨.

-       동적 쿼리를 사용하면 사용자의 입력이나 프로그램의 상황에 따라 쿼리가 동적으로 변할 수 있습니다. 예시) if, where, update, set 등등

 

 

4.     데이터 보안

-       접근 제어: SQL 데이터베이스는 사용자 인증 및 접근 제어를 제공하여, 권한이 있는 사용자만 데이터에 접근하거나 수정할 수 있도록 보장한다.

-       암호화: SQL 데이터베이스는 저장된 데이터와 전송 중인 데이터의 암호화를 지원하여, 데이터 보안을 강화합니다.

-       제어만 없다면, 여러 사용자가 동시에 접근할 수 있어 데이터의 일관성 또한 유지할 수 있게된다.

 

 

5.     자동화와 스크립팅

-       자동화 작업: SQL은 저장 프로시저, 트리거, 스크립트를 통해 반복 작업을 자동화할 수 있다.

-       통합성: SQL은 다양한 프로그래밍 언어 및 애플리케이션과 쉽게 통합된다.

 

 

6.     데이터 분석 및 보고

-       비즈니스 인텔리전스 도구: SQL은 강력한 비즈니스 인텔리전스 및 보고 도구와 함께 사용되어 고급 데이터 분석 및 시각화를 제공합니다.

-       ETL 프로세스: SQL 데이터베이스는 ETL(추출, 변환, 로드) 프로세스를 지원하여, 데이터 웨어하우징 및 포괄적인 데이터 분석에 필수적입니다.

 

-       참고) ETL 이란? 일련의 추출 Extraction, 전환 Transformation, 적재 Loading의 과정으로, 데이터를 대형 리포지토리에 결합하는 과정. ETL을 통해 원시 데이터를 정리해 스토리지, 데이터 분석, 기계 학습(ML)용으로 분석용 데이터로 가공할 수 있다.

 

 

7.     백업과 복구

-       신뢰할 수 있는 백업: SQL 데이터베이스는 강력한 백업 및 복구 메커니즘을 제공하여, 하드웨어 고장, 데이터 손상 또는 기타 데이터 손실 상황에서도 데이터를 복구할 수 있습니다.

-       시점 복구: 일부 SQL 데이터베이스는 특정 시점으로 데이터를 복원할 수 있는 시점 복구를 지원합니다.

인사이트 요약

엑셀은 데이터 분석, 시각화 및 간단한 데이터 조작에 강력하지만

SQL은 대용량 데이터 및 복잡한 데이터 구조를 관리하는데 더 견고하고 확장까지 가능함