Tech Interview/Database

Tech Interview/Database

[Database] 목차

순번 유형 01 데이터베이스 데이터베이스 데이터베이스 풀 02 키 키 후보키 기본키 대체키 슈퍼키 외래키 03 조인 조인 내부 조인 외부 조인 크로스 조인 셀프 조인 04 인덱스 인덱스 인덱스의 자료구조 05 이상 삽입 이상 갱신 이상 삭제 이상 06 정규화 정규화 1차 정규화 2차 정규화 3차 정규화 BCNF 07 트랜잭션 트랜잭션 트랜잭션 상태 트랜잭션 격리 수준 08 SQL vs NoSQL SQL 저장 프로시저 NoSQL 레디스

Tech Interview/Database

[Database] SQL vs NoSQL

✔️ SQL vs NoSQL SQL(관계형 데이터베이스)이란? SQL을 사용하면 RDBMS(관계형 데이터베이스)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있음 관계형 데이터베이스는 두 가지 핵심적인 특징을 가짐 데이터는 명확하게 정해진 데이터 스키마(구조)에 따라 테이블에 레코드로 저장되어 무결성을 보장함 데이터 스키마는 필드의 이름과 데이터 유형으로 정의되며 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없음 데이터는 관계를 통해 여러 테이블에 분산되어 중복 없이 하나의 데이터만을 관리할 수 있음 반면 덜 유연하기 때문에 데이터 스키마를 사전에 계획해야 하며 조인문이 많은 복잡한 쿼리가 만들어질 수 있음 또한 저장 방식으로 인해 일반적으로 단순히 데이터베이스 서버의 성능을 향상시키는 수직적 ..

Tech Interview/Database

[Database] 트랜잭션

✔️ 트랜잭션 트랜잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 사용자의 입장에서는 작업의 논리적 단위 시스템의 입장에서는 데이터들을 접근 또는 변경하는 프로그램의 단위 트랜잭션은 특징으로 ACID(원자성, 일관성, 독립성, 지속성)을 가짐 원자성(Atomicity) : 트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 함 일관성(Consistency) : 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 함 독립성(Isolation) : 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없음 지속성(Durability) : 트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 함 트랜잭션 상태 트랜잭션의 상태로는 Active, Failed, Partially C..

Tech Interview/Database

[Database] 정규화

✔️ 정규화 정규화란? 관계형 데이터베이스에서 테이블 간 데이터의 중복을 최소화하게 데이터를 구조화하는 작업 구체적으로는 불만족스러운 나쁜 릴레이션의 속성들을 나누어서 좋은 작은 릴레이션으로 분해하는 작업 가장 큰 목표를 테이블 간 중복된 데이터를 허용하지 않도록 하는 것 이처럼 중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고 DB 저장 용량 또한 효율적으로 관리할 수 있음 이를 통해 불필요한 데이터를 최소화하여 무결성을 지키고, 이상 현상(삽입/삭제/수정 이상)을 방지하도록 함 또한 테이블 구성을 논리적이고 직관적으로 할 수 있으며 데이터베이스 구조 확장에도 용이해짐 반면 테이블의 분해로 인해 JOIN 연산이 많아지게 되므로 질의에 대한 응답 시간이 느려질 수 있음 그러므로 항상 일정한 범위만..

Tech Interview/Database

[Database] 이상

✔️ 이상 삽입 이상 불필요한 데이터를 추가해야만, 삽입할 수 있는 상황 원하지 않는 자료가 삽입된다든지, 삽입하는데 자료가 부족해 삽입이 되지 않음 갱신 이상 일부만 변경하여, 데이터가 불일치하는 모순의 상황 정확하지 않거나 일부의 튜플만 갱신되어 정보가 모호해지거나 일관성이 없어져서 정확한 정보 파악이 되지 않음 삭제 이상 튜플 삭제로 인해 꼭 필요한 데이터까지 함께 삭제되는 상황 하나의 자료만 삭제하고 싶지만, 그 자료가 포함된 튜플 전체가 삭제됨으로 원하는 정보가 손실됨

Tech Interview/Database

[Database] 인덱스

✔️ 인덱스 인덱스란? RDBMS에서 검색 속도를 높이기 위한 기술로 테이블의 칼럼을 색인화하여 따로 파일로 저장함 칼럼의 값과 해당 레코드가 저장된 주소를 키와 값의 쌍으로 인덱스를 만들게 됨 해당 테이블의 레코드를 전체 탐색(Full Scan) 하지 않고, 색인화된 인덱스 파일 검색으로 인해 검색 속도가 향상됨 반면 인덱스 생성 시, 파일의 크기가 증가하고 한 페이지를 동시에 수정할 수 있는 병행성이 줄어들게 됨 또한 데이터 변경 작업이 자주 일어나는 경우, 인덱스를 재작성해야 하므로 인덱스 된 필드에서 데이터를 업데이트하거나, 레코드를 추가 또는 삭제 시 성능이 떨어짐 그러므로 Where 절에서 자주 사용되는 컬럼,칼럼, 외래키가 사용되는 칼럼, 조인에 자주 사용되는 칼럼의 경우 인덱스를 사용하고,..

Tech Interview/Database

[Database] 조인

✔️ 조인 조인이란? 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현 관계형 데이터베이스의 구조적 특징으로 인해 정규화를 수행하면 의미 있는 데이터의 집합으로 테이블이 구성되고, 각 테이블끼리는 관계를 가지게 되므로 나누어진 각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 조인을 사용 테이블을 연결하려면, 적어도 하나의 칼럼을 서로 공유하고 있어야 하므로 이를 이용하여 데이터 검색에 활용 조인의 종류로는 내부 조인, 외부 조인, 크로스 조인, 셀프 조인이 존재 조인을 사용할 때는 SQL 문장의 의미를 제대로 파악하고 명확한 조인 조건을 제공해야 함 또한 조인할 대상의 집합을 최소화하며 조인을 맺는 것이 효..

Tech Interview/Database

[Database] 키

✔️ 키 키란? 검색, 정렬 시 튜플을 구분할 수 있는 기준이 되는 속성 후보키 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합 기본키로 사용할 수 있는 속성들로 유일성과 최소성의 조건을 가짐 모든 릴레이션은 반드시 하나 이상의 후보 키를 가져야 함 기본키 후보키 중 선택한 메인 키 Null 값을 가질 수 없으며 동일한 값을 가질 수 없음 Null이란 데이터베이스에서 아직 알려지지 않았거나, 모르는 값으로 아무것도 없는 특수한 데이터를 뜻함 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성으로 유일성, 최소성, 개체 무결성의 조건을 가짐 유일성 : 기본키를 구성하는 컬럼을 테이블에서 레코드를 식별할 수 있도록 유일해야 함 최소성 : 유일성은 만족하는 한도 내에서 최소한의 컬럼으로 구성..

김깅긍
'Tech Interview/Database' 카테고리의 글 목록