데이터베이스의 이해

SSAD·2023년 2월 14일
0

BackEnd

목록 보기
17/44

SQL의 정의

  • SQL(Structured Query Language)은 데이터 베이스를 직접적으로 엑세스 할 수 있는 언어

SQL 구성

  • 데이터를 정의(Data Definition)
  • 조작(Data Manipulation)
  • 조작한 결과를 적용(Transaction Control)
  • 접근 권한을 제어(Data Control)

데이터베이스의 종류

  • SQL과 NoSQL은 데이터베이스 자체를 나타 내는 것이 아님
    특정 유형의 데이터베이스와 상호 작용하기 위해 사용되는 프로그래밍 언어를 의미

  • 편의상
    관계형 데이터베이스 관리 시스템에서 사용되는 SQL을 관계형 DB의미로 사용
    비관계형 데이터베이스 관리 시스템에서 사용되는 NoSQL을 비관계형 DB의 의미로 사용

  1. 관계형 데이터베이스(SQL)
    • 표(Table) 형식으로 만들어짐
    • 스키마 O : 명확하게 정의 됨, 데이터 무결성 보장
    • 수직적 확장 가능
    • 자주 변경되는 데이터를 엑셀과 같이 관리
    • 관계는 각 데이터를 중복 없이 한번만 저장
  2. 비관계형 데이터베이스(NoSQL)
    • 서류(Collection)형식으로 묶여 관리
    • 스키마 X
    • 수평적 확장 가능
    • 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
    • 앱이 필요한 형식으로 저장 : 읽어오는 속도 빠름

수직적 확장과 수평적 확장

수직적 확장

  • 단순히 데이터베이스 서버의 성능을 향상 시키는것
    (CPU등 물리적 업그레이드)

수평적 확장

  • 더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산됨을 의미
    (하나의 데이터베이스에서 작동하지만 여러 호스트에서 작동)

선택 가이드

SQL

  • 관계를 맺고 있는 데이터가 자주 변경되는 앱의 경우

  • 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우

NoSQL

  • 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
  • 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
  • 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)

완전한 정답은 아님 SQL 선택해서 JOIN문을 만들지 않도록 설계할수도 있고

NoSQL을 선택해서 중복데이터를 줄이는 방법으로 설계해서 단점을 없앨 수도 있음

ORM 과 ODM

ORM(Object-Relational-Mapper)

  • 테이블로 이루어진 데이터베이스를 다룰 때 사용하는 SQL을 다른 언어에서 쉽게 사용하도록 해줌

ODM(Object-Document-Mapper)

  • 문서(document)와 Collection으로 이루어진 NoSQL 데이터베이스를 다룰수 있도록 해줌

장점

  1. 객체 지향적 코드로 인해 더 직관적이고 비즈니스 로직에 집중할수 있도록 도와줌
  2. 재사용 및 유지보수의 편리성
  3. DBMS에 대한 종속성이 낮음

단점

  1. 복잡성이 올라갈 수록 난이도가 높아짐
  2. 프로시저가 많은 시스템을 전환하기 어려움
profile
learn !

0개의 댓글