[데이터베이스] 1.데이터베이스 기본
[1. 데이터베이스와 DBMS]
1. 데이터베이스 : 일정한 규칙 또는 규약을 통해 구조화되어 저장되는 데이터의 모음
- 데이터베이스의 논리적 구조 : 사용자 관점에서 본 데이터의 개념적 구조
- 데이터베이스의 물리적 구조 : 저장 관점에서 본 데이터의 물리적 배치, 데이터의 실제 구조
2. DBMS : 데이터베이스를 사용할 수 있도록 관리하는 시스템
- DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행
- DBMS는 데이터의 종속성과 중복성 문제를 해결할 수 있음
3. 데이터 독립성
- 논리적 데이터 독립성 : 응용 프로그램에 영향을 주지 않고 데이터베이스의 논리적 구조를 변경시킬 수 있는 능력
- 물리적 데이터 독립성 : 데이터베이스의 논리적 구조에 영향을 주지 않고 데이터의 물리적 구조를 변경시킬 수 있는 능력
[2. 데이터베이스의 구성요소]
* 논리적 구성요소={객체, 관계}
1. 엔터티(entity) : 유무형 정보의 객체(object)
- 정보의 단위
- 하나 이상의 속성(attribute)으로 구성됨
- 약한 엔터티 : 다른 엔터티의 존재 여부에 따라 종속적
- 강한 엔터티 : 존재여부에 따라 다른 엔터티의 존재에 영향을 주는 엔터티
Ex. 엔터티 = 회원, 속성 = 이름, 아이디, 주소, 전화번호 등
2. 릴레이션(relation) : 정보를 구분하여 저장하는 기본 단위
- 엔터티에 관한 데이터를 릴레이션 하나에 담아서 관리
- 컬렉션 또는 테이블이라는 명칭 사용
3. 속성(attribute) : 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
- 엔터티의 성격 중, 관리 대상이 되는 것
4. 도메인(domain) : 속성이 취할 수 있는 값의 집합
→ 레코드가 쌓여 테이블이 되고, 테이블이 쌓여 데이터베이스가 됨
[3. 테이블 사이의 관계]
1. 일대일 관계 (1:1)
Ex. 학생 당 학번
2. 일대다 관계 (1:N)
Ex. 교수 당 강의
3. 다대다 관계 (N:M)
Ex. 학생과 강의
[4. 키]
1. 키 : 레코드를 식별할 수 있는 속성의 집합, 테이블을 연결해주기 위한 도구
- 유일성 : 테이블 내에서 중복되는 값이 없음
- 최소성 : 최소한의 필드로 키를 형성할 수 있음
(1) 기본키(PK, primary key) : 유일성과 최소성을 만족하는 키
(2) 후보키(candidate key) : 기본키가 될 수 있는 키
(3) 대체키(alternative key) : 후보키 중 기본키가 아닌 키
(4) 외래키 (FK, foreign key) : 릴레이션1에 속한 속성집합A가 릴레이션2의 기본키일 때, 속성집합A는 릴레이션1의 외래키
- 외래키는 중복될 수 있음
- 릴레이션1의 FK = 릴레이션2의 기본키의 도메인
- 릴레이션1과 릴레이션2는 같을 수 있음
- 릴레이션1을 참조 릴레이션, 릴레이션2를 참조된 릴레이션이라고 함
(5) 슈퍼키(super key) : 유일성을 만족하지만 최소성은 보장하지 않는 속성의 집합