RDBMS

Which relational database management system do you prefer or use in your projects? Top choices rarely change. (db-engines.com/en/ranking/relational dbms)

Is there really only two choices for a serious project? Either SQL Server or Oracle?
MySQL/MariaDB -->Outdated
PostgreSQL --> The engine is somewhat okay, but the tools for it not.

Other urls found in this thread:

guide.couchdb.org/draft/consistency.html
jetbrains.com/datagrip/
twitter.com/SFWRedditImages

I use MSSQL, it's what i've learned to use

Why would being outdated matter if it can still do your typical crud app? What "serious projects" do you do?

>SQL Server or Oracle
>MSSQL
have fun paying truckloads of license and support fees when there are perfectly viable (and often superior) FOSS alternatives

ps. relational databases aren't the end all be all, check out Cassandra and Redis too

I meant serious as the data size can grow more quickly, so you actually need to worry about partitioning and archiving. Also, setting up replication and more advanced backup solutions.

did you know that you can download and use MSSQL for free unless on an enterprise environment?

I just started learning this, would you experts please rate and provide critiques to improve my learning this?

PostgreSQL, because no vendor cares about the SQL standard, but at least PostgreSQL devs aren't total assholes, unlike any other vendor.

Development version has everything the Enterprise has. So If you are willing to use an unlicensed version, you don't have to pay anything. (Dev should not be used under production, only in development, but nobody can check it reliably).
Also, I though people usually use KeyValue and Document stores alongside relational if the data needs it.

yeah, right until Microsoft orders an audit on your MSSQL usage (which they already know due to telemetry anyway), decides that your 2 man startup qualifies as enterprise and sticks a massive fine in your face

>what are personal projetcs

for me, it's Amazon RDS

>Also, I though people usually use KeyValue and Document stores alongside relational if the data needs it.
sure, but in that case the Relational DB is usually intended for offline data storage, most of the heavy online work is done in the NoSQL DB

>needing a fancy RDBMS for personal projects
deploy a MySQL node and you're good

postgres is the only good database

oracle promotes bad practices and is expensive as shit. their support is fucking terrible
sql server is expensive and lolms
mysql is shit, drops stuff at random and fuck oracle
mariadb i don't know, but if mysql is anything to go by, those hacks can't be trusted

if you disagree, you don't have enough database experience

>needing a multi-user, concurrent RDBMS for personal projects
SQLite ought to be be enough for anyone

What about the development, management and monitoring tools? pgAdmin can't even compare to SMSS or Oracle's

If you think about performance, robustness, security, scalability and accessibility Oracle is awesome and Franky unbeatable.

>Inb4 bbut expensive to purchase and maintain. Yes, but Oracle also provides continued support through updates and security patches

what the fuck do you want to do? the new versions of postgres have schedulers (job scheduling), before you had to set things on cron, but even then you can just email reports or make your own reporting scripts in python etc (you know how to code, right?)

there's other stuff like pgbadger etc. and worst case, you can just query the activity views to see what's happening. it's not like oracle, that makes things purposefully obtuse in terms of monitoring, in order to get you to pay for their monitoring tool

>using vendor-specific development, management and monitoring tools
why do you insist on fucking yourself over?

yeah because postgres doesn't have updates or patches

the only thing oracle excels in is having a shiton of bloated features to try to justify it, as well as trying to get retarded developers to use extra features that will force you to buy separate options and pay oracle even more

Not just vendor specific, it is hard to find anything for PostgreSQL really.

My current system runs MySQL and insertss 65 million rows a day, during a 6-7 hour period. The main table is 35-40 columns for a manufacturing inventory system. It doesn't even break a sweat on a shitty blade server from 2007. What can you possibly not do on these rdbms's for your hobby projects

>ps. relational databases aren't the end all be all, check out Cassandra and Redis too

And yet, for relational things where you have to do the slightest amount of analysis on your data, Cassandra and Redis are fucking garbage. It's almost like they're not meant for the same thing, like you're saying "apples aren't the be all and end all, have you checked out asparagus or sliced cheese?"

Which of these things are MySQL (specifically newer versions of it) or Postgres unable to do? How much data are you really talking about? What's your actual experience using any of these databases?

Personally, I like MySQL's syntax, but the part that constantly kills me is how subqueries and views have less-than-good indexing (especially in older versions). There are a bunch of different things you can try doing that would work in better databases that slow to a crawl in MySQL.

I don't have as much experience with Postgres, but for the amount of time I was using Postgres, it didn't seem to have those same problems. I also really like some of Postgres's jsonb stuff, which makes it an interesting option for having both a more traditional relational database, and as an unstructured data junk drawer for future analysis, all in one place.

If I was starting something new, right now, I'd probably go with Postgres. If I wanted to just screw around with some new stuff and didn't really think the project was going anywhere, I'd probably test out VoltDB.

SQLite is fucking great and easy, but it should be only for small to medium projects

