1. B-tree - 정의 데이터가 정렬된 상태로 유지되어 있는 트리로 일반적인 이진 트리와 비슷하지만 노드 당 자식 노드가 2개 이상 가능한 트리 더보기 트리 관련 용어 노드: 사각형으로 표시된 한 개의 데이터 루트 노드: 가장 상단의 노드 브랜치 노드: 중간 노드 리프 노드: 가장 아래 노드 - 특징 : 균일성, 균형트리, 정렬된 상태 균일성 어떤 값에 대해서도 같은 시간에 결과를 얻을 수 있음 트리 높이가 다를 경우, 약간의 차이는 있지만 O(logN) 균형트리 루트로부터 리프까지의 거리가 일정한 트리 구조 성능이 안정화되어 있음 처음 생성 당시는 균형 트리이지만 갱신이 반복되면 서서히 균형이 깨지고, 성능도 약화됨 정렬된 상태 항상 정렬된 상태로, 특정 값보다 크고 작은 부등호 연산에 문제가 없음..
데이터베이스
DBMS는 여러 사용자가 DB에 동시에 접근할 수 있다. 여러 사용자가 동시에 접근하면 트랜잭션도 동시에 여러 개가 실행되는데 DBMS는 여러 트랜잭션을 동시에 실행하기 위해 병행 수행을 지원한다. 그리고 이 병행 수행이 잘 이루어지도록 하기 위해서 병행 제어를 실시한다. 트랜잭션의 속성 ACID중 I에 해당하는 Isolation을 보장하기 위한 것이 병행 제어 Concurrency Control이다. (자세한 것은 위 글씨에 달아둔 링크 참고) 1. 병행 수행이란? 정의 : 여러 사용자가 DB에 접근할 때 여러 트랜잭션이 수행되는데 이 여러 트랜잭션들을 병행 수행시키는 방식 운영체제가 멀티 프로세스를 지원하는 것과 비슷한 모양 여러 트랜잭션을 수행하는 순서가 중요하므로 트랜잭션 스케줄에 따라 트랜잭션을..
1. ERD의 의미 Entity Relationship Diagram 요구 분석 사항에서 얻은 엔티티와 속성들의 관계를 그림으로 나타낸 개체-관계 모델 테이블과의 관계를 설명하는 다이어그램 이를 통해 프로젝트에서 사용하는 데이터베이스의 구조를 한눈에 파악할 수 있다. 데이터베이스를 구축 시 뼈대 역할을 하며, 서비스 구축 시 제일 먼저 신경써야 할 부분이다. 👉 API를 보다 효율적으로 뽑아낼 수 있다. 2. ERD 그리기 2-1. 엔티티 Entity 정의 가능한 사물 또는 개념 데이터베이스의 테이블이 엔티티로 표현된다. 2-2. 엔티티 속성 Entity Attribute 개체가 가지고 있는 속성 예) 학생 엔티티에는 학번, 이름, 주소, 전공 등 속성이 있다. 데이터베이스 테이블의 각 필드(컬럼)들 2..
0. Background 0-1. 데이터베이스 무결성 무결성이란? 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성 1) 개체 무결성 Entity Integrity 첫 번째 조건: 기본키를 구성하는 속성은 null 값을 가질 수 없다. 두 번째 조건: 기본키를 구성하는 속성은 다른 레코드와 중복될 수 없다. 예) 학생이라는 개체를 표현하기 위해 데이터베이스 표에서 학번, 이름, 학과 속성으로 표현을 할 수 있다. 학생을 표현할 때 학번을 그 기본키로 정했다면 학번에 null 값이 있어서는 안 된다. 2) 참조 무결성 Referential Integrity 외래키를 구성하는 조건은 참조 릴레이션(테이블)의 기본키 값과 동일해야 한다. 👉 릴레이션은 참조할 수 없는 외..