DB 33

임베디드(= 메모리) 데이터 베이스

1. test - 임베디드 모드 db 사용 이유 test case를 실행하려고 별도의 db를 설치하고, 운영하는 것이 비효율적 단순 검증 용도로 사용하므로 test 종료시 db의 data를 모두 삭제해도 된다. 더해서 test 종료시, db 자체를 날려도 된다. 임베디드 모드 H2 db는 java로 개발 되어있고 JVM 안에서 memory 모드로 동작한느 특별한 기능 제공 app 실행할 때 H2 데이터베이스도 해당 JVM 메모리에 포함해서 함께 실행 하 수 있다. db를 app에 내장해서 함께 실행한다고 Embedded mode라고 한다. app 종료시, embedded mode로 동장하는 H2 db도 함께 종료되고 data도 모두 사라진다. = java libarary처럼 동작한다. 수동, 자동 공통 ..

DB/sql 2023.09.25

DBMS, Instance, DB, Schema, 사용자 계정

1. 용어 1.1. DBMS DBMS는 데이터베이스 관리 시스템(Database Management System)의 약자로, 데이터를 저장, 검색, 수정 및 관리하는 데 사용되는 소프트웨어 == DB + Instance 합한 db 내의 데이터에 접근할 수 있도록 해주는 소프트웨어 DBMS는 데이터베이스 시스템의 핵심 구성 요소로 데이터를 효율적으로 저장하고 조작하는 데 필요한 기능을 제공 ex) MySQL, PostgreSQL, Oracle, SQL Server 등 존재 1.2. SQL RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 1.3. 인스턴스 데이터베이스 서버의 실행 및 운영 환경 == DBMS 서버에서 process 와 memory 영역 하나의 물리적 또는 가상 서버에서..

DB/sql 2023.09.13

3. 인덱스 튜닝

3.1 테이블 액세스 최소화 sql 튜닝은 랜덤 I/O와의 전쟁이다. 그만큼 랜덤 I/O 줄이는 것이 중요 테이블 랜덤 액세스 최소화 하는 구체적인 방법을 소개 3.1.1 테이블 랜덤 액세스 인덱스로 검색하는데 왜 느릴까? 인덱스로 검색해도 빠른데, 왜 굳이 파티셔닝을할까? 인덱스 ROWID는 물리적 주소? 논리적 주소? sql이 참조하는 컬럼을 인덱스가 모두 포함하는 경우가 아니면, 인덱스를 스캔한 후에 반드시 테이블을 액세스한다. TABLE ACCESS BY INDEX ROWID 인덱스를 스캔하는 이유 : 검색 조건을 만족하는 소량의 데이터를 인덱스에서 빨리 찾고 테이블 레코드를 팢아기기 위한 주소값, ROWID를 얻으러고 하는데 있다. rowId는 물리적 주소일까, 논리적 주소일까? 논리적 주소에 ..

2. 인덱스 기본

2.1 인덱스 구조 및 탐색 인덱스 구조와 탐색 원리를 설명 인덱스의 기본 구조와 탐색 원리조차 모르는 개발자가 많다. 강조하고 싶은 내용 : 인덱스 참색 과정이 수직적 탐색과 수평적 탐색 단 2개로 이뤄진다. 이것을 이해하면 막연한 인덱스 구조에 대해 그림이 명확해진다. 2.1.1 미리 보는 인덱스 튜닝 데이터를 찾는 2 가지 방법 full scan index scan 정렬 data 위치를 알려줌 데이터베이스 테이블에서 데이터를 찾는 방법 테이블 전체를 스캔한다. 인덱스를 이용한다. 인덱스와 관련해서 튜닝 요소가 매우 많고 기법도 다양하다. 인덱스 튜닝의 2가지 핵심요소 2가지 이지만 실제로는 컬럼이 여러개 일 경우 index가 된 column 순서가 중요 (성능이 달라짐) 인덱스 스캔 과정에서 발생하..

1. SQL 처리과정과 I/O

1.1 SQL 파싱과 최적화 1.1.1 구조적 집합적 선언적 질의 언어 용어 sql: structured Query Language (구조적 질의 언어) 사용자 → 옵티마이저 → 프로시저 sql 옵티마이저 : 프로시저를 만들어내는 dmbs 내부 엔진 == 프로그래밍을 대신해 주는 역할 SQL 최적화 : DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정 1.1.2 SQL 최적화 sql 최적화 과정 세분화 SQL 파싱 (sql 파서) 파싱 트리 생성 : sql문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성 syntax 체크 : 문법적 오류가 없는지 확인 semantic 체크 : 의미상 오류가 없는지 확인 SQL 최적화 (옵티마이저) - 1.1.3 자세한 설명 옵티마이저..

13, 14 단원 추가 내용

