데이터베이스

ttomy·2022년 2월 10일
0

용어

  • SQL이란?
    SQL은 '구조화 된 쿼리 언어 (Structured Query Language)'를 말합니다. 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는 데 사용 하는 쿼리 언어이다. sql을 이용해 관계형데이터베이스에 저장,수정,조회,삭제 등을 할 수 있다.

  • 스키마란?

스키마는 테이블을 디자인하기 위한 청사진,계획,구조 라고 할 수 있습니다.
데이터베이스를 구성하는 개체, 속성, 관계 및 데이터 조작 시에 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의합니다.
또한 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래 키도 나타내야 합니다.

스키마는 개체-관계 다이어그램(entity-relationship diagram)이나 문자열로 표현할 수 있습니다.

Reservation(ID, Name, Date, RoomNum)

위의 문자열을 개체-관계 다이어그램으로 나타내면 다음과 같습니다.

  • 관계?
    (nosql 데이터베이스에서는 존재하지 않음)
  1. 일대일(one-to-one) 관계
  2. 일대다(one-to-many) 관계
  3. 다대다(many-to-many) 관계
    이런 관계를 나타내기 위해 외래키를 사용한다. 외래키는 다른 테이블의 행을 식별할 수 있는 키이다.

관계형,비관계형 DB란?

관계형 데이터베이스(SQL): 테이블에서 키,값을 저장하는 형태인 db.
데이터의 종속성을 관계로 나타낸다.

비관계형 데이터베이스(NoSQL)
관계형 데이터 모델을 지양 하며 대량의 분산된 데이터를 저장하고 조회하는 데 특화되었으며 스키마 없이 사용 가능하거나 느슨한 스키마를 제공하는 저장소를 말한다. 데이터의 구조 변경이나 확장에서 상대적으로 유연하나 데이터의 수정이 필요할 경우 여러부분을 수정할 경우가 많다.

관계형 데이터베이스

장점
-데이터의 분류, 정렬, 탐색 속도가 빠름
-다양한 용도로 사용 가능(범용성), 높은 성능
-데이터 무결성 보장, 높은 신뢰성
-명확한(= 엄격한) 스키마 정의
-정규화에 따른 갱신 비용 최소화
-데이터의 분류, 정렬, 탐색 속도가 빠름
-관계를 통해 각 데이터를 중복없이 한 번만 저장

단점
-대량의 데이터 입력 처리
-갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경
-컬럼 확장 어려움 ▶️ 유연성 부족
-데이터베이스 부하 분석이 어려움
-수평 확장의 어려움 ▶️ 데이터베이스 저장 방식으로 인해 수직 확장만 지원

출처: https://honeywater97.tistory.com/174

sql,no sql 비교

  • SQL의 장점
    명확하게 정의 된 스키마, 데이터 무결성 보장
    관계를 통해 각 데이터를 중복없이 한 번만 저장할 수 있습니다
  • NoSQL의 장점
    스키마가 없기때문에, 유연성이 높습니다. 즉, 저장된 데이터를 언제든지 조정하고 새로운 "필드"를 추가할 수 있습니다.
    데이터는 애플리케이션에 필요한 형식으로 저장됩니다. 이렇게 하면 데이터를 가져오는 속도가 빨라집니다.
    수직 및 수평 확장이 가능하므로 데이터베이스가 애플리케이션에서 발생시키는 모든 읽기 / 쓰기 요청을 처리 할 수 있습니다.
  • SQL의 단점
    상대적으로 덜 유연하며, 데이터 스키마는 미리 알고 계획해야합니다. (나중에 수정하는 것이 어렵거나 불가능 할 수 있습니다.)
    JOIN문이 많은 매우 복잡한 쿼리가 만들어 질 수 있습니다.
    수평 확장이 어렵고, 보통 수직 확장만 가능합니다. 즉 어느 시점에서 처리량/처리 능력과 관련하여 약간의 성장 한계에 직면하게 될 수 있습니다.

  • NoSQL의 단점
    유연성 때문에 데이터 구조 결정을 늦어질 수 있습니다.(바로 계획, 결정해야하는 것이 아니기 때문에)
    데이터가 복사되어 중복되어 저장되기에 성능 면에서 불리한 경우도 생김.
    복사된 데이터가 변경되면 여러 콜렉션과 문서를 수정해야 합니다.

출처: https://devuna.tistory.com/25 [튜나 개발일기]

0개의 댓글