면접준비[프론트,백,데이터,CS]/InterView 준비 [ DB,데이터,클라우드 ]

[ DB & SQL(RDBMS, NoSQL) 면접 준비 ] DB/SQL 면접 준비 01

안다미로 : APP & Web3 & D.S 2024. 12. 17. 01:06

 

 

 

 

[ DB & SQL(RDBMS, NoSQL) 면접 준비 ] DB/SQL 면접 준비 01

 


 

Ⅰ. 데이터베이스의 특징에 대해서 설명해주세요.


 

          1. 실시간 접근성(Real-Time Accessibility) 

                 : 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 합니다.

                      사용자가 요청한 데이터에 즉각적으로 접근 할 수 있도록 하여 신속한 의사결정을 지원합니다.

                    ex) 온라인 쇼핑몰에서 상품 재고 조회 시  >> 유저는 실시간으로 현재 재고 상태 확인 가능.

 

          2. 지속적인 변화(Continuous Evolution) 

                 : 데이터베이스의 상태는 동적입니다. 

                   즉, 새로운 데이터 삽입(Insert), 삭제(Delete), 갱신(Update)로 항상 최신의 데이터를 유지해야 합니다.

 

                    지속적인 변화는 데이터베이스가 항상 최신 정보를 반영하도록 하여,

                     사용자에게 정확하고 신뢰할 수 있는 데이터를 제공합니다.

 

          3. 동시 사용 가능성(Concurrent Sharing) 

                 : 데이터베이스는 다양한 목적을 가진 여러 사용자가 동시에 접근할 수 있도록 설계되어야 합니다.

                       다수의 사용자가 동일한 데이터에 접근하고 활용할 수 있게 하여서, 협업과 효율성을 극대화합니다.

 

          4. 내용에 의한 참조(Content Reference) 

                 : 데이터베이스에서 데이터를 참조할 때, 사용자는 데이터 레코드의 주소나 위치가 아니라

                       원하는 데이터의 내용에 따라 검색할 수 있습니다.

                    사용자가 직관적으로 필요한 정보를 찾을 수 있도록 하여서, 데이터 접근성을 높입니다.

                

 

 

 


Ⅱ. 데이터베이스의 언어(DDL, DML, DCL)에 대해 설명해주세요.


 

       ◆ DDL ( 정의어 : Data Definition Language ) : 데이터베이스 구조를 정의, 수정, 삭제하는 언어

               => [ alter, create, drop ]

 

                        ○ ALTER : 기존 데이터베이스 객체의 구조를 변경합니다.

                        ○ CREATE : 새로운 데이터베이스 객체(테이블,뷰 등)를 생성합니다.

                        ○ DROP: 데이터베이스 객체를 삭제합니다.

 

       ◆ DML( 조작어 : Data Manipulation Language ) : 데이터베이스내의 자료 검색*삽입*갱신*삭제를 위한 언어

               => [ select, insert, update, delete ]

 

                        ○ SELECT: 데이터베이스에서 데이터를 조회합니다.

                        ○ INSERT: 새로운 데이터를 데이터베이스에 추가합니다.

                        ○ UPDATE: 기존 데이터를 수정합니다.

                        ○ DELETE: 데이터베이스에서 데이터를 삭제합니다.

 

       ◆ DCL ( 제어어 : Data Control Language ) : 데이터에 대해 무결성 유지, 병행 수행 제어, 보호와 관리를 위한 언어

               => [ commit, rollback, grant, revoke ]

 

                        ○ COMMIT: 트랜잭션의 변경 내용을 확정합니다.

                        ○ ROLLBACK: 트랜잭션의 변경 내용을 취소합니다..

                        ○ GRANT: 사용자에게 특정 권한을 부여합니다.

                        ○ REVOKE: 사용자에게 부여된 권한을 취소합니다.

 

 


 

 

Ⅲ. SELECT 쿼리의 수행 순서.


 

    " FROM -> ON -> JOIN  ->  WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT "

 

 

        1. FROM

             - 쿼리에서 사용할 테이블을 지정합니다. 

             - 데이터의 출처가 결정되며, 여러 테이블을 조인할 수 있습니다.

 

        2. ON

             - 조인 조건을 정의합니다.

             - 이 조건은 두 개 이상의 테이블을 결합할 때 어떤 기준으로 데이터를 연결할지를 결정합니다.

 

        3. JOIN

             - 지정된 조인 조건에 따라서 테이블이 결합되어 데이터가 집합(Set)으로 모아집니다.

             - 이 과정에서 '서브쿼리'를 사용할 수 있으며, 이를 통해 임시 테이블을 생성 가능합니다.

 

        4. WHERE

             - 데이터 셋이 형성된 후, WHERE 절의 조건이 개별 행에 적용됩니다.

             - 이 조건은 FROM 절에서 가져온 데이터에 필터링을 적용하여 원하는 결과를 도출하는데 사용됩니다.

 

        5. GROUP BY

             - WHERE 절의 조건이 적용된 후, 남은 행들은 GROUP BY 절에 지정된 열의 공통값을 기준으로 그룹화됩니다.

             - 이 절은 집계 함수(COUNT, SUM 등) 와 함께 사용되어야 합니다.

 

        6. HAVING

             - GROUP BY 절이 있는 경우, HAVING 절의 조건이 그룹화된 결과에 적용됩니다.

                  이는 그룹화된 데이터에 대한 추가적인 필터링을 가능하게 합니다.

 

        7. SELECT

             - SELECT 절에서 지정된 열이나 표현식이 최종적으로 선택됩니다.

                  이 단계에서 최종 결과셋이 결정됩니다.

 

        8. DISTINCT

             - SELECT 절에서 중복된 행을 제거하여, 고유한 결과값많 반환합니다.

                  데이터의 중복을 방지하는데 유용합니다.

 

        9. ORDER BY

             - 결과셋을 특정 열을 기준으로 오름차순(ASC) 또는 내림차순(DESC)으로 정렬합니다.

             - 이 단계는 결과의 가독성을 높이는 데 도움을 줍니다.

 

        10. LIMIT

             - LIMIT절을 사용하여, 반환할 행의 수를 제한합니다.

                     필요한 데이터만 선택저으로 출력할 수 있습니다.