Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- K-ICT
- ssh operator
- HeidiSQL
- requesthead
- 정규표현식
- text.children
- 자동화
- enumerate #함수 # def
- datetime #zip
- JavaScripts
- celery
- 빗썸api
- Docker
- mariadb설치 #mysql설치
- beautifulsoup
- 리눅스 # 기초
- airflow
- 자연어처리 환경 컨테이너
- 파일저장
- 가상환경 초기세팅
- cron
- with open
- pickle #datetime
- FastAPI
- aiflow
- Google Cloud Storage
- etl
- 원하는 태그 찾기
- 모델서빙
- requests
Archives
- Today
- Total
오음
데이터 모델링 본문
데이터 모델링이 필요한 이유
유저의 활동은 모두 데이터이며, 수 많은 종류의 서비스나 기능이 나오고, 많은 데이터가 추가되고 삭제된다. 그 데이터로 더 나은 서비스를 제공하기 위하여 가능한 모든 데이터를 쌓아놓고 활용하려고 한다. 하지만 데이터를 보관하는 데는 비용이 들고 데이터를 조회하는 데도 비용이 든다. 이러한 데이터를 효율적으로 사용하기 위해서는 데이터 모델링이 필요하다.
데이터 모델링
현실세계에 거대하고 복잡한 정보를 데이터베이스화 시키기 위한 과정이다. 데이터를 구조화하고, 조직화하면, 관계를 정의한다.
- 추상화 : 다양한 것을 일정한 형식에 맞춰 표현
- 단순화 : 동일한 규약으로 이해하기 쉽도록 하는 것
- 명확성 : 정확하게 현상을 기술
여러 데이터에 맞는 데이터베이스를 만들어줘야 하고 그 데이터베이스를 만들어야 한다.
가장 먼저 사용자의 요구사항을 수집하고 이후 3단계 개념적,논리적,물리적 데이터 모델링을 통해 구현한다.
1. 개념적 데이터 모델링 (Conceptual Data Modeling)
- 데이터베이스 설계 과정에서 현실 세계에 존재하는 무수히 많은 개체들 중에 데이터베이스에 저장할 대상들을 추출하여 이를 추상화 시킨다.
- 요구사항을 토대로 핵심개념을 구분하며 전체적인 뼈대를 만든다.
- E-R기법을 이용하여, 중요한 데이터와 각 데이터 간의 관계를 정의하고 모델링 한다.
2. 논리적 데이터 모델링 (Logical Data Modeling)
- 구체화된 업무 중심의 데이터 모델을 만들어 내는 것
- 컴퓨터가 이해하고 처리할 수 있는 구조로 변환시키는 과정
- ER다이어그램을 사용하고자 하는 DBMS에 맞게 매핑하여 실제 데이터 베이스로 구현하기 위한 모델을 만드는 과정이다.
3. 물리적 데이터 모델링 (Physical Data Modeling)
- 최종적으로 실제 테이블을 만드는 작업을 진행하는 과정이다.
- SQL코딩을 통해 완성하는 단계
모델링 방식
- Top-Down
- 추상적인 요구사항으로부터 구체적인 구현 방식까지 좁혀들어오면서 사고하는 방식이다.
- 도구를 한정하지 않고 논리적인 과정을 거치기 때문에 서비스/기술 수준이 높아질 수 있다.
- 경험이 많아야 한다.
- Bottom-Up
- 쓸수 있는 도구가 한정되어있을 때 유용하다.
- 요구사항에서 불가능 한 것들을 제외하거나, 요구사항을 변경해야하는 경우가 생긴다.
- DB의 특징을 파악한다.
데이터베이스 정규화 , 비정규화
정규화란?
관계형 데이터베이스의 설계에서 불필요한 데이터를 최소화하고 데이터의 정확성,일관성을 향상 시키도록 데이터를 구조화하는 과정이다.
장점
- 이상현상 제거
- 삽입 이상 : 원하지 않는 자료 삽입 , 자료 부족으로 삽입이 되지 않는 문제
- 삭제 이상 : 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체 삭제로 정보 손실 발생
- 갱신 이상 : 정확하지 않거나 일부의 튜플만 갱신되어 정보의 일관성이 없어져 정확한 정보 파악이 되지 않음
- 데이터 구조의 안정성 및 무결성 유지
단점
- 테이블이 아주 클 경우 릴레이션 간의 JOIN연산 증가 -> 질의에 대한 응답 시간 저하
비정규화란?
읽기성능 향상을 위해 테이블을 다시 합치는 과정이다. 효율적인 쿼리를 날릴 수 있게 한다.
빅데이터용 데이터베이스에 적합하다. (모델 학습 비용이 커질 수 있다.)
장점
- 빠른 데이터 조회
단점
- 과도하면 데이터의 무결성이 깨질 수 있다.
'데이터 엔지니어링 > DB' 카테고리의 다른 글
DB에 저장,가져오기 (0) | 2023.03.13 |
---|---|
sqlDB와 파이썬 연동 pymysql (0) | 2023.03.09 |