일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데코레이터
- 14658
- 싸피
- SQL
- vitepwa
- TypeScript
- SSAFYcial
- 플로이드워셜
- 알고리즘
- VITE
- db
- 머신러닝종류
- queryset
- git
- PWA
- js
- 싸피10기
- Django
- pwa적용하기
- 싸피셜
- SSAFY
- 셀프넘버
- sqld
- react
- Python
- 백준
- 리액트
- unionfind
- QuerySetAPI
- Javascript
- Today
- Total
목록공부/SQLD (20)
Meme's IT
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mtJEU/btszmxpj9HK/AiFEKk60ueTEweQsXPUn3K/img.png)
우선, DB란? 데이터를 일정한 형태로 저장해 놓은 것, DBMS를 이용하여 효율적인 데이터 관리와 데이터 손상 복구 가능 그럼 여기서 DBMS란? → 효율적인 데이터 관리, 데이터 손상 방지와 복구를 위한 SW # DB의 종류 계층형 DB: 트리 형태의 자료구조에 데이터 저장, 1:N 관계 네트워크형 DB: 오너와 멤버 형태로 데이터 저장, M:N 관계 관계형 DB: 릴레이션에 데이터 저장, 집합 연산 & 관계 연산 가능 # 관계형 DB(Relational Database) ① 정규화를 통해 이상현상 및 중복 데이터 제거 ② 동시성 관리와 병행 제어를 통해 데이터 동시 조작 가능 2023.10.12 - [DB] - [DB] DB의 종류 (관계형 / 비관계형) 🔎 관계형 DB에서의 연산 1. 집합 연산 ..
# 분산 DB? 여러 곳으로 분산되어 있는 DB를 하나의 가상 시스템으로 사용할 수 있도록 한 DB 물리적 사이트를 분산되어 있으나 논리적으로는 동일한 시스템 과거에는 위치 중심 → 현재는 업무 필요에 따라 분산 설계 설계방식 상향식: 지역 → 전역 스키마 하향식: 전역 → 지역사상 스키마 장점 신뢰성과 가용성 증가 빠른 응답 속도와 통신비용 절감 용량 확장 용이 지역 자치성 효용성, 융통성 단점 관리 및 통제가 어렵다 데이터 무결성 관리 어렵다 SW 개발 비용 및 처리 비용이 증가 불규칙한 응답 속도 오류의 잠재성 증대 # ⭐ 분산 DB의 투명성⭐ 분할 투명성: 하나의 논리적 관계가 분할되어 각 단편의 사본이 여러 사이트에 저장 위치 투명성: 사용하려는 데이터 저장 장소가 명시되지 않아도 됨 지역사상 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/WaOFR/btsy34UZFbp/ZIbLZniwc4q4gTtKAQKHo1/img.png)
# 슈퍼 타입과 서브 타입 Extended ER 이라고도 부른다. 공통인 부분을 슈퍼 타입, 상속받아 다른 엔터티와 차이가 있는 부분은 서브 타입이라고 함 각각의 속성을 할당해서 수평 분할을 하는 모델을 슈퍼/서브 타입 데이터 모델이라고 함 슈퍼/서브 타입 데이터 모델을 통해.. 정확하게 업무를 표현할 수 있고 물리적 모델링 시 선택의 폭을 넓힐 수 있다. 하지만, 일정한 기준으로 변환해한다 → 아니라면 성능저하의 위험이 있다 ▶ 슈퍼 / 서브 타입 데이터 모델의 변환 기술 변환 기준: 데이터 양, 트랜잭션 유형 1:1 타입: 개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성 슈퍼/서브 타입: 슈퍼/서브 타입에 대해 발생되는 트랜잭션에 대해서는 슈퍼/서브 타입 테이블로 구성 All in One 타입..
데이터가 많아지면.. 블록(= 테이블의 데이터 저장 단뒤)의 I/O(입출력) 횟수가 증가하고 그에 따라 디스크 I/O 성능 저하가 일어난다. 이 때 일어나는 두가지 현상 1. 로우 체이닝(Row Chaining): 행 길이가 너무 길어서 여러 블록에 걸쳐 저장되는 현상 2. 로우 마이그레이션(Row Migration): 수정된 데이터가 해당 블록이 아닌 다른 블록의 빈 공간에 저장되는 현상 그래서 이런현상을 방지하기 위해 트랜잭션을 분석해서 적절하게 1:1관계로 분리해서 관리 # 테이블 분할 반정규화 기법 중 하나 수직 분할: 칼럼단위 수평 분할: 행단위 / 파티셔닝 # 파티셔닝(Partitioning) PK에 의해 테이블을 분할하는 방법 논리적으로는 한개의 테이블 / 물리적으로는 여러 데이터 파일에 분..
# 반정규화란? 데이터를 중복, 통합, 분리하여 성능을 향상시키는 기법 데이터 무결성이 깨질 수 있는 위험을 감수하고 조회속도를 향상 하지만 데이터 모델의 유연성은 낮아짐 half정규화가 아니라 reverse정규화임 # 반정규화를 해야하는 이유? 디스크 I/O 양이 많아서 성능이 저하된 경우 경로가 너무 멀어 JOIN으로 인해 성능이 저하된 경우 다량의 범위를 자주 처리해야하는 경우 칼럼을 계산하여 읽을 때 성능이 저하되는 경우 등등.. # 반정규화의 절차 1. 반정규화 대상 조사 : 데이터 처리 범위, 통계성 등을 확인해서 대상을 조사한다 2. 다른 방법 검토 VIEW 사용: 지나치게 많은 JOIN이 걸리는 경우 클러스터링 or 인덱스 조정: 대량의 데이터처리나 부분처리에 의해 성능이 저하되는 경우 더..
# 정규화 (Normalization) 데이터 분해 과정, 이상현상 제거 반복되는 데이터를 분리하고 각 데이터가 제자리를 잘 찾아가도록 정리하는 과정 ▶ 1차 정규화(1NF) 같은 성격 or 내용인 컬럼이 연속될 때 컬럼을 제거하고 테이블을 생성 즉, 중복되는 속성을 제거하는 작업 1차 정규화를 통해 속성의 원자성을 확보할 수 있다 ▶ 2차 정규화(2NF) 모든 속성은 반드시 기본키 전부에 종속되어야 한다 부분적 함수 종속성을 제거하는 작업 하지만, 1차 정규화 결과 기본키가 한개라면 생략 예를 들어서, 하나의 테이블이 학생 번호, 듣는 강의, 강의실로 이루어져 있을 때 학생 번호 → 듣는 강의 듣는 강의 → 강의실 으로 종속되므로 테이블을 쪼개줘야 한다 ▶ 3차 정규화(3NF) 기본키가 아닌 다른 속성..
# 성능 데이터 모델이란? DB 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인구조, PK, FK 등 여러가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 분석 및 설계 단계에서 진행됨 성능 데이터 모델링 시점이 늦어질수록 재업무 비용이 증가 성능을 튜닝하면서 변경이 가능 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 증가 # 고려 사항 및 모델링 순서 정규화 → 용량산정 → 트랜잭션 → 반정규화 → 기타조정 데이터 모델링을 할 때 정규화를 정확하게 수행 DB 용량을 계산해서 정해놓는다(용량산정) DB에 발생되는 트랜잭션의 유형을 파악해 놓는다 용량과 트랙잭션 유형에 따라 반정규화를 수행 이력 모델의 조정, PK/FK조..
# 식별자 엔터티를 대표할 수 있는 속성을 의미한다 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야한다. # 식별자의 특징 1. 유일성 모든 인스턴스들이 주식별자로 유일하게 구분되어야 한다. 예를 들어, 이름은 동명이인이 있을 수 있으므로, 식별자로 사원번호를 부여해준다. 2. 최소성 주식별자를 구성하는 속성은 최소의 수가 되어야 한다. 사원번호로도 충분하므로 그 외의 식별자는 필요없음 3. 불변성 주식별자의 값은 자주 변하지 않는 것이어야 한다. 사원번호는 변경되면 안된다. 4. 존재성 주식별자가 지정되면 반드시 값이 들어와야 한다. 사원번확 없는 직원은 있을 수 없다. # 식별자의 종류 1. 대표성 여부에 따른 분류 주식별자: 대표성을 만족하는 식별자 (ex. 사원번호) 보조 식별자: 유일성과..