문제

나는 최근에 잘 설계되지 않은 데이터베이스를 유지 관리하는 일을 맡게 되었고 설계자들은 어떤 질문도 할 수 없습니다.그리고 가까운 시일 내에 몇 가지가 더 추가될 예정입니다.

시각적 자료나 데이터베이스 다이어그램 없이 테이블 사이의 관계를 파악하는 것은 어려웠습니다.

이를 위해 어떤 도구가 권장되는지 궁금합니다.저는 Visio에 대해 알고 있지만 거기에 좋은 오픈 소스/프리웨어 응용 프로그램이 있기를 바랐습니다.데이터베이스를 변경하는 데 전혀 필요하지 않습니다.그것을 읽고 사물이 어떻게 배치되어 있는지 이해하는 데 도움이 되는 일종의 시각적 도구를 만들고 데이터가 어떻게 관련되어야 하는지에 대해 디자이너가 무엇을 생각하고 있는지 파악하려고 노력하십시오.


추가 답변 데이터:SchemaSpy는 제가 찾던 것이었지만 오랫동안 명령줄을 사용하여 많은 작업을 수행하지 않았기 때문에 SchemaSpy를 사용하기로 결정했습니다. 스키마SpyGUI.Java를 많이 사용하지 않기 때문에 익숙해져야 할 몇 가지 구성도 있었지만 최종 결과는 내가 찾던 것이었습니다(Visio의 ER 다이어그램에 대한 오픈 소스 대체).

도움이 되었습니까?

해결책

노력하다 SchemaSpy.나는 다소 복잡한 데이터베이스에 대해 이를 실행했고 최적화에 대한 조언과 함께 그 결과에 매우 만족했습니다.

다른 팁

DBVis를 사용해 보세요 - 다음에서 다운로드하세요. http://www.minq.se/products/dbvis/ - 프로 버전(필요하지 않음)과 충분할 공개 버전이 있습니다.

당신이 해야 할 일은 올바른 JDBC(데이터베이스 드라이버)를 얻는 것뿐입니다. 이 도구는 테이블과 참조를 직교, 계층적, 원으로 표시합니다 ;-) 등.버튼 하나만 누르면 됩니다.즐기다!

어떤 DBMS(데이터베이스 관리 시스템)를 사용하고 있나요?SQL Server 및 Access와 같은 많은 최신 DBMS는 E-R 다이어그램을 생성할 수 있습니다.

Microsoft Visio는 탁월한 도구이며 모든 데이터 소스의 SQL을 리버스 엔지니어링할 수 있습니다.

DDT(데이터베이스 설계 도구) Windows의 원시 SQL에서 리버스 엔지니어링할 수 있으며 매우 가볍습니다(아주 작은 무료 다운로드).

MySQL Workbench는 가장 널리 사용되는 MySQL 도구 중 하나이며 무료로 다운로드할 수 있는 버전이 있습니다.

SQLFairy는 Linux의 MySQL에 대해서도 동일한 작업을 수행할 수 있습니다.

dbdesc 무료는 아니지만 매우 좋은 소식을 들었습니다.이는 여러 주요 데이터베이스와 함께 작동합니다.

나는 아직 다른 사람의 데이터베이스 스키마를 해독할 필요가 없었다는 점에서 운이 좋았습니다.나는 함께 제공되는 템플릿 세트를 사용했습니다 코드스미스.

먼저, 나는 당신의 고통을 느낀다고 말하고 싶습니다!
다음은 몇 가지 팁입니다.

  1. 일반적으로 도구는 디자이너가 모든 기본 키와 외래 키를 올바르게 정의한 경우에만 유용하므로 도구가 중요한 관계를 모두 선택하지 못할 수도 있다는 점에 유의하세요.
  2. 가장 유용한 것은 클라이언트 코드에서 어떤 쿼리가 수행되고 있는지 확인하는 것입니다.이를 통해 어떤 관계가 존재하는지뿐만 아니라 어떤 테이블과 관계가 가장 자주 사용되는지도 알 수 있습니다. 여기에 집중해야 합니다.

약간의 오픈 소스 소프트웨어가 있지만 Visio Professional의 리버스 엔지니어링 데이터베이스 스키마 도구는 리버스 엔지니어링과 다이어그램 작성 프로세스를 분리하기 때문에 매우 좋습니다.대부분의 사이트에서 쉽게 사용할 수 있기 때문에 이것을 많이 사용합니다.

