영원히 흘러가는 강

신입 웹개발자 기술면접(데이터베이스) 본문

기술면접

신입 웹개발자 기술면접(데이터베이스)

double_R_one_G 2020. 12. 11. 13:18
728x90

데이터베이스

전산 기본

  • 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(영속성): 성공적인 트랜잭션 결과는 시스템 고장시에도 영구적 반영

                

  • 트랜잭션의 격리 수준?

        ㄴ> 동시에 여러개의 트랜잭션이 처리될때,특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회한 데이터를 볼수 있도록 허용 여부를 결정하는것!

 

  • 공유 락과 배타 락의 차이는 무엇인가요?

         ㄴ> 트랜잭션이 읽기를 할때 사용하는 공유락, 읽고 쓰기를 할때 사용하는 배타락

 

  • 데드락이란 무엇이며, 어떻게 발생할까요?

          ㄴ>교착상태라고도 한다. 두 개 이상의 트랜잭션이 각각 자신의 데이터에 대하여 락을 획득하고 상대방 데이터에 대하여 락을 요청하면 무한 대기 상태에 빠지는 현상

728x90
Comments