영원히 흘러가는 강
신입 웹개발자 기술면접(데이터베이스) 본문
데이터베이스
전산 기본
- JOIN에 대해서 설명해 주세요.
ㄴ> 관계형 데이터베이스에서 중복 데이터를 피하기 위해 데이터를 테이블로 나눠서 저장하는데 이때 두개이상의 테이블을 결합하여 데이터를 검색하는 방법!
- 내부 조인과 외부 조인의 차이는 무엇인가요?
ㄴ>내부조인은 간단하게 생각해서 A와 B가 있을때 공통분모 즉, 교집합으로 생각
외부조인은 한 테이블에만 데이터가 있는 경우 ,데이터가 있는 테이블의 내용 전부 출력(LEFT,RIGHT,FULL)
- 정규화에 대해서 설명해 주세요.
ㄴ> 이상문제(삽입,삭제,갱신) 를 해결하기 위해 종속 관계 분석하여 여러개의 릴레이션으로 분해하는 과정.
분해시 속도는 느려질수 있지만, 이상 문제 해결
- ORM이란 무엇인가요?
ㄴ> 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는것. 객체-관계 매핑 jpa,hibernate 등
객체 지향적 코드로 인해 더 직관적이고 비즈니스 로직에 집중하도록, 재사용 유지보수 편리성,dbms 종속성 줄어든다
- NoSQL이란 무엇인가요?
ㄴ>사용자가 요구하는 데이터 및 저장해야하는 데이터가 일관적이지 않아져서 이 한계점으로 인해 탄생
Not Only SQL 약자 ,기존 RDBMS의 특성뿐 아니라 다른 특성 부가적 지원 ,RDBMS JOIN 특징 포함X ,확장성,가용성,높은 성능 ,MAP 방식
- 스키마란 무엇인가요?
ㄴ> 데이터베이스의 구조와 제약조건에 관해 전반적인 명세 기술. (속성,개체,관계,제약조건 기술)
인덱스
- 인덱스란 무엇인가요? 어떻게 동작 하나요?
ㄴ> 대용량 테이블에서 필요한 데이터만 빠르고 효율적으로 액세스할 목적으로 사용하는 오브젝트
루트 블록에서 브랜치 블록 정보를 찾고 리프 블록 찾아가서 해당 데이터의 ROWID(데이터 공유주소) 를 찾아 데이터가 들어있는 블록을 메모리 복사
- 인덱스의 알고리즘에는 어떤 것들이 있나요?
ㄴ> B-tree ,B+tree
B-tree : 리프노드 ,브랜치 노드 모두 데이터 저장 가능,트리 높이 높음,모든 노드 탐색
B+tree: 오직 리프 노드에만 데이터, 트리 높이 낮음, 리프 노드에서 선형탐색, 키중복,리프 노드끼리 링크드 리스트 연결
트랜잭션
- 트랜잭션이란 무엇인가요? 4가지 원칙을 포함해서 설명해 주세요.
ㄴ> db의 상태를 변환시키는 하나의 논리적 기능을 수행하기위한 작업 단위,한꺼번에 수행되어야할 연산
acid
atomicity(원자성): 트랜잭션 연산이 모두 반영 혹은 전혀 반영되지 않아야함,하나라도 오류시 전부 취소
consistency(일관성): 트랜잭션이 실행 후 언제나 일관성 ,시스템 고정요소 트랜잭션 전후가 같아야함
isolation(독립성): 병행 실행시 다른 트랜잭션 끼어들수 없음 ,수행중 트랜잭션 완료시까지 결과참조x
durablility(영속성): 성공적인 트랜잭션 결과는 시스템 고장시에도 영구적 반영
- 트랜잭션의 격리 수준?
ㄴ> 동시에 여러개의 트랜잭션이 처리될때,특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회한 데이터를 볼수 있도록 허용 여부를 결정하는것!
- 공유 락과 배타 락의 차이는 무엇인가요?
ㄴ> 트랜잭션이 읽기를 할때 사용하는 공유락, 읽고 쓰기를 할때 사용하는 배타락
- 데드락이란 무엇이며, 어떻게 발생할까요?
ㄴ>교착상태라고도 한다. 두 개 이상의 트랜잭션이 각각 자신의 데이터에 대하여 락을 획득하고 상대방 데이터에 대하여 락을 요청하면 무한 대기 상태에 빠지는 현상
'기술면접' 카테고리의 다른 글
신입 웹개발자 기술면접(프로그래밍) (0) | 2020.12.14 |
---|---|
신입 웹개발자 기술면접(자료구조) (1) | 2020.12.12 |
신입 웹개발자 기술면접(알고리즘) (0) | 2020.12.11 |
신입 웹개발자 기술면접 (네트워크) (0) | 2020.12.10 |
신입 웹개발자 기술면접(운영체제) (0) | 2020.12.09 |