Otázka:
Svobodný software pro zpětnou analýzu existujících složitých databázových diagramů v serveru SQL Server 2008+
Jeroen
2014-02-27 04:31:18 UTC
view on stackexchange narkive permalink

Ještě před několika lety jsem používal Microsoft Visio k zpětnému inženýrství existující databáze na diagram. Tato funkce je již nějakou dobu zastaralá a já se spíše zasekl v hledání alternativy.

Požadavky

Časté dotazy k tomuto novému webu SE mi dávají pokyny, abych byl v požadavcích přesný, takže se budu snažit. Většina z těchto požadavků byla ve Visiu, i když ne všechny. Myslím, že najít jeden software, který je má všechny , není proveditelné, ale rád bych se přiblížil.

Důležité:

  • SQL Server 2012 databáze;

  • Tabulky reverzního inženýrství se všemi sloupci a Indikace primárního / cizího klíče;

  • Cizí klíče reverzního inženýrství jako konektory mezi tabulkami;

  • Ruční rozvržení krabic a konektorů (chci vizuálně seskupit věci);

  • Základní motivy : vyberte barvy pozadí pro tabulky;

  • Umí zpracovat složité modely, např 100+ tabulek ;

  • Možnost zvolit, které položky se mají zobrazit nebo ne (např. Vynechat určité tabulky atd.);

  • K dispozici je alespoň bezplatné zkušební období ;

  • Export do různých formáty pro účely distribuce a tisku, nejpreferovanější je PDF, PNG by to také hádal;

  • WYSIWYG ;

Hlavní bonusové body:

  • Běží na Windows 8 (i když bych nainstaloval Linux VM pro software splňující všechny důležité požadavky)

  • Automatické rozvržení a směrování konektorů pro minimalizaci překrývání;

  • Schopen dělat SQL Server 2008 a 2008R2 ;

  • Schopen zpětně analyzovat zobrazení ;

  • Zdarma (nebo bezplatná verze);

  • Přírůstková aktualizace , např. zpětně analyzovat znovu a nechat přidávat / odebírat tabulky atd. při zachování motivu, stávajícího rozložení atd.

  • Pěkné diagramy (moderní vzhled a dojem , vyhlazování, výběr písem, barev, přechodů, vržených stínů, motivů atd.);

  • Přátelská křivka učení (zvládnu mnoho složité funkce, pokud je snadné rychle zvládnout základy);

MUSÍTE MÍT:

  • Instalační program tajně neinstaluje panely nástrojů do mého prohlížeče ani nezmění moji domovskou stránku! ;-)

Můj výzkum

Tato otázka byla samozřejmě položena již dříve, a to i na sesterských webech (s určitým úspěchem, i když tam jsou mimo téma). Tady je několik:

A trochu podobné, z DBA.SE:

Kromě toho má Wikipedia tabulku porovnávající několik softwarových balíků pro funkci „zpětného inženýrství“:

Vyzkoušeno

Toto jsou věci, které jsem mimochodem vyzkoušel:

  • Visio 2003 (to jsem dříve používal). Není to zdarma, zastaralé, ale jinak to odpovídá faktuře za většinu bodů. Už to však není možné.

  • Visio 2010 a 2013 (toto mám aktuálně). Zpětné inženýrství již není podporováno. Zvažoval jsem, že napíšu plugin nebo použiji VBA k hackování věcí dohromady. Nejste si jisti, jak těžké by to bylo. Není to zdarma (kromě toho, že to už osobně mám), ale odpovídá faktu v mnoha dalších bodech.

  • Graphviz . Vyzkoušel jsem to už před nějakou dobou, podle toho, co si pamatuji, to mělo trochu strmou křivku učení a nebyl jsem schopen ručně určit konečné rozložení.

  • SSMS diagramy. To funguje pro malé případy, ale může to být těžkopádné pro větší případy.

  • Visual Studio 2012 ADO.NET Entity Data Model. Ruční rozvržení konektorů je omezené, motivy vůbec neexistují, je skutečně zamýšleno pro jiný cíl než dokumentaci a zobrazuje (např. Výchozí je „Vlastnosti navigace“ atd.) A nefunguje dobře pro 100+ tabulky. To může být užitečné pro menší scénáře, ale pro mě to nesedí.

A myslím, že jsem zkusil několik návrhů z vláken SO, i když můžu Opravdu si nepamatuji konkrétní podrobnosti.

Takže: co byste doporučil?

Sedm odpovědi:
Jeroen
2014-04-04 14:43:10 UTC
view on stackexchange narkive permalink

