데이터베이스 관리 시스템 (DBMS)
데이터베이스 안에 저장된, 데이터에 사용자들이 쉽게 접근할 수 있도록 하는 프로그램이다. DBMS는 사용자 요청을 처리하는 데 있어, 데이터의 무결성과 인가된 사용자만 접근할 수 있도록 하는(이것도 무결성) 것을 보장한다.
스키마와 인스턴스
스키마는 메타데이터(데이터를 위한 데이터)이다. 인스턴스를 위한 틀이다.
인스턴스는 스키마에 대한 명세대로 실제 구현한 데이터이다.
뷰
관계형 데이터베이스 모델에서, 하나 이상의 테이블 혹은 다른 뷰에서,
사용자가 원하는 데이터를 선택하여 사용자 정의에 의해 나타내는 것이다. 실제 데이터들은 다른 테이블들에 흩어져 있을 수 있지만, 가상의 테이블을 만들어서 실제 테이블인 것처럼 나타낸다.
뷰가 호출되는 과정은 해당 뷰를 위한 쿼리문을 가지고 있다가 호출하는 방식이다.(자세한 내용은 업데이트 필요)
CREATE VIEW 뷰이름 AS SELECT 구문; // 뷰 생성
DROP VIEW 뷰이름; // 뷰 삭제
참고로, 뷰를 가지고 실제 데이터를 직접 수정할 수 없다.
데이터베이스 정규화
데이터베이스의 꽃, 다른 말로 헬게이트. 정규화를 이끌어 내는 수학적인 내용과 증명은 다시 공부할 수 없을 것 같다.(필요할 때가 온다면 하겠지만.)
정규화의 목적은, 이상적인 테이블 설계를 위해서 관계(Relation)를 재구성하고 테이블들을 분리/결합하는 과정이다.
이 과정에서 데이터의 중복이나 종속성이 줄어든다. (완전할수도 아닐수도 있다. Best를 찾는 과정이다)
과정 1NF -> 2NF -> 3NF -> BCNF -> 4NF -> 5NF
이상현상
함수 종속성
부분함수종속
이행적함수종속
키
후보키
기본키
슈퍼키
외래키
무결성
개체
참조
도메인
트랜잭션