Short explanation on Database Types - database

I'm deciding what database to use for my project, but I've only ever used relational databases (Oracle, MySQL) so for my web project I figured I'd use MySQL with PHPMyAdmin for DBMS.
But I'd like to know more about other database types, succinctly if possible, before I finally decide.
Thanks in advance!

Related

Best Database for Blog Application (Relational - SQL vs NoSQL)

I am starting developing a new application for blogs in .net mvc. I am working on relational databases (Sql Server) from past 3+ years, these days i am seeing many articles on No Sql databases too and many articles says that nosql/graphdb is a future so i just want to know which database will be better for a blog kind of application relational or nosql?
I want to go with nosql for learning purpose but there are too many nosql databases like- cassandra, couch, mongo, raven, hbase, neo4j etc so please suggest which db i should choose for blog app-
Relational or No Sql
If no Sql then which No Sql
Hoping for some positive responses.
Thanks.
Basically use SQL or noSQL approach depends on such factors as how your data model (I mean your tables in SQL or lists in no SQL) changes and what will you do with it when you have lots of data.
If you data model pretty much known and changes not often, plus you have really difficult logic to work with it (and validate ofcourse) than I usually use SQL approach, becouse it's easier to keep your data consistency.
The next problem that you faces is huge amount of data. With SQL approach you have to build DWH (data warehouse) if you want to query your data fast. With noSQL approach in theory you can easily spread your data of different servers.
About blog - you definatly don't know right now what kind of model you will have in the end. And you wouldn't create tricky reports i gess. So it's ok to use noSQL model.
About your question what noSQL DB select i recommend to look at brightstardb becouse you can map your model with EF and it will be easier to develop. Another noSQL db that you can look at is Azure DocumentDB becouse it's MS approach to noSQL, but it available only in Azure right now and it has no stand alone version.
I have been using mongo nosql for smaller web applications. Mongo nosql would work really well for such an application.
Easy to connect to, and easy to get into since its object related.
Just my opinion.

when using a specific database such as sql server,do we have to install and configure odbc?

when using a specific database such as sql server,do we have to install and configure odbc?
and my other question is why cant thrift/avro/rest/protobuf be used with rdbms,they are services,why are they just used with nosql dbs?
I am reading professional nosql book,and there is a list of different nosql db access methods,and they are listed as nosql db access methods,but when I googled them I saw they are services for serializing datas and so on(each of them is for sth).
thanks in advance.
These are multiple questions here.
(1) No, SQL Server is accessed best via the SQL Native Client, ADO/MDAC/OLE-DB. Performance-wise ODBC is not recommended at all, although it still may be the most viable option in certain cases.
(2) Thrift is only an RPC-mechanism, which has nothing to do with DB in General. This is a completely different aspect. However, Thrift can of course be used, and in fact it is actually used by the NoSQL database Apache Cassandra
I'd recommend to first find out what kind of DB is most suitable for your use case: It may be a typical SQL database, or it may be a classical ISAM or even something like Cassandra, CouchDB or MongoDB. Once you know that, you'll surely find out how to conect with the DB of your choice - or just ask another question :-).

So which database to choose that is free for massive web site?

Now that Oracle own MySQL and I'm not sure about the licensing.
What options do I have for free database?
If it's relational you want, perhaps PostgreSQL is your answer.
NoSQL offers several non-relational alternatives, depending on your requirements.
But if MySQL really is your cup of tea you should get someone to dig deeper into licensing for you and see if you can have peace of mind and keep MySQL. "I'm not sure" seems to be a poor reason to cast aside an investment in technology that you know well. Oracle's had MySQL for a while now. I'd recommend looking into it to figure it out one way or the other.
there are too many DATABASES are available for free to use.
PostgreSQL
MySQL
BerkeleyDB
Firebird (database server) Etc..
Thanks.
MariaDB is almost a drop-in replacement for MySQL.

Way to abstract database schema creation?

I'd like the ability to create a schema for multiple database types such as MySQL, SQL Server, and PostgreSQL. I know ORM tools such as Hibernate can do this, but I won't be using an ORM to access the database so would like a solution that doesn't depend on one. Are there any tools that can do this?
Edit:
I forgot to mention that this is a personal project so I'm looking for something either cheep or free.
Take a look at Erwin.
Edit: (Based on question update)
Yeah Erwin is not going to be cheap. I did a quick search and found Toad Data Modeler, which I haven't tried but may be worth looking into:
Entity relationship diagrams - both Physical and Logical modeling (incl. inheritance)
Support for various databases (Oracle,
MS SQL Server, MySQL, Sybase Ase,
PostgreSQL, DB2)
Generation of SQL (DDL) scripts
More...
SQL Power offer a FOSS modeling tool, SQL Architect. It can generate DDL for several flavours of database. It is still technically beta (current release is 0.9.1) but it should be fine for a personal project. Find out more.
I know you said u don't want an ORM but SubSonic 3's migrations might just do the trick for you. You don't have to use the ORM just have SubSonic build itself from your database and have it as a separate class library. Then change the provider say from MSSQL to MySQL and have it rebuild itself.
PowerDesigner is a far better choice than Erwin but it too is expensive.
It took me roughly 16 hours to install the demo of Erwin, lots of failed attempts, incomprehensible error messages, help phone number which were disconnected.
PD will give you 14 day free trial.

Object Relational Features of SQL Server

Does anyone know a good reference to look into what Object Relational features are available in SQL Server (any version)? I found a really good summery for Oracle but all I can find for SQL Server is information about LINQ to SQL, which is good stuff, but I'm looking for more power in the database like defined types, nested tables, etc.
I know you can use CLR types in SQL Server, and that would be interesting to me too, I just am looking for a good place to read about all the OR features it has.
PS. I'm willing to purchase a book.
You should read Best Practices for Semantic Data Modeling for Performance and Scalability.
The SQL Server is not as object relational as one might expect - not that long ago I realized that it does not (even) support table inheritance.

Resources