CS/데이터베이스

[DB]데이터베이스 기본

개발의 피 2023. 12. 24. 12:26

* 데이터베이스(DB, DataBase)

- 일정한 규칙(규약)을 통해 구조화되어 저장되는 데이터의 모음

- DBMS를 통해 관리되며, DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등이 가능

- 실시간 접근, 동시 공유 가능

 

*DBMS(DataBase Management System)

- 데이터베이스를 제어, 관리하는 통합 시스템

 

https://www.techopedia.com/kr/definition/database-management-systems-dbms

 

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) : 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키