본문 바로가기
기술

ORM, noSQL vs SQL

by cha123 2022. 4. 3.

데이터베이스란?

데이터베이스는 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음입니다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다. 연결된 애플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 하며 단축하여 데이터베이스라고도 합니다.

오늘날 운영되고 있는 가장 일반적인 유형의 데이터베이스에서 데이터는 일반적으로 처리 및 데이터 쿼리를 효율적으로 수행하기 위해 일련의 테이블에서 행과 열로 모델링됩니다. 그러면 데이터에 쉽게 액세스하고 관리, 수정, 업데이트, 제어 및 구성할 수 있습니다. 대부분의 데이터베이스는 데이터 작성 및 쿼리에 SQL(Structured Query Language)을 사용합니다.

객체 지향이란?

OOP(Object Oriented Programming)

객체 지향 프로그래밍 위키백과

위키백과에서는 객체 지향 프로그래밍을 다음과 같이 설명 하고 있다.

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다.

 

ORM이란?

Object Relational Mapping, 객체-관계 매핑

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
객체 모델과 관계형 모델 간에 불일치가 존재한다.
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
데이터베이스 데이터 <—매핑—> Object 필드
객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.

noSQL

NoSQL 데이터베이스는 행과 테이블을 사용하는 관계형(SQL) 데이터베이스보다 훨씬 다양한 방식으로 빠르게 바뀌는 대량의 비정형 데이터를 처리할 수 있다는 점을 강조하기 위해 “비관계형”, “NoSQL DB” 또는 “non-SQL”이라고도 합니다.

1960년대부터 다양한 이름으로 존재해 온 NoSQL 기술은 데이터 환경이 변화하고 개발자들이 클라우드, 모바일, 소셜 미디어와 빅 데이터로부터 생성되는 다양한 대규모 데이터를 처리해야 할 필요가 늘어남에 따라 그 인기가 급증하고 있습니다.

바이럴 성격의 유명인 트윗에서 전자 의료 기록에 포함된 의학 정보에 이르기까지, 새로운 데이터와 데이터 형식이 놀라운 속도로 만들어지고 있습니다. NoSQL 데이터베이스는 개발자가 새로운 정보를 저장할 데이터베이스 시스템을 빠르게 만들고 검색, 통합 및 분석을 위해 언제든지 사용할 수 있도록 지원하기 위해 발전을 거듭해 왔습니다.

 

이점

민첩한 개발

계획에 없던 상황에 대응할 수 있는 뛰어난 능력을 갖춘 NoSQL DB는 빈번한 소프트웨어 릴리스 주기에도 유연하게 대응하며, 보다 빠르고 민첩한 앱 개발에 적합합니다.

 

유연한 데이터 처리

개발자들은 NoSQL을 바탕으로 스키마와 쿼리를 빠르고 유연하게 변경하여 데이터 요구 사항에 부응할 수 있습니다. 정보가 집계 데이터로 저장되기 때문에 초기에 스키마 설계를 수행하지 않아도 빠르게 개선을 적용할 수 있습니다.

 

원하는 규모로 운영

NoSQL DB는 수평적으로 스케일 “아웃”이 가능하며 업그레이드 없이 상대적으로 저렴한 서버를 추가할 수 있기 때문에 뛰어난 운영 이점을 제공하고 비용을 절약해 줍니다. 확장을 통해 더 많은 데이터를 처리하거나 고도로 분산된 서버 클러스터 내에 규모가 큰 단일한 데이터베이스를 보관할 수 있습니다.

 

 

SQL

SQl은 structured Query Languge(구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템에서 자료를 관리 및 처리하기위해 설계된언어 입니다.

SQL은 1970년대에 IBM에서 최초로 개발되 었으며 관계형 모델이라는 이론에서 파생되는 특직을 가지고 있는 데, 현재SQL의 표준으로 ANSL SQL이 정립되었습니다.

 

SQL의 언어적특성

  • 대소문자를 가리지 않습니다
  • 명령은 반드시 세미콜론(;)으로 끝나야합니다
  • 고유값은 따옴표('')으로 감싸줍니다
  • 주석은 일종의 도움말로, 주석처리된 문장은 프로그램에서 동작하지 않습니다.

 

 

'기술' 카테고리의 다른 글

테스트코드  (0) 2022.04.04
CLASS  (0) 2022.04.04
ISO 8601  (0) 2022.04.04
Restful API, package.json  (0) 2022.03.31
Java Script  (0) 2022.03.24