안녕하세요, 저는 프로그래밍 경험이있는 토목 기술자이지만 현재 이용 가능한 다양한 옵션에 익숙하지 않습니다. 진행하는 가장 좋은 방법은 무엇이든 알려주십시오.
지상 측량 측정 데이터베이스를 그리드 형식으로 만들고 쿼리하고 싶습니다. 토공 작업을 통해 다양한 시간에 각 그리드 위치에 대해 많은 측정이 이루어 지므로 4 차원 시간이 있습니다.
관측치는 텍스트 파일에서 읽을 가능성이 높습니다. 각 레코드에는 (2 x 정수) 그리드 위치 (행 및 열) (부동 소수점)지면 수준과 다양한 문자열 정보 코드 (총 30 자까지 가능)가 있습니다.
그리드는 약 10000 행 x 10000 열일 수있다. 그리드의 모든 위치가 각 측량에서 레코드를 갖지는 않지만 일반적으로 최대 100 개의 레코드를 갖습니다. 많은 그리드 위치에는 레코드가 전혀 없습니다 (사이트가 완전히 직사각형이 아님).
레코드를 검색하고 데이터를 추출하고 계산을 수행하고 싶습니다 (예 : 각 그리드 위치에 대한 최저 또는 최고지면 수준 계산). FORTRAN, BASIC 또는 C와 같은 언어로 배열을 사용하여 이것을 간단하게 프로그래밍 할 수 있다고 확신합니다. 많은 배열 요소가 비어 있지만 이것이 올바른 방법이 아니라고 생각합니다. 이와 같은 큰 데이터베이스에는 사용법을 배우는 데 필요한 특수 도구가 필요합니다.
플랫폼에 가능한 옵션을 생각하고 있습니다.
데이터베이스 프로그램을 사용하십시오. 나는 이것이 얼마나 강력한 지 잘 모르지만 GUI에 많은 오버 헤드가있을 것이라고 생각합니다.
SQL을 사용 하시겠습니까? 이것은 잘 모르지만 데이터베이스의 언어 인 것 같습니다. 나는 항상 선언적이 아닌 명령형 언어를 사용했으며 위키 백과에서 SQL이 선언적이라는 것을 이해함에 따라 나는 변화에 약간 긴장하고 있습니다. 그것을 사용하는 과정을 완전히 이해하지 못합니다. 콘솔 프로그램을 만드는 컴파일러가 있습니까? 데이터베이스가 디스크에 저장되어 있습니까? 그런 바보 같은 질문에 대해 죄송합니다.
c-treeACE와 같은 API를 사용하십니까? 나는 이것이 "이것을하고 나서 그렇게하라"는 언어의 친숙 함을 제공 할 수있는 방법이라고 생각한다 (불행히도 이것이 내가 엔지니어라고 생각하는 방식이다!). 그러나 API가 제공하는 배후의 메모리 및 처리 관리가 거대한 배열로 달성 할 수있는 것보다 우수하기를 바랍니다.
또는 객체 지향 언어를 사용하여 컴퓨터에서 저장 요구 사항에 대해 걱정하도록 할 수 있습니까? 예를 들어, 레코드를 필요한 결과를 얻는 데 도움이되는 메소드 및 속성이있는 객체로 레코드를 저장하면 3과 비교할 때 막대한 프로그램이 될 것입니다)
수억 개의 레코드가있을 가능성이 높으며 Windows를 실행하는 최신 PC에서 몇 시간 (바람직하게는 초!)이 아닌 몇 분 만에 쿼리하고 처리 할 수 있기를 바랍니다. 좀 더 구체적으로 말하면 Windows 7 64 비트를 실행하는 6Gb 램 및 120Gb SSD가 장착 된 i7 프로세서입니다.
누군가가 초보자와 지혜의 말씀을 나눌 시간이 있기를 바랍니다.