DB/POSTGRE

[NoSQL] - 빅데이터 때문에... PostGre, MongoDB

Ch's Lee 2025. 9. 4. 11:36

 

비정형, 정형으로 나눌수 있음.. 하지만, Oracle 등 자료형이 다름...

 

관계형 데이터베이스 vs NoSQL 무엇을 쓰는게 좋은지?

 

밑에 이미지 읽기전에

 

다음과 같이 정의 내릴 수 잇습니다.

 

핵심 차이점

SQL (관계형 DB)

  • 스키마 구조 필수
  • 부모-자식 관계(외래키) 강제
  • 데이터 정규화 (중복 최소화)
 
 
sql
-- 부모 테이블
CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(100)
);

-- 자식 테이블 (참조 관계)
CREATE TABLE orders (
  id INT PRIMARY KEY,
  user_id INT,
  FOREIGN KEY (user_id) REFERENCES users(id)  -- 관계 강제
);

NoSQL (MongoDB)

  • 스키마 자유로움
  • 참조 관계 없음 (또는 선택적)
  • 데이터 비정규화 (중복 허용)
 
 
javascript
// 관계 없이 한 문서에 모두 포함
{
  "_id": ObjectId("..."),
  "name": "홍길동",
  "orders": [  // 중첩해서 저장
    { "order_id": 1, "product": "노트북" },
    { "order_id": 2, "product": "마우스" }
  ]
}

// 또는 참조를 쓰더라도 강제가 아님 (권장사항일 뿐)
{
  "user_id": "user123",  // 관계 강제 안됨
  "product": "노트북"
}

비유하자면

SQL: 엄격한 가족관계 등록 시스템 (호적)

  • 부모-자식 관계 명확히 정의
  • 규칙 위반하면 에러

NoSQL: 자유로운 메모장

  • 관계 있든 없든 자유롭게 작성
  • 중복되든 말든 상관없음

정리: 맞습니다! "관계(참조) 강제 여부"가 가장 큰 차이입니다.

 

 

 

 

 

sequence 또는 auto increament 와 같은 것이 Serial primary key 에서 Serial 이다. pk에 넣으면 자동 증감