view sql문이다. read only 보안상의 민감정보만 빼고 보기 view를 만들어서 보기 - 보안 정보 주면 안되는 것. join한 query로 view를 만들면 view에서 join할 필요가 없다. 별게 아니다. 복잡한 query는 view로 만드는 경우가 많다. nvl 평균 계산과 sum 계산에 중요하다. nvl을 써줘야지 Null -> 0으로 인식해서 계산시 쳐준다. 평균 계산시에는 nvl!!! 꼭 계산이 필요하다. decode function : 등급 메길때 사용. 어느 값도 아닌 때 default : oracle에만 존재. aging (며칠3,6,9일에 service 몇번 종료되었는지) -report를 보여줌- case: oracle에서 추가함 피벗함수: 다차원 분석 -> 가로로 펼쳐준다..

DB/sql 2023.06.01

9. 논리 모델링_데이터 표준화

데이터 표준화 데이터 항목(틀)에 대한 명칭과 의미를 정하고 실제 저장하고 활용하는 데이터 값(내용)에 대한 형식 및 범위를 규정하는 활동 데이터 표준화는 데이터 모델링과 밀접한 관계를 가지고 잇으며, 독립적ㅇ니 영역이지만, 일반적으로 데이터 모델링을 진행하면서 표준화를 먼저 수행하는 경우가 대부분이고, 속성명을 부여할 때 표준을 준수해야한다. 표준화 종류 표준단어: 의미를 가지는최소 단위의 낱말, 복합어 표준도메인: 단어 or 용어의 일종으로 데이터 값의 형식과 범위를 포함 표준코드: 도메인의 일부로 볼 수 있으며, 목록화된 데이터 값만 사용할 수 있도록 한다. 표준용어: 현업에서 사용하는 기술 용어, 업무 용어 모두 포함, 단어와 단어의 조합으로 구성 연관성 표준단어, 표준도메인, 표준용어 1. 단어..

DB/data modeling 2023.05.28

8. 논리 모델링_속성 도출 및 정의

양적인 측면에서 엔티티의 수 십 배에 해당하는 속성을 정의하는 데 많은 시간이 소요된다는 점이 부담스럽다. 속성을 하나씩 식별하여 정의하기 보다는 업무 요건에 해당하는 속성을 모두 도출하는 것이 우선이다. 속성 흐름 속성도출 -> 속성정의 -> pk -> domain(check)/type -> default -> Not null -> 검토 158p epdlxj ahepf cpzmfltmxm dPtl 1. 속성 도출 보이지 않는 속성이 뽑아내기가 어렵다 1.1. 핵심 엔티티 속성 핵심 엔티티 : 식별자, 명칭, 특성, 특징, 제원, 접촉정보, 위치정보, 약관/정책, 관계 속성을 포함 예시 고객, 상품 속성: 주민등록번호, 상품번호, 1.2. 중요 엔티티/행위 엔티티 속성 2. 속성명 부여 자명성 = 스스로..

DB/data modeling 2023.05.27

7. 논리 모델링_관계 도출 및 정의

관계: 엔티티와 엔티티 간의 관계를 말한다. 종속관계 : 부모와 자식 엔티티 관계 중요 엔티티 - 행위 엔티티 식별 관계 : 부모 엔티티의 식별자를 주 식별자로 상속 받는다. 참조관계 : 주체나 대상이 되는 엔티티를 참조하는 참조 관계 핵심 엔티티 - 중요 엔티티 중요 엔티티 - 중요 엔티티 비식별 관계 : 참조되는 엔티티의 주 식별자를 일반 속성을 상속 받는다. 데이터의 품질 데이터 모델링의 원칙 중 하나 FK = 참조 무결성 제약조건 추가 프로그램 통해 참조 관계 구현하여 데이터 품질을 높일 수 있다 1. 관계 도출 관계 : fk 관계수 선택성 식별관계 식별 관계 내 table에선 PK인데 다른데서 FK 인 것 FK : 다른 table의 구분 기준 2. 관계 정의 (3가지) 관계수 선택성 식별관계 2..

DB/data modeling 2023.05.27

6.논리 모델링_엔티티 정의 및 상세화

1. 논리 모델링이란 DBMS의 물리적인 특성까지 고려할 필요는 없다. 2. 엔티티 정의 및 상세화 핵심 엔티티, 중요 엔티티, 행위 엔티티 세분화 예시 주문 핵심 엔티티: 고객, 상품 주문 엔티티: 중요 엔티티, 주문 상세 또는 주문 결제 2.1. 핵심 엔티티(4가지) 업무처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티 핵심 엔티티는 타 엔티티 유형의 존재 유무와 관계없이 독립적으로 존재하며 식별할 수 있다. 엔티티 집합을 명확하게 정의하고, 인스턴스 생애주기에 대한 충분한 이해를 바탕으로 설계 4가지 유형 및 분류 : 대-중-소 업무규칙 및 지식 : 회원 등급이 오르는 기준 업무주체 및 대상 장소 유형 및 분류 대분류, 중분류, 소분류, 세분류 코드 고정 방식으로 ..

DB/data modeling 2023.05.27