일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Redux
- Database
- vscode
- Javascript
- db
- 그레이들
- frontend
- Algorithm
- VIM
- 동적 계획법
- 다이나믹 프로그래밍
- 안드로이드
- TypeScript
- react
- 프로그래머스
- Graph
- 백준
- 알고리즘
- BFS
- Python
- CS
- java
- git
- DFS
- 자바
- DP
- LeetCode
- 리트코드
- network
- Data Structure
- Today
- Total
목록Computer Science/Database (11)
늘 겸손하게
Index(인덱스) 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 테이블의 칼럼을 색인화한다. 두꺼운 책의 목차 부분을 만든다고 생각하면 편하다. 데이터베이스 안의 레코드를 처음부터 풀스캔하지 않고, B+ Tree를 구성된 구조에서 Index 파일 검색으로 속도를 향상시키는 기술이다. 파일 구성 테이블 생성 시, 3가지 파일이 생성된다. FRM : 테이블 구조 저장 파일 MYD : 실제 데이터 파일 MYI : Index 정보 파일 (Index 사용 시 생성) 사용자가 쿼리를 통해 Index를 사용하는 칼럼을 검색하게 되면, 이때 MYI 파일의 내용을 활용한다. 단점 Index 생성시, .mdb 파일 크기가 증가한다. 한 페이지를 동시에 수정할 수 있..
Anomaly (이상 현상) 정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly가 나타나기 때문. 예) {Student ID, Course ID, Department, Course ID, Grade } 1. 삽입 이상 (Insertion Anomaly) 기본키가 {Student ID, Course ID}인 경우 -> Course를 수강하지 않은 학생은 Course ID가 없는 현상이 발생함. 결국 Course ID를 Null로 할 수 밖에 없는데, 기본키는 Null이 될 수 없으므로, Table에 추가될 수 없음. 삽입하기 위해서 '미수강'과 같은 불필요한 Course ID를 만들어야함. -> 불필요한 데이터를 추가해야 삽입할 수 있는 상황 = Insertion Anomaly 2. 갱신 이..
정규화 (Normalization) 릴레이션 간 잘못된 종속 관계를 없애 이상 현상을 해결하고 데이터 중복을 줄여 메모리를 효율적으로 사용하기 위해 릴레이션을 분리하는 과정을 정규화라고 한다. 데이터의 중복을 줄이고, 무결성을 향상시키는 방법 가장 큰 목표는 테이블 간 중복된 데이터를 허용하지 않는 것이다. 중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있다. 정규화에는 여러가지 단계가 있지만, 대체적으로 1~3단계 정규화까지의 과정을 거친다. 정규형 원칙 같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조로 만들어야 하고, 자료의 중복성은 감소해야 하고, 독립적인 관계는 별개의 릴레이션으로 표현해야 하며, 각각의 릴레이션은 독립적인 표현이 가능해..
데이터베이스를 선택할 때 SQL 혹은 NOSQL을 사용할지 고민하게 된다. 보통 Spring은 MySQL와 같은 SQL, Node.js는 MongoDB와 같은 NOSQL을 주로 사용했을 것이다. 하지만 프레임워크에 따라 결정하기보다는 프로젝트에 적합한 데이터베이스를 선택해야한다. 차이점을 알아보자. SQL (관계형 DB) SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있음 관계형 데이터베이스에는 핵심적인 두 가지 특징이 있다. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다. 데이터는 관계를 통해 여러 테이블에 분산된다. 데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이터 유형으로 정의된다. 따라서 스..