데이터베이스
#데이터 베이스 (DB)
- 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음.
- 데이터베이스를 제어, 관리 하는 통합 시스템을 DBMS
- 쿼리언어를 통해 삽입, 삭제, 수정, 조회 등을 수행 할 수 있음.
- 데이터 베이스 위에 DBMS가 있고 그 위에 응용프로그램이 있음. 이 구조로 데이터를 주고 받음.
ex) DBMS 인 My SQL이 있고 그 위에 Node.js 나 php에서 데이터 베이스 안에 있는 데이터를 꺼내어 해당 데이터 관련 로직을 구축 할 수 있음 ( DB -> DBMS -> 응용프로그램)
* 엔터티
- 여러개의 속성을 지닌 명사를 의미.
ex) 회원이라는 엔터티가 있다면 회원은 이름, 아이디, 주소, 전화번호의 속성을 갖고있음.
- 약한 엔터티 / 강한 엔터티
ex1) A가 혼자서는 존재하지 못하고 B의 존재여부에 따라 종속적이면 A는 약한 엔터티 , B는 강한 엔터티
ex2) 방은 건물 안에만 존재하니 약한 엔터티, 건물은 강한 엔터티
*릴레이션
- 데이터베이스에서 정보를 구분하여 저장하는 "기본단위"
- 엔터티에 관한 데이터베이스는 "릴레이션" 하나에 담아서 관리
- 릴레이션은 "관계형 데이터베이스" 에서는 "테이블" / "NoSQL"에서는 "컬렉션" .
*테이블, 컬랙션
- 관계형 데이터베이스에 대표적인 MySQL
- NoSQL 데이터베이스의 대표적인 MongoDB
- 관계형 데이터데이터베이스의 구조는 "레코드 - 테이블 - 데이터베이스"
- NoSQL 데이터베이스의 구조는 "도큐먼트 - 컬렉션 - 데이터베이스"
*속성
- 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
ex) '차'라는 엔터티의 속성에는 '차 넘버' , '바퀴 수' , '차 색깔' , '차종' 등이 있음
*도메인
- 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합.
ex) 성별 이라는 속성이 있다면 속성이 가질 수 있는 값은? {남,여} 라는 집합이 됨