Database

    [Database] 인덱스 인덱싱에 관하여

    들어가며 인덱싱이라는 개념을 들어보기만 했다 . . 이론으로만 알았다 . . 인덱스 데이터를 빠르게 찾을 수 있는 하나의 장치이다. 도서의 색인이나 사전과 같이 데이터를 쉽고 빠르게 찾을수있도록 만든 데이터 구조. 인덱스는 흔히 B-TREE 라는 자료 구조로 이루어져 있다. 인덱스가 효율적인 이유 균형 잡힌 트리구조, 선형적으로 증가하는 대수확장성 때문이다. 인덱스를 만드는 방법 클러스터형 인덱스 테이블 당 하나 설정할 수 있다. primary key 옵션으로 기본키를 만들면 생성가능하다. unique not null 옵션으로 클러스터형 인덱스를 만들 수 있다. 세컨더리 인덱스 빈번하게 처리되는 질의문에서 WHERE 절 이후 조건을 인덱스화 클러스터 인덱스 기본키에 대하여 클러스터 인덱스를 생성한다 기본..

    [Database] 스프링과 트랜잭션

    들어가며 트랜잭션이란 DB에서 하나의 기능을 수행하기 위한 작업의 단위 이다. 여러 쿼리들을 하나로 묶는 단위이다. 커밋이 되었다 == 하나의 트랜잭션이 성공적으로 수행되었다. 트랜잭션 정의 이유 DB에서 데이터를 다룰때 장애가 일어날 때 데이터를 복구하는 작업의 단위 여러 작업 동시에 같은 데이터를 다룰 때 작업을 서로 분리하는 단위가 됨 트랜잭션은 전체가 수행되거나 전혀 수행되지 않아야함 (ALL OR NOTHING) 트랜잭션의 ACID 특징 원자성 일부만 수행되는 일이 없도록 전부 수행되거나 아예 수행되지 않아야함 all or nothing일관성 트랜잭션은 db의 일관성을 유지해야함 일관성 트랜잭션을 수행하기 전이나 수행한 후나 db는 항상 일관된 상태를 유지해야함 일관 되게 조건,규칙에 유효해야함..

    [Database] 정규화 과정

    들어가며 잊고 있던 정규화 과정을 다시한번 기억해보며 .. 회사에서는 2단계 이상하면 많이한거랬나.. 3단계였나 기억이안나네 정규화 과정 릴레이션 (테이블) 간 잘못된 종속 관계로 DB 이상현상이 발생한다. 이를 해결하거나 저장공간을 효율적으로 사용하기 위해 릴레이션을 여러개로 분리하는 과정이다. DB 이상현상이란 ? 삭제 이상 내가 원하는 값만 테이블에서 삭제하고 싶은데, 하나의 튜플이 삭제를 원하지 않는 속성값도 갖고 있기에 같이 지워져서 발생하는 문제 삽입 이상 내가 원하는 값만 테이블에 삽입하고 싶은데, 테이블에 필요하지 않은 필드들 때문에 원치 않는 필드의 값도 삽입해야 하는 경우 발생하는 문제 ex) null 수정 이상 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어..

    [Database] 동시성 제어

    동시성 제어 동시성 제어 트랜잭션이 동시에 수행될 때, 일관성을 해치지 않도록 트랜잭션의 데이터 접근을 제어하는 DBMS의 기능 갱신 손실 문제 갱신 손실 두 개의 트랜잭션이 한 개의 데이터를 동시에 갱신할 때 발생하며, DB에서 절대 발생하면 안되는 현상 T1의 갱신이 손실된 갱신손실 문제가 발생락 데이터를 수정중이라는 사실을 알리는 방법의 잠금 장치 락 락의 유형 공유락 ( LS, shared lock) : 트랜잭션이 읽기를 할 때 사용하는 락 배타락( LX, exclusive lock) : 읽고 쓰기를 할 때 사용하는 락 공유락 배타락 규칙 데이터에 락이 걸려있지 않으면 트랜잭션은 데이터에 락을 걸 수 있다. X를 읽기만 할경우 LS(X)를 요청하고 읽거나 쓰기를 할 경우 LX(X)를 요청 다른 트..

    [Database] 회복

    회복 DB에 장애가 발생했을 때 DB를 일관성 있는 상태로 되돌리는 DBMS의 기능 장애 유형 시스템 충돌, 미디어 장애, 응용소프트웨어오류, 자연재해, 부주의 로그 파일 트랜 잭션이 수행 중이거나 종료후 발생하는 손실을 방지하기 위해 DB기록을 추적하는 로그파일 사용 트랜잭션이 반영한 모든 DB변경사항을 DB에 기록하기전에 미리 기록해두는 별도의 DB로 안전한 하드디스크에 저장되며 기록남음 로그파일 저장된 로그 구조 로그파일 이용 회복 장애 발생하여 시스템 재가동시 DBMS는 로그파일을 먼저 살펴본다. DBMS는 트랜잭션이 종료되었는지 혹은 중단되었는지 여부를 판단한다. 종료된 트랜잭션은 종료를 확정하기 위해 재실행(REDO)를 진행하고, 중단된 트랜잭션은 없던일로 되돌리기 위해 취소(UNDO)를 진행..

    [Database] 정규화

    정규화 정규화 이상현상이 발생하는 릴레이션을 분해하여 이상현상을 없애는 과정 종속성의 유형에따라 등급을 구분 가능하다 릴레이션은 정규형 개념으로 구분하며 정규형이 높을수록 이상현상이 줄어든다 제1정규형 릴레이션의 R의 모든 속성 값(도메인원자값)이 원자값을 가지면 제 1 정규형 취미들의 속성값을 모두 원자값으로 바꿈 비정규형 → 1정규형 제2정규형 R이 제 1정규형이고 기본키가 아닌 속성이 기본키에 완전함수 종속일때 2정규형이라고함 후보키가 복합키(다중칼럼)로 설정되어 있을 때 복합키의 일부칼럼에 다른칼럼들이 결정되어서는 안된다는 뜻 완전함수종속 A와 B가 릴레이션R의 속성이고 A→B 종속성이 성립할 때 B가 A의 속성 전체에 함수종속하고 부분집합 속성에 함수종속하지 않을경우 완전함수종속이라고함 종속자가..

    [Database] 함수 종속성

    함수 종속성의 개념 각 속성 사이에는 의존성이 존재한다. A의 값을 알면 다른 B의 값이 유일하게 정해지는 의존 관계 → 속성 B는 속성 A에 종속한다. 속성 A는 속성B를 결정한다 A를 B의 결정자라고함 A→B라고 표현 함수 종속성 다이어그램 릴레이션의 속성 : 직사각형 속성 간의 함수 종속성 : 화살표 복합속성 : 직사각형으로 묶어서 표현 함수 종속성 규칙 XYZ 가 릴레이션 R 에 포함된 속성의 집합이라고 할 때 함수 종속성은 다음 규칙 성립 함수 종속성과 기본 키 기본키가 어떤 역할을 하는지 알면 이상현상 제거하는 정규화 과정 쉽게이해가능 기본키는 릴레이션 모든 속성에 대해 결정자임 이상현상과 결정자 이상현상 한 개의 릴레이션에 두 개 이상의 정보가 포함되어 있을때 나타난다. 기본키가 아니면서 결..

    [Database] 이상현상

    개념 설계 → 논리설계 단계 에서 이상현상 발생 이상현상 이상현상 개념 삭제 이상 투플을 삭제하므로 유지되어야 하는 정보도 연쇄삭제 삽입 이상 NULL을 갖을 수 없는 속성에 대하여 NULL 입력 시 투플 삽입이 거부되는 이상현상으로 원치않는 정보를 입력해야함 수정 이상 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 현상 이상현상 수정 테이블의 구조를 수정 이상현상 발생 이유 한 TABLE의 함수의 종속성 때문 → 함수의 종속성 제거→ TABLE 분할 독립 시키면 이상현상 없어짐 숭실대학교 Database 강의를 수강 후 정리하였습니다.

    [Database] 관계와 관계타입

    관계 개체 사이의 연관성을 나타내는 개념 관계 타입 개체 타입과 개체 타입간 연결가능 관계, 관계집합은 관계로 연결된 집합 관계타입의 유형 차수에 따른 유형 관계 집합에 참가하는 개체 타입 수를 관계타입 차수 라고 함 1진 관계 한개의 개체가 자기 자신과 관계를 맺음 2진 관계 두 개의 개체가 관계를 맺음 3진 관계 세 개의 개체가 관계를 맺음 관계 대응수 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수 1:1 관계 좌측 개체 타입에 포함된 개체가 우측 개체 타입에 포함된 개체와 1:1로 대응 관계 1:N N:1 관계 실제 생활에서 많이 볼 수 있으며, 한쪽 개체 타입의 개체 하나가 다른 쪽 개체 타입의 여러 개체와 관계를 맺음 N:M 다대다 관계 각 개체 타입 개체들이 서로 임의의 개수의 개체들과..

    [Database] 데이터 모델링

    데이터 모델링 개념 정보 모델링 개념적 설계 개념적 모델(ER 다이어그램) 만들어짐 데이터 모델링 논리적 설계 논리적 모델(관계 데이터모델) 만들어짐 DB로 구현 물리적 설계 DB완성 데이터베이스 생명주기 요구사항 수집 및 분석 사용자의 요구사항 듣고 DB 구축 범위를 정함 설계 개념적 설계 - 요구사항 기초로 주요개념 프로세스 식별 논리적 설계 - 사용하는 DBMS의 종류에 맞게 변환 물리적 설계 - 데이터베이스 스키마를 도출 구현 실제 DBMS 적용 하여 테이블 및 관련 객체를 만듦 운영 개선점 있는지 유지보수 . 감시 및 개선 DB운영에 따른 시스템 문제를 관찰하고 DB자체 문제점 파악 요구사항 수집 및 분석 실제 문서 수집 분석 담당자와 인터뷰 , 설문조사 비슷한 업무 db분석 개념적 모델링 요구..