일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PWA
- 셀프넘버
- 머신러닝종류
- pwa적용하기
- Javascript
- 플로이드워셜
- 데코레이터
- Python
- QuerySetAPI
- Django
- 싸피셜
- 리액트
- TypeScript
- 14658
- SSAFY
- SSAFYcial
- SQL
- react
- 알고리즘
- db
- sqld
- VITE
- 싸피10기
- js
- 싸피
- queryset
- vitepwa
- 백준
- unionfind
- git
- Today
- Total
목록공부 (23)
Meme's IT
들어가기전에,,, # 트랜잭션 이란? DB의 논리적 연산 단위, 하나 이상의 SQL문을 포함 원자성(Atomicity): 전부 실행되거나 전혀 실행되지 않음(All or Nothing) 일관성(Consistency): 트랜잭션으로 인한 DB 상태의 모순이 없음 고립성(Isolation): 부분적인 실행 결과에 다른 트랜잭션이 접근할 수 없음, LOCKING으로 고립성 보장 영속성(Durability): 트랜잭션의 결과는 영구적으로 저장됨 # TCL 데이터 무결성 보장이 목적임 1) 영구 변경 전 확인 2) 연관 작업 동시 처리 가능 Oracle에서는 1) SQL 문을 실행하면 트랜잭션이 시작되고 2) TCL을 실행하면 트랜잭션이 종료됨 DDL를 실행하면 자동으로 커밋 (DML 이후 커밋 없이 DDL을 실..
# INSERT: 데이터 입력 INSERT INTO 테이블명(칼럼명) VALUES (필드값, ..); INSERT INTO 테이블명 VALUES (필드값, ..); # UPDATE: 데이터 수정 UPDATE 테이블명 SET 칼럼명=필드값; # DELETE: 데이터 삭제 DELETE FROM 테이블명 WHERE 조건절; DELETE FROM 테이블명; DELETE로 데이터를 삭제해도 테이블 용량은 초기화되지 않음 TRUNCATE는 초기화됨 DROP은 객체 삭제 명령어 # SELECT: 데이터 선택 SELECT 칼럼명 FROM 테이블명;// 칼럼 별 데이터 선택 SELECT DISTINCT 칼럼명 FROM 테이블명; // 데이터 중복없이 선택 SELECT * FROM 테이블명; // 전체 칼럼의 데이터 선택..
# 데이터 유형 CHAR(s): 고정 길이 문자열 정보, 할당 된 변수 값의 길이가 더 길다면, 공백으로 채워짐('AA' = 'AA ') VARCHAR2(s): 가변 길이 문자열 정보, 할당된 변수의 값의 바이트만 적용('AA' ≠ 'AA ') NUMBER(L,D): 정수, 실수 등의 숫자 정보 DATE: 날짜와 시각 정보, 크기 지정이 필요하지 않음 # 규칙 테이블명은 다른 테이블의 이름과 중복되면 안된다 테이블 내의 칼럼명은 중복이 불가능 각 칼럼들은 , 로 구분되고 ; 로 끝난다 칼럼에는 꼭 데이터 유형을 지정해줘야 한다 테이블명과 칼럼명은 반드시 문자로 시작 대소문자 구분하지 않음, (알파벳, 숫자, _, $, #) 사용 # CREATE TABLE = 테이블 생성 CREATE TABLE 테이블명 ..
![](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 인덱스 조정: 대량의 데이터처리나 부분처리에 의해 성능이 저하되는 경우 더..