TeamLog🦝/DataBase📁

데이터 베이스 이론 & ERD (Entity Relationship Diagram)

pigonhe 2024. 7. 28. 03:33

1. 데이터 베이스 (DataBase)

데이터란? >> 실세계의 가공되지 않은 무의미한 자료들

( + 이러한 데이터를 이용해서 유의미한 정보를 얻어낸다)

 

데이터 베이스란? >> 데이터의 저장소!

일상생활 대부분의 정보가 저장되고 관리된다

 

2. DBMS (Database Management System ) : 데이터베이스 관리 시스템

데이터베이스에 접근하여 데이터를 조작할 수 있도록 도와줌

즉, 사용자(개발자)들은 DB에 직접 접근하여 데이터를 다루는 것이 아니라, DBMS의 도움으로 데이터를 다루고 변화시킬수 있다

ex) MySQL, 오라클, 마리아 디비

 

*데이터베이스 >> 데이터를 담는 '통'

*데이터관리시스템 >> 이 '통'을 관리하는 소프트웨어

 

[장점]

1. 데이터 중복 최소화 (업무 흐름에 따라 데이터 통합 및 분리 >> 중복성 줄일 수 있음) = 모델링의 정규화

2. 데이터의 공유

3. 데이터의 일관성 (데이터 불일치성 사전 방지 >> 신뢰성 높아짐, 데이터 베이스 트랜잭션) 

4. 데이터의 무결성(현실세계 값과 저장된 값이 일치하는 정확성)

5. 데이터 보안

 

3. DataBase 특징

1) 실시간 접근성 : 사용자 요구에 실시간으로 응답

ex) 쿠팡 >> 고객이 원하는 상품을 검색, 주문

2) 계속 변화 : 데이터의 계속적인 삽입, 삭제, 수정을 통해 현재의 정확한 데이터 유지

ex) 쿠팡 >> 상품 정보, 가격 정보를 상황에 따라 변경

3) 동시 공유 : 서로 다른 데이터의 동시 사용 뿐만 아니라 같은 데이터의 동시 사용도 지원

ex) 쿠팡 >> 여러고객이 동시에 같은 상품 조회, 구매

4) 내용 기반 참조 : 데이터가 저장된 주소나 위치가 아닌 내용으로 참조

ex) c언어의 포인터, url주소

 

4. Data Modeling

데이터를 이해하고 유형화&구조화 하는 과정

>> 현실 세계의 데이터를 본질적으로 분석해 현상을 이해하고 '추상화'하는 과정

모델링 = '추상화' + '단순화' + '명확화'

 

[3가지 모델링]

모델링 과정

- 개념적 모델링

 요구사항과 개체(Entity)들의 관계를 표현하는 과정

 대표적인 방법 : ER(Entity- Relationship)

 ER다이어그램을 사용하여 업무 개념을 시각적으로 표현하고 개체 간의 관계화 속성을 정의함

ex) "고객"과 "주문"이라는 개체가 있다면, 이들 사이의 관계를 정의하고 속성을 식별

- 논리적 모델링 

 개념적 데이터 모델을 기반으로 실제 데이터베이스 시스템에서 사용되는 데이터 구조로 변환하는 과정

 개념적 모델의 개체를 테이블로 변환하고, 관계를 외래키로 표현

 데이터의 논리 구조를 설계한 중간단계로, 데이터베이스 플랫폼에 종속되지 않음

- 물리적 모델링 

논리적 모델을 기반으로 실제 데이터베이스 시스템에 구현하는 과정

테이블과 인덱스의 물리적인 구조, 저장 공간 및 서능에 대한 고려사항 반영

데이터베이스 시스템에 직접 적용되는 구체적인 설계 단계

 

+ 데이터 모델 (Data Model)

현실 세계의 데이터 구조를 컴퓨터 세계로 논리적으로 표현한 것 = 추상화의 결과물

- 개념적 데이터 모델 : 현실 데이터를 개

념적으로 객체 타입, 관계 정의해 모델링한 것.

- 논리적 데이터 모델 : 개념적 데이터를 논리적으로 객체타입, 관계 정의 해 DB구조로 표현한 것.

>> 즉, 현실의 데이터를 개념적 데이터 모델로 모델링하고 논리적 데이터 모델로 모델링해 DB구조를 설계함.

 

[ERD (ENtity Relationship Diagram)]

데이터 및 데이터들의 관계를 표현해 도식화된 그림 (개념적 모델링 과정에 해당함)

표기법을 사용해서
이런식으로 데이터와 데이터간의 관계를 표현한다
실무에서는 이렇게 더 많이 쓴다고 한다.

 

5. 관계형 데이터베이스

데이터가 열과 행의 테이블에 저장되는 사전 정의된 관계, 데이터를 구성하는 정보 모음

>> 서로 다른 데이터 구조가 어떻게 서로 연관되어 있는지 쉽게 확인하고 이해할 수 있음