데이터베이스는 컴퓨터 시스템에 저장된 정보나 데이터를 모두 놓는 집합 (하드디스크 생각)
web client -> web application server -> database -> 다시 역순 (요청과 응답)
클라이언트에서 바로 데이터 베이스로 못가는이유
시스템 통신규약, 프론트에서 필요한 데이터들을 데이터베이스에 잘 쌓아놓는다고 해서 예쁘게 가공되어 전달이 안되기 때문에 web application server에서 처리함
요약: 데이터베이스란 데이터를 가득 모아놓은 베이스
데이터베이스 관리 시스템은 데이터베이스를 관리하는 소프트웨어로 사용 목적은 생산성 향상과 기능성,신뢰성 확보에있다
행과 열을 가지고 표형식 데이터를 저장
Column(열) : 테이블의 각 항목
Row(행) : 각 항목들의 실제 값
하나의 컬럼에는 하나의 데이터만 들어가야 됨
표를 많이 저장하고 각각 테이블에 이름을 붙여 관리.
SQL을 사용할 수 있는 데이터 베이스
Primary key : 각 로우에 있는 고유의 키(번호)
특정 로우를 찾거나, 인용 할 수 있다.
웹시스템과 연동하여 보통 예약 시스템있는 사이트에서 사용
SQL = 데이터베이스랑 얘기할 수 있는 언어
각각 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있다.
Foreign Key(외래키) : 두 테이블의 관계성을 표시하는것, 자신과 연결되어있는 pk값을 참조함
1.one to one (주민등록번호 생각)
테이블 A의 로우(row) 하나는 테이블 B의 로우(row) 하나와 연결된다. 반대로 테이블 B의 로우 하나도 테이블 A의 로우 하나와 연결된다.
각각의 데이터들이 서로 하나씩만 연결이 된 경우에, 해당 테이블 사이의 관계를 일대일 관계라고 부릅니다.
2.one to many (한명이 키우는 여러 반려동물 생각)
테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계
일대다, 1:N라고도 부름
3.Many To Many (한 작가가 여러 권의 책쓴거 생각)
테이블 A의 로우가 테이블 B의 여러 로우와 연결이 되는 관계
서로 각자 다른 테이블의 여러 데이터와 연결 될 때는 두 테이블에 속한 데이터의 조합을 입력기 위한 중간 테이블 생성
1:1은 두 테이블이 서로가 서로의 한 로우에만 연결
1:N은 한 테이블의 로우 하나에 다른 테이블의 로우 여러개가 연결
ACID
원자성 : 작업들이 실행되다가 중단되지 않는 것을 보장하는 능력
만원을 보냈으면 상대방이 +만원 나-만원이 되야댐. 중간 단계까지 실행되고 실패 ㄴㄴ(실패하면 다시 처음 부터)
일관성 : 실행 완료하면 데이터베이스 상태 유지
(통장 잔고가 있어야된다.)
고립성 : 트랜잭션 수행 시 다른 트랜잭션 못 끼어듬
지속성: 성공적으로 수행된 트랜잭션은 영원히 반영