Does CouchDB have any default indexes? - database

I just had a quick question that I feel the StackOverflow community might be able to answer.
I looked at the documentation for CouchDB but to no avail. I was interested in knowing if CouchDB created any indexes by default?
Hopefully, the question is clear as it is for an assignment and I picked the CouchDB database to study more.

Related

Info Needed: What are some of the best PL/SQL Blogs to follow? [closed]

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.
I am new to PL/SQL and I want to understand different aspects of PL/SQL so I have couple of questions,
What concepts should a developer
know to call himself as an PL/SQL
Developer ?
What are the best blogs available which pl/sql developer should
follow ?
Note: Google Search didn't gave that fruitful results.
Every PL/SQL developer should read Oracle PL/SQL Programming by Steven Feuerstein as an excellent introduction to the structure of the language and how it differs from most languages by its database-specific nature.
In addition to a good working knowledge of the Oracle Database, some key concepts to understand in PL/SQL include (but are not limited to):
The execution environment, being "inside" the database
The BEGIN/END block structure
Packages, procedures, functions, triggers, as well as anonymous blocks
Cursors & Iterative row processing vs Bulk row processing
Exception handling
Dynamic SQL & Execute Immediate
Collections & Records
Database Transaction Management
For blogs, take a look at Steven Feuerstein's PL/SQL Blog.
http://toadworld.com/Community/ExpertsBlog/tabid/67/BlogID/13/Default.aspx
He's got lots more resources on his site as well. Take a look at the PL/SQL challenge!
http://www.stevenfeuerstein.com
I don't have much too add to what has already been said, other then:
first learn about the database and about SQL, before you start with PL/SQL
another site that is indispensable for PL/SQL developers - and that hasn't been mentioned yet - is http://www.oracle-developer.net/: excellent articles per feature and version.
Regards,
Rob.
Every PL/SQL developer should participate in PL/SQL Challenge (Steven Feurstein again) site: http://www.plsqlchallenge.com/
It`s a good way to improve your PL/SQL skills or learn this programming language.
1: The most important thing to understand about PL/SQL is why you don't want to be a PL/SQL Developer.
To get the most out of your database you need to use declarative programming with sets, also known as SQL. PL/SQL is procedural programming with rows. If you only use SQL your code will be simpler and usually about an order of magnitude faster.
Your time is much better spent learning about Oracle and SQL concepts first, and then PL/SQL. You'll probably be better off as an Oracle Developer who just happens to write some PL/SQL.
2: Almost every good Oracle blog is by someone who is a member of the OakTable.
But you won't find a lot of PL/SQL there because PL/SQL is not very interesting. I'm not trying to rant about PL/SQL, I think it's a fine language, but it's massively over-used. 90% of all PL/SQL code should probably be re-written in either SQL or Java/C#/etc.
BUT... before you start looking at blogs or Googling you absolutely need to become familiar with a few books from the Oracle documentation library.
Concepts
SQL Reference
PL/SQL User's Guide and Reference
PL/SQL Packages and Types Reference (this one is huge and is mostly weird
stuff nobody uses, but there's also
some really important stuff in there)
You need to at least be familiar with the structure of those books, especially the SQL and PL/SQL reference, so you can look up things later. Although they are large and complicated they are also extremely thorough and accurate. The syntax diagrams alone will save you many hours of Googling.

Database Internals - Where to Begin? [closed]

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 4 years ago.
Improve this question
So lets say that you want to learn some stuff about database internals. What's the best source code to look at? the best books to buy?
I was talking about this with a buddy the other day and he recommended:
Art of Computer Programming, Volume 3: Sorting and Searching
What other books would help me learn about all the File IO and memory issues, pages, locking, etc.... ?
Textbook: Database Management Systems by Ramakrishnan and Gehrke.
Or: Architecture of a Database System by Hellerstein, Stonebraker, and Hamilton.
Production Code: PostgreSQL
(I like the PG code better than SQLite , it's far more complete and, I think, better organized. SQLite is awesome for what it does, but there is a lot it doesn't take on).
Extra Credit: Readings in Database Systems, 4th edition edited by Hellerstein.
If you are really serious, and although a tough read none other by the late and great Jim Gray and Reuter:
Transaction Processing, Concepts and Techniques
Again if serious, do not bother with anything else.. it's out of this world and certainly out of mySQL chasing by IBM or Oracle..
The SQLite source is very approachable to learn about database implementations.
PostgreSQL is a very well written piece of software, with higher complexity than SQLite.
A colleague and I got a great deal of information out of Database in Depth: Relational Theory for Practitioners Very low level stuff but it sounds like that is the sort of thing you are looking for.
Take a look at Database Systems: The Complete Book by by Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom. It is specifically about the internals of the DBMS.
The answer by SquareCog also contains sensible suggestions; I've not looked at the two books mentioned (though the Stonebreaker "Architecture" book is only 136 pages according to Amazon, which seems a tad lightweight).
Here's an interesting read about SQLOS, which drives Microsoft SQL Server 2005+.
In depth information about internals is database specific, here's a source on SQL Server 2008:
http://www.amazon.com/Microsoft%C2%AE-SQL-Server%C2%AE-2008-Internals/dp/0735626243
Not everybody likes his style, but I find that Joe Celko does a fine job of explaining the set-based logic that drives SQL databases. If you already have a little SQL experience under your belt, you should read SQL for Smarties.
Make sure that whatever you get covers relational algebra and relational calculus. No point delving into database internals if you don't have the basic theoretical background. Past that, any college style databases textbook will probably suffice.

Resources about building an RDBMS [closed]

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 looking at implementing an RDBMS. Are there any good resources out there about how a database works internally, and the kinds of things I'd need to know when starting out to build my own? (Please no comments about whether it's a practical idea or not - just imagine it's for a hobby project or something).
Again - interested in the RDBMS design, not the Database design. And efficiency is very important (it seems like it's reasonably easy to design some kind of relational database like structure if I don't care about speed).
There are a few textbooks about this sort of stuff out there, when I was in college, we did this for a class project. This book should really help you on your way Database Systems: The Complete Book
I forgot to mention it, but my code is on googlecode here: cs4420-dbase
Please forgive the fact it is written in java, but I was outvoted by my teammates on that decision. but the basic ideas are all still there. It handles file creation and handling as well as a simple SQL parser and optimizer. It handles basic indexing (b-tree) and "memory" management. Please forgive some of the lack of commenting and strange commenting, many late nights were spent on that project.
I'd suggest starting with Introduction to Database Systems and Transactional Information Systems. They should both have bibliographies to take you further.
Building a RDMS is not trival, you need to combine classic CS knowledge from several fields together with deep knowledge about harddrives, OS specifics, filesystems, memory, cpu, caches to make it efficient.
A good article about architecture we are required to read is:
http://www.nowpublishers.com/product.aspx?product=DBS&doi=1900000002
For theoretical knowledge about databases I would recommend to buy a book on this topic, I can only talk about the book I use for this, which is Database Systems an Application-Oriented Approach by Kifer, Bernstein and Lewis.
You might want to look at some opensource databases for ideas.
I recently came to the same question, and like others, struggled a bit finding a book that helped in building an actual RDBMS from scratch (minimal, of course). Contrary to what occurs in other CS areas (OS, Compilers, etc); the Databases area seems to have fewer resources in this regard. Probably because RDBMS are among the hardest to grasp and implement ;-|
Nevertheless, I finally found what appears to be a satisfying answer. Sciore's book "Database Design and Implementation":
http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000711.html
The first two parts are dedicated to learning to use RDBMS, which you probably know already. But the last two parts cover implementation details; and the interesting thing is that a minimal RDBMS (SimpleDB) is used to illustrate the concepts, and also can serve as the platform to perform programming exercises. The Wiley site has a quote that says it better:
"Comes with SimpleDB, a free-to-download, fully functional simplified database system that is (unlike commercial DB systems) small, easily readable and easily modified. SimpleDB can be used as the platform on which students complete homework projects and implement the concepts covered in the book."
Do not bother by the fact the sample RDBMS is written in Java; that has the advantage (IMHO) of hiding the low-level details of implementing in C/Unix. If you come like me from the applications world, you may be unfamiliar with system-programming stuff; but learning the RDBMS implementation concepts in a high level language like Java, can serve as a good bridge for the transition.
The Wiley site allows to buy an electronic version of the book, but the source code is available regardless you buy it. I can not post more than two links, but just google this term (including double quotes), and you will easily find the SimpleDB home page (where you can download it):
"The SimpleDB Database System"
If you are unsure about buying the book (which like other core-CS books, are not cheap for the student); probably you can start reading the code and this introductory article:
http://www.cs.bc.edu/~sciore/papers/SIGCSE07.pdf
If you find it appealing, buying the book may be a good investment.
Hope that helps,
Cheers.

What are some great online database modeling tools? [closed]

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.
What's your favorite open source database design/modeling tool?
I'm looking for one that supports several databases, especially Firebird SQL but I can't find one on Google.
I've used DBDesigner before. It is an open source tool. You might check that out. Not sure if it fits your needs.
Best of luck!
Do you mean design as in 'graphic representation of tables' or just plain old 'engineering kind of design'. If it's the latter, use FlameRobin, version 0.9.0 has just been released.
If it's the former, then use DBDesigner. Yup, that uses Java.
Or maybe you meant something more like MS Access. Then Kexi should be right for you.
S.Lott inserted a comment, but it should be an answer: see the same question.
EDIT
Since it wasn't as obvious as I intended it to be, here follows a verbatim copy of S.Lott's answer in the other question:
I'm a big fan of ARGO UML from Tigris.org. Draws nice pictures
using standard UML notation. It does some code generation, but mostly
Java classes, which isn't SQL DDL, so that may not be close enough to
what you want to do.
You can look at the Data Modelling Tools list and see if anything
there is better than Argo UML. Many of the items on this list are
free or cheap.
Also, if you're using Eclipse or NetBeans, there are many
design plug-ins, some of which may have the features you're looking
for.
The DB Designer Fork project claims that it can generate FireBird sql scripts.
I like Clay Eclipse plugin. I've only used it with MySQL, but it claims Firebird support.
You may want to look at IBExpert Personal Edition. While not open source, this is a very good tool for designing, building, and administering Firebird and InterBase databases.
The Personal Edition is free, but some of the more advanced features are not available. Still, even without the slick extras, the free version is very powerful.

What's the best source to learn about database replication mechanisms? [closed]

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.
What's the widest overview and where are the deepest analysis of different replication methods and problems?
I would start here: wikipedia's replication article, then read a couple of related papers on general replication techniques such as the replicated distributed state machine approach (Paxos (pdf)) and epidemic replication (Google 'Epidemic Algorithms for Replicated Database Maintenance').
For a practical overview, perhaps consider investigating the source code for Postgresql, which seems to have some replication technologies built in. This presentation purports to have some details.
However, given that you're talking about deep analysis, the best approach is to make sure that you have a very sound understanding of fundamental distributed database systems issues. My copy of Date's Introduction to Database Systems has a few pages on distributed databases and their attendant issues. I should think a textbook dedicated to distributed databases would have much more detail - this one, for example, looks promising.
You can go much deeper if you read Ken Birman's work on Virtual Synchrony, and most things that Leslie Lamport has ever written. These will attack the problem from the perspective of a general distributed systems approach.
Good luck!
In my opinion, you should pick a mainstream database (such as Oracle) and study everything it offers and go from there.
Oracle offers:
Replication
Data guard (standby database and beyond- physical, logical)
Real Application Clusters - (multiple instances, one DB)
and more !
A bit of hands-on would not hurt so you can download a PC version and try various replication approaches on one PC!
Enjoy !
Though it is MS-SQL specific, you should have a look at "Pro SQL SERVER 2005 Replication" (Sujoy P. PAUL, Apress). I owe this guy many quiet nights... I guess you can find some extracts of this book as PDF files.
Wikipedia has some overview on the matter:
http://en.wikipedia.org/wiki/Multi-master_replication
http://en.wikipedia.org/wiki/Lazy_replication

Resources