Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Which RDBMS?

Which RDBMS?

Scheduled Pinned Locked Moved The Lounge
designcssdatabasemysqlsql-server
59 Posts 19 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H honey the codewitch

    For my part, as long as the database supports SQL92 as a baseline I'm willing to learn some of the DB specific features I need to be effective with it. I just intend to lean heavily on common SQL that works across DBs where I can.

    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

    J Offline
    J Offline
    jschell
    wrote on last edited by
    #42

    honey the codewitch wrote:

    as long as the database supports SQL92

    You would probably need to look really hard to find a SQL one that doesn't do that.

    H P 2 Replies Last reply
    0
    • J jschell

      honey the codewitch wrote:

      as long as the database supports SQL92

      You would probably need to look really hard to find a SQL one that doesn't do that.

      H Offline
      H Offline
      honey the codewitch
      wrote on last edited by
      #43

      Yeah, but I just wanted to be clear, and also eliminate the possibility of any half arsed implementations.

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

      1 Reply Last reply
      0
      • B Bruce Patin

        I have administered a system for 9 years based on PostgreSQL, another system for 17 years based on SQL Server, and maintain a private Linux system based on MySQL. Of all the systems mentioned in this thread, PostgreSQL is my favorite for three main reasons: 1. It is free, unless you want to pay for support. 2. It is object oriented. Writing procedures that work together is very pleasant in PostgreSQL. 3. It is pure, not beset with encumbering licenses from corporations wanting to take over the world. 4. I can and have fairly easily written my own extension for it. In my case, it was my own version of SOUNDEX. For SQL Server: 1. It is not free. 2. When I write a View2 that uses a View1, if View1 is ever updated, View2 does not see the update until I ALTER (with no changes needed) View2. 3. I use the Microsoft OPENQUERY a lot to do joins on remote databases before the data is received on my end. One problem with it is that it does not accept variables of any sort. 4. The interface is generally polished and familiar to me. My main irritation is the line numbering used on error messages that don't match my source without doing arithmetic. For MySQL: 1. It is free up to a point. 2. It has ubiquitous documentation. 3. It is maintained poorly by Oracle, with whom I have had unpleasant communications with an arrogant salesman. 4. It has been patched to use multiple engines in an attempt to get wanted features. I.e., it is a bit of a mess. 5. I think I would rather use MariaDB, but haven't had the opportunity.

        P Offline
        P Offline
        Peter Adam
        wrote on last edited by
        #44

        Quote:

        When I write a View2 that uses a View1, if View1 is ever updated, View2 does not see the update until I ALTER (with no changes needed) View2.

        Do you mean if it is created without [schemabinding](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-view-transact-sql?view=sql-server-ver16#schemabinding)? Postgresql was different, there it was the default. Oh the joys of cascade dropping and recreating views and functions ... (Firebird 1.5 is the same) Oracle is [wise](https://forums.oracle.com/ords/apexds/post/schema-bound-view-9059) . Creating views on views therefore considered a bad practice.

        B 1 Reply Last reply
        0
        • J jschell

          honey the codewitch wrote:

          as long as the database supports SQL92

          You would probably need to look really hard to find a SQL one that doesn't do that.

          P Offline
          P Offline
          PIEBALDconsult
          wrote on last edited by
          #45

          :cough: Cache :cough: (Not fully SQL92 compliant. Worst is lack of order-of-operations.)

          J 1 Reply Last reply
          0
          • J jochance

            When you look for things, look for ANSI SQL. Those are the common bits across the things SQL. There are a few implementation/platform specific things. Like Oracle does 'sequences' and MSSQL has 'identity'. But a big swath of most standard DDL/DML is highly portable. And I'd say what I think really matters in RDBMS is more about set theory than it is about SQL dialects/specifics. Normalized vs denormalized and stuff like how to identify where indexes are going to help or where they may be more costly (in disk space and maintenance) than the ROI (in performance).

            P Offline
            P Offline
            PIEBALDconsult
            wrote on last edited by
            #46

            jochance wrote:

            Oracle does 'sequences' and MSSQL has 'identity'.

            SQL Server has sequences and everyone should use them. No one should ever use identities or other auto-numbers.

            J 1 Reply Last reply
            0
            • P PIEBALDconsult

              jochance wrote:

              Oracle does 'sequences' and MSSQL has 'identity'.

              SQL Server has sequences and everyone should use them. No one should ever use identities or other auto-numbers.

              J Offline
              J Offline
              jochance
              wrote on last edited by
              #47

              Yeah they haven't been around forever on that side but I remember liking them on the other.

              P 1 Reply Last reply
              0
              • J jschell

                honey the codewitch wrote:

                Mysql is another option and might be worth learning

                There are two parts: Programming and Operations. For the first the vast majority between the major SQL databases are similar enough that one can get through it. There can be gotchas for things like the exact way one creates a stored proc but examples allow one to get through it. At least for me one problem with MySQL which I only just recently learned is that it has a history of 'losing' the seed indexes (auto increment). I can't state for certain how significant a problem it is in general but it seemed pretty significant to me that it happened at all. As for Operations I think you need to carefully consider your commitment to handling this for your users. Given your other posts maybe this must be a server only solution but I will say that the cloud solutions eliminate the vast majority of maintenance work and can be very low cost as long as one very carefully throttles everything.

                J Offline
                J Offline
                jochance
                wrote on last edited by
                #48

                >history of 'losing' the seed Was it multi-instanced?

                J 1 Reply Last reply
                0
                • J jochance

                  Yeah they haven't been around forever on that side but I remember liking them on the other.

                  P Offline
                  P Offline
                  PIEBALDconsult
                  wrote on last edited by
                  #49

                  I liked sequences in Oracle enough to implement my own in SQL Server before they were built-in. " When were sequences added to SQL Server? The sequence object was introduced with the rollout of SQL Server 2012. "

                  1 Reply Last reply
                  0
                  • B Bruce Patin

                    I have administered a system for 9 years based on PostgreSQL, another system for 17 years based on SQL Server, and maintain a private Linux system based on MySQL. Of all the systems mentioned in this thread, PostgreSQL is my favorite for three main reasons: 1. It is free, unless you want to pay for support. 2. It is object oriented. Writing procedures that work together is very pleasant in PostgreSQL. 3. It is pure, not beset with encumbering licenses from corporations wanting to take over the world. 4. I can and have fairly easily written my own extension for it. In my case, it was my own version of SOUNDEX. For SQL Server: 1. It is not free. 2. When I write a View2 that uses a View1, if View1 is ever updated, View2 does not see the update until I ALTER (with no changes needed) View2. 3. I use the Microsoft OPENQUERY a lot to do joins on remote databases before the data is received on my end. One problem with it is that it does not accept variables of any sort. 4. The interface is generally polished and familiar to me. My main irritation is the line numbering used on error messages that don't match my source without doing arithmetic. For MySQL: 1. It is free up to a point. 2. It has ubiquitous documentation. 3. It is maintained poorly by Oracle, with whom I have had unpleasant communications with an arrogant salesman. 4. It has been patched to use multiple engines in an attempt to get wanted features. I.e., it is a bit of a mess. 5. I think I would rather use MariaDB, but haven't had the opportunity.

                    P Offline
                    P Offline
                    PIEBALDconsult
                    wrote on last edited by
                    #50

                    Bruce Patin wrote:

                    When I write a View2 that uses a View1, if View1 is ever updated, View2 does not see the update until I ALTER (with no changes needed) View2.

                    Seek ye the sp_refreshview procedure. Use it as needed. At my last job I implemented a procedure which ran it on all views in accordance with their dependencies. It was part of our standard prod deployment process.

                    B 1 Reply Last reply
                    0
                    • H honey the codewitch

                      I come from a Microsoft background. I'm pretty good at managing SQL Server databases, making them parallel and fast, and I know T-SQL quite well. To a lesser degree I know SQL92 but I sometimes get T-SQL mixed into it. I'm trying to decide what RDBMS to run on my Debian VPS. Obviously it's not going to be SQL Server. I expect light traffic. I'm wondering if Postgre might be the best option (most familiar) for me? Or if it would be overkill as I only really need simple stuff for the most part. I don't think I'll need triggers or jobs, for example. Maybe I'd also be taking on too much management. I'd prefer it be something i can set up and forget about more or less. Mysql is another option and might be worth learning because it's so ubiquitous, but my main concern with it is overhead in terms of learning curve. My biggest priority is to reduce that curve. I don't want to spend time learning about a different RDBMS way of doing things wherever I can avoid it. I just don't want to invest the time. I'm not sure which one would be a good fit for my use cases, which are still open ended at this point, except light traffic and simple, smallish datasets. Like I said, by biggest priority is a flattish learning curve, so the closer I can get to MS SQL Server "feel" the happier I'll be. In the alternative, an RDBMS that's fairly automatic with few user facing moving parts outside of SQL/DDL/DML would be okay. I'm not sold on those two offerings either. If someone has a better idea, I'm all for trying it.

                      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #51

                      Support them all and allow the user to choose what he wants. :)

                      1 Reply Last reply
                      0
                      • P PIEBALDconsult

                        Bruce Patin wrote:

                        When I write a View2 that uses a View1, if View1 is ever updated, View2 does not see the update until I ALTER (with no changes needed) View2.

                        Seek ye the sp_refreshview procedure. Use it as needed. At my last job I implemented a procedure which ran it on all views in accordance with their dependencies. It was part of our standard prod deployment process.

                        B Offline
                        B Offline
                        Bruce Patin
                        wrote on last edited by
                        #52

                        Thanks for the info!

                        1 Reply Last reply
                        0
                        • P Peter Adam

                          Quote:

                          When I write a View2 that uses a View1, if View1 is ever updated, View2 does not see the update until I ALTER (with no changes needed) View2.

                          Do you mean if it is created without [schemabinding](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-view-transact-sql?view=sql-server-ver16#schemabinding)? Postgresql was different, there it was the default. Oh the joys of cascade dropping and recreating views and functions ... (Firebird 1.5 is the same) Oracle is [wise](https://forums.oracle.com/ords/apexds/post/schema-bound-view-9059) . Creating views on views therefore considered a bad practice.

                          B Offline
                          B Offline
                          Bruce Patin
                          wrote on last edited by
                          #53

                          I try to avoid views of a view, but it fit my desire for DRY (Don't Repeat Yourself) and laziness. :)

                          1 Reply Last reply
                          0
                          • M MarkTJohnson

                            This is my son My?

                            I’ve given up trying to be calm. However, I am open to feeling slightly less agitated. I’m begging you for the benefit of everyone, don’t be STUPID.

                            S Offline
                            S Offline
                            seismofish
                            wrote on last edited by
                            #54

                            Sorry: I'd misremembered. My is his daughter. I'd always lazily assumed that it was part of the M$-led trend to call everything "my something-or-other": My Documents, My Videos, My SQL - it made sense. It was quite delicious to discover the truth. <°}}}>«<

                            1 Reply Last reply
                            0
                            • P PIEBALDconsult

                              :cough: Cache :cough: (Not fully SQL92 compliant. Worst is lack of order-of-operations.)

                              J Offline
                              J Offline
                              jschell
                              wrote on last edited by
                              #55

                              PIEBALDconsult wrote:

                              cough: Cache :cough:

                              Never heard of it. Not possible to google it with that name either. I don't see it on the following list. And noting that list has a lot of no-SQL solutions and even solutions that are stretching the definition of database. DB-Engines Ranking - popularity ranking of database management systems[^]

                              P 1 Reply Last reply
                              0
                              • J jochance

                                >history of 'losing' the seed Was it multi-instanced?

                                J Offline
                                J Offline
                                jschell
                                wrote on last edited by
                                #56

                                Yes? I didn't research it that much.

                                1 Reply Last reply
                                0
                                • J jschell

                                  PIEBALDconsult wrote:

                                  cough: Cache :cough:

                                  Never heard of it. Not possible to google it with that name either. I don't see it on the following list. And noting that list has a lot of no-SQL solutions and even solutions that are stretching the definition of database. DB-Engines Ranking - popularity ranking of database management systems[^]

                                  P Offline
                                  P Offline
                                  PIEBALDconsult
                                  wrote on last edited by
                                  #57

                                  The Caché Database Engine | Introduction to Caché | Caché & Ensemble 2018.1.4 – 2018.1.9[^] Ah, I see "Caché is a deprecated database engine which is substituted with InterSystems IRIS. It therefore is removed from the DB-Engines Ranking."

                                  J 1 Reply Last reply
                                  0
                                  • P PIEBALDconsult

                                    The Caché Database Engine | Introduction to Caché | Caché & Ensemble 2018.1.4 – 2018.1.9[^] Ah, I see "Caché is a deprecated database engine which is substituted with InterSystems IRIS. It therefore is removed from the DB-Engines Ranking."

                                    J Offline
                                    J Offline
                                    jschell
                                    wrote on last edited by
                                    #58

                                    So on the following page it lies? Or exaggerates a bit? "In addition to standard SQL-92 features" Objects, SQL, and the Unified Data Architecture | Introduction to Caché | Caché & Ensemble 2018.1.4 – 2018.1.9[^]

                                    P 1 Reply Last reply
                                    0
                                    • J jschell

                                      So on the following page it lies? Or exaggerates a bit? "In addition to standard SQL-92 features" Objects, SQL, and the Unified Data Architecture | Introduction to Caché | Caché & Ensemble 2018.1.4 – 2018.1.9[^]

                                      P Offline
                                      P Offline
                                      PIEBALDconsult
                                      wrote on last edited by
                                      #59

                                      Doesn't say SQL-92 compliant, only that it has at least some features. " SQL-92 Compliance The SQL-92 standard is imprecise with regard to arithmetical operator precedence; assumptions on this matter differ amongst SQL implementations. Caché SQL supports two system-wide alternatives for SQL arithmetic operator precedence: By default, Caché SQL parses arithmetic expressions in strict left-to-right order, with no operator precedence. This is the same convention used in ObjectScript. Thus, 3+3*5=30. You can use parentheses to enforce the desired precedence. Thus, 3+(3*5)=18. You can configure Caché SQL to parse arithmetic expressions using ANSI precedence, which gives higher precedence to multiplication and division operators than addition, subtraction, and concatenation operators. Thus, 3+3*5=18. You can use parentheses to override this precedence, where desired. Thus, (3+3)*5=30. Caché SQL supports the complete entry-level SQL-92 standard with the following exceptions: There is no support for adding additional CHECK constraints to a table definition. The SERIALIZABLE isolation level is not supported. Delimited identifiers are not case-sensitive; the standard says that they should be case-sensitive. Within a subquery contained in a HAVING clause, one is supposed to be able to refer to aggregates which are “available” in that HAVING clause. This is not supported. " -- Introduction to Caché SQL | Using Caché SQL | Caché & Ensemble 2018.1.4 – 2018.1.9[^]

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • World
                                      • Users
                                      • Groups