💡 데이터베이스
란?
데이터베이스(DB, Database)는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음
💡 DBMS
란?
DBMS(Database Management System)는 데이터베이스를 제어 관리하는 통합 시스템
쿼리 언어 (query language)
를 통해 삽입, 삭제, 수정, 조회💡 엔터티 (entity)
란?
사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미
💡 속성 (attribute)
이란?
릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
⭐️ 강한 엔터티 VS 약한 엔터티
강한 엔터티 : 혼자서 존재할 수 있는 엔터티 (ex. 건물)
약한 엔터티 : 다른 엔터티의 존재 여부에 따라 의존적인 엔터티 (ex. 방)
💡 릴레이션 (relation)
이란?
데이터베이스에서 정보를 구분하여 저장하는 기본 단위
테이블
컬렉션
🔗 관계형 데이터베이스 (MySQL)
🔗 NoSQL 데이터베이스 (MongoDB)
💡 도메인 (domain)
이란?
릴레이션에 포함된 각각의 속성들이 가질 수 있는 집합
🔗 필드와 레코드로 구성된 테이블
필드
: name, ID, address레코드 (튜플)
: 테이블에 쌓이는 행(row) 단위의 데이터필드는 DBMS마다 다른 각자의 타입을 가짐
🔗 글자 수 지정 타입
🔗 큰 데이터 저장 타입
🔗 문자열 열거 타입
💡 데이터베이스에는 여러 개의 테이블이 있고 이러한 테이블은 서로의 관계가 정의되어 있음
👉 이러한 관계를 관계화살표로 나타냄
🔗 1:1 관계
🔗 1:N 관계
👉 한 개체가 다른 많은 개체를 포함하는 관계
🔗 N:M 관계
👉 테이블 두 개를 직접적으로 연결해서 구축 ❌
👉 1:N, 1:M 라는 관계를 갖는 테이블 두 개로 나눠서 설정
💡 키 (key)
란?
테이블 간의 관계를 조금 더 명확하게 하고, 테이블 자체의 인덱스를 위해 설정된 장치
유일성
: 중복되는 값이 없음
최소성
: 필드를 조합하지 않고 최소 필드만 써서 키를 형성할 수 있음
🔗 기본키 (PK, primary key)
자연키
: 중복되지 않는 것을 '자연스레' 뽑다가 나오는 키 - 언젠가는 변하는 속성을 가짐
인조키
: 인위적으로 생성한 키 - 변하지 않음 -> 보통 기본키로 사용
🔗 외래키 (FK, foreign key)
🔗 후보키 (candidate key)
🔗 대체키 (alternate key)
🔗 슈퍼키 (super key)