인터뷰 중에 기본적인 데이터베이스 디자인 질문을합니다. 데이터베이스 설계와 관련하여 정규화 (Why-Why)는 제 관심사 중 하나입니다. 동기화 된 서버와 관련된 일부 시나리오 및 관련 문제를 고려한 이유 / 이유 / 방법; 보안 문제 등.
- 그들이 선호하는 특정 데이터베이스 시스템 (예 : Oracle)의 맥락에서 질문을 하시겠습니까?
- 어떤 기술적 질문을 하시겠습니까?
- 어떤 시나리오를 사이트에 배치하고 해당 시나리오에 대한 답변으로 무엇을 찾고 있습니까?
- 보안 문제 처리에 대한 지식이 있는지 어떻게 알 수 있습니까?
- 다른 관련 질문. (예 : DB 복원 / 백업)
감사합니다.
답변
여기 고위 데이터베이스 관리자를위한 내 상위 10 인터뷰 질문을, 그리고 여기에 주니어 DBA를위한 톰 LaRock의 상위 10 개 질문.
다른 사람들이 후보가 서버 문제를 해결해야한다고 제안하는 것을 보았습니다. 이 방법을 사용하는 경우 스냅 샷이있는 가상 머신을 사용하십시오. 특정 구성 또는 성능 문제가있는 특정 방법으로 서버를 설정하고 스냅 샷을 작성한 다음 모든 인터뷰 후 스냅 샷으로 롤백 할 수 있습니다.
그렇게하면 실제로 할 수있는 작업 종류로 작업을 제한하십시오. 프로덕션 DBA에 정규화에 대해 묻지 말고 한 노드가 클러스터에 참여하지 않는 이유를 개발 DBA에 묻지 마십시오.
프로덕션 DBA 작업은 다음과 같습니다.
- 백업, 색인 유지 보수 및 DBCC에 대한 작업을 설정하십시오. 데이터베이스 백업 빈도와 로컬 또는 네트워크를 통해 백업 할 것인지 묻습니다. 특정 테이프 백업 소프트웨어가 이미 이력서에 있지 않은 경우 구성 방법을 묻지 마십시오.
- Johnny가 왜 로그인하여 쿼리를 실행할 수 없는지 알아보십시오.
- 누군가가 느린 쿼리에 대해 불평하고 있습니다. 무슨 일이 일어나고 있는지 알 수있는 곳을 보여주세요. 그런 다음 방금 전화를 걸어 쿼리가 완료되었다고 말했지만 다시는 발생하지 않기를 원합니다.
- 지난 밤 백업에서 단일 테이블을 복원합니다.
개발 작업은 다음과 같습니다.
- 이 저장 프로 시저를 디버깅하십시오.
- 이 실행 계획을 해석하십시오.
- 고객을 송장에 참여시키는보기를 작성하십시오.
AdventureWorks 스키마를 사용하십시오. 그들이 최근에 그 게임을 해본 적이 없지만 적어도 설명하기는 쉽다.
답변
인터뷰의 일환으로 소프트웨어 팀에서 데이터베이스 이해를 테스트합니다.
우리는 매우 열악한 디자인 (CRM 유형의 응용 프로그램이라고 생각)을 제시하고 약 30 분의 사고 시간 후에 디자인을 개선하도록 요청합니다.
그런 다음 그들이 말하는 것에 따라 더 많은 질문을합니다.
우리는 이해를 위해 조사하고 있습니다
- 성능 V 정규화
- 주요 설계 및 추천 무결성
- 개선을위한 장소, 즉 대체 DB 구조-트리거, 뷰, 프로 큐서
- 디자인이 약한 영역-다 대다 관계를 극복하는 방법
- 이것이 서버에 미치는 영향-유지 보수
- 데이터 보안 문제
- 응용 프로그램 보안 문제
우리는 팀으로서 우리가 이러한 유형의 질문에 대한 주니어 / 시니어 / 건축가 유형 답변으로 고려할 사항에 대해 생각했습니다.
따라서 성능 v 규범화-
우선 문제를보고 이유를 논의 할 수 있습니다 (주니어)
4/5 NF를 권장하지만 성능 문제를 이해하면 비정규 화되고 문제를 명확하게 설명하는 방법을 이해해야합니다 (고급)
스타 스키마와 같은 다른 유형의 디자인을 추천하고 여러 수준에 미치는 영향에 대해 논의합니다 (건축가)
- 핵심 설계 및 참조 무결성
데이터 관계를 강화하고 이에 대해 논의 할 수 있도록 참조 무결성이 필요하다는 것을 알 수 있지만 Key Choice and Design (주니어)의 문제는 볼 수 없습니다
데이터 볼륨 및 데이터 유형과 관련된 문제에 대해 논의합니다. v 데이터에서 자연 키를 찾는 이유 및 이들이 왜보고 있는지 그리고 참조 무결성 (Senior)을 따르는 문제에 대해 논의 할 수 있습니다.
키와 무결성과 관련된 다양한 견해를 주장하고 빠른 설계를위한 다양한 실제 모델을 제시 할 수 있습니다 (건축가)
당신은 그림을 얻는다.
더 많은 것을 추가하고 싶다면 의견을 게시하고 나머지에 대해 어떻게 생각하는지 자세히 설명하지만 처음 두 가지를 포함시켜 우리가 생각한 것에 대한 아이디어를 제공하십시오.
요점은 1. 질문에 대해 생각하는 것입니다. 2. 우리 팀 은 우리가 이러한 유형의 질문에 대한 주니어 / 시니어 / 건축가 유형 답변으로 고려할 사항에 대해 생각했습니다.
나는 후보자 및 팀이 들어오는 사람의 기술에 자신감을 가져야하고 팀이 다른 수준에 대한 답변으로 생각되는 것을 보게되면 들어오는 사람이 희망적으로 팀에 더 잘 맞을 것이라고 강조합니다. 또한 팀에게 후보자 선택에 영향을 줄 수있는 기능을 제공합니다. 또한 질문 패널에있는 사람을 지명합니다. 팀 바이 인으로 많은 도움이됩니다.
답변
정규화 문제가 몇 가지 있고 잠재적 인 보안 결함이있는 가상의 데이터베이스를 구성 할 수 있지만 일반적으로 직원 데이터베이스와 같이 상당히 일반적입니다. 그런 다음, 인터뷰 대상자가 조인을 통해 데이터베이스에서 특정 데이터를 가져 오는 방법에 대한 간단한 질문을하여 정규화 및 보안 문제에 대한보다 어려운 질문을 제기 할 수 있습니다.
답변
… 최근에 읽은 책, 읽은 블로그 및 청취하는 팟 캐스트를 묻습니다. 그리고 그들이 stackoverflow.com 및 serverfault.com에 참여하는지 물어보십시오 😉
답변
이것은 반드시 데이터베이스와 관련이있는 것은 아니지만 인터뷰에 추가하고 싶은 것은 실제 문제 해결 및 디자인 시나리오입니다.
실습 문제의 경우, 개인이 액세스 할 수있는 시스템을 열어서 열린 문제를 해결하도록하십시오. 필자가 개인적으로 선호하는 점은 성능 문제입니다. 필요에 따라 인터뷰 요청시 재생산 할 수있는 것이 아니며 정답이 거의 없습니다. 대신, 후보자가 문제점 해결 프로세스를 실행하는 것을 볼 수 있으며 환경에 대한 추가 정보를 얻으려면 토론을 열어야합니다. 핵심은 면접관이 문제에 대해 정직하고 시나리오를 잘못 구성된 설정이나 그와 비슷한 부활절 달걀 사냥로 바꾸지 않는 것입니다.
디자인 시나리오의 경우, 후보자에게 새로운 프로젝트 (레거시 종속성 없음)에 대한 일반적인 개요를 제공하고 프로젝트 목표를 충족하는 특정 영역 (DBA, 시스템 또는 네트워크 등)에서 일반적인 디자인을 제안하도록 요청합니다. 핵심은 누군가가 전체 시나리오를 머리 속에 담을 수있을 정도로 프로젝트를 작게 유지하는 데 있으며 설명하는 데 몇 분 이상 걸리지 않습니다.
시스템 및 네트워크 사용자를 위해 여기에서 사용하는 예는 비즈니스의 특정 제약 조건에 따라 소규모 지사를위한 디자인을 설명하는 것입니다. DBA 측에서는 작거나 명백한 CRUD 응용 프로그램을 사용할 수 있습니다. 두 경우 모두 상세 설계가 아니라 개요를 더 많이 찾고 후보자가 나타나는 일반적인 문제를 찾는 지 확인하십시오.
이 두 시나리오에서 중요한 점은 주제에 대한 토론을 열고 응시자가 자신의 질문으로 토론을 이끌도록하는 것입니다. 어느 쪽도 정확한 답변을 요구하지 않는 것이 분명합니다.
당신이 이미지를 찍을 수 있기 때문에, 나는 인터뷰에서 사소한 것을 싫어하며, 이것이 후보 능력에 대해 훨씬 더 깊이 이해할 수 있다고 생각합니다.
답변
그녀가 말하게하세요. 과거의 경험에 대해 물어보고 그가 겪은 문제와 처리 방법을 묻습니다. 이 문제를 선택하거나 일반적인 문제를 해결하기위한 동기는 무엇입니까? 모니터링? 확장, 확장, 보안].
나는 당신이 듣기 만하면 그 사람에 대해 많은 것을 말할 수 있다고 생각합니다.
그렇다면 특정 분야의 특정 전문 지식을 찾고 있다면 자세한 질문을하십시오-Stefan Thyberg의 제안은 매우 좋습니다.