As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What are pros and cons of using software analysis patterns (in general)?
I need this information for study purposes. Such question was asked at the lecture of the Software Modeling subject, therefore I think it can come back again.
Anyway, this question intrigued me, because I know what pros of using analysis pattern would be (mostly I think). But what about cons?
It's more like using Right tool for Right Job.
So, pros and cons depend on how well did you use it in your design?
One help what these patterns provide that we need not reinvent the wheel. Someone has already found solution for a problem and published it for others to use.
Hence, Pros are a follows (but not limited to)
Time is less wasted.
We get robust solution without spending much effort.
Highly scalable.
Common understanding among developers.
Cons can be summarized if you use it for over engineering. i.e. making a simple problem more complex when pattern use can be avoided OR using a Pattern1(say) in place of Pattern2(say).
In general, It depends on how you use them.
You might like see following links:
Categories of design patterns
Does functional programming replace GoF design patterns?
Examples of GoF Design Patterns in Java's core libraries
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Personally I find database normalization really interesting(in fact really enjoy doing it) but while designing the schema and normalizing it for the asset manager(containing generic and project specific assets with each having types of arbitrary relation depth) I am currently working on, I came to this basic question i.e. to what extent should one normalize a database(I am aware of 3NF) such that making multiple query, insert etc, doesn't become more costly than programmatically taking care of data inconsistencies, redundancy etc which normalization tries to avoid?
In designing your database you should normalize it to the fullest extend (well, with common sence in mind). While developing you'll notice some potential performance issues. In this case you may want to resort to using views or even denormalize a bit.
Though this differs from case to case, since some programs have serious requirements on performance. Others may be used by just a few users, in this case performance may not be that important.
In order to make a good decision on whether or not to denormalize and thus being able to execute simpler queries, you should run some performance tests for both cases. Keeping in mind what denormalizing would cause to the maintenance of your database.
In case of denormalizing, be sure to document this to the fullest extend.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I would like to learn Database systems implementation in Depth. Is there an open-source simple implementation of database for educational purpose that I can go through the code? Like there are a lot of OS implementation (Minix, Pintos...). I am wondering if there are similar systems for database education as well.
I read a few textbooks and they are mainly focus on theory and concepts.
Thanks a lot!
Alfred
Then find some educational material :)
When i was learning db concept, my professor ask us to code a simple dbms. One important reference is the Redbase:
http://infolab.stanford.edu/~widom/cs346/
Hope that helps.
MySQL, PostgreSQL, SQlite are all opensource. You can find their source code and related documentation.
Also check NoSQL group of databases.
What makes you think implementing a database is simple?
What parts of the database interest you? Storage management? Indexing? Query Language? Query Planning? Transactions?
Modern (even "toy") Relational systems have all of those components, which makes them rather complex from the outset. Other DBs, such dbm based databases are much simpler. Then you have things like Lucene, which is a database for documents and free form text -- conceptually simple but put a lot of effort in to scaling.
You can look at implementations of SPARQL if you're curious about query languages, as they work against RDF triple stores (which aren't super complicated).
There's also things like Prevlayer, which is an in memory database using a concept called prevalence. Probably the simplest of all of them, really when you get down to it.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am interested in learning the basics on machine learning and am wondering what the best ONLINE resources are. Keep in mind i am a total novice and know very little about the subject.
The lecture series at Stanford on machine learning is really good. I would recommend that you start there.
There are also some good books that are available online:
The Elements of Statistical Learning
Information Theory, Inference and Learning Algorithms
You could check the Peter Norvig's web site.
http://norvig.com/
However, texts such as those of Russel and Norvig or Alpaydin would keep you better focused.
Good luck!
See my answer to a similar question here. In short, if you are looking for practitioner's knowledge, such as when and how to apply things like Neural Networks and Bayesian filtering, there are links to several useful books there. Understanding the theory requires math, the link has several book recommendations to direct toward what and how, and you should be prepared to spend some time reading research papers.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I consider to use some NoSQL database in one of my project. Do you know some good starting points for a newbie in this topic?
Pick your particular "NoSQL" database first -- or at least type of "NoSQL" -- I'm going with the assumption that there is a reason why you want "NoSQL". Do you need object graph traversal? Explicit distributed clustering? Fast write/append? Dumb key/value associations? The selection should be based off more than a "I want something NoSQL" as different approaches can offer significant advantages (along with significant drawbacks) :-)
And, as often, google/wikipedia are a good place to start:
http://en.wikipedia.org/wiki/NoSQL
http://nosql-database.org/ has a long list of alternative databases, grouped in categories by type of technology. It has links to each product's website, lists of books, and forums, news, etc. about NoSQL.
Also see http://nosqlsummer.org/city/krakow. This is the Kraków chapter of a reading club for studying NoSQL concepts. I see from your profile that you live in Kraków.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am looking for a really simple database implementation; basically one with no complex parsing SQL engine. What I am looking for is something demonstrating B+ trees and ACID storage (Suitable for educational purposes). What I have found up-till now form my current searches was hamster-db. I am looking for something even simpler with a smaller code-base. If there is any such opensource project in your knowledge please let me know.
The University of Wisconsin Databases group uses their own small relational database, minirel, to teach the undergraduate databases class. I just took it, actually; it's enlightening. My semester's assignments are posted publicly. I'm sure the faculty would be willing to part with the source code used at each step.
In the undergraduate class, we do not implement B+ trees or ACID components, but it appears that the larger project does include them.
You can try to look at OrientDB. Don't know if it's simpler than hamster-db, but it's open source, uses a mix of Red-Black Tree and B+Tree algorithms and supports ACID.