Zde je doporučení, které jsem nakonec použil (po mnoha dalších průzkumech a vyzkoušení mnoha různých možností):

Použijte k tomu obyčejný Visio.

Zde je důvod.

Vysvětlení tohoto přístupu:

Neexistuje žádný nástroj, který by vyhovoval všem uvedeným požadavkům, dokonce ani ten, který splňuje pouze hlavní požadavky. Visual Studio 2012 se blíží, ale postrádá tematickou podporu a pro velký počet tabulek nepracoval moc dobře.

Následující proces fungoval pro mě:

  1. Vytvořte prázdnou šablonu vývojového diagramu aplikace Visio 1 . Vyberte si design, který se vám líbí. Nastavte velikost stránky a tisku na něco, co chcete (zvolil jsem formát A3 na šířku a téma „Lineární“).

  2. Otevřete dotaz 2 v SSMS na straně pro získání podrobností, které budete později potřebovat: tabulky, názvy sloupců a IS NULL informace.

  3. Začněte přidávat tabulky jedním. Ručně vyberte, které tabulky a sloupce chcete zahrnout.

Toto je příklad toho, jak konečný výsledek vypadá:

zoomed in example

Nebo zmenšený snímek celého modelu (protože to byla manuální práce, rozhodl jsem se zahrnout podstatně méně než všech 100+ tabulek):

zoomed out example

Postup, který jsem použil, aby „tabulky“ vypadaly tak, jak vypadají:

  • Záhlaví jsou tučná a mají větší velikost písma.
  • Oddělovače nejsou řádky, ale pouze řada tučných - pomlček po sobě.
  • Čtyři „sekce“: TableName, primární klíč, cizí klíče, jednoduché sloupce.
  • Tučné pro NOT NULL sloupce.
  • Bílá pro TableName a oddělovače, černá pro názvy sloupců.

Kromě toho jsem pro cizí klíče zvolil:

  • Nikdy nedovolte křížení konektorů a místo toho vytvářejte malé „referenční“ bloky, které odkazují na tabulku, která je někde na druhé straně modelu.
  • Nezahrnovat všechny tabulky (tj. existuje více cizí klíče, než se připojit ors).

Doufejme, že výše uvedené bude užitečné i pro ostatní.

Požadavky z otázky:

Závěrem doporučuji tento přístup, hlavně proto, že skončíte s vizuálně přitažlivým modelem a vysokou mírou kontroly. Tento přístup však nesedí na celý účet. Zde je návod, jak splňuje požadavky:

Datové připojení:

  • Databáze serveru SQL Server 2012
  • Reverzní inženýrské tabulky se všemi sloupci a označeními primárního / cizího klíče
  • reverzní inženýrství cizích klíčů jako konektorů mezi tabulkami

± to je vše možné ale ne automatizované. Takže „víceméně“.

Ovládací prvky a vizuály:

  • Ruční rozvržení, základní motivy, možnost výběru, které položky se mají zobrazit
  • umí zpracovávat složité modely, např Více než 100 tabulek

Ano, to vše funguje velmi dobře s běžným Visio.

Peníze:

  • Je k dispozici alespoň bezplatná zkušební verze

AFAIK je k dispozici bezplatná zkušební verze Office. Přesto jsem se na to nepodíval, protože mám Visio.

Jiné:

  • Export do různých formátů
  • WYSIWYG;

Ano, toto je k dispozici ve Visiu.

Bonusové body:

Má přibližně polovinu bonusových bodů:

  • běží na Windows 8
  • SQL 2008 také podporováno
  • hezké
  • křivka přátelského učení

1. Zkoušel jsem také šablonu a tvary UML, ale toto má poburující chování pro směrování konektorů. Nedoporučujeme!

2. To byl můj dotaz:

  SELECT t.name TableName, c.name ColumnName, CASE WHEN c.is_nullable = 1 POTOM '' ELSE 'BOLD' END AS IsNotNullable FROM sys. tabulky AS t PŘIPOJTE se k sys.columns AS c ON t.object_id = c.object_id WHERE c.name NOT IN ('Excluded1', 'Excluded2') ORDER BY t.name, CASE WHEN c.name = t.name + 'Id „POTOM 0, KDYŽ c.name LIKE„% Id “PAK 1
