DBMS는 데이터베이스 내 데이터에 접근하도록 도와주는 시스템입니다.DBMS는 크게 질의처리기와 저장 시스템으로 이루어져있습니다.
Primary Key : 테이블에서 각 Row(행)을 유일하게 구분하는 Column-Key
Foreign Key : 하나의 테이블에 있는 Column(열)으로는 그 의미를 표현할 수 없는 경우, 다른 테이블의 Primary-Key Column의 값을 반드시 참조해야 하는 Key
ER(Entity-Relation) 모델 : 개체-관계 모델, 데이터베이스를 설계할 때 사용하는 모델 중 하나
데이터베이스의 무결성과 일관성을 위해서 트렌젝션은 4가지 특징을 만족해야되는데요.
원자성은 한 트랜젝션내 실행한 작업은 모두 성공하거나 실패해야되는 거구요.
일관성은 일관성있는 데이터베이스 상태를 유지시키는 것입니다.
격리성은 동시에 실행되는 트렌젝션은 서로 영향을 미치지 않아야 하구요.
지속성은 트랜젝션 완료시 결과가 영구적으로 반영되어야 합니다.
Join이란 2개 이상의 테이블에서 조건에 맞는 데이터를 추출하기 위하여 사용
DDL(Data Definition Language)
: 데이터베이스를 정의하는 언어, 객체를 생성하거나 수정하거나 삭제하는 등 데이터의 전체 골격을 결정하는 역할
CREATE: 데이터베이스, 테이블 등을 생성/ ALTER: 테이블을 수정
DROP: 데이터베이스, 테이블을 삭제 / TRUNCATE: 테이블을 초기화
: 정의된 데이터베이스에 입력된 레코드를 조회하거나 수정하거나 삭제하는 등의 역할
INSERT: 데이터를 삽입/ UPDATE: 데이터를 수정 / DELETE: 데이터를 삭제
: 데이터베이스에 접근하거나 객체에 권한을 주는등의 역할
GRANT: DB 객체에 권한 부여 / REVOKE: 부여한 권한을 취소, 철회
NOSQL은 Not Only SQL의 약자로 SQL을 보완한다는 의미를 갖고 있습니다.
NOSQL은 스키마가 없어서 데이터를 조회하고 삽입하는 속도가 빠릅니다.
또한 대량의 분산 데이터를 저장하는데 특화되어있습니다.
파티셔닝은 테이블을 컬러 단위로 나누는 기법인데요.
장점은 update나 insert 같은 작업이 분산되어 있어서 성능이 향상되구요.
단점은 테이블간 join 비용이 증가하게 되고, index를 별도의 파티셔닝 할 수 없다는 단점을 가지고 있습니다.
샤딩은 테이블을 row단위로 분산해서 저장하는 방법입니다. Horizontal Partitioning 이라고도 하는데요. 샤드 key를 정하는 방법에 따라서 샤드 종류가 결정되는데. 크게 Hash Sharding과 Dynamic Sharding이 있습니다.
JDBC(Java Database Connectivity)는 DB에 접근할 수 있도록 Java 에서 제공하는 API 이다.