SQL,, 열심히 학습하는 와중에 실제로 실무에서 DB를 받으면,,
어떤거부터 뭘 어떻게 해야지는 지 해야할 일을 정리해본다.
일단 입사한 회사의 데이터가
어떻게 관리 되고 있는지부터 파악하는 게 최우선!
회사의 데이터 저장 상태를 파악할 때는 문서화된 자료를 먼저 읽으면서
기존 직원분들의 설명을 듣는 것이 가장 좋다.
동시에 DB 현황을 간단하게 파악할 수 있는 SQL문을 알고 직접 적용해본다.
여기서 DB현황 파악은 기본적으로 회사서버에
어떤 DB들이 있는지 > 각 DB안에 table(view also)> 각 table의 column 구조 > 각 table 간의 Foeign Key 관계
등등 순으로 조사 해 나가면 된다.
특히,
현재 DBMS상에 존재하는 DB들을 파악할 때는
원래부터 존재하는 기본 DB들과 이것들을 참조해서 사용자가 만든 DB들을 구별하는 것이 좋다.
심지어, 입사 초기에는 권한이 많지 않기 때문에 실무에서 테이블에 직접 접근할 수 없고
뷰만 받게 될수 도 있는데 이때는 어떤 뷰들이 있는지 잘 파악하는게 중요!
자신의 위치에서 할 수 있는 것을 꼼꼼히 잘 하자!
한 테이블의 column 구조를 파악할 때는 SELECT * FROM table name; 실행해도 되고,
더 간단히 DESCRIBE item; 하면 column 구조만 깔끔하게 알 수 있다.
가장 중요한 게 DB안에 존재하는 Foreign Key들을 파악하는건데,
본인이 사용하는 DBMS에 맞게 SQL문을 적절히 사용해야 한다.
Foreign Key 같은 경우는 외래키관계가 성립한다고 해도 관리자가 그것을 Foreign Key로 설정하지 않는 경우도 많아서,,
(DB성능을 고려해서 의도적일 수도, 그냥 관리자 실수일수도,,(그럴일은 별로 없겠지만,,ㅋ))
아무튼 일단 Foreign Key관계가 논리적으로 성립해도 실제 DBMS 상에서 설정되어 있지 않은 경우도 많으니
Foreign Key들을 정확하게 파악하려면, 사내 DB를 설계한 분의 설명을 듣거나 본인이 스스로 직접 D관계 및 흐름을 파악할 수 밖에 없다.
(근데 자기가 잘 파악했다고 생각되도 정확하게 파악한 게 맞는지 꼭 선임에게 확인하도록 하는 것이 좋음!!!!)
하지만 역시,,
DB 현황을 가장 간단하게 파악하는 가장 효율적인 방법은 자신의 회사에서 이미 사용되고 있는 기존의 SQL문들을 자세하게 살펴보는 것!
그럼 자신의 회사에서 필요로 하는 데이터의 성격은 어떤 것인지, 필요한 데이터들은 주로 어느 테이블에 있는지 등과 같은 정보를 빠르게 파악할 수 있 있다.
DB 현황 파악이 어느정도 끝나면 SELECT 문 등으로 본격적인 실무에 들어가면 된다! ^^!
(reference: codeit, SQL DB for developer, topic1-5(subquery&view data analysis, chapter 19)
화이팅!
ps.
참고로 지금 내가 공부중인 sql은 MySQLㅎㅎ
++추가
각 Foreign Key가 무슨 테이블에 있고(FROM), 어느 테이블의 어느 컬럼을 참조하는지(REFERENCE TO)를 파악하면
테이블 간의 관계, 나아가 데이터 저장 현황을 빠르게 파악할 수 있다.
데이터베이스에 존재하는 물리적 Foreign Key들을 조회하는 방법은 DBMS마다 조금씩 다르기 때문에 주의하고,
만약 물리적 Foreign Key로 별도로 설정하지 않아서 논리적 Foreign Key만 존재하는 상황이라면
물리적 Foreign Key로 설정하지 않았더라도 논리적 Foreign Key는 스키마를 짜는 데이터베이스 모델링 단계에서 모두 고려되기 때문에 해당 데이터베이스의 스키마에 관한 문서, 도면, 파일 등을 참고하는 게 좋다.
^^