ELSE 2 END, c.column_id  
Jak jste postupovali při „přidávání“ tabulek z dotazů v SSMS? Má Visio způsob, jak přijmout dotaz? Říkáte, že jste právě vytvořili diagram ručně?
@webworm Ano, moje touha po velké kontrole a vizuálně přitažlivý výsledek mě přiměly uchýlit se k manuální práci, musím (poněkud hanebně) přiznat. Plná verze (z miniatury) mi trvala celkem asi 3 hodiny práce. Udržování aktuálního stavu je přibližně 10 minut za 4týdenní sprint. Největší nevýhodou není práce, ale šance na lidskou chybu (čtěte: chyby kopírování / vkládání). Dokud někdo nepřijde s dobrou alternativou (velmi vítám!), Pravděpodobně se držím tohoto „řešení“.
To nesplňuje požadavek „Reverse engineer tables“. Pokud je člověk připraven provést couvání ručně, pak PowerPoint funguje stejně dobře.
@sixtytrees Což je důvod, proč jsem mu dal "±" v mém přehledu: "trochu možné, i když ne automatizované". Také si myslím, že „* Powerpoint funguje stejně dobře *“ triviálně nevyplývá z premisy ...
PS. Ujišťujeme vás, že jsem * nebyl šťastný *, že Visio je nejméně špatná volba.
Váš návrh skutečně patří k nejlepším. Překvapivě neexistuje žádný nástroj, který by spolehlivě zpětně analyzoval odkazy.
Notre1
2014-05-23 01:10:35 UTC
view on stackexchange narkive permalink

SQL Power Architect logo

Podívejte se na SQL Power Architect. Může se připojit k velké části databáze, pro kterou můžete nakonfigurovat konektor JDBC, a může provádět veškeré reverzní inženýrství, které hledáte. Zpracovávám však pouze základní datové typy, takže při jejich importu musíte převést věci jako DATETIME na DATE.

Můžete změnit „barvu tabulky“, ale ve skutečnosti to skutečně mění barvu názvu / záhlaví tabulky než změna barvy pozadí celé tabulky.

SQL Power Architect screenshot: opening screen

SQL Power Architect screenshot: entity-relationship diagram

Sualeh Fatehi
2017-01-31 00:52:24 UTC
view on stackexchange narkive permalink

SchemaCrawler je bezplatný nástroj pro zjišťování databází s otevřeným zdrojovým kódem, který dokáže zpětně analyzovat vaši stávající databázi.

Důležité:

  • SQL Server Databáze 2012 - SchemaCrawler pracuje s databázemi SQL Server 2012
  • Reverzní inženýrské tabulky se všemi sloupci a označeními primárního / cizího klíče - SchemaCrawler vytvoří diagramy se všemi sloupce a cizí klíče
  • Reverzní inženýrství cizích klíčů jako konektorů mezi tabulkami SchemaCrawler vytvoří diagramy se všemi sloupci a cizími klíči
  • Ruční rozložení polí a konektorů ( Chci vizuálně seskupit věci) - SchemaCrawler může také generovat GraphViz DOT out put a můžete použít jiný nástroj k jemnému doladění rozvržení
  • Základní motivy: vyberte barvy pozadí pro tabulky - SchemaCrawler může také generovat DOT GraphViz DOT a můžete použít jiný nástroj k jemnému doladění rozvržení
  • Umí zpracovat složité modely, např. Více než 100 tabulek - SchemaCrawler zvládne velké množství tabulek - ještě lépe, můžete zadat kritéria pro vyhledávání regulárních výrazů a vytvořit více diagramů, podmnožin vašeho schématu
  • Možnost volby které položky se mají zobrazit nebo ne (např. vynechat určité tabulky atd.) - SchemaCrawler umožňuje zadat kritéria vyhledávání regulárních výrazů pro vytvoření více diagramů, podmnožin vašeho schématu
  • na nejméně dostupná bezplatná zkušební verze - SchemaCrawler je open source a zdarma
  • export do různých formátů pro účely distribuce a tisku, nejpreferovanější je PDF, myslím, že i PNG - SchemaCrawler je otevřený zdroj a zdarma
  • WYSIWYG - SchemaCrawler je příkazový řádek

Hlavní bonusové body:

  • Běží na Windows 8 (i když bych nainstaloval Linux VM pro software splňující všechny důležité požadavky) - SchemaCrawler je cross-platform
  • Automatické rozvržení a směrování konektorů pro minimalizaci překrývání - SchemaCrawler provádí automatické rozvržení pomocí GraphViz v zákulisí
  • Schopen dělat SQL Server 2008 a 2008R2 - SchemaCrawler podporuje všechny verze serveru SQL Server
  • Schopen zpětně analyzovat zobrazení - SQL Server může zpětně analyzovat zobrazení
  • Zdarma (nebo bezplatná verze) - SchemaCrawler je otevřený zdroj a zdarma
  • přírůstková aktualizace, např znovu provést zpětnou analýzu a nechat přidávat / odebírat tabulky atd. při zachování motivu, stávajícího rozložení atd. - uložte příkaz SchemaCrawler z příkazového řádku a spusťte znovu
  • hezké diagramy ( moderní vzhled a chování, vyhlazování, výběr písem, barev, přechodů, vržených stínů, motivů atd.) - Některé příklady z webu SchemaCrawler
  • Přátelská křivka učení (I zvládne mnoho složitých funkcí, pokud je snadné rychle zvládnout základy) _ Záleží na vás :-)

