데이터 베이스는?
데이터를 저장하는 시스템, 왜 사용할까? 데이터를 저장하고 연산하고 보존하기 위해서 사용 ↔ 메모리 휘발성이다. 하지만, 메모리는 속도가 높다. 저장한 데이터베이스에 저장을 하고 메모리에서 가공처리 파일말고 데이터베이스를 쓰는 이유는 접근과 관리가 편하다. RDBMS, 노시컬 상호연관성 기본 개념. 모든 데이터들은 table로 구성된다. (column(행), row(실제 값 - 고유키가 존재한다.))
관계형 데이터 베이스 = 엑셀같은 데이터 구조
- One to One관계로 한명의 유저는 하나의 프로파일 아이디만 가질 수 있다.
- One to Many관계는 1대 다, 하나의 정보를 여러개의 데이터가 연결관계를 지을 수 있다. 해당 예시는 고객이 여러번의 주문을 할 수 있듯, 주문에 여러개가 생성될 수 있지만, 유저는 해당 주문을 한 고객뿐. 하나의 주체가 여러개의 상태값을 가질 수 있음. 하나의 카테고리에 그에 해당하는 여러 제품이 들어가있는 것.
- Many to Many관계는 하나의 책에 여러명의 저자가 존재한다. 책의 아이디에 여러명의 저자의 아이디를 기록할 수 있다. 중간 테이블을 join테이블이라고 한다. 한사람이 여러개의 책을 작성한거면 1대 다인데, 이 책은 여러명이 쓸 수 있으니까 다대 다이다. 이거는 테이블 두개로만 표현을 할 수 없다. 테이블 두개로만 하면 같은게 중북이 된다. 나중에 에러가 나고 수정이 불가능하다.
One to Many와 Many to Many의 차이점? 중간테이블이 있냐 없냐의 차이이다.
FOREIGN KEY
외부에 있는 고유한 키를 가르키는 숫자 int tpye는 A는 키 두 개의 테이블을 연결하는 데 사용됩니다. FOREIGN KEY가 받는 의미 한 테이블의 필드 (또는 필드의 컬렉션)는 PRIMARY KEY(date index로 잡아주는 테이블에 있는 것.) 다른 테이블이다. … FOREIGN KEY 제약 조건은 테이블 간의 연결을 파괴하는 동작을 방지하는 데 사용됩니다.
왜 테이블들을 연결하나? 하나의 테이블에 모든 정보를 넣으면 동일한 정보들이 불필요하게 저장이 된다. 잘못될 가능성이 높다. 중복된 데이터를 저장하지 않아서 디스크를 효율적으로 사용한다. 정규화, 부분적으로 틀린 데이터가 생기는 문제가 없다.(normalization)
트랜잭션
일련의 작업들이 마치 하나의 작업처럼 취급 → 성공하면 모두 다 성공, 실패면 모두 다 실패. 중간에 오류가 발생하면 다시 처음부터 하는 것이 rollback 정상적으로 처리가 되면 commit 작업수행의 단위 DB에 동시에 엑세스 하거나 데이터 부정합을 방지하고자 할 때, 사용한다.
ACID
- 원자성은 all or nothing개념으로 일부분만을 실행하지 않는다. 트랜잭션이 다 실행이 되어야한다.
- 일관성 성공적이면 일관적인 DB상태로 중간과정에서 변질되지 않는 것.
- 고립성 다른 트랜잭션이 끼어들지 못하게 트랜잭션 끼리는 서로 간섭을 하지 못한다.
- 지속성은 성공한 트랜잭션은 영원히 반영되어야한다.
비관계형 데이터 베이스
비관계형 데이터 베이스는 데이터를 저장시 주로 사용하는 시스템, 관계설정에 따른 테이블 모델링이 없기에 정형화 할 필요가 없다. 빠른 저장이 필요하고 정형화할 시간이 필요할 때.
관계형과 비관계형 둘의 차이점은?
관계형은 데이터를 효율적으로 저장가능. 데이터의 완전성이 보장된다. 안정적인 작업, 테이블 미리 정의 유연성이 없으며 확장성이 좋지 않다. = 정형화, 안정성 유리 (은행거래 정보)
비관계형은 데이터 구조를 미리 저장안해도 되니 유연하다. 확장하기가 비교적 쉽다. 방대한 양의 데이터 저장이 유리하다. 데이터의 완전성이 불안정하다. (로그 데이터 수집에 사용된다.)
관계형 데이터베이스를 사용시 SQL을 사용해야하는데 SQL은? 관계형 데이터 베이스에서 데이터를 읽거나 생성 및 수정, 확장이 쉽다. 하기 위해서 사용하는 언어
'Web > ETC' 카테고리의 다른 글
data structures (0) | 2020.07.10 |
---|---|
HTTP (0) | 2020.05.20 |
POST Man (0) | 2020.05.18 |
자료 구조의 Array와 Tuple (0) | 2020.05.13 |
웹은 어떻게 작동할까? 네트워크 OSI 7계층 모델 (0) | 2020.05.12 |
댓글