Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
We are considering MVC 4 for a significantly sized application.
Our DBA is nervous about "losing control" over the database, and doesn't like the idea of application code defining/changing the database structure. Which I can understand. He thinks it's great for a one man team or small shop, but doesn't see how it fits into an enterprise solution with a DBA on staff. Where would he fit in on the process?
I imagine EF is widely used in enterprise environments, are there any good articles to better inform us on how EF is utilized in contrast to a traditional environment where coders code and DB guys manage the tables?
You appear to have a misunderstanding of what Entity Framework is, and how it is and can be used.
Entity Framework is known as an ORM or Object Relational Mapper. There is nothing inherent to ORM's that takes any control away from a DBA.
It's true that EF can generate tables, data models, sql, etc.. but it doesn't HAVE to. Nor do other ORM's. At it's heart, an ORM simply takes a result set, and maps it to a collection of objects. This can be accomplished with Stored Procedures just as well.
Most people like to do ad-hoc queries, and EF is great for that, but if your DBA requires that all queries be written by him (or approved by him, and used a sprocs) then it can certainly be used that way.
The current version of Entity Framework really only supports queries mapping, but EF 6, due to be released by the end of the year will add support for Insets, Update and Deletes as well. You can do those today as queries, but they don't map to objects.
But in all honesty, your DBA should really face facts that DBA's are becoming increasingly less necessary. They will always have a place, but they really need to accept that they can't have the iron fist control over query execution that they once had. Users (and thus developers) are demanding more dynamic queries, and that means executing generated sql.
Well, the question is a bit general, but if I remember correctly Microsoft® .NET: Architecting Applications for the Enterprise book has a very detailed chapter/setion on Data Access Layer and ORMs in general.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am going to start learning NOSQL databases (in practices, already done my researches and understood the concepts and modeling approaches).
I am working with time series data and both cassandra and mongodb are recommended for this use case.
I would like to know which one takes less time to learn? (Unfortunately, I don't have much time to spend on learning)
PS: I noticed that there are more tutorials and documentations with mongoDB (am I correct?)
Thank you!
Having used them both extensively, I can say that the learning curve isn't as bad as you might think. But as different people learn and absorb information at different rates, it is difficult to say which you will find easier or how quickly you will pick them up. I will mention that MongoDB has a reputation of being very developer-friendly, due to the fact that you can write code and store data without having to define a schema.
Cassandra has a little steeper learning curve (IMO). However that has been lessened due to the CQL table-based column families in recent versions, which help to bridge the understanding gap between Cassandra and a relational database. Since tutorials for MongoDB have been mentioned, I will post a link to DataStax's Academy, which offers a free online course you can take to introduce yourself to Cassandra. Specifically, the course DS220 deals with modeling your data.
With both, a key concept to understand is that you must break yourself of the relational database idea where you want to build your tables/collections to store your data most-efficiently. In non-relational data modeling you will want to model your tables/collections to reflect how you want to query your data, and this might mean using redundant data in some places.
qMongoFront is a qt based mongodb gui application under linux. It's free and opensouce. If you want to learn mongodb, qMongoFront is a good choice.
http://sourceforge.net/projects/qmongofront/
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I've been really interested in scala for awhile. Now that Intellij 13 has better Scala support it seems like its becoming more and more practical to work with. For example they have SBT support.
Now I have a bit of a finicky learning style. If I could find an operating example of a Scala application with Lift using
SBT for build
A relational database and ORM
Lift
I'd be able to pick this up a lot faster. A lot of the demos I've found are way way too small to be usefull.
Anybody have a suggestion for where to find a fully features open source app in Scala?
They have some Lift "quickstart projects" here. Some more examples here. And of course, Lift's Github, where you can find project templates (more specifically, look at this link).
There is also Typesafe, but they offer Play instead of Lift.
Lift has 2 db layers. They are mapper and record. Record is little more modern in my opinion.
The next thing: record can have different backends for work with database. I use squeryl ( good introduction is here - http://squeryl.org/introduction.html )
And the last thing, you can use different databases, of course: mysql, postgresql, mongodb, etc, you see...
What about me - I use lift squeryl record with postgresql.
What about examples:
Not so bad full _simple_ example (book shop but without user as i remember) is here, see https://github.com/migo/test-squerylrecord .
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 8 years ago.
Improve this question
I'm looking for a good tool (or library or a framework) that I could use to easily build basic content management functionalities over MongoDB.
I am very well aware of the Admin UIs listed in Mongo's website, and I'm already using RockMongo for query and some db admin tasks. The problem is that while I as a software developer can happily use these tools, they are too powerful and complex for the people who are responsible for managing the content in the database.
So I'm specifically looking for a MongoDB content-management tool with:
Ability to easily build (scaffold) user interface around collections (generated create, read, update and delete forms / views)
Ability to add data validation and some template or schema for objects, especially when new objects are created and added into a collection
Support for fine-grained access control (user groups, per collection and per object read/write/admin access)
I've been considering using django-nonrel for building one, but would like to get more opinions before going any further.
Since you're looking for a solution beyond a straight Admin UI, I expect you will have to roll your own. I went through a similar exercise a few months ago and ended up using Yii Framework (PHP).
The attributes you're looking for (scaffolding, validation, RBAC, ..) are common to many frameworks. Are there specific languages you would prefer/consider using? There are frameworks/libraries for Ruby, PHP, Python, etc. Many of these go to lengths to coerce MongoDB into an ActiveRecord/ORM pattern to enable use of CRUD and scaffolding. An emerging approach for working with NoSQL data sources is the DataMapper/ODM pattern, which is a much more comfortable fit compared to ORM.
Have a look at penguin: a module that automatically generates administration pages based on your Mongoose models.
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 5 years ago.
Improve this question
There are several MongoDB modules available for Node.js in the following link -
https://github.com/joyent/node/wiki/modules#wiki-db-nosql-mongo
Please, suggest me one (I'd like to know why you choose that one?).
It depends on what level of abstraction you want from your data. If you want something similar to an ORM, then Mongoose is the obvious choice and is popular.
However, the node-mongodb-native driver gives you clean duplication of almost the entire MongoDB API and since BSON is translated to JSON and JavaScript is a flexible dynamic language, there's really no need for an ORM. The latter does have benefits such a defining a schema which helps with validation and other tasks, but it also limits your flexibility.
Mongoskin is built atop node-mongodb-native but gives you the ability to have additional JavaScript method bindings and deal with connections and cursors easier. It's pretty lightweight, so you can stick with the basics or do more. This library is my personal preference and our team has built our own tooling and validation system around it.
Mongoose is a popular choice. But the documentation is just as bad (if not worse) than the MongoDB docs.
I personally prefer Mongolian, it's the closest thing you get to the Mongo shell and it's straight forward to use.
My fork adds very simple collection initialization.
Mongoose doesn't support bulk insert and it is schema-based. When you try to create different schemas for same collection, it throws exception. Consider carefully its suitability to your case before start with it.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I would like to learn DB2 as my work is demanding these skills now... I have prior programming knowledge but that is limited to VBscripting and Jscripting
I am complete new to the DataBase segment.. I have no clue of SQL or Oracle or DB2 and stuffs....
Can Someone please mentor me here ... So that I get fair Idea on where to Start and how to accomplish my Goals...
Appreciate your quick help.
Thanks
Jey B
Visit DB2 University. Some of their courses are free, although I don't see any right now. You can download a free version of DB2. You can also download several textbooks. Database Fundamentals might be a good place to start.
I don't think any of their downloads require registration, but I could be wrong about that.
Edit: I was wrong about that. Textbooks don't seem to require registration, but DB2 Express-C does and the development tools do.
Check out Fundamentals of Relational Database Design for some information on the best way to design databases. You may not be doing any design at the moment, but understanding these basics is key!
Also, Understanding SQL Joins is mandatory reading if you are going to be writing queries.
DB2 does have some language specific exceptions when writing queries that you will just have to learn as you go. For instance, most DBs use the TOP command:
SELECT TOP 3....
to get just the first 3 records.
DB2 requires this syntax at the end of the query:
FETCH FIRST 3 ROWS ONLY