Database session

seonja kim·2020년 4월 11일
0

의의

메모리와 반대되는 개념
데이터베이스는 데이터 저장, 편집, 가공을 편리하게 해줌
장기간 저장, 보존이 용이

1. 관계형 데이터베이스

서로 상호관련성을 가진 형태로 표현한 데이터
2차원적 테이블로 표현됨
서로 연결할 수 있음

테이블 연결의 종류

테이블 연결이란 각 다른 테이블 간의 연관성을 의미

  1. one to one

각 다른 테이블이 정확히 일대일 매칭이 되는 관계
내가 가져올 수 있는 정보가 많지만 나에게 해당하는 요소가 하나 뿐일 경우 원투원이라고 함.

  1. one to many

각 다른 테이블의 하나의 로우가 다른 테이블의 여러 로우와 연결이 되는 관계
하나의 주체가 여러개의 형태값을 가질 수 있음을 의미 = 마트 카테고리에 여러 제품들이 들어있듯
음료라는 카테고리 내에 여러 음료 종류가 있음.
테이터의 특성에 따라 맵핑을 해야 함
ex) one to one or one to many - 한 쪽을 기준으로 정해야 함.

  1. many to many

하나의 테이블이 다른 테이블이 가지고 있는 다른 테이블과의
예를 들어 작가가 여러명인 책의 경우 각각 책에 주어진 요소에 따라 작가의 정보를 넣을 수 있음

하나의 책에 여러명의 저자가 있을 때

테이블을 사용하는 이유

중복을 줄이고 데이터를 정규화시키게 되므로 merge가 가능, 디스크를 효율적으로 쓸 수 있음

트렌젝션

Roll back : 중간단계에서 오류가 생길 경우 다시 첫 지점으로 돌아감 ex) 송금시 오류가 날 경우 송금 전의 상태로 됨

정상적으로 실현

특성

  1. 원자성 (Atomicity)

작업 단위를 부분적으로 중단되지 않는 것을 보장하는 능력 ex) 송금시 출금은 되었는데 상대방 계좌에 입금되지 않은 경우

  1. 일관성 (consistency)

트렌젝션 성공 후 원래의 데이터베이스 타입과 상태로 유지하는 것

  1. 고립성 (Isolation)

트렌젝션 수행 시 다른 트렌젝션의 작업이 간섭하지 못하게 보장하는

  1. 지속성 (Durability)

성공한 트렌젝션은 영원히 반영됨

2. No SQL 데이터베이스 (비관계형 데이터베이스)

빠른 저장이 필요하고 정형화할 시간 부족할 경우 빨리 저장하기 위해 사용

SQL VS NoSQL

SQL :

  • 장점 : 데이터를 효율적, 체계적으로 저장, 관리

NoSQL

  • 장점 : 저장하는 데이터 구조 변화에 유연
    확장이 쉽고
    방대한 데이터 저장에 유용 / 데이터의 완전성이 덜 유리하므로 트렌젝션이 비교적 불안정하다.

ERD 구성도 그리기

각 테이블에는 primary key라는게 존재
pk를 바라보는 다른 테이블은 foreign key가 존재
이걸 다라본다는 개념때문에 1:1이나 1:many이냐가 나뉨


foreign key("_"사용해야 함)는 중요하기 때문에 primary key 전에 사용???

data type도 중요하므로 매 항목마다 정확하게 정의해줘야 한다.

int는 4bite 백화점과 같이 많은 물건을 다루는 곳의 경우 big int라는 걸 사용.

음료나 상품/음료의 카테고리/

모델링팁 :

데이터의 중복을 막고 오타를 막기 위해 정규화를 하는 것임
이미지도 분해해서 따로 테이블 만들어야 함.

profile
Adventurer

1개의 댓글