SQL과 ORM

스르륵·2021년 5월 20일
0

부트캠프 정리하기

목록 보기
9/12
post-custom-banner

약 2주간 데이터베이스에 대해 기본적인 것들을 배운 것 같다.
데이터베이스는 처음 배우는 것이라 아직 모르는 것들이 많기 때문에 앞으로 공부할 것들에 대해 정리하여 기록하려고 한다.

데이터베이스

sql 쿼리 문법 등은 pass

스키마

  • 데이터베이스의 구조와 제약 조건등에 대해 기술한 메타데이터
  • Entity, Attribute, Relationship 등을 통해 정의한다.
  • 개념스키마, 내부스키마, 외부스키마가 있다고 한다.

Key ⭐

  • 후보키, 기본기, 외래키 등이 있다.
  1. 후보키: 기본키로 사용할 수 있는 속성들의 집합
  2. 기본키: 한 relation에서 특정 데이터를 유일하게 구분할 수 있는 속성
  3. 외래키: 참조되는 relation의 기본키와 대응되어 relation 간의 참조관계를 표한하는데 중요한 도구

SQL

SQL과 NoSQL

데이터베이스는 크게 두 가지로 양분된다. 관계형 데이터베이스 SQL, 그리고 그 외의 NoSQL. 미리 작성된 스키마를 기반으로 정해진 양식에 맞게 데이터를 저장하는 SQL과 다양한 형식을 바탕으로 데이터를 저장하는 NoSQL이 있다.

NoSQL

  • Key-Value type
  • Document type
  • Wide-Column type
  • Graph type

아직은 이들이 무슨 차이인지, 어떤 장점이 있는지 잘 몰라서 공부가 필요하다. MongoDB가 NoSQL

SQL과 NoSQL도 각각 장점이 있고 사용해야하는 때가 다르다.

  • 데이터가 구조적이고 일관되면 관계형데이터를, 그렇지 않은 대용량 데이터를 다루나면 NoSQL을!
  • 데이터베이스의 ACID 성질을 준수해야 한다면 SQL을, 데이터 구조가 자주 업데이트 된다면 NoSQL을!

ORM

SQLAlchemy

파이썬에서 지원하는 orm library이다. SQLAlchemy Documentation
최근 버전이 바뀌면서 문법에 변화가 있다고 한다. Documentation을 잘 참고해서 공부해야 하지만, 그닥 친절한 것 같지 않다.

ORM을 쓰면서 테이블 하나만 사용하는 것과 같이 기본적인 쿼리를 날리는 것은 매우 쉽다. 하지만 여러 테이블을 사용해 relation을 만들고 하는 것이 어려웠다. 이것은 위에 있는 DB의 기초가 부족해서 그런 것 같다. 공부를 더 하고 documentation을 보면 좋을 것 같다.

profile
기록하는 블로그
post-custom-banner

0개의 댓글