데이터베이스

[Database] 클러스터링 인덱스와 논 클러스터링 인덱스 0. 들어가기전에 자주 나오는 인덱스 개념인 클러스터링 인덱스와 논 클러스터링 인덱스에 대해서 알아보았습니다. 1. 클러스터링 인덱스 MySQL InnoDB에서는 클러스터링 인덱스를 항상 사용한다.보통 테이블의 PK에 적용이 되는 인덱스이며, PK가 없으면 not null + unique한 컬럼에 사용이 되며, 이마저도 없으면 임의의 값으로 MySQL이 만들어서 사용한다. 그래서 항상 InnoDB를 사용하는 테이블에는 클러스터링 인덱스가 적용되어 있다고 할 수 있다. 그렇다면 왜 이런 방식을 사용하는 걸까? 그 이유는 검색 속도가 빠르기 때문이다. 클러스터링 인덱스는 테이블을 물리적으로 정렬을 한 인덱스이다. 즉, PK가 있다면 PK 기준으로..
[DataBase] Flyway 톺아보기 0. 들어가기 전에 테코톡을 준비하면서 알아본 flyway를 정리해보았습니다. 1. Flyway란? 오픈소스 데이터베이스 마이그레이션 툴 Flyway의 공식 홈페이지에서는 flyway를 오픈소스 마이그레이션 툴이라고 소개하고 있습니다. 일반적으로 마이그레이션은 데이터나 소프트웨어를 한 시스템에서 다른 시스템으로 이동하는 것을 의미합니다. 그렇지만 flyway에서는 데이터베이스의 변경을 마이그레이션이라고 합니다. 즉, 데이터베이스에 테이블이 추가, 삭제, 수정되는 행위를 마이그레이션이라고 합니다. 2. 특징 Flyway는 7가지의 특징이 있습니다. 2.1 Migrate SQL파일을 추가해서 테이블을 변경할 수 있습니다. 자세한 방법은 아래에서 알아보겠습니다. 2.2..
[데이터베이스] 인덱스 1. 인덱스란? 데이터베이스의 저장 성능을 희생(약 10%)하고, 읽기 속도를 높이는 기능 책의 목차와 비슷함. 2. 장단점 장점 읽기 성능↑ 시스템 부하↓ 단점 데이터 추가, 삭제 시 성능 감소 INSERT, UPDATE, DELETE 시 추가 연산이 필요하기 때문 INSERT : 새로운 인덱스 추가 UPDATE : 기존 인덱스를 사용하지 않음 처리 및 갱신된 데이터의 인덱스 추가 DELETE : 삭제하는 데이터의 인덱스를 사용하지 않음으로 변경 데이터 베이스의 용량을 추가적으로 차지 3. 사용하는 곳 규모가 작지 않은 테이블 변경이 자주 발생하지 않는 컬럼 JOIN, WHERE, ORDER BY에 자주 사용되는 컬럼 카디널리티(기수성)이 높은 컬럼 카디널리티 : 한 컬럼이 갖고..
Chapter14 트랜잭션 이 글은 기초가 든든한 데이터 베이스를 참조하여 작성했습니다. 1. 트랜잭션 개념 데이터에이스 내에서 하나의 논리적 기능을 수행하기 위해 행해지는 한꺼번에 사용되는 하나 이상의 쿼리를 모아 놓은 쪼갤 수 없는 작업의 논리적인 단위 2. 트랜잭션의 ACID 특성 Atomicity(원자성) Consistency(일관성) Isolation(고립성 또는 격리성) Durability(지속성 또는 영속성) 2.1 원자성(Atomicity) 분해가 불가능한 최소의 단위인 원자처럼 동작 All or Nothing 작업 수행이 시작되면 트랜잭션 내의 모든 연산들은 반드시 전체가 완전이 수행되어야 함(All) 어느 하나라도 수행이 실패하면 어떠한 연산도 수행되지 않는 상태로 돌아감(Nothing..
Chapter12 정규화 이 글은 기초가 든든한 데이터 베이스를 참조하여 작성했습니다. 이상 현상(anomaly) 테이블을 수정할 때 데이터의 일관성이 깨지는 현상 데이터를 삽입할 때 불필요한 NULL이 삽입되거나, 삭제시 연쇄 삭제 현상이 발생하는 것 1.1 삽입 이상 데이터 삽입 시 특정 열에 해당하는 값이 없어서 필요하지 않은 NULL을 강제로 입력해야 하는 현상 1.2 삭제 이상 데이터 삭제 시 유용한 다른 데이터까지 함께 삭제되는 현상 → 연쇄 삭제 1.3 수정 이상 중복 데이터 중에서 일부만 수정되어 데이터의 불일치 문제가 발생하는 현상 2. 정규화(normalization) 이상 현상이 발생하는 테이블의 설계를 수정하여 정상으로 만드는 과정 → 정규화가 된 테이블이 특정한 제약 조건을 만족하..
Chapter11 ER모델(Entity-Relationship Model) 이 글은 기초가 든든한 데이터 베이스를 참조하여 작성했습니다. ER 모델의 개념 개념적 데이터 모델로써, 개체 집합, 속성 집합, 그리고 개체 집합 간의 관계 집합을 표현한 것이다. 1.1 집합과 원소 집합 : 어떤 주어진 조건에 의하여 그 대상을 분명히 알 수 있는 것들의 모임 원소 : 원소를 구성하는 대상 하나 하나를 그 집합의 원소라고 함 1.2 ER 모델 개체와 그들 간의 관계를 이용하여 현실세계를 개념적 구조로 표현하는 방법 개체와 개체 간의 관계를 ERD(ER Diagram)으로 표현 직사각형, 타원, 마름모 세 개의 도형으로 직관적인 그림으로 표현 2. ER 모델의 구성요소 2.1 개체 독립적으로 존재하며, 서로 구별..
Chapter4 관계 대수 이 글은 기초가 든든한 데이터 베이스를 참조하여 작성했습니다. 1. 관계 대수 릴레이션을 처리하는 연산의 집합 2. 일반 집합 연산자 2.1 합집합 연산자 두 개의 릴레이션을 합하여 하나의 릴레이션을 반환 2.2 교집합 연산자 두 릴레이션 모두에 속한 투플들을 반환 2.3 차집합 연산자 R - S : R릴레이션에는 속하지만 S릴레이션에 속하지 않는 투플들로 결과 릴레이션 구성 2.4 카티션 프로덕트 연산자 릴레이션 R과 릴레이션 S의 카티션 프로덕트는 릴레이션 R에 속한 투플들과 릴레이션 S에 속한 투플들의 모든 연결 가능한 조합으로 구성되는 릴레이션 3. 순서 관계 연산자 3.1 순수 관계 연산자 3.1.1 셀렉션 연산자 하나의 릴레이션에서 주어진 조건을 만족하는 투플들을 선..
Chapter3 관계 데이터 모델과 제약조건 이 글은 기초가 든든한 데이터 베이스를 참조하여 작성했습니다. 1. 관계 데이터 모델 1.1 릴레이션 개념 관계 데이터 모델에서 정보를 저장하는 구조 행과 열로 구성된 2차원 형태의 테이블 구조 1.2 릴레이션 관련 용어 속성 : 릴레이션의 열 투플 : 릴레이션의 행 도메인 : 하나의 속성의 가질 수 있는 값들의 집합 NULL : 특정 속성에 대한 값을 알 수 없어서 입력하지 못하는 경우 1.3 릴레이션 스키마와 인스턴스 릴레이션 스키마 : 한 개의 릴레이션의 논리적인 구조를 정의한 것으로 릴레이션의 이름과 릴레이션에 포함된 속성들의 집합 기본키는 밑줄로 표현 속성의 개수를 그 릴레이션의 차수(degree)라고 함 릴레이션 인스턴스 : 어느 한 시점의 릴레이션..
쿠엔크
'데이터베이스' 태그의 글 목록