CS 기본/DB

· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 조인의 원리 중첩 루프 조인 정렬 병합 조인 해시 조인 중첩 루프 조인(NLJ, Nested Loop Join) 중첩 for문과 같은 원리로 조건에 맞는 조인을 하는 방법 랜덥 접근에 대한 비용이 많이 증가 따라서 대용량 테이블에 사용 X 정렬 병합 조인 각각의 테이블을 조인할 필드 기준으로 정렬하고 정렬이 끝난 후 조인 작업을 수행 조인할 때 쓸 적절한 인덱스가 없을 때 대용량 테이블 조인 조인 조건으로 등 범위 비교 연산자 있을 때 사용 해시 조인 해시 테이블 기반으로 조인 하나의 테이블이 메모리에 온전히 들어간다면 중첩 루프 조인보다 더 효율적 동등 조인(=)에서만 사용가능 빌드 단계, 프로브 단계로 나뉨 빌드 단계 ..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 조인(join) 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것 inner join(내부 조인) : 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기 left outer join(왼쪽 조인) : 왼쪽 테이블의 모든 행이 결과 테이블에 표기 right outer join(오른쪽 조인) : 오른쪽 테이블의 모든 행이 결과 테이블에 표기 full outer join(합집합 조인) : 두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 모두 표기 Inner Join SELECT * FROM TableA A INNER JOIN TableB ON A.key = B.key Le..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 인덱스의 필요성 데이터를 빠르게 찾을 수 있는 하나의 장치 클러스터 인덱스와 논 클러스터 인덱스가 존재 clustering index 실제 데이터 자체가 정렬 리프 페이지 == 데이터 페이지 실제 사전의 정렬 생각 non-clustering index 실제 데이터 페이지는 그대로 존재 별도의 인덱스 페이지 생성 후 그 곳에 실제 데이터의 주소가 들어감. 책 뒷편의 인덱스 페이지 생각(실제 책은 그 순서대로 정렬되어 있지 않는다.) 만약 한 테이블에서 클러스터링 논클러스터링이 동시에 만들어진다면?? 논 클러스터링 인덱스의 실제 데이터의 주소가 들어가는 것이 아닌 클러스터링 인덱스의 key값이 들어감 why?? -> 실제 주소로 하면..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 관계형 데이터베이스 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스 SQL 언어로 조작 MySQL, PostgresSQL, 오라클, SQL server, MSSQL MySQL 가장 많이 사용하는 데이터베이스 C, C++ 기반 B-트리 기반의 인덱스, 스레드 기반 메모리 할당 시스템, 빠른 조인, 최대 64개의 인덱스 제공. NoSQL(Not only SQL) SQL을 사용하지 않는 데이터베이스 MongoDB, Redis MongoDB JSON을 통해 데이터 접근 Binary JSON(BSON)형태로 데이터 저장 키-값 데이터 모델에서 활장된 도큐먼트 기반 DB 확장성 뛰어남 Redis 인메모리 데이터베이스, 키-값..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 트랜잭션(transaction) 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 여러 개의 쿼리들을 하나로 묶는 단위 트랜잭션 특징(ACID) 원자성(Atomicity) 일관성(Consistency) 격리성(Isolation) 지속성(Durability) 원자성 All or nothing 트랜잭션에 속한 연산이 모두 수행되거나 하나도 실행되지 않아야함. 일관성 트랜잭션이 성공적으로 수행된 후에도 데이터베이스가 일관된 상태를 유지해야 함. 격리성 트랜잭션 수행 시 서로 끼어들지 못하게 하는 것 지속성 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함. 이는 DB에 시스템 장애가 발생해도 원래 상태로 복구하는 회복 기..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. ERD(Entity Realationship Diagram) 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할 릴레이션 간의 관계들을 정의 시스템의 요구사항을 기반으로 작성 ERD를 기반으로 DB구축 비정형 데이터를 충분히 표현할 수 없다는 단점 예시 정규화 과정 릴레이션 간의 잘못된 종속 관계로 인한 이상현상을 제거하기 위함. 릴레이션을 여러 개로 분리하는 과정 정규형 원칙을 기반으로 정규형을 만들어 가는 과정 정규형(NF, Normal Form) 1, 2, 3, 보이스/코드 정규형 존재 이상(anomaly) 현상 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신 이상 : 중복 튜플 중 일..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. DB 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음 실시간 접근, 동시 공유 가 DBMS(DataBase Management System) 해당 데이터베이스를 제어, 관리하는 통합 시스템 데이터베이스 안의 데이터들은 특정 DBMS마다 정의된 query language를 통해 삽입, 삭제, 수정, 조회 등을 수행 엔티티(Entity) 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사 ex) 회원 엔티티 서비스의 요구사항에 맞게 속성이 결정 약한 엔티티 혼자서 존재하지 못하고 다른 것에 종속적임 강한 엔티티 B의 존재 여부와 상관없이 존재할 수 있는 엔티티 릴레이션(relation) 데이터베이스에서 ..
LTSGOD
'CS 기본/DB' 카테고리의 글 목록