메모리와 반대되는 개념
데이터베이스는 데이터 저장, 편집, 가공을 편리하게 해줌
장기간 저장, 보존이 용이
서로 상호관련성을 가진 형태로 표현한 데이터
2차원적 테이블로 표현됨
서로 연결할 수 있음
테이블 연결이란 각 다른 테이블 간의 연관성을 의미
각 다른 테이블이 정확히 일대일 매칭이 되는 관계
내가 가져올 수 있는 정보가 많지만 나에게 해당하는 요소가 하나 뿐일 경우 원투원이라고 함.
각 다른 테이블의 하나의 로우가 다른 테이블의 여러 로우와 연결이 되는 관계
하나의 주체가 여러개의 형태값을 가질 수 있음을 의미 = 마트 카테고리에 여러 제품들이 들어있듯
음료라는 카테고리 내에 여러 음료 종류가 있음.
테이터의 특성에 따라 맵핑을 해야 함
ex) one to one or one to many - 한 쪽을 기준으로 정해야 함.
하나의 테이블이 다른 테이블이 가지고 있는 다른 테이블과의
예를 들어 작가가 여러명인 책의 경우 각각 책에 주어진 요소에 따라 작가의 정보를 넣을 수 있음
하나의 책에 여러명의 저자가 있을 때
중복을 줄이고 데이터를 정규화시키게 되므로 merge가 가능, 디스크를 효율적으로 쓸 수 있음
Roll back : 중간단계에서 오류가 생길 경우 다시 첫 지점으로 돌아감 ex) 송금시 오류가 날 경우 송금 전의 상태로 됨
정상적으로 실현
작업 단위를 부분적으로 중단되지 않는 것을 보장하는 능력 ex) 송금시 출금은 되었는데 상대방 계좌에 입금되지 않은 경우
트렌젝션 성공 후 원래의 데이터베이스 타입과 상태로 유지하는 것
트렌젝션 수행 시 다른 트렌젝션의 작업이 간섭하지 못하게 보장하는
성공한 트렌젝션은 영원히 반영됨
빠른 저장이 필요하고 정형화할 시간 부족할 경우 빨리 저장하기 위해 사용
SQL :
NoSQL
각 테이블에는 primary key라는게 존재
pk를 바라보는 다른 테이블은 foreign key가 존재
이걸 다라본다는 개념때문에 1:1이나 1:many이냐가 나뉨
foreign key("_"사용해야 함)는 중요하기 때문에 primary key 전에 사용???
data type도 중요하므로 매 항목마다 정확하게 정의해줘야 한다.
int는 4bite 백화점과 같이 많은 물건을 다루는 곳의 경우 big int라는 걸 사용.
음료나 상품/음료의 카테고리/
모델링팁 :
데이터의 중복을 막고 오타를 막기 위해 정규화를 하는 것임
이미지도 분해해서 따로 테이블 만들어야 함.