MUSÍ MÍT:

  • Instalační program není Tajně nenainstaluji panely nástrojů do mého prohlížeče ani nezměním svou domovskou stránku! ;-) - SchemaCrawler nemá žádný instalační program - rozbalte a spusťte

Sualeh Fatehi, SchemaCrawler

Děkujeme za vaši odpověď a s potěšením slyšíte, že jste otevřeli řešení. Opravdu už nejsem schopen posoudit, zda by tato odpověď fungovala, bohužel. - PS. Bylo by přátelské změnit svůj podpis (což obvykle není potřeba na Stack Exchange, protože vaše jméno je také vpravo dole) na * explicitní zveřejnění *.
JohnOsb
2015-04-28 02:34:08 UTC
view on stackexchange narkive permalink

Váš seznam požadavků plně zahrnuje Lucidchart. Není to zdarma, ale má bezplatnou zkušební verzi.

Pomocí Lucidchart spustíte zadaný dotaz a poté importujete výsledky dotazu. Tím se vytvoří kolekce tabulek, které můžete umístit na diagram, jako jsou tvary vzorníku. Lucidchart vykresluje spojení mezi klíči tabulek, které jste vybrali. Můžete uspořádat tabulky a připojení, odebrat pole, změnit barvy a písma atd. Pokud vím, ušetřili byste 90% času potřebného pro ruční kreslení v novějších verzích aplikace Visio a získáte většinu flexibilita při formátování. A žádné starosti s překlepy. Nevýhodou je, že se nejedná o živé připojení k vaší databázi, takže pro obnovení budete muset provést ruční práci.

Můžete exportovat do různých grafických formátů (PNG, PDF, JPG) a do Visia (VDX).

sixtytrees
2016-08-10 18:27:52 UTC
view on stackexchange narkive permalink

Zvažte SQL Server Management Studio (SSMS).

Přejít na Databázi -> Databázové diagramy -> Klikněte pravým tlačítkem myši -> Přidat nový diagram -> Přidat požadované tabulky pro váš ERD.

Pros:
Dodává se s SSMS, umí extrahovat a pěkně zobrazit názvy sloupců.
Nevýhody:
Chybí propojené klíče.

Všimněte si, že žádný z výše uvedených bezplatných nebo vyzkoušených nástrojů nezvedl propojené klíče pro moji databázi.

EthR
2017-09-11 20:41:51 UTC
view on stackexchange narkive permalink

Visio 2016 má nyní doplněk pro reverzní inženýrství

https://support.office.com/en-us/article/Reverse-engineer-an-existing-database -into-a-database-model-fb034862-acfc-45bc-88b2-f33d1e1f8614 # ID0EAABAAA = Visio_Pro_for_Office_365

Doporučili byste to? Jak se to vyrovná požadavkům uvedeným v mé otázce?
Nedostal jsem se k správné instalaci. Ale zkusil jsem to v práci - v práci je vždy něco jiného. Aktualizuji, až si na to udělám čas a pracuji s administrátory systému. Pokud byl OP spokojen s Visio 2010, měli by být spokojeni s tímto. Vypadá to, že je to totéž.
Já jsem OP *. Visio 2010 byl na svou dobu v pořádku, ačkoli o 7 a více let později byste doufali v něco lepšího. Důvod, proč jsem zveřejnil výše uvedený komentář, je ten, že odpověď má pro mě i ostatní mnohem větší cenu, pokud dojde ke splnění požadavků a vysvětlí, jak se proti nim hromadí.
Howard Rothenburg
2019-06-29 01:38:52 UTC
view on stackexchange narkive permalink
  Vyzkoušejte Apex SQL ModelFree: https://www.apexsql.com/sql-tools-model.aspxwith: Forward and reverse engineer Přizpůsobte vzhled modelů Vytvořte nové nebo upravte existující skupiny objektů Navigujte v historii modelu Exportujte databázové modely jako obrázky Přizpůsobit tiskový výstup  


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...