Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Do you know a free tool to model databases in uml?
Here is a link to a SourceForge project for UML/ERD modeling of databases:
http://sourceforge.net/projects/dbuml/
Here is software that has a free community edition:
http://www.visual-paradigm.com/
Personally, I've always found that UML poorly handled designing databases. Entity-Relationship Diagrams always seem to better describe a database.
I would check out Open System Architect (OSA) at http://www.codebydesign.com/
In fact, you could use a standard class diagram to model your database. I know it's not the same underlying philosophy but concepts in Extended ER models and in UML CD are quite similar.
True, if you want to explicitly model everying (like pks or unique identifiers) you´ll need to use a UML profile. However, if you are happy with using some conventions (like adding a surrogate pk for each table, deducing automatically the fks from the associations,...), then you can even skip the profile. For an example of this approach read this
UML class diagram is an object approach while data is not.
Omondo has done a try to use a database profile and synchronize the stereotypes with the java persistence annotations. It means that if you create a class diagram you also create java persistence in the code. You just need a good mapper to create your database later.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I know that there are many tools for the visualization of databases such as metabase, grafana, tableau, superset ...
But I don't know of any packaged software that allows CRUD operations (crete, read, update and delete) on a database.
This problem has been presented to me several times in several of my projects, wanting to make a table available to a user and that does not merit custom development. I bet a lot of people must have this same situation
But I have not found any packaged software that provides crud operations on a database table. So it seems extremely strange to me and I wanted to see why, is there a design problem in this functionality? Or am I just doing the wrong google search and these softwares have another name?
Do you mean something like a Database Management Tool?
You have plenty of them, personally I use DBeaver.
If you mean about frameworks which generate a boilerplate API with CRUD operations, you have Loopback, from IBM.
And if you mean something you could access as a web-application, then you have PHPMyAdmin if you're focused into MySQL/MariaDB.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I know that most of the time NOSQL databses are schema-less or at least have a flexible database schema.
However, the basic schema needs to be modeled beforehand and may evolve later. So,in this case, is there a modeling tool/language for NOSQL databases?
Like UML for RDB and Visual Paradigm (UML modeling tool). I found that for "Graph Databases", we can use "Property Graph Model" but I am working on "BigColumn Databases" and "Document-base Databases".
Thank you.
NoSQL databases approach modelling from a different point of view generally. NoSQL modelling usually begins with asking questions on how the data in the database is going to be queried, so the main modelling is 'what are the list of questions that I want to ask of my database', whereas with SQL databases, modelling usually is a function of what data you have, that is, what answers I have already. This mental exercise of finding out what questions one would like to ask of the NoSQL database serve to define the entities and the relationship amongst those entities.
Once you have a list of questions, you then need to design a model that will answer those questions via the NoSQL database. To model it, I typically use Creately which is an online tool for visually representing models of various kinds.
Another method could be to represent your NoSQL model in JSON format and then use the wonderful D3.js javascript library to create a data-driven document. See this website for more details and the templates available to visually represent your model.
Hope it helps.
KDM is one solution you can think for NoSQL database Cassandra. This tool starts from conceptual modelling till physical modelling. May be you can have look at this. This is available to use free online.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm very much inspired by the approach to data management advocated by Rich Hickey, and implemented in Datomic, where the data is never mutated in-place, all the versions are always preserved and query-able, and the time is a first-class concept.
Of course, there are specialized databases matching that description, like Git, or any other source control system. The question is if there are any (more or less) general-purpose DBMS-es of relational, graph, hierarchical, document or any other flavor that can be effectively used in, say, an eCommerce Web application. Or is Datomic the only choice then?
There is an approach to designing systems with an idea of never deleting or mutating data called Event Sourcing. Basically, the idea is to store events (or facts) that change the system state, instead of snapshots of the state. The history of events can be replayed later on to produce a certain purpose-specific projection of what the state at any point in time looked like. Multiple projections built for different purposes can coexist in the system. More information can found on the following web sites:
http://martinfowler.com/eaaDev/EventSourcing.html
http://codebetter.com/gregyoung/2010/02/20/why-use-event-sourcing/
It's in line with what you are describing, but rather than being just a database model, Event Sourcing and Command Query Responsibility Segregation (CQRS) prescribe a special way of designing the whole system including the database and business logic layers.
There are a few frameworks that follow this approach, such as:
http://www.axonframework.org/
http://qi4j.org/
http://en.jdon.com/
While this does not directly answer your question, it may provide a different perspective on the problem.
Irmin is a distributed database that follows the same design principles as Git.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
There is a lot of databases, but I feel something different needed for Haskell. Like Erlang has it's own DB, Mnesia. Please recommend some good DBs for Haskell.
There are various frameworks for Haskell available, HDBC being the most popular.
HDBC is the database abstraction library, which allows you to use many popular databases, even Oracle or DB2. See Chapter 21. Using Databases in Real World Haskell.
I would advise you to choose the database depending on the type of data you want to store in it, rather than the language your system is implemented in.
Of course, this presupposes that bindings for the database exist in the language.
Since the question mentions Mnesia, I'll mention Haskell's equivalent: AcidState. It's a fast and flexible nosql database written in Haskell that has support for representation of native and user-defined Haskell types (that link shows you some quick how-tos, including implementing a hello-world blog).
There's more recent documentation on their wiki, and I've personally used it here in the implementation of a small web app.
If you're using Postgres I would recommend Opaleye. Disclaimer: I'm biased because I wrote it!
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I'm looking for a tool that generates DB diagrams.
Free (open source maybe)
Works in Linux (cross-platform maybe)
Supports PostgreSQL/MySQL
diagrams.net is free and on Github (I work on the project). It does work on Linux and has a generic SQL import, under Arrange->Insert->SQL.
You can save either locally, or directly to Google Drive, OneDrive or Dropbox. There's also a Desktop version available.
MySQL Workbench is a good tool for working with its namesake that does ERD modeling. I've used it on both Windows and Ubuntu.
If you are looking for an entity relationship model (not relational model) you have to try Dia http://dia-installer.de/
This software works on linux/windows/mac. And have a branch on git.
The entity relationship model has the purpose of make a model of the problem and let you understand the problem, so in the end you can generate a good relational model to have the most efficient model for you database.
This software is not intended to generate mysql tables directly but it has a plugin to convert Dia diagrams to sql, you can check it out in the same link.
You might want to try PowerArchitect
It's Java based (therefor cross-platform) and I have used it successfully with PostgreSQL
If you do want to spent some money (albeit not much), have a look at DbWrench which offers more features than PowerArchitect
Another open source/cross-platform option is Mogwai ERDesigner. Although there is one thing that I really don't like about it: if requires a connection to a database (to validate/define datatypes) which I find a very limiting requirement.
I use Software Ideas Modeler for entity relationship diagrams. It could meet your requirements - it's not open source but it has a free version, it works in Linux via Mono and it supports MySQL.
If you are looking for some software to auto generate ER diagram from existing database then you will love this tool: http://schemaspy.org/
https://drawerd.com is a online database structure tool.
zenchart is an online ER model generation tool, which can generate ER models through database DDL scripts, support exporting SQL, and the relationship between tables.
https://www.zenchart.net/erd-index.html