Best products from r/Database

We found 33 comments on r/Database discussing the most recommended products. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 58 products and ranked them based on the amount of positive reactions they received. Here are the top 20.

Top comments mentioning products on r/Database:

u/lentil · 3 pointsr/Database

If these items are unique to a single user (that is, one user has many items; one item belongs to exactly one user) then I think what you're doing sounds good. ItemID would be your primary key (since it alone uniquely identifies the record), and UserID would be a foreign key reference to your Users table. You'll definitely want an index on UserID since it sounds like the vast majority of queries would be able to make use of it.

There's no reason that shouldn't perform well up to a fair number of records (the amount will depend on lots of other factors, but a few million rows is maybe a good first guess). If/when you do run into speed issues, you can look at partitioning the table, which would allow you to have something that behaves as if it was one big table, but is actually made up of a number of smaller tables under the hood. It's a little more work, and there are a few snags to watch out for, but it can be really helpful when you need it. And it's not something you need to start out with -- you can add it on later if/when you find you need it. Take a look at http://www.postgresql.org/docs/current/static/ddl-partitioning.html for some more information.

That said, while you can make some educated guesses about indexing/partitioning strategies, really the only way to know for sure is to analyze how it behaves in practice. Query performance is pretty dependent on things like the data itself, usage patterns, and server configuration. You can try loading up a lot of data (just generate so fake data if you need to), and analyze some of your expected queries -- that should give you a better glimpse of what is going on. Take a look at the docs for the EXPLAIN command to get started on that. http://www.postgresql.org/docs/8.4/static/using-explain.html

Lastly, I think the Douglas book on PostgreSQL might be helpful, if you wanted to read up on this some. http://www.amazon.com/PostgreSQL-2nd-Korry-Douglas/dp/0672327562 It has some general information about performance topics, as well as a lot of specifics about how these things work in PostgreSQL.

Hope that helps a bit :)

