일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 안드로이드 개발
- 데이터베이스
- 운영체제
- Kotlin
- Android
- MVVM
- 안드로이드
- 안드로이드 디자인 패턴
- 앱
- 코틀린
- 리액트네이티브
- 앱 개발
- 개발
- 리액트
- cs
- 디자인 패턴
- 프로세스
- db
- 메모리
- 액티비티
- 스레드
- Operating System
- reactnative
- 앱개발
- CS지식
- 디자인패턴
- OS
- Database
- React
- github
- Today
- Total
목록db (8)
Tech Log
조인(join) 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것. MySQL에서는 JOIN 이라는 쿼리, MongoDB에서는 lookup이라는 쿼리로 사용한다. MongoDB를 사용할 때 lookup은 되도록 사용하지 않아야 한다. MongoDB에서의 조인 연산은 관계형 데이터베이스보다 성능이 안좋다고 벤치마크 테스트에서 알려져 있다. MongoDB에서의 조인 연산 성능 따라서 조인하는 작업이 많을 경우 관계형 데이터베이스를 사용하는 것이 더 낫다. 조인의 종류 내부 조인(inner join) : 왼쪽 테이블과 오른쪽 테이블의 두 행이 일치하는 행이 있는 부분만 표기 왼쪽 조인(left outer join) : 왼쪽 테이블의 모든 행이 결과 테이블에 표기 오른쪽 조인(rig..
데이터베이스에는 여러 종류가 있다. 관계형 데이터베이스와 NoSQL 데이터베이스로 나뉜다. 먼저 우리가 익히 알고있는 관계형 데이터베이스에 대해서 다뤄보자. 관계형 데이터베이스(RDBMS) 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 말한다. SQL이라는 언어를 써서 조작한다. MySQL, PostgreSQL, 오라클, SQL Server, MSSQL 등이 있다. 표준 SQL을 지키기는 하지만, 각각의 제품에 특화시킨 SQL을 사용한다. 예를 들어 오라클의 경우 PL/SQL이라고 하는 SQL을 사용하고 SQL Server에서는 T-SQL, MySQL은 SQL을 사용한다. MySQL 대부분의 운영체제와 호환되며 가장 많이 사용하는 데이터베이스이다. 메타, 트위터 등 많은 기업에서 사용..
트랜잭션 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위. 여러 개의 쿼리들을 하나로 묶는 단위. 트랜잭션의 특징은 원자성, 일관성, 독립성, 지속성이 있으며 한꺼번에 ACID 특징이라고 한다. *쿼리 : 데이터베이스에 접근하는 방법. 데이터베이스에 정보를 요청하는 것. 원자성(atomicity) 트랜잭션과 관련된 일이 모두 수행됐거나 되지 않았거나를 보장하는 것. 트랜잭션 내의 모든 수정 작업이 수행되거나 수정 작업이 하나도 수행되지 않는다. 예를 들어 트랜잭션을 커밋했는데 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장하는 것. 예를 들어 1000만원을 가진 A가 0원을 가진 B에게 500만원을 이체한다고 한다. 그 결과 A는 500만원, B는 500만원을 가진다...
정규화(Normalication) 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정. *데이터베이스 이상 현상 : 삭제할 때 필요한 데이터가 같이 삭제되거나 잘못된 정보가 들어있거나 데이터를 삽입해야 하는데 하나의 필드 값이 NULL이 되면 안돼서 삽입하기 어려운 현상. 정규화의 원칙 1. 정보 표현의 무손실 : 정보가 사라지지 않아야 한다, 같은 의미의 정보를 유지하면서 더 효율적인 구조로 변화해야 한다. 2. 데이터 중복의 최소 : 데이터 중복을 최소화하면서, 데이터 관리의 편리성을 부여하고 자료 저장 공간을 효율적으로 사용. 3. 분리의 원칙 : 독립적인 관계는 별개의 릴레이션으로 표현..
ERD(Entity Relationship Diagram) 릴레이션 간의 관계들을 정의한 것. 테이블간의 관계를 설명해주는 다이어그램이다. 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 한다. 서비스를 구축한다면 가장 먼저 신경 써야 하는 부분이다. ERD의 중요성 ERD는 시스템의 요구 사항을 기반으로 작성된다. 이 ERD를 기반으로 데이터베이스를 구축한다. 데이터베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우 설계도 역할을 담당하기도 한다. ERD는 관계형 구조로 표현할 수 있는 데이터를 구성하는데 유용하나, 비정형 데이터를 충분히 표현할 수 없다는 단점이 있다. *비정형 데이터 : 비구조화 데이터. 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않..
키(Key) 테이블 간의 관계를 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치다. 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성이다. 키에는 여러 종류가 있는데, 종류에 따라 위 그림과 같은 관계를 가진다. 슈퍼키는 유일성이 있다. 후보키는 유일성에 최소성까지 갖추었다. 후보키 중에서 기본키로 선택되지 못하면 대체키가 된다. *유일성(Unique) : 중복되는 값이 없는 것. 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 한다. *최소성(Minimality) : 필드를 조합하지 않고 최소 필드만 써서 키를 형성할 수 있는 것. 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 한다는 특성이다..
필드는 타입을 갖는다. 타입은 DBMS마다 다르다. MySQL 타입으로 설명을 하면 다음과 같다. 숫자 타입 타입 용량(바이트) 최솟값(부호 있음) 최솟값(부호 없음) 최댓값(부호 없음) 최댓값(부호 있음) TINYINT 1 -128 0 127 255 SMALLINT 2 -32768 0 32767 65535 MEDIUMINT 3 -8388608 0 8388607 16777215 INT 4 -2147483648 0 2147483647 4294967295 BIGINT 8 -263 0 263-1 264-1 TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 등이 있다. 숫자 타입은 용량에 따라 나뉜다. 날짜 타입 DATE 시간 없이 날짜만 나타낼 때 사용된다. 지원 범위는 1000-01..
데이터베이스(DB, DataBase) 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음. 데이터베이스의 특성 실시간 접근성 : 질의에 대한 실시간 처리 및 응답 계속적인 변화 : 갱신(update), 삽입(insert), 삭제(delete) 동시 공유 : 여러 사용자가 동시에 사용 내용에 의한 참조 : 데이터의 위치나 주소가 아닌 내용에 따라 참조 DBMS(DataBase Management System) 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS이라고 한다. 응용 프로그램과 데이터 사이의 중재자로서 모든 응용 프로그램(사용자)들이 데이터베이스를 공유할 수 있도록 관리해주는 소프트웨어 시스템이다. 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어(query ..