BDA 빅데이터 분석 학회/8기 SQL 문법 기초반

[BDA SQL 문법 기초반 4회차] 데이터 베이스 모델링에 대해 알아보자

_jinyj 2024. 5. 3. 23:34

오늘은 4회차 수업 복습 노트 입니다!

데이터 베이스와 모델링에 관한 수업을 하였습니다


데이터 베이스 사용자

1) 데이터 베이스 관리자 (DE): 데이터 베이스 시스템을 운영하고 관리한다

2) 최종 사용자(DA): 데이터 베이스에 접근하여 데이터를 조작한다

3) 응용프로그래머: 데이터 언어를 삽입하여 응용프로그램을 작성한다


데이터 베이스 관리자의 역할

1) 데이터 베이스 구성요소 선정

데이터 베이스를 새로 설계하거나 추가하거나 다른 기업과 협업할 경우 요구사항에 따른 데이터 베이스를 구성할 데이터를 결정

2) 데이터 베이스 스키마 정의

데이터 타입, 인스턴스를 나타내는 컬럼의 영역 등 스키마를 정함

3) 물리적 저장 구조와 접근 방법 결정

인덱스 기반으로 데이터를 정리하여 효율적으로 서칭할 수 있게 함

4) 무결성 유지를 위한 제약조건 정의

정확성, 유효성을 유지함 / 데이터 중복시 데이터 정합성이 무너짐

5) 보안 및 접근 권한 정책 결정

누구나 쉽게 데이터에 접근할 수 없게 함, 데이터 관리자가 아니면 절대 접근을 금지하며 접근 권한도 사전에 승인 필요

6) 백업 및 회복 기법 정의

백업은 기본이며 소프트 웨어적으로 다 기능이 존재함

7) 시스템 베이스 관리

8) 시스템 성능 감시 및 성능 분석

데이터 베이스만 가지고 시스템 성능이 무너지지 않음, 다만 많은 데이터를 생성시 성능이 느려질 수 있음

9) 데이터 베이스 재구성

데이터는 추가될수도, 새롭게 변화할 수도 있음, 이때 새로운 데이터들을 관리함


최종 사용자와 응용 프로그래머

최종 사용자: 데이터 분석가, 다른 부서 실무진들

응용프로그래머: SQL 등을 이용해 응용 프로그램들을 만듦, 필요한 데이터를 쉽게 찾을 수 있게 함


데이터 언어

1) DDL 데이터 정의어 (Data Definition Language)

데이터 베이스를 구축하기 위해 스키마를 정의하고 삭제함

스키마 제약 조건과 구조를 만들 때 진행

새로운 테이블과 view 테이블을 만들 때 사용

2) DMC 데이터 조작어 (Data Manipulation Language)

데이터를 삽입, 검색, 삭제, 수정 등 우리가 원하는 인스턴스를 찾거나 정리하는 과정

SQL이 데이터 조작어

3) DCC 데이터 제어어 (Data Control Language)

데이터 베이스 관리 시스템 영역에서 잘못된 조작을 통해 데이터 무결성 문제가 생길 수 있는데 이때 규칙, 기법을 통해 제어함 => 접근에 대한 제어 혹은 데이터 베이스 변경

4) TCL (Transaction Control Language)

트랜잭션을 제어하는 명령어


데이터 베이스 관리 시스템의 구성

제가 직접 그린 구도입니다 ㅎㅎ

여기서 컴파일러란 특정 프로그래밍 언어를 다른 프로그래밍 언어로 바꿔주는 것입니다. (번역기의 개념)


데이터 모델링이란?

이제 데이터 모델링 파트입니다!!

데이터 모델링은

조직의 정보 수집과 관리 시스템을 정의하는 시각적 표현입니다.

다양한 이해 관계자들이 조직의 데이터에 대한 통일된 개념을 생성할 수 있게 돕습니다.

해당 비즈니스가 수집하는 데이터, 서로 다른 데이터 세트 사이의 관계, 데이터를 저장하고 분석하는데 사용되는 방식입니다.


개념적 데이터 모델 & 논리적 데이터 모델

데이터 모델에는 개념적 데이터 모델과 논리적 데이터 모델이 있습니다

<개념적 데이터 모델>

<논리적 데이터 모델>

논리적 데이터 모델은 관계 데이터 모델, 네트워크 데이터 모델, 계층 데이터 모델로 이루어져 있습니다.

<데이터 모델링 예시>

1) 출판기업

출판 기업을 예시로 들어보자면

이런 식으로 나타낼 수 있습니다.

주문이 있어야 도서와 고객을 연결시킬 수 있으므로 주문은 관계에 해당합니다.

도서, 고객은 개체이므로 사각형

주문은 도서와 고객이라는 개체를 연결해주는 관계를 나타내므로 마름모

도서 이름, 출판사, 도서 단가는 도서라는 개체의 속성이므로 타원형으로 나타내줍니다.

고객이름, 주소, 전화번호도 고객이라는 개체의 속성이고 주문일자도 주문이라는 관계의 속성이므로 타원형으로 나타냅니다.

이런식으로 나타낸 것은 논리적 데이터 모델입니다.

2) 코끼리

현실 세계의 코끼리를 개념적 모델링을 하는 것은 코끼리를 추상화하는 작업입니다.

코끼리의 특징을 나열해볼 수 있고 이것을 논리적 모델링하면 사진과 같이 만들 수 있습니다.

3) 자동차 대리점

개념적 모델링

자동차 -> 제조사, 제조번호, 차량속성, 가격

주문-> 차량주문, 사업자주문

고객-> 고객ID, 고객 등급, 사업자 기업

협력사-> 협력사 브랜드, 협력사 사원

논리적 모델링

공간 조절을 실패해서 기괴한 모델링이 되었지만 그래도 형체를 알아볼 수 있으니 괜찮을 겁니다 ...

먼저 자동차와 고객이라는 개체를 연결해주는 주문은 관계입니다.

그럼 자동차와 고객은 사각형, 주문은 마름모로 표현합니다.

이때 직원을 통해 자동차를 판매할 수 있으므로 자동차와 직원은 개체 (사각형), 판매라는 관계는 마름모로 표현합니다.

직원을 통해 고객은 구매할 수 있으므로 판매라는 관계를 통해 또 연결할 수 있습니다.

자동차를 납품받을 협력사를 또 다른 개체로 설정하고 차량 납품을 관계로 설정하여 모델링을 또 할 수 있습니다.

이제 각 개체와 관계의 속성에 따라 타원형으로 표현해주면 됩니다.

이렇게 하면 논리적 모델링이 완성됩니다!


데이터 모델링이 중요한 이유

이렇게 한 데이터 모델링이 중요한 이유는

1) 데이터 베이스 소프트 웨어 개발 오류 감소

2) 데이터 베이스 설계 및 생성 속도와 효율성 촉진

3) 조직 전체에서 데이터 문서화 및 시스템 설계의 일관성 조정

4) 데이터 엔지니어와 비즈니스 인텔리전스 팀 간의 커뮤니케이션 촉진

입니다.

이번 회차 분량이 조금 많았지만 잘 이해한 것 같아서 기분이 좋습니다 ~.~

다음 회차까지 필수과제 해서 제출을 해야 합니다 하하

다들 좋은 주말 보내세요