How to study the layout of a database?

  • primitivefuture2006 - Thursday, November 15, 2018 8:26 AM

    Jeff Moden - Tuesday, November 13, 2018 7:24 PM

    primitivefuture2006 - Tuesday, September 18, 2018 6:14 PM

    Please. I am a noob but I really want to learn. Sorry if my question is funny, but I really would appreciate real advice. I am dreaming of landing a new career

    IF there are views and stored procedures that come with the database, read those and map out how the tables are joined.

    Also, if someone did a decent job on the database, check the Foreign Keys (pure gold if they exist) for relationships among the tables.  Although a bit limited and does take a bit of getting used to, you expand a given database (in the Explorer window) and use "Database Diagrams" to help get pictures of tables and their relationships when FKs are present.  If you're really lucky, you might find some that have already been drawn out by the people that created the database.  It's not the best tool in the world but it's a start.
    data:image/png;base64,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

    Thanks for the advice! I will explore Data Diagrams today. Are you working with massive databases professionally? I mean, are the databases you work with involve many tables (50+), some tables with hundreds of thousand to millions of rows? Thanks again

    I don't work with databases as large as some folks do but I do work with what some might call "huge" databases (they're not but that's what some call them) of 2+TB.  I have Non Clustered Indexes that are larger than some folks entire database and tables that are larger than some folks entire enterprise server. 😀  There are a whole lot of folks that fit that same category and some that work with databases in the Petabyte range.  This is a good place for someone to learn a whole lot because of the solutions and advice to problems that people post.

    Looking at your other post about "fundamentals" (and I'll get back to that one, hopefully after work), I have to say that you have precisely the correct attitude and level of humility to do very well in the world of SQL Server and T-SQL.  The fact that you've already correctly identified that you "Don't know what you don't know" (even the really good heavy hitters in SQL Server embrace that understanding) and that you practice every day after work (which many of us still do even after working with it all for decades) will help you excel in your studies and in your career.

    There's a caution I forgot to add about the use of data diagrams in SQL Server.  If you make a change there (other than moving tables around on the diagrams to make understanding a bit easier) and save them, you WILL change the underlying objects in the database.  Be careful.

    Like I said, I'll try to get back to your other post on "fundamentals" tonight and add a bit more over the next several days. 

    As for where you're at right now, it's how many of us started.  Most of us don't have the time to become a full time private mentor but this site has some incredible talent to learn from.  It's not just a group of individuals... it's a true community.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Assuming that the relationships have been properly baked into the SQL database schema, then there are tools out there to help you visualise the connections / relationships.  For example, Redgate's Dependency Tracker - https://www.red-gate.com/products/sql-development/sql-dependency-tracker/ - has a 14 day free trial.

    Thomas Rushton
    blog: https://thelonedba.wordpress.com

  • I think it’s an excellent question 🙂, and I wish more people would ask it. The first obvious question is “what the heck is this thing supposed to do?” If you know that, then you can make some guesses things that should be there. For example, if this schema deals with vehicles, then you’d expect to see a VIN. If it deals with addresses, then you’d expect to see CASS standards applied to the addresses. If you deal with money and currencies, you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations.

    I also have a suggestion that while you’re inspecting the schema, you do what should have been done at the start and build at least a data dictionary. The thing that will drive you nuts is when the same data element has multiple names. Sometimes this guy is a “customer_id”, sometimes “cust_id”, sometimes “ry1234” or worse. I truly wish people would learn the basic ISO 11179 naming rules; it won’t prevent bad names, but it will at least minimize them. You

    The other thing that will drive you nuts is that the same data element under the various pseudonyms and aliases will be cast in different datatypes. Sometimes he’s CHAR(10), or maybe VARCHAR (50) or maybe he’s numeric. This gets be real cute problem when you try to use views and at various levels of nesting, the data element name changed.
    After that, I’d like to see at least a high-level ER diagram. There are various tools for this.

    Please post DDL and follow ANSI/ISO standards when asking for help. 

  • jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    I think it’s an excellent question 🙂, and I wish more people would ask it. The first obvious question is “what the heck is this thing supposed to do?†If you know that, then you can make some guesses things that should be there. For example, if this schema deals with vehicles, then you’d expect to see a VIN. If it deals with addresses, then you’d expect to see CASS standards applied to the addresses. If you deal with money and currencies, you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations.

    I also have a suggestion that while you’re inspecting the schema, you do what should have been done at the start and build at least a data dictionary. The thing that will drive you nuts is when the same data element has multiple names. Sometimes this guy is a “customer_idâ€, sometimes “cust_idâ€, sometimes “ry1234†or worse. I truly wish people would learn the basic ISO 11179 naming rules; it won’t prevent bad names, but it will at least minimize them. You

    The other thing that will drive you nuts is that the same data element under the various pseudonyms and aliases will be cast in different datatypes. Sometimes he’s CHAR(10), or maybe VARCHAR (50) or maybe he’s numeric. This gets be real cute problem when you try to use views and at various levels of nesting, the data element name changed.
    After that, I’d like to see at least a high-level ER diagram. There are various tools for this.

    Wow, this is gold! I had no idea these are some things I must look out for. So far my knowledge and practice is based entirely on sample databases, so I have not encountered any of the issues you described. Do you know of any resources that provides a "check-list" of what I need to look for to ensure the entire database tables and columns are consistent? If there isn't anything like that then I will make such a list on my own and share on this forum for other members to add to the list. Thanks so much for your advises!

  • you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations.

    @JoeCelko, I'd be interested to see a reference which backs this up, if you have one.

    If you haven't even tried to resolve your issue, please don't expect the hard-working volunteers here to waste their time providing links to answers which you could easily have found yourself.

  • jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    If you deal with money and currencies, you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations..

    So anybody using a digital calculator for money and currencies is committing a crime ?   😀:sick:

    Ben

  • It's entirely possible the DBA can't help much when it comes to understanding the logical model of the database, especially if it's part of a 3rd party vendor application, because the DBA simply had no role in developing it in the first place. Even the most popular CRM and accounting packages that organizations spend millions of dollars per year to license have database designs that are incomprehensible when it comes to naming conventions and normalization. You may even find that most of the tables in the database are either legacy or just there to support a feature set that isn't relevant to the version of the application you're running.

    But even if the logical database model is deficient in terms of self documenting, the SQL language itself is very declarative, so you can learn a lot about the form and function of a database model by examining the SQL queries contained in views and stored procedures. Also, if you want to know where something like the month end report gets it's data, you can run a SQL Profiler trace while the report is running and capture the SQL queries that way.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • Eric M Russell - Tuesday, November 20, 2018 8:40 AM

    It's entirely possible the DBA can't help much when it comes to understanding the logical model of the database, especially if it's part of a 3rd party vendor application, because the DBA simply had no role in developing it in the first place. Even the most popular CRM and accounting packages that organizations spend millions of dollars per year to license have database designs that are incomprehensible when it comes to naming conventions and normalization. You may even find that most of the tables in the database are either legacy or just there to support a feature set that isn't relevant to the version of the application you're running.

    But even if the logical database model is deficient in terms of self documenting, the SQL language itself is very declarative, so you can learn a lot about the form and function of a database model by examining the SQL queries contained in views and stored procedures. Also, if you want to know where something like the month end report gets it's data, you can run a SQL Profiler trace while the report is running and capture the SQL queries that way.

    Hi Eric,

    Do you know what type of SQL queries I can run to help with this? I tried searching the Microsoft documentation page, but am not sure where I should look for this. Any resource or advice you may have will be highly appreciated

  • ben.brugman - Tuesday, November 20, 2018 5:26 AM

    jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    So anybody using a digital calculator for money and currencies is committing a crime?   😀:sick:

    Rounding might actually be worth writing an article. Good idea! I haven't looked at the current rules in a while, so that would make me do some research. Actually, I've seen someone get in trouble for using a pocket calculator.

    He rounded every item in a long list either up or down (I camber which direction), instead of varying it from item to item. Then he did his summation. The errors accumulated in one direction and messed up the final results. Suddenly, what had been done on the mainframe didn't match his calculations.

    ToEven is also known as 'Banking Rules', it the default used in IEEE 754 floating-point standards, which is why it's the default in .NET.

    Conversely, AwayFromZero is also known as 'Commercial Rounding'. I don't know why it is the default of SQL Server. It's very widely known and SQL has been used in commercial environments.

    Euro conversion gets even weirder. If you go from one non-euro currency to another, you have to convert the first currency to euros, then convert the euros to the second currency. It's called triangulation. The problem is that transactions occur so fast that the rates can change during the calculations - ARRGH :sick:!

    I'm going to assume by now everybody seen the problems with the old Sybase MONEY datatypes. Basically, if you do multiplication and division, it rounds too soon and only carries things out to four decimal places.

    Please post DDL and follow ANSI/ISO standards when asking for help. 

  • jcelko212 32090 - Tuesday, November 20, 2018 10:28 AM

    ben.brugman - Tuesday, November 20, 2018 5:26 AM

    jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    So anybody using a digital calculator for money and currencies is committing a crime?   😀:sick:

    Rounding might actually be worth writing an article. Good idea! I haven't looked at the current rules in a while, so that would make me do some research. Actually, I've seen someone get in trouble for using a pocket calculator.

    He rounded every item in a long list either up or down (I camber which direction), instead of varying it from item to item. Then he did his summation. The errors accumulated in one direction and messed up the final results. Suddenly, what had been done on the mainframe didn't match his calculations.

    ToEven is also known as 'Banking Rules', it the default used in IEEE 754 floating-point standards, which is why it's the default in .NET.

    Conversely, AwayFromZero is also known as 'Commercial Rounding'. I don't know why it is the default of SQL Server. It's very widely known and SQL has been used in commercial environments.

    Euro conversion gets even weirder. If you go from one non-euro currency to another, you have to convert the first currency to euros, then convert the euros to the second currency. It's called triangulation. The problem is that transactions occur so fast that the rates can change during the calculations - ARRGH :sick:!

    I'm going to assume by now everybody seen the problems with the old Sybase MONEY datatypes. Basically, if you do multiplication and division, it rounds too soon and only carries things out to four decimal places.

    That's great information and I absolutely agree about the problems with using the MONEY datatype in currency calculations but what does this have to do with the "floating-point" calculations you spoke of previously?  What do you use, instead?

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    If you deal with money and currencies, you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations.

    kindly back this statement with links to the relevant EU legislation.

  • primitivefuture2006 - Tuesday, November 20, 2018 10:08 AM

    Eric M Russell - Tuesday, November 20, 2018 8:40 AM

    It's entirely possible the DBA can't help much when it comes to understanding the logical model of the database, especially if it's part of a 3rd party vendor application, because the DBA simply had no role in developing it in the first place. Even the most popular CRM and accounting packages that organizations spend millions of dollars per year to license have database designs that are incomprehensible when it comes to naming conventions and normalization. You may even find that most of the tables in the database are either legacy or just there to support a feature set that isn't relevant to the version of the application you're running.

    But even if the logical database model is deficient in terms of self documenting, the SQL language itself is very declarative, so you can learn a lot about the form and function of a database model by examining the SQL queries contained in views and stored procedures. Also, if you want to know where something like the month end report gets it's data, you can run a SQL Profiler trace while the report is running and capture the SQL queries that way.

    Hi Eric,

    Do you know what type of SQL queries I can run to help with this? I tried searching the Microsoft documentation page, but am not sure where I should look for this. Any resource or advice you may have will be highly appreciated

    Seeing what a view or stored procedure contains, code-wise, is actually fairly easy and doesn't require any software beyond Management Studio (SSMS)  Simply pick a view or stored procedure, right-click it, and choose the option "Script {Item} as -> Create To -> New Query window"  This will generate the code necessary to create the object in question, which you can then review at your leisure.

    So, with a view (which is basically a saved select query) you can see what tables it's joining together and on what column(s), which will give you some idea as to the relationship between those two tables.

    One suggestion I've not seen as well, if you want to be very paranoid about poking around in a "live" database, take a backup of it and restore it to a separate server, so that if you do break something in the database (oops, I dropped the logins table) you didn't break production.  (Note:  Check with your management, etc about this first, it may not be allowed!)

  • frederico_fonseca - Tuesday, November 20, 2018 12:43 PM

    jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    If you deal with money and currencies, you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations.

    kindly back this statement with links to the relevant EU legislation.

    I'm going to give Joe a pass on this one (lol like he cares whether I give him a pass or not). I think its generally agreed not to store money in floats, unless you restrict the number to having no decimal points, and even then, why not just use integers if you're going to count pennies, etc 

    The closest I found to an actual regulation was this bit on the web:

    https://opendata.stackexchange.com/questions/10346/what-specifications-are-out-there-for-the-precision-required-to-store-money

    I doubt that'll satisfy the folks who just want to catch Mr. Celko typing something wrong on the internet but at least the link chats about the subject.

  • patrickmcginnis59 10839 - Wednesday, November 21, 2018 6:47 AM

    frederico_fonseca - Tuesday, November 20, 2018 12:43 PM

    jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    If you deal with money and currencies, you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations.

    kindly back this statement with links to the relevant EU legislation.

    I'm going to give Joe a pass on this one (lol like he cares whether I give him a pass or not). I think its generally agreed not to store money in floats, unless you restrict the number to having no decimal points, and even then, why not just use integers if you're going to count pennies, etc 

    The closest I found to an actual regulation was this bit on the web:

    https://opendata.stackexchange.com/questions/10346/what-specifications-are-out-there-for-the-precision-required-to-store-money

    I doubt that'll satisfy the folks who just want to catch Mr. Celko typing something wrong on the internet but at least the link chats about the subject.

    Absolutely agreed on this one.  That's why I asked Joe what the specs actually were (a reference link or two from him would be great) and what he used in such cases.  Way too many people "format" the interim answers way too early in a series of calculations and then wonder why Granny with her 4 function calculator is able to catch "penny errors" on things like mortgage interest calculations, etc, .  Add to that the silent automatic severe reduction in scale that can occur with the Decimal and Numeric datatypes  (which some folks aren't aware of) in SQL Server and you can end up with some real problems. 
    https://docs.microsoft.com/en-us/sql/t-sql/data-types/precision-scale-and-length-transact-sql?view=sql-server-2017

    Of course, there are also problems with FLOAT datatypes, as well, and so it would be interesting and helpful if he let us know how he solves these types of problems, especially when it comes to meeting the requirements of EU and GAAP regulations.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • ben.brugman - Tuesday, November 20, 2018 5:26 AM

    jcelko212 32090 - Sunday, November 18, 2018 3:39 PM

    If you deal with money and currencies, you know that anybody who storing currency data is floating-point is committing a crime under EU and GAAP regulations..

    So anybody using a digital calculator for money and currencies is committing a crime ?   😀:sick:

    Ben

    Yes. Once you turn your calculator off, it loses the account balances. This goes against GAAP at least!

Viewing 15 posts - 16 through 30 (of 33 total)

You must be logged in to reply to this topic. Login to reply