데이터베이스 프로그래머는 많은 일을합니다. 먼저 예상되는 레코드 수로 올바르게 수행되도록 데이터베이스 구조를 설계합니다. 수천 개의 레코드에 대해 제대로 작동하는 디자인 구조는 수백만 개의 레코드에서 데이터베이스를 사용할 수 없게 만들 수 있습니다. 또한 데이터가 시간이 지남에 따라 데이터의 무결성을 유지하고 무단 변경이나 도난으로부터 데이터가 안전하게 보호되도록해야합니다. 정규화와 비정규 화시기 및 이유를 완전히 이해해야합니다. 그들은 성능과 데이터 무결성을 보장하는 방법을 이해해야합니다. 보안과 데이터 도난 또는 악의적 인 변경을 방지하는 방법을 이해해야합니다.
쿼리 성능을 조정합니다. 몇 분이 걸리는 쿼리를 밀리 초로 변경했습니다. 24 시간 이상 걸리는 프로세스를 30 분 미만으로 변경했습니다. 인서트 속도와 선택 속도의 균형을 유지하는 인덱싱 구조를 설계하고 유지합니다.
복잡한 쿼리, 특히보고 쿼리를 작성합니다. 요구 사항의 복잡성으로 인해 1000 줄 이상의 쿼리를 개인적으로 작성했습니다. 그들은 여전히 빨리 달려야했다.
이들은 데이터웨어 하우스 및 해당 ETL 프로세스를 작성하여이를 지원합니다. 종종 그들은 다른 소스에서 데이터를 가져 오기 위해 프로세스를 작성해야하며 일부 클라이언트 데이터베이스에서 해당 필드를 필드로 맵핑하는 방법을 알아 내야하며 데이터 유형, 데이터 크기, 필수 필드, 조회 값, 기타
이들은 이미 보유한 100,000,000 개의 레코드를 손상시키지 않고 데이터베이스 사용을 완전히 중단하지 않고 데이터베이스 요구 사항이 변경 될 때 리팩토링하는 방법을 결정해야합니다. 큰 데이터베이스에는 수천 개의 테이블과 저장된 proc 및 사용자 정의 함수가 포함될 수 있습니다. 그러한 구조를 이해하려면 변화에 의해 어떤 영향을 받는지 이해하는 데 시간과 기술이 필요합니다.
규제 및 복구 이유로 데이터를 감사하는 방법을 설계합니다. 그런 다음 해당 감사 테이블에서 데이터를 복구하는 방법을 설계합니다. 데이터 관련 문제를 조사하여 가져 오기 프로세스의 버그, 다른 사람이 제공 한 잘못된 파일 또는 응용 프로그램의 잘못된 삽입 / 업데이트 또는 무단 액세스로 인한 문제인지 확인합니다. 응용 프로그램 프로그래머가 해커가 공격 할 수있는 구멍을 뚫었을 때 나쁜 데이터를 수정하는 방법을 찾습니다.
그들은 종종 한 시스템에서 새로운 시스템으로의 데이터 변환에 관여합니다. 때때로 이것은 하나의 COTS 제품에서 회사가 방금 구입 한 새로운 제품으로 데이터를 이동시키는 것을 포함합니다. 앞에서 설명한 수입품과 마찬가지로 이들은 복잡한 프로세스이므로 계획 및 실행에 몇 개월이 걸리고 광범위한 테스트가 필요합니다. 가져 오기와 달리 데이터베이스 프로그래머는 이종 데이터 구조를 제어 할 수 없습니다.