Database and Big Data Applications Introduction

Song Chae Won·2023년 9월 6일
0

빅데이터응용

목록 보기
1/3
post-thumbnail

DBPL

Database Programming Language의 약자이다. 데이터베이스 관리와 데이터 조작을 위해 설계된 프로그래밍 언어를 가리킨다. 전통적인 프로그래밍 언어와는 달리, DBPL은 데이터의 저장, 조회, 수정 및 관리에 특화된 기능들을 제공한다.

데이터베이스 프로그래밍 언어의 기능

  • 데이터 정의
    : 테이블, 인덱스, 뷰, 제약 조건 등 데이터베이스 스키마 객체를 정의하거나 변경할 수 있는 기능.
  • 데이터 조작
    : 데이터를 삽입, 수정, 삭제하거나 조회할 수 있는 기능.
  • 트랜잭션 관리
    : 데이터베이스 연산의 원자성, 일관성, 격리성 및 지속성(ACID 속성)을 보장하기 위한 기능.

SQL(Structured Query Language)은 가장 널리 알려진 DBPL 중 하나로 SQL은 관계형 데이터베이스에서 데이터 정의, 조작 및 관리를 위한 표준 언어로 사용된다.

또한, 일부 데이터베이스 시스템은 특정 언어의 확장 버전을 제공하여 프로시저, 함수, 트리거 등의 복잡한 데이터베이스 로직을 작성하게 한다. 예로, Oracle의 PL/SQL이나 Microsoft SQL Server의 T-SQL 등이 있고 이러한 확장 언어들은 SQL 기능을 확장하여 프로그래밍 언어의 특성과 데이터베이스 연산을 결합한 것이다.

성능과 이식성

성능 (Performance)

특화된 최적화: DBPL은 특정 데이터베이스 관리 시스템(DBMS)에 최적화될 수 있다. 예를 들어, PL/SQL은 Oracle 데이터베이스에 특화되었기 때문에 해당 환경에서 매우 효율적으로 작동한다.

추상화 수준: DBPL은 데이터 액세스와 조작을 위한 높은 수준의 추상화를 제공한다. 이로 인해 개발자는 세부적인 최적화보다는 비즈니스 로직에 집중할 수 있다. 그러나 이러한 추상화가 성능 저하의 원인이 될 수도 있다.

DBMS의 내부 최적화: DBPL 쿼리는 데이터베이스 최적화기에 의해 해석되어 실행된다. 따라서 작성한 코드의 효율성은 DBMS의 내부 최적화 메커니즘에 크게 의존하게 된다.

이식성 (Portability)

특정 DBMS에 종속적: 대부분의 DBPL은 특정 DBMS에 맞게 설계되었다. 예를 들어, PL/SQL은 Oracle에서, T-SQL은 Microsoft SQL Server에서 작동한다. 이로 인해 한 DBMS에서 작성된 DBPL 코드는 다른 DBMS로 쉽게 이전하기 어렵다.

표준 SQL의 사용: 이식성을 높이려면 표준 SQL을 사용하는 것이 좋다. SQL은 ANSI와 ISO 표준으로 정의되어 있으므로 다양한 DBMS에서 지원된다. 그러나 실제로 대부분의 DBMS는 표준 SQL과 자체 확장 기능의 조합을 제공한다. 따라서 완전한 이식성을 원한다면 표준 SQL에만 의존해야 한다.

미들웨어의 사용: 데이터베이스 중립적인 코드를 작성하려면 미들웨어 라이브러리나 ORM(Object-Relational Mapping) 도구를 사용하는 것이 좋다. 이러한 도구는 다양한 DBMS에 대한 추상화를 제공하여 코드의 이식성을 높여준다.

결론적으로, DBPL의 성능과 이식성은 사용하는 DBMS와 언어의 특성, 그리고 개발자의 선택에 따라 크게 달라진다. 성능은 특정 DBMS에 최적화된 DBPL을 사용하면 높일 수 있지만, 이식성을 높이려면 표준 SQL 및 데이터베이스 중립적인 도구를 사용하는 것이 좋다.

Big Data

  • Volume : Amount of data
  • Variety : Range of data types, sources
  • Velocity : Speed of data in/out

데이터의 양
: 빅데이터는 PB(Petabyte) 또는 그 이상의 규모의 데이터를 처리하기 위해 설계되어서 이러한 대규모의 데이터는 전통적인 데이터베이스로는 처리하기 어려울 수 있다

데이터의 종류
: 빅데이터는 구조화된 데이터뿐만 아니라 반구조화된 데이터나 비구조화된 데이터(예: 텍스트, 이미지, 동영상 등)도 처리할 수 있다

처리 방식
: 빅데이터 기술(예: Hadoop, Spark)은 분산 처리 아키텍처를 기반으로 하며, 여러 노드에서 동시에 데이터를 처리할 수 있다

확장성
: 빅데이터 기술은 수평 확장(horizontal scaling)을 통해 확장됩니다. 즉, 더 많은 서버 또는 노드를 추가하여 시스템의 처리 능력을 향상시키는 방식

용도
: 데이터 분석, 기계 학습, 예측 모델링, 대규모 데이터 처리와 같은 고급 분석 작업에 주로 사용

기술 및 도구
: Hadoop, Spark, Hive, Kafka, NoSQL 데이터베이스(예: MongoDB, Cassandra) 등의 기술 및 도구가 포함됩니다.

profile
@chhaewxn

0개의 댓글

Powered by GraphCDN, the GraphQL CDN