COBOL 레코드 레이아웃에서 SQL 테이블 정의를 작성하는 것은 항상 직선 프로세스입니다 (다른 방법은 꽤 간단합니다).
문제는 다양한 오버레이 (COBOL REDEFINES) 및 비정규 화 (COBOL OCCURS)에서 COBOL 레코드 레이아웃이 상당히 복잡 할 수 있다는 것입니다. 꽤 많이 은 복잡한 COBOL 레코드를 SQL 테이블 레이아웃으로 매핑하는 프로세스를 자동화하려는 대부분의 시도를 무효화합니다.
데이터 유형 매핑은 약간의 어려움 일 수 있습니다. Net Express 파일은 이 ASCII 또는 EBCDIC (IBM 메인 프레임) 기반 환경을 목표로 작성 될 수 있습니다. 파일 이 EBCDIC로 인코딩 된 경우 파일에 문자/숫자 혼합 데이터가 포함되어 있기 때문에 대부분 사용자 지정 변환 소프트웨어를 작성해야합니다 (이 유형의 변환을 자동화하거나 부분 자동화 할 수 있지만 그들과 친숙하지 않다.).
.DAT
파일 중 하나를 간단한 텍스트 편집기 (예 : 메모장)로보고보십시오. 문자 데이터를 읽을 수있는 경우 ASCII 기반입니다. 추가 변환 작업없이 데이터를로드 할 수있는 싸울 기회가 있습니다 ( ). 유사한 길이 CHAR
데이터 (즉 PIC X(4)
CHAR(4)
가된다) PIC X
무언가이다
COBOL 필드 정의는 문자 데이터를 포함하고 는 SQL로 직접 변환.
BINARY
으로 정의 된 COBOL 필드 정의는 INTEGER
으로 변환됩니다. 숫자 의 길이가 길거나 짧을 지 여부는 숫자에 따라 다릅니다.예를 들어, PIC S9(8) BINARY
은 을 지정합니다. 부호있는 2 진 정수 8 자리 - 이는 4 바이트를 차지합니다. 반면에 PIC S9(4) BINARY
은 4 자리이므로 2 바이트 (짧은 정수)를 차지합니다.
또 다른 일반적인 COBOL 필드 정의는 PACKED-DECIMAL
또는 COMP-3
입니다. 이 필드 은 SQL DECIMAL
데이터 유형으로 변환 될 수 있습니다.
SimoTime은 여러 COBOL 필드 정의에 대한 개요를 제공합니다. 적절한 SQL 데이터 형식 으로 변환 작업을 수행하면 안됩니다.
참고 1 : 질문에 제공된 COBOL 레코드 레이아웃 단편에서 OCCURS
절을 볼 수 있습니다. 이로 인해 결과 테이블은 도 첫 번째 정규화 된 형식이 아닙니다. 이 테이블은 데이터베이스 환경에서 관리하기가 정말 어려울 수 있습니다.
참고 2 : 유용한 데이터는 .DAT
파일에 있습니다. 레코드 레이아웃은 COBOL 레코드 정의와 일치합니다. .IDX
파일에는 읽기/쓰기시 MicroFocus에서 사용하는 색인 데이터가 들어 있습니다. 당신은 이것을 무시할 수 있습니다.
답장 보내 주셔서 감사합니다. 내가 COBOL fd에서 SQL 테이블 정의를 얻는 것이 가능한지 물어 보았던 op에서 실수를했습니다. 그런 다음 이미 알고있었습니다. 내가 언급하지 않은 더 큰 문제는 약 100 개의 파일이 MsSql rdb로 변환된다는 것입니다. 나는이 종류의 자동화 된 변환을 위해 존재하는 모든 도구가 판매용이며 프리웨어가 존재하지 않는다는 것을 알아 냈습니다. 그러나 몇 가지 COBOL 필드 정의의 개요에 대한 링크를 제공해 주셔서 다시 한 번 감사드립니다. 직접 작성해야한다면, 좋은 참고 자료가 될 것입니다. –
계속 : First Normal 형식이 아닌 경우 관리가 어려울 수도 있다고 말했습니까? COBOL에서 MsSql rdb 로의 자동 변환을위한 이러한 상용 도구가 1,2,3 또는 4 표준 형식에 있어야합니까? –
@Jernej 정규화되지 않은 테이블은 대부분의 RDBMS에서 생성, 쿼리 및 업데이트 할 수 있습니다. 정규화는 DBMS에 대한 실제 요구 사항 *이 아닙니다. 데이터베이스가 제대로 정규화되지 않으면 응용 프로그램에 장기간의 슬픔이 생길 수 있습니다. [이 질문에 대한 답변] (http://stackoverflow.com/questions/246701/what-is-normalisation-or-normalization-why-is-it-important)에 대한 답변을보고 정상화 이유를 확인하십시오. 좋은 아이디어. 파일 시스템을 통해 관리되는 데이터를 RDBMS로 변환하는 것은 일반적으로 많은 분석이 필요하며 "기성품"변환 도구로 쉽게 자동화되지 않습니다. – NealB