db10 조인의 원리 ✏️ 조인의 원리 조인 연산은 여러 가지 알고리즘에 기반하여 수행됩니다. 이러한 알고리즘들을 조인의 원리라고 합니다. 주요 조인 알고리즘으로는 중첩 루프 조인, 블록 중첩 루프 조인, 정렬 병합 조인, 해시 조인이 있습니다. 📌 중첩 루프 조인 중첩 루프 조인(NLJ, Nested Loop Join)은 중첩된 for 문과 같은 원리로 작동합니다. 외부 테이블의 각 행에 대해 내부 테이블의 모든 행을 순차적으로 검사하며 조인 조건을 만족하는지 확인합니다. 이 방식은 작은 테이블들에 대해 효과적이지만, 대용량의 테이블에서는 랜덤 접근에 대한 비용이 크게 증가하여 비효율적일 수 있습니다. 📌 정렬 병합 조인 정렬 병합 조인(Sort Merge Join)은 두 테이블을 조인 키로 정렬한 후, 이 정렬된 테이블들.. ComputerScience/조인의 원리 2023. 11. 24. 조인의 종류 ✏️ 조인의 종류 조인(Join)이란 두 개 이상의 테이블 또는 데이터 집합을 묶어서 하나의 결과물을 만드는 데이터베이스 연산입니다. 이 연산은 관계형 데이터베이스 시스템(RDBMS)에서 주로 사용되며, MySQL 같은 관계형 데이터베이스에서는 JOIN이라는 쿼리로 이를 처리합니다. MongoDB와 같은 NoSQL 데이터베이스에서도 유사한 작업을 수행할 수 있는데, 이는 $lookup 연산을 통해 가능합니다. $lookup은 두 개의 컬렉션을 결합하는 연산입니다, 이는 관계형 데이터베이스의 JOIN 연산과 비슷한 기능을 수행합니다. 그러나 중요한 점은 MongoDB가 기본적으로 문서 지향적인 NoSQL 데이터베이스로 설계되었다는 것입니다. 이로 인해 MongoDB는 조인 연산에 관계형 데이터베이스만큼 특.. ComputerScience/조인의 종류 2023. 11. 24. 인덱스 최적화 기법 ✏️ 인덱스 최적화 기법 데이터베이스의 인덱스 최적화는 성능 향상 및 쿼리 응답 시간 단축을 목표로 합니다. 인덱스 최적화 기법은 다양하지만, 주요 기법들을 몇 가지 소개하겠습니다. 📌 적절한 인덱스 선택 예시 : SELECT * FROM orders WHERE customer_id = 123; 쿼리가 자주 실행된다면 customer_id에 인덱스를 생성합니다. 데이터베이스에서 SELECT 쿼리는 데이터를 검색할 때 사용됩니다. 이때, 어떤 조건으로 데이터를 찾을지 정의하는 것이 WHERE 절입니다. 위의 예시에서는 customer_id가 123인 주문 데이터를 찾기 위한 쿼리입니다. 인덱스 없이 데이터를 검색할 때 데이터베이스는 orders 테이블의 첫 번째 레코드부터 마지막 레코드까지 모든 레코드를 .. ComputerScience/인덱스 2023. 11. 24. 인덱스의 필요성 ✏️ 인덱스의 필요성 인덱스는 도서관의 컴퓨터 시스템이나 색인 카드와 같은 역할을 합니다. 데이터베이스에 수백만, 혹은 수십억의 레코드가 있을 때, 원하는 데이터를 찾기 위해 모든 레코드를 순차적으로 검색하는 것은 매우 비효율적입니다. 인덱스를 사용하면, 데이터를 빠르게 찾을 수 있습니다. 인덱스는 특정 열(column)의 값과 해당 데이터가 저장된 위치를 매핑하여 테이블을 빠르게 검색할 수 있도록 도와줍니다. 따라서, 데이터 검색 속도를 크게 향상시킬 수 있습니다. 하지만, 인덱스를 과도하게 사용하면 데이터 삽입, 수정, 삭제 시 성능 저하를 초래할 수 있으므로 적절한 인덱스 설계와 사용이 중요합니다. 🌲 B-트리 B-트리는 데이터베이스와 파일 시스템에서 널리 사용되는 균형 잡힌 트리 자료구조입니다. .. ComputerScience/인덱스 2023. 11. 22. NoSQL 데이터베이스 ✏️ NoSQL 데이터베이스 NoSQL(Not only SQL)이라는 슬로건에서 생겨난 데이터베이스입니다. SQL을 사용하지 않는 데이터베이스를 말하며, 대표적으로 MongoDB와 redis 등이 있습니다. 🍃 Mongo DB MongoDB는 JSON을 통해 데이터에 접근할 수 있으며, 데이터는 Binary JSON 형태(BSON)로 저장됩니다. 와이어드타이거 엔진은 기본 스토리지 엔진으로 사용되며, MongoDB는 도큐먼트 지향적 데이터 모델을 기반으로 합니다. 이 데이터베이스는 확장성이 뛰어나며 빅데이터 저장에 있어서 우수한 성능을 보입니다. 고가용성 샤딩, 레플리카셋을 지원하며, 스키마를 사전에 정의하지 않고 데이터를 삽입할 수 있는 유연성을 가집니다. 이러한 특성 때문에 다양한 도메인의 데이터베이.. ComputerScience/데이터베이스의 종류 2023. 11. 22. 관계형 데이터베이스 ✏️ 관계형 데이터베이스 관계형 데이터베이스(RDBMS)는 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리키며 SQL이라는 언어를 써서 조작합니다. MySQL, PostgreSQL, 오라클, SQL Server, MSSQL 등이 있습니다. 참고로 관계형 데이터베이스의 경우 표준 SQL은 지키기는 하지만, 각각의 제품에 특화시킨 SQL을 사용합니다. 예를 들어 오라클의 경우 PL/SQL이라고 하며, SQL Server에서는 T-SQL, MySQL은 SQL을 사용합니다. 더보기 💡 SQL SQL(Structured Query Language)는 구조화된 질의 언어로 번역됩니다. 이는 데이터베이스에서 데이터를 질의, 조작, 정의 및 제어하기 위해 설계된 특수 목적의 프로그래밍 언어입니다.. ComputerScience/데이터베이스의 종류 2023. 11. 22. 트랜잭션 ✏️ 트랜잭션 트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 연속된 작업의 단위를 의미합니다. 일련의 쿼리들로 구성될 수 있으며, 트랜잭션의 수행 중에 오류가 발생하면 이미 진행된 작업들도 모두 취소되며, 오류 없이 성공적으로 수행되면 모든 작업이 한꺼번에 적용됩니다. 트랜잭션에 대한 특징은 원자성, 일관성, 독립성, 지속성이 있으며 이를 한꺼번에 ACID 특징이라고 합니다. 💥 원자성 원자성은(Atomicity)은 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징입니다. 예를 들어 트랜잭션을 커밋했는데, 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장하는 것을 말합니다. 예를 들어 고객 A는 자신의 은행 계좌에서 500달러를 고객 B의 계좌로 이.. ComputerScience/트랜잭셕과 무결성 2023. 11. 22. ERD ✏️ ERD ERD(Entity Relationship Diagram)는 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것입니다. ✅ ERD의 중요성 ERD는 시스템의 요구 사항을 기반으로 작성되며 이 ERD를 기반으로 데이터베이스를 구축합니다. 데이터베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우 설계도 역할을 담당하기도 합니다. 하지만 ERD는 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용할 수 있지만 비정형 데이터를 충분히 표현할 수 없다는 단점이 있습니다. 더보기 💡 비정형 데이터 비구조화 데이터를 말하며, 미리 정의된 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보를 말합니다. ⚙️ 정규화 과정 정규화 과정.. ComputerScience/ERD와 정규화 과정 2023. 11. 22. 데이터베이스 테이블 관계와 키 ✏️ 데이터베이스 테이블 관계 데이터베이스에 테이블은 하나만 있는 것이 아닙니다. 여러 개의 테이블이 있고 이러한 테이블은 서로의 관계가 정의되어 있습니다. 이러한 관계를 관계화살표로 나타냅니다. 1:1 관계 예를 들어 한 명의 국민은 한 개의 주민등록증을 가질 수 있습니다. 반대로 각 주민등록증은 한 명의 국민에게만 발급됩니다. 이 경우 1:1 관계가 형성됩니다. 이러한 1:1 관계는 데이터베이스 설계에서는 그렇게 흔하지 않을 수 있지만, 특정 정보의 독립성을 보장하거나 추가 정보를 제공하는데 유용할 수 있습니다. 1:N 관계 예를 들어 교사와 학생에 상황에서 한 명의 교사는 여러 명의 학생을 지도할 수 있습니다. 그러나, 각 학생은 하나의 반에서만 수업을 들을 수 있기 때문에 한 명의 교사에게만 지도.. ComputerScience/데이터베이스 기본 2023. 11. 21. 데이터베이스의 기본 ✏️ 데이터베이스의 기본 데이터베이스는 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음입니다. 이러한 데이터베이스를 관리하는 시스템을 DBMS(DataBase Management System)라고 합니다. DBMS를 통해 데이터베이스 내의 데이터에 대한 삽입, 삭제, 수정, 조회 등의 연산을 수행할 수 있으며, 이 연산은 특정 DBMS마다 정의된 쿼리 언어를 통해 이루어집니다. 데이터베이스는 실시간 접근과 동시 공유가 가능합니다. 데이터베이스 구조는 크게 데이터베이스, DBMS, 그리고 응용 프로그램으로 구성되어 있습니다. 예를 들면, MySQL이라는 DBMS 위에 Node.js라는 응용 프로그램이 위치하며, 이를 통해 데이터베이스 내의 데이터를 활용하여 다양한 로직을 구축할 수 있습니다.. ComputerScience/데이터베이스 기본 2023. 11. 21. 이전 1 다음