(Edit: my grammar is atrocious :()

u/taejim · 5 pointsr/Database

The best series of books is the Inside SQL Server series, and although they are quite advanced, database internals aren't a simple topic. The idea is to find an area that you're interested in, and take a deep dive from there. Maybe I should write a series of articles on the topic, for people with your experience level.

If you are interested in how the storage engine works, then Microsoft SQL Server 2008: Internals is a good choice.

If you're more interested in how queries are processed, then perhaps starting with Inside Microsoft SQL Server 2008: T-SQL Querying would be a better option.

Additionally, I highly recommend a good selection of blogs, particularly the guys and girls over at SQLskills. Also, consider reading the Books Online pages on Planning and Architecture.

Any questions, feel free to ask - I love chatting about SQL Server, particularly on the MSDN SQL Forums, or SQL Server Central.

u/odinsride · 4 pointsr/Database

I've been a PL/SQL developer for the past 10 years and I would say the best topics you could study up on to prepare are:

  1. Exception handling and propagation (also know some of the common Oracle defined exceptions you might encounter such as NO_DATA_FOUND, TOO_MANY_ROWS, etc)
  2. Cursor Processing (Implicit, Explicit, etc)
  3. Collections and Records
  4. Basic structure of PL/SQL code when used in packages vs. stored procedures/functions/triggers
  5. Know SQL VERY WELL
  6. Know Oracle's built-in SQL and PL/SQL functions VERY WELL

    I would recommend reading the Oracle PL/SQL documentation - lots of good documentation here

    Another excellent resource is this book

    Best of luck to you!
u/humble_braggart · 6 pointsr/Database

I am currently working in a data warehousing and business intelligence role at a bank. Aside from the basics of ETL, SQL and OLAP, I would recommend having at least a basic understanding of financial accounting. I have also found it useful to read The Data Warehousing Toolkit as well as some other Kimball books.

For entry-level work, there are two recommendations of related skill that have served me quite well to get my foot in the door and show added value: Excel and reporting.

Every institution needs reports developed and it amazes me how rare it is to find well-built reports that clearly communicate their intended information. Being able to follow a few simple guidelines for effective layout and design go a long way. Edward Tufte wrote the definitive work regarding this, but I use Stephen Few's work for more up-to-date examples.

Excel has proven itself very useful for quick ad-hoc analysis and manipulations. Also, it is a mainstay application for most financial services companies and being fluent in functions, pivot charts and VBA is quite useful.

u/arnimar_ · 2 pointsr/Database

I'm no expert in database certification so I won't comment on them, but they sound expensive. I'm sure you could go a long way in improving your skills by working through some free resources and classic texts.

A nice tutorial on fundamentals is:
http://philip.greenspun.com/sql/

A classic introductory to intermediate text is the following. It can get you amazingly far because even advanced topics are explained well:
http://pages.cs.wisc.edu/~dbbook/

Don't get thrown off by the publication year. The fundamentals of relational databases have barely changed for decades.

An excellent in-depth look at database theory is presented in:
http://www.amazon.com/Foundations-Databases-The-Logical-Level/dp/0201537710

For data warehousing and analytical querying (beyond Ramakrishnan et al) this is a great resource:
http://www.amazon.com/The-Data-Warehouse-Toolkit-Dimensional/dp/0471200247

Source: I'm a graduate student in databases.


u/[deleted] · 3 pointsr/Database

There is a lot of presentation-layer stuff that might not be immediately apparent in SSRS, but you really can make it look pretty fancy. It takes a bit of playing around in BIDS to get the hang of it. Also, because it's .NET based, there is a lot of extensibility available as well.

The key though is to not sacrifice clarity in your reports and dashboards for the sake of looking fancy. I would recommend Information Dashboard Design for some good guidelines on this. I'm more of a technical user than a designer, so it provided good advice on proper layouts and color-schemes.

u/rbobby · 1 pointr/Database

Trees and hierarchies are a good fit for SQL databases... except that the basic ParentId/ChildId style of implementation is not particularly good.

Check out Joe Celko's Trees and Hierarchies in SQL for Smarties for a really good read on several different ways of doing this. Includes pros, cons, and pretty reasonably good code. I couldn't possibly recommend this book any stronger.

I don't recall if it handled some SQL systems specific support for trees (eg. Oracle has specific support for trees).

u/el_chief · 2 pointsr/Database

For your particular application I would look at OpenStreetMaps. Otherwise...

David Hay's

u/eevar · 1 pointr/Database

ETL is the process of populating a data warehouse with data from operational systems. While both involve transferring/updating data, your issue isn't really about ETL. There might be some lessons about copying/updating data in the ETL field, though.

Kimball's books are great; I'd add this one to your reading list. Probably a better starting point on data warehouses than the ETL one.

IMO your problem is hardly database related, even if data stored in a db are involved. It's a pure SW development/programming task outside of the realm of database administration.

Start off by looking for off-the-shelf solutions, i.e. check with your POS supplier if they already support this.

Failing that, you need to build your own software for pushing updates to the remote locations. A service installed on every POS that periodically polls the central server for pricing info is probably your best bet (perhaps not ideal, but should be a serviceable solution for the short run). I'd send a JSON document with every local SKU and expect one back containing current prices -- or ask for changes since last update if you have a lot of products. Make sure nothing stupid happens when a SKU isn't found or the request fails.

Make sure you understand every relevant piece of the POS db's schema. Will updating the base price do, or do you need to consider discounts, currency, taxes and whatnot? You also need to be sure you're asking the right server for pricing info (proper authentication, e.g. something PKI based), and that you have instrumentation in place to notice if a remote location isn't asking for price data.

u/kirankuppa · 4 pointsr/Database

I strongly recommend Database Design for Mere mortals. Though your question is on SQL, I am not sure if you are that specific.

Query language is a way in which you can express your understanding of the concepts (entities), how they relate to each other (relationships) and the business a particular database is addressing. Being able to write excellent queries depends on how well you understand the database structure itself.

That's why understanding database design is actually more relevant to your query, IMO. Think of it this way - once you understand the database structure, you understand everything about the company's business.

u/SkyMarshal · 2 pointsr/Database

Sounds a bit presumptuous and close-minded of him, like he's got some 'best practice' design in mind and intends to fit it to your business (or your business to it).

Maybe that will work, but without any real due diligence he runs the risk of it not working, finding himself trying to jam a square peg into a round hole long after the peg has been constructed and paid for.

Which may be the way his consulting company works - use the same cookie-cutter approach that works for 80% of businesses, taking acceptable losses on the 20% where it fails. It just sucks for those 20%.

As for your question #1, the most thorough analysis and abstraction of an organization's processes, data, and metadata I have yet come across is detailed in the book Data Model Patterns: A Metadata Map.

It answers the question of how do you model an organization or system when the things being modeled don't all fit into conventional categories. Here's a paper on it I just found on Google too.

As for question #2, I assume he meant by 'plugging some tables into others' that it will be expandable to accommodate future needs, organizational/process changes, and upgrades. Theoretically, a normalized database that correctly specifies and implements all relations b/t in-scope data and metadata should allow exactly that - incorporation of new data or metadata as the business changes (leaving aside for now decisions about stored procs and business logic).

But the way you relate it, it sounds more like he's using that to justify using his canned solution and leaving you guys to complete it later when he's gone and $100k richer.

u/wolf2600 · 1 pointr/Database

What courses does your school offer for databases? SQL? Administration?

A great starting point would be to learn and become proficient in SQL:

http://www.amazon.com/Oracle-Database-Fundamentals-Exam-Guide/dp/0071597867/ref=sr_1_2?ie=UTF8&qid=1415821007&sr=8-2

After that, pick up the book for the 2nd Oracle OCA exam, Administration 1.

u/fasnoosh · 1 pointr/Database

I found this book really useful: Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design https://www.amazon.com/dp/0321884493/ref=cm_sw_r_cp_api_-XVEyb2Y4PZX3

Walks you through the design process, and it's tool/language agnostic, so it explains the concepts without getting into the weeds with the code

u/welshfargo · 2 pointsr/Database

Informatica is widely used for ETL tools, but more important is understanding the challenges. How to design staging tables, what update strategy to use, how to design restartable jobs, and so on. This book refers to data warehousing, but the techniques are applicable to most scenarios.

u/systay · 3 pointsr/Database

Unless, of course, you need to join a whole lot of things in complex patterns. Then you should check graph databases. I used to work as a MS SQL Server DBA, and I clearly remember the problems we had with hierarchical data. There's even books describing the patterns you can use to work around the limitations of SQL.

(Disclaimer: I work as a dev on the Neo4j team)

u/koalillo · 3 pointsr/Database

Take a look at:

https://www.amazon.com/Data-Model-Resource-Book-Vol/dp/0471380237

Maybe it's similar to what you're looking for? It's a bit old, though