9장 ABAP Dictionary를 보다 보면
"SAP는 일반 개발자에게 DBMS에 직접 로그인해서 Table을 변경하고, 데이터를 삭제하고, 심지어는 데이터를 조회하는 권한도 부여하지 않는다. 그 이유 중 하나는 ABAP Dictionary에 존재하는 Foreign Key가 실제 Database에는 생성되지 않으므로 Data Integrity(무결성)가 훼손될 수 있기 때문이다."
라는 단락이 있는데요.
제가 Oracle Database를 잠깐 공부하면서 Table을 만들 때, Foreign Key도 지정했었는데 "Foreign Key가 실제 Database에는 생성되지 않으므로" 라는 문장이 이해가 가질 않네요.
교재는 Easy ABAP Easy ABAP Programming입니다!
1. 심지어는 데이터를 조회하는 권한도 부여하지 않는다.
- 이건 성능상의 이슈가 될 수 있기 때문에 그런것 같습니다.
저도 첨에 왜 DB를 직접 접속 하는게 더 느리다른거지라는 의문이 있었으나,
실제 모든 DB 구조를 알지 못한다면 최적화(?)된 ABAP Dictroy를 사용하는게 더 성능상 낫다고 생각됩니다.
2. ABAP Dictionary에 존재하는 Foreign Key가 실제 Database에는 생성되지 않으므로 Data Integrity(무결성)가 훼손...
- ABAP Dictionary는 DB와 ABAP 프로그램간에 중계자(통역사)로 보시는건 어떠실련지요?
- ABAP Dictionary는 업무 프로세스 관점에서의 테이블이 될것이고요, DB쪽은 순수 데이터 관점에서의 테이블이 되니
여기서 차이가 있지 않을까 생성됩니다.
- 아울러 개발자 관점에서 ABAP Dictionary만 사용하게되면 뒤에 있는 DB 종류가 관계 없이
프로그램이 가능하다라는 장점이 되기도 하지요. (물론 경우에 따라 직접 DB를 손보기도 할 순 있겠지만요)