postgres can definitely do replication and partitioning. so can oracle

And only if your project is read heavy. If you need to insert and update a tons of stuff you are fucked with SQLite.

There is practically no difference between postgres, mysql, mssql, and Oracle sql

Prove me wrong

eh - my last project did a lot of CRUDing, it works fine. No issues with writing or updating. The only thing I don't like is you can add a column to an existing table, you have to completely re-do the table.

>And yet, for relational things where you have to do the slightest amount of analysis on your data, Cassandra and Redis are fucking garbage. It's almost like they're not meant for the same thing,
OP is likely not doing any business analysis, machine learning or scientific research in his personal projects

>like you're saying "apples aren't the be all and end all, have you checked out asparagus or sliced cheese?"
those are all foods intended for eating so your epic reddit analogy fails here

fuck

can't*

MariaDB, just ask for Monty's special tools which makes it rape everything else and was the reason SUN and later Oracle paid a ridiculous premium for MySQL... except the tools. Compare it to a full auto conversion of an AR-15.

literally the best db for 90% of all projects that require a db

My experience is mild in DBs, but right now I need to choose one for a project that will:
- version the data changes
- will store big trees
- will need to store some json besides relational data
- will have to setup an appropriate backup solution, though about replicating the database
- starting data is around 100GB

I used MySQL, PostgreSQL and SQL Server before, but I am not a DBA or a sysadmin, so I would feel safe with SQL Server.

guide.couchdb.org/draft/consistency.html

They're all foods, but they're not all apples, in the same way that relational databases are a type of data tool, but Cassandra and Redis are data tools that aren't relational databases. The analogy is correct.

Saying that OP doesn't have any need for a relational database and suggesting something else, when he's specifically asking for advice about relational databases just as retarded as if OP had come in asking for good apples for baking an apple pie, and suggesting he make that apple pie filling out of cheese slices.

MySQL/MariaDB + Dell/Quest Toad (or MySQL Workbench if you're a hoe) is a pretty productive combo.

SQL Server is nice too.

You wanna stay away from Oracle tho. Its good for huge af DBs, but man is it crappy at everything else.

>lowercase SQL keywords
this is wrong. Its time to stop.
It looks like Fortran or Pascal (which I both love but still)

By definition, it is impossible to satisfy all three conditions. Those areas where it is important would fall in that 10%.

jetbrains.com/datagrip/

Is DataGrip good enough for development?

Do a test crash on your single node couchdb server with a bunch of inserts going on. Than do the same with any RDBMS.

if you haven't memorized all oracle error codes yet you should just go with mysql or postgres

I know but this is just me playing around as a prototype. When the function gets more serious I easily: visual mode ~ (tilda) done, basiaclly lowercase distinguishes code that I'm still doing a lot of work on, after it gets a little more stable I uppercase it easily with that.

oh I see, pretty nice! saves your pinky

I had a earlier version of the function and when I thought it was good enough to call finished so I uppercased it, but then later I learned more about how plpgsql works so I started rewriting the function and lowercased it as I rewrote to easily make the distinction between what Im still working on. eventually as I learned more the entire function ended up being rewritten.

>he doesn't name his element id's and name's the same as his table column names

I'm working with a ms sql server database, and they expect me to understand how it's laid out without any documentation.

There are 180 tables and i've managed to narrow it down to 10, but they are not related in any way.

what would an expert user do?
>inb4 kys

kys

Thats a good "version" system haha

Not sure what you mean.

hehe

n00b

MariaDB

mysql/sqlite for basic stuff, mssql for olap

Any other improvements I could learn about?

I'm such a brainlet I still don't know how to pivot a table

I only have one personal project that needs a DB. I used Postgre; it worked fine but
>the tools for it not [are not okay]
pretty much that, yes. At least the official ones. I looked at Postico but didn't want to pay for it so I just used the CLI.

For work (remote freelance), I've used MSSQL. It was very nice to work with and Studio was fantastic, but I would be very reluctant to use it myself due to the need for Windows Server instances.

Of course, whenever the scale is small enough, I go straight to SQLite.

What about HP's vertica?

(Me)
>I only have one personal project that needs a DB.
Slight correction: Only one that needs a full client/server DB system. I have quite a few projects that use SQLite, and it always justwerks.

Almost nothing that Sup Forums does (and most businesses for that matter) requires anything more complicated than MariaDB. SQLite would also be an appropriate solution for many.
"Web-scale", NoSQL solutions are applicable if you are Google or Facebook, but not to you.

asking this too

Note that you actually can add a new column, if you're okay with it being added to the end instead of being able to choose its placement. I often do that when I add a feature and then go back and do it properly when I'm happy.

For anything where you don't want to pay money, Postgres

For anything where you actually need enterprise support and decent tooling, SQL Server (especially now that it's going to run on Linux)

SQLite while I'm prototyping, Postgres if it turns into anything serious

i don't know but when I see lots of SQL keywords i starts to look like COBOL.