본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.

이론/데이터베이스7

DB - 트랜잭션(Transaction) 트랜잭션 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위이다. 여기서 상태를 변화시킨 다는 것은 SQL 질의어를 통해 DB 에 접근하는 것을 말한다. - Select - Insert - Delete - Update 또한 작업 단위는 많은 SQL 명령문들 중에서 개발자가 정하는 기준에 따라 정해진다. 예시) 사용자 A가 사용자 B에게 만원을 송금한다. 이때 DB 작업 1. 사용자 A의 계좌에서 만원을 차감한다 : update 문을 통해 사용자 A의 잔고를 변경 2. 사용자 B의 계좌에 만원을 추가한다 : update 문을 통해 사용자 B의 잔고를 변경 현재 작업 단위 : 출금 update 문 + 입금 update 문 - 이를 통틀어 하나의 트랜잭션 이라고 한다. - 위 두 쿼리문 모두 성공적으로 .. 2022. 1. 29.
DB - 정규화(Normalization) 정규화(Normalization) 데이터의 중복을 줄이고, 무결성을 향상시킬 수 있는 정규화에 대해 알아보자. 가장 큰 목표는 테이블 간 중복된 데이터를 허용하지 않는 것이다. 중복된 데이터를 만들지 않으면 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다. 목적 - 데이터의 중복을 없애면서 불필요한 데이터를 최소화 시킨다. - 무결성을 지키고, 이상 현상을 방지한다. - 테이블 구성을 논리적이고 직관적으로 할 수 있다. - 데이터베이스 구조를 확장에 용이하게 설계할 수 있다. 정규화에는 여러가지 단계가 있지만, 대체적으로 1 ~ 3 단계 정규화 까지의 과정을 거친다. 제 1 정규화(1NF) 테이블 컬럼이 원자값(하나의 값) 을 갖도록 테이블을 분리시키는 것을 말한다. 만족해야 .. 2022. 1. 28.
DB - 인덱스(Index) DB Index DB 인덱스는 RDBMS 에서 검색 속도를 높이기 위한 기술이다. 테이블의 Column 을 색인화 한다.(따로 파일로 저장함) -> 해당 테이블의 레코드를 Full scan(전체 스캔) 하지 않는다. -> 색인화 된 (BTree : 이진 트리) 구조로 만들어지므로, Index 파일 검색으로 인해 검색 속도가 향상된다. DB Index 파일 구조 테이블을 생성하면 MYD, MYI, FRM 등 3개의 파일이 생성된다. - FRM : 테이블 구조가 저장되어 있는 파일 - MYD : 실제 데이터가 있는 파일 - MYI : 인덱스 정보가 들어가 있는 파일 Index 를 사용하지 않는 경우 MYI 파일은 비어져 있다. 그러나 인덱스를 사용하는 경우 MYI 파일이 생성된다. 이후에 사용자가 Selec.. 2022. 1. 28.
DB - 이상(Anomaly) 이상(Anomaly) 데이터베이스를 설계하는데에 있어서 정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly(이상 현상) 가 나타나기 때문이다. 삽입 이상(Insertion Anomaly) 기본키가 {Student ID, Course ID} 인 경우 -> Course 를 수강하지 않은 학생은 Course ID 가 없는 현상이 발생한다. 결국 Course ID 를 Null 로 할 수 밖에 없는데, 기본키는 Null 이 될 수 없으므로 테이블에 데이터가 추가될 수 없다. 굳이 삽입하기 위해서는 '미수강' 과 같은 Course ID 를 만들어야 한다. - 불필요한 데이터를 추가해야지 데이터를 삽입할 수 있는 상황 : Insertion Anomaly 갱신 이상(Update Anomaly) 만약 어떤.. 2022. 1. 28.