[DB]데이터베이스 기본
* 데이터베이스(DB, DataBase)
- 일정한 규칙(규약)을 통해 구조화되어 저장되는 데이터의 모음
- DBMS를 통해 관리되며, DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등이 가능
- 실시간 접근, 동시 공유 가능
*DBMS(DataBase Management System)
- 데이터베이스를 제어, 관리하는 통합 시스템
1. 엔터티(entity)
- 여러 개의 속성을 지닌 명사 (사람, 장소, 물건, 사건, 개념 등)
- 서비스의 요구 사항에 맞춰 속성 결정
ex) 회원 엔티티 : 이름, 아이디, 주소, 전화번호 등의 속성을 가짐
* 약한 엔터티 vs. 강한 엔터티
A : 혼자서 존재 x, B의 존재 여부에 따라 종속적
-> A: 약한 엔터티 / B: 강한 엔터티
ex) 방 : 약한 엔터티 / 건물 : 강한 엔터티
2. 릴레이션(relation)
- 데이터베이스에서 정보를 구분하여 저장하는 기본 단위
- 엔터티에 관한 데이터를 릴레이션 하나에 담아서 관리
- 릴레이션 -> 관계형 DB : '테이블' / NoSQL : '컬렉션'
* 관계형 데이터베이스 (MySQL)
- 구조 : 레코드 - 테이블 - 데이터베이스
* NoSQL 데이터베이스 (MongoDB)
- 구조 : 도큐먼트 - 컬렉션 - 데이터베이스
3. 속성(attribute)
- 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
ex. 엔티티 '차'의 속성 : 차 넘버, 바퀴 수, 차 색깔, 차종 등
4. 도메인(domain)
- 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합
ex. 속성 '성별' : 도메인 -> {남, 여}
5. 필드, 레코드
1) 필드
* 필드 타입
- 숫자 타입
- 날짜 타입
- 문자 타입
6. 관계
* 1:1 관계
* 1:N 관계
* N:M 관계
7. 키
1) 기본키 (primary key, PK) : 유일성, 최소성 만족하는 키
2) 외래키 (foreign key, FK) : 다른 테이블의 기본키를 그대로 참조하는 값, 개체와의 관계를 식별하는 데 사용
3) 후보키 (candidate key) : 기본키가 될 수 있는 후보들 (유일성, 최소성 만족)
4) 대체키 (alternate key) : 후보키가 두 개 이상일 경우, 어느 하나를 기본키로 지정하고 남은 후보키들
5) 슈퍼키 (super key) : 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키