여러 사람이 공유하여 사용할 목적으로 통합 관리되는 데이터의 집합.
이러한 데이터베이스를 관리하는 시스템을 데이터베이스 시스템, DBMS라 한다.
독립성
물리적 독립성:
데이터베이스 사이즈를 늘리더라도 관련된 응용 프로그램을 수정할 필요가 없다.
응용 프로그램과 독립적으로 데이터를 저장 및 관리한다.
논리적 독립성:
데이터베이스는 논리적 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.
무결성
여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로, 유효성 검사를 통해 데이터 무결성을 구현하게 된다.
일관성
다양한 제약조건을 통해 데이터를 일관되게 유지한다.
중복 최소화
통합 관리를 통해 데이터 중복을 최소화한다.
무결성이란, 데이터의 정확성과 일관성을 유지하고 보증하는 것을 가리키며 데이터베이스 시스템의 중요한 기능이다.
개체 무결성(Entity Integrity)
모든 테이블은 기본 키를 가져야 하며 기본키로 선택된 열은 고유하고 빈값은 허용되지 않는다.
참조 무결성(Referential Integrity)
모든 외래 키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉, 참조할 수 없는 외래키 값은 가질 수 없다.
범위 무결성(Domain Integrity)
정의된 범위에서 관계형 데이터베이스의 모든 열이 선언되야 한다.
DML(데이터 조작 언어)
데이터 조작을 윈한 언어
DDL(데이터 정의 언어)
데이터 테이블 구조 정의를 위한 언어
DCL(데이터 제어 언어)
데이터에 대한 액세스를 제어하기 위한 언어
조인이란, 2개 이상의 테이블에서 조건에 맞는 데이터를 검색하기 위해 사용하는 쿼리문을 의미합니다.
(출처:https://www.dofactory.com/sql/join)
트랜잭션은 작업의 완전성 을 보장해주는 것이다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 없도록 한다.
원자성(Atomicity)
트랜잭션의 연산이 데이터베이스에 모두 반영되던지 아니면, 전혀 반영되지 않아야한다.
일관성(Consistency)
트랜잭션이 수행된 이후에도 데이터베이스는 언제나 일관성 있는 데이터를 보장해야 한다는 것을 의미합니다.
독립성(Isolation)
여러 트랜잭션이 동시에 수행되더라도 각각의 트랜잭션은 서로 간섭없이 독립적으로 수행되어야 한다는 것을 의미합니다.
지속성(Duration)
성공적으로 완료된 트랜잭션의 결과는 데이터베이스에 영구적으로 저장되어야 한다는 것을 의미합니다.
트랜잭션의 범위를 최소한으로 유지해야한다. 일반적으로 데이터베이스 커넥션의 갯수는 제한적이다. 그런데 각 단위 프로그램이 커넥션을 소유하는 시간이 길어진다면, 사용 가능한 여유 커넥션의 갯수가 줄어들게 된다. 그러다 어느 순간에는 각 단위 프로그램에서 커넥션을 가져가기 위해 기다려야 하는 상황이 발생할 수도 있는 것이다.
?????????
데이터베이스 인덱스란 테이블의 동작 속도(검색 속도)를 높여주는 자료구조를 의미합니다. 마치 책의 앞 부분에 존재하는 목차와 같습니다. 데이터베이스는 인덱스를 따로 저장하며 관계형 DB의 경우에는 테이블로 인덱스를 관리합니다.
인덱스 설정하기에 앞서 해당 테이블에서 어떤 쿼리가 자주 사용되는지 확인해야한다. SELECT를 제외한 다른 연산의 경우 성능 감소를 가져올 수 있다.
정규화란 데이터베이스의 갱신 이상 현상을 없애고, 데이터 중복을 최소화를 위해 테이블을 둘 이상의 테이블로 분리하는 작업을 만한다. 갱신 이상에는 삽입 이상, 삭제 이상, 수정 이상이 있다.
특정 조건을 만족하는 테이블의 스키마 형태를 말하며, 제 1 정규형, 제 2 정규형, 제 3 정규형, BCNF 정규형이 있다.
NoSQL이란 전통적인 관계형 모델에서 벗어나서 다양한 데이터 모델을 사용하여 데이터의 관리와 접근을 지원하는 데이터베이스를 의미합니다