visio의 좋은 기능 중 하나는 리버스 엔지니어링한 다음 리버스 엔지니어링된 스키마에서 자신만의 다이어그램을 구성할 수 있다는 것입니다.이렇게 하면 스키마에 대한 참조 문서를 대화형으로 작성하는 과정의 일부로 이 작업을 수행하면서 스키마를 탐색하고 이해할 수 있는 매우 좋은 방법입니다.나는 이 기술을 사용하여 모든 것을 리버스 엔지니어링했습니다. 활동 기반 원가 계산 시스템 에게 보험 인수 시스템, 일반적으로 공급업체의 도움이 많이 필요하지 않습니다.Visio 다이어그램을 만지작거리는 것은 매우 편안합니다.

이것과 FK 관계에 대한 약간의 가설 테스트(FK가 테이블에 물리적으로 존재하지 않는 경우) 사이에서 매우 복잡한 스키마를 이해할 수 있습니다.저는 이러한 다이어그램 작성 방식을 통해 Visio가 매우 편리한 방식으로 리버스 엔지니어링 모델과 쉽게 상호 작용할 수 있기 때문에 최고의 선두주자라는 사실을 발견했습니다.누락된 외래 키를 채우고, 주제 영역 다이어그램을 작성하고, 다이어그램에 주석을 추가할 수 있습니다.이 프로세스의 상호작용은 이를 좋은 학습 도구로 만듭니다.

이것은 다소 주관적인 관점이지만 상호 작용은 저에게 학습 과정으로서 매우 잘 작동하며 제가 선호하는 접근 방식입니다.대부분의 사이트는 라이선스가 아직 없는 경우 £300 정도의 라이선스 비용을 아끼지 않습니다.내가 일했던 유일한 사이트에서 Pro 대신 Visio Standard를 사용했기 때문에 사이트에 들어가야 했습니다.나는 친절하게 물었고 PHB가 서명했습니다.

저는 mysql 워크벤치를 사용합니다(http://www.mysql.com/products/workbench/) mysql 데이터베이스의 경우.워크벤치를 데이터베이스에 연결하면 ER 다이어그램이 그려집니다.

pgsql/win32를 사용하여 가장 쉬운 해결책은 CPAN의 Graph::Easy를 사용하는 Perl 스크립트를 작성하는 것임을 알았습니다.데이터베이스에서 외래 키 관계를 쿼리하고, 테이블을 노드로, FK 관계를 링크로 사용하여 방향성 그래프를 만듭니다.이것이 귀하의 설정이라면 코드를 게시할 수 있습니다.

저는 데이터베이스를 사용하는 애플리케이션에 사용하는 SQL(또는 DB 백엔드 자체, 그러나 다루기 힘든 경향이 있음)을 기록하는 방법이 있는지 확인하고 싶습니다.데이터베이스에서 어떤 요청이 수행되었는지 파악하면 중요한 테이블에 집중하는 데 도움이 됩니다.

대부분의 경우와 마찬가지로 여기에도 80/20 규칙이 적용됩니다.테이블의 20%가 흥미로운 작업의 80%를 수행합니다.일단 이해하고 나면 다이어그램이 거의 필요하지 않습니다.

시작점으로 설정된 기본 키 외래 키 관계를 살펴보세요.

기존 다이어그램이 없는 데이터베이스는 공식적으로 관계가 설정되어 있지 않을 수 있으므로 테이블 구조와 이름을 보고 무엇이 무엇과 관련될 수 있는지 최선의 추측을 한 다음 구조를 파헤쳐 명백한 것이 있는지 확인합니다(그러나 정의되지 않음) 외래 키.테이블이 어떻게 조인되고 어떤 필드가 쿼리되는지에 대한 아이디어를 얻기 위해 저장된 프로세스를 살펴봅니다.

데이터베이스를 파악하는 자동화된 도구는 멋질 수 있지만, 실제로 데이터베이스의 세부 사항을 직접 파고들면 자동으로 생성된 그림에서 얻을 수 있는 것보다 훨씬 더 잘 이해할 수 있다는 것을 알게 되었습니다.

나는 꽤 좋은 경험을 가지고 있습니다 아쿠아 데이터 스튜디오 DB 스키마 리버스 엔지니어링을 위한 것입니다.기능이 매우 풍부하며 Informix 또는 Sybase와 같은 훨씬 더 이국적인 데이터베이스를 지원합니다.

이는 MS SQL Server 2012에서 ER 다이어그램을 생성하는 데 도움이 되었습니다.

MS SQL Server Management Studio> 파일 메뉴> "개체 탐색기 연결"데이터베이스 노드를 선택하고 확장하십시오.이 노드에는 "데이터베이스 다이어그램"을 마우스 오른쪽 버튼으로 클릭하여 "Database Diagrams"> "새 데이터베이스 다이어그램"> 열, 관계를 볼 수있는 테이블 추가 ...

Visio를 사용하세요.Vision 2010을 사용하는 경우 Visio 드라이버 연결에 문제가 없는지 확인하려면 SQL Server용 일반 OLEDB 공급자를 사용해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top