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. Database & SysAdmin
  3. Database
  4. Database design

Database design

Scheduled Pinned Locked Moved Database
databaseoracledesignhelpquestion
30 Posts 9 Posters 0 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.
  • J Jorgen Andersson

    Mycroft Holmes wrote:

    For one, I'm told Oracle does not like multiple databases on a server, the design is to use schemas, I thought this was pure bullsh*t but it came from a DBA so it may be right.

    It's BS. It works quite fine. It's just pointless. Multiple schemas is the way to go.

    Mycroft Holmes wrote:

    For another Oracle is case sensitive when dealing with data so where name = 'Johny' will miss 'johny' IMHO this and the ongoing support requirement enough reason to use another database (sql server).

    And the problem is what? Use a function based index and you got the best of both worlds. Example:

    CREATE INDEX foo_bar_ix
    ON foo (
    LOWER("bar")
    )
    /

    And then you can search the table with Select * from Foo where lower(bar) = lower('Johnny');

    "When did ignorance become a point of view" - Dilbert

    P Offline
    P Offline
    Pete OHanlon
    wrote on last edited by
    #9

    Jörgen Andersson wrote:

    Use a function based index and you got the best of both worlds

    Nice. I didn't know you could do that. A 5 just for that trick.

    Jörgen Andersson wrote:

    It's BS. It works quite fine. It's just pointless

    I suspect he's referring to the load on having multiple instances running as opposed to a single instance running multiple schema.

    I'm not a stalker, I just know things. Oh by the way, you're out of milk.

    Forgive your enemies - it messes with their heads

    My blog | My articles | MoXAML PowerToys | Onyx

    J 1 Reply Last reply
    0
    • P Pete OHanlon

      Jörgen Andersson wrote:

      Use a function based index and you got the best of both worlds

      Nice. I didn't know you could do that. A 5 just for that trick.

      Jörgen Andersson wrote:

      It's BS. It works quite fine. It's just pointless

      I suspect he's referring to the load on having multiple instances running as opposed to a single instance running multiple schema.

      I'm not a stalker, I just know things. Oh by the way, you're out of milk.

      Forgive your enemies - it messes with their heads

      My blog | My articles | MoXAML PowerToys | Onyx

      J Offline
      J Offline
      Jorgen Andersson
      wrote on last edited by
      #10

      Pete O'Hanlon wrote:

      Nice. I didn't know you could do that. A 5 just for that trick.

      That single trick alone is worth the extra trouble of using Oracle

      "When did ignorance become a point of view" - Dilbert

      P 2 Replies Last reply
      0
      • J Jorgen Andersson

        Pete O'Hanlon wrote:

        Nice. I didn't know you could do that. A 5 just for that trick.

        That single trick alone is worth the extra trouble of using Oracle

        "When did ignorance become a point of view" - Dilbert

        P Offline
        P Offline
        Pete OHanlon
        wrote on last edited by
        #11

        Materialised Views. They are worth it as well. Mind you, we have a top notch Oracle DBA to make sure that I don't have to know how to do this.

        I'm not a stalker, I just know things. Oh by the way, you're out of milk.

        Forgive your enemies - it messes with their heads

        My blog | My articles | MoXAML PowerToys | Onyx

        J M 2 Replies Last reply
        0
        • P Pete OHanlon

          Materialised Views. They are worth it as well. Mind you, we have a top notch Oracle DBA to make sure that I don't have to know how to do this.

          I'm not a stalker, I just know things. Oh by the way, you're out of milk.

          Forgive your enemies - it messes with their heads

          My blog | My articles | MoXAML PowerToys | Onyx

          J Offline
          J Offline
          Jorgen Andersson
          wrote on last edited by
          #12

          Pete O'Hanlon wrote:

          Materialised Views. They are worth it as well

          Agreed. But sqlserver has indexed views.

          Pete O'Hanlon wrote:

          Mind you, we have a top notch Oracle DBA to make sure that I don't have to know how to do this.

          I guess that's the major problem with Oracle, that you need one.

          "When did ignorance become a point of view" - Dilbert

          P 1 Reply Last reply
          0
          • J Jorgen Andersson

            Pete O'Hanlon wrote:

            Materialised Views. They are worth it as well

            Agreed. But sqlserver has indexed views.

            Pete O'Hanlon wrote:

            Mind you, we have a top notch Oracle DBA to make sure that I don't have to know how to do this.

            I guess that's the major problem with Oracle, that you need one.

            "When did ignorance become a point of view" - Dilbert

            P Offline
            P Offline
            Pete OHanlon
            wrote on last edited by
            #13

            My biggest problem with materialised views is that we can't use any SDO geometry types in them (something that would be really useful for us).

            I'm not a stalker, I just know things. Oh by the way, you're out of milk.

            Forgive your enemies - it messes with their heads

            My blog | My articles | MoXAML PowerToys | Onyx

            J 1 Reply Last reply
            0
            • V V 0

              Luc Pattyn wrote:

              you could as well store each data item in a separate file...

              Of course! That's it. Let's save everything in a nice (bloated) XML file complete with metadata, triggers, constraints, stored procedures, the works ... see how that works ;P

              V.

              C Offline
              C Offline
              Corporal Agarn
              wrote on last edited by
              #14

              V. wrote:

              nice (bloated) XML

              Know a guy who said XML was the next thing for storing data, a year later he deigned he said it.

              M 1 Reply Last reply
              0
              • P Pete OHanlon

                My biggest problem with materialised views is that we can't use any SDO geometry types in them (something that would be really useful for us).

                I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                Forgive your enemies - it messes with their heads

                My blog | My articles | MoXAML PowerToys | Onyx

                J Offline
                J Offline
                Jorgen Andersson
                wrote on last edited by
                #15

                Are you sure about that? I understand that it's severely limited[^]. But not impossible.

                "When did ignorance become a point of view" - Dilbert

                P 1 Reply Last reply
                0
                • J Jorgen Andersson

                  Are you sure about that? I understand that it's severely limited[^]. But not impossible.

                  "When did ignorance become a point of view" - Dilbert

                  P Offline
                  P Offline
                  Pete OHanlon
                  wrote on last edited by
                  #16

                  It's point 9 that's the killer. We have some data that comes in as x,y coords and we want our materialised views to be spatial, so you get screwed up when you try to construct a location sdo geometry.

                  I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                  Forgive your enemies - it messes with their heads

                  My blog | My articles | MoXAML PowerToys | Onyx

                  J 1 Reply Last reply
                  0
                  • J Jorgen Andersson

                    Mycroft Holmes wrote:

                    For one, I'm told Oracle does not like multiple databases on a server, the design is to use schemas, I thought this was pure bullsh*t but it came from a DBA so it may be right.

                    It's BS. It works quite fine. It's just pointless. Multiple schemas is the way to go.

                    Mycroft Holmes wrote:

                    For another Oracle is case sensitive when dealing with data so where name = 'Johny' will miss 'johny' IMHO this and the ongoing support requirement enough reason to use another database (sql server).

                    And the problem is what? Use a function based index and you got the best of both worlds. Example:

                    CREATE INDEX foo_bar_ix
                    ON foo (
                    LOWER("bar")
                    )
                    /

                    And then you can search the table with Select * from Foo where lower(bar) = lower('Johnny');

                    "When did ignorance become a point of view" - Dilbert

                    M Offline
                    M Offline
                    Mycroft Holmes
                    wrote on last edited by
                    #17

                    Jörgen Andersson wrote:

                    It's BS. It works quite fine. It's just pointless. Multiple schemas is the way to go.

                    I suspected as much, it was probably a DBA enforcing the schema requirement.

                    Jörgen Andersson wrote:

                    And then you can search the table with Select * from Foo where lower(bar) = lower('Johnny');

                    I will need to do some work to understand the relevance on the function based index. However I'm used to SS where case is irrelevant when comparing text, there for the lower() is not required. This will continue to bite me until I get used to it. My real peeve with Oracle is the all upper case objects, I hate underscores so my names look like FILENAMEDSOMETHING instead of FileNamedSomeThing.

                    Never underestimate the power of human stupidity RAH

                    J 1 Reply Last reply
                    0
                    • P Pete OHanlon

                      Materialised Views. They are worth it as well. Mind you, we have a top notch Oracle DBA to make sure that I don't have to know how to do this.

                      I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                      Forgive your enemies - it messes with their heads

                      My blog | My articles | MoXAML PowerToys | Onyx

                      M Offline
                      M Offline
                      Mycroft Holmes
                      wrote on last edited by
                      #18

                      Pete O'Hanlon wrote:

                      we have a top notch Oracle DBA to make sure that I don't have to know how to do this.

                      I wish. Difficult to find and expensive to retain. I'm in the throes of getting to know Oracle again after more than a decade in SS, I think SS must be like VB, lots of work to make it easy for the developer. Then I aggregated 150m records in minutes where SS was taking hours and remembered why we are using Oracle.

                      Never underestimate the power of human stupidity RAH

                      1 Reply Last reply
                      0
                      • C Corporal Agarn

                        V. wrote:

                        nice (bloated) XML

                        Know a guy who said XML was the next thing for storing data, a year later he deigned he said it.

                        M Offline
                        M Offline
                        Mycroft Holmes
                        wrote on last edited by
                        #19

                        I know a company who used xml as the format for etl between major banking systems, stupidest decision they ever made, it worked well with the test system then we introduced them to a production size file.

                        Never underestimate the power of human stupidity RAH

                        1 Reply Last reply
                        0
                        • V V 0

                          Guys, In a few days I have a meeting internally about redesigning the Oracle database from scratch. The downside is that none of the meeting participants is a real DBA (IMHO we should hire a DBA consultant for advice), but we do have some knowledge about Oracle. one of my major concerns is that someone opted for multiple smaller databases (that should communicate if necessary) I can think of multiple reasons why this is a bad idea, but I couldn't find any satisfactory links to proove it. (Maybe it isn't that bad after all?) I did write some stuff down already (never delete, but rather 'inactivate', use history mechanism etc..) In short: What do I need to watch out for when designing a new database ? If it can help, we're an insurance company, but we also do call taking (could result in some tables having rapid changes when a lot of calls come in) Also we will start with adding one project to it, then a second, a third etc... so no one time porting to another database. Many thanks in advance.

                          V.

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

                          V. wrote:

                          What do I need to watch out for when designing a new database ?

                          Managers. I've never seen Oracle used that way (though I've seen it done with Rdb), but I'd need more detail. Are you talking multiple databases, but on the same box and disks (spindles)? I don't think you'd gain much. Can you write SQL statements that cross database boundaries like you can with SQL Server? Can you link servers like you can with SQL Server?

                          1 Reply Last reply
                          0
                          • M Mycroft Holmes

                            Jörgen Andersson wrote:

                            It's BS. It works quite fine. It's just pointless. Multiple schemas is the way to go.

                            I suspected as much, it was probably a DBA enforcing the schema requirement.

                            Jörgen Andersson wrote:

                            And then you can search the table with Select * from Foo where lower(bar) = lower('Johnny');

                            I will need to do some work to understand the relevance on the function based index. However I'm used to SS where case is irrelevant when comparing text, there for the lower() is not required. This will continue to bite me until I get used to it. My real peeve with Oracle is the all upper case objects, I hate underscores so my names look like FILENAMEDSOMETHING instead of FileNamedSomeThing.

                            Never underestimate the power of human stupidity RAH

                            J Offline
                            J Offline
                            Jorgen Andersson
                            wrote on last edited by
                            #21

                            Mycroft Holmes wrote:

                            I will need to do some work to understand the relevance on the function based index

                            Say for example that you have a log table where one of the columns has the date datatype which carries both date and time, and you want to get all occurences from one specific day. A query for trunc(logdate) would make a full table scan, unless you have an index on trunc(logdate). Another example, You have a really large table where you have a status column, and the only value you ever make a search on is 'PENDING'. Then an index on "Case When status = 'PENDING' Then 1 Else Null" will be very small and fast, as only those entries where the status is PENDING will be stored in the index as null values are not indexed. The backside is that function based indexes is costing more to maintain.

                            "When did ignorance become a point of view" - Dilbert

                            M 1 Reply Last reply
                            0
                            • P Pete OHanlon

                              It's point 9 that's the killer. We have some data that comes in as x,y coords and we want our materialised views to be spatial, so you get screwed up when you try to construct a location sdo geometry.

                              I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                              Forgive your enemies - it messes with their heads

                              My blog | My articles | MoXAML PowerToys | Onyx

                              J Offline
                              J Offline
                              Jorgen Andersson
                              wrote on last edited by
                              #22

                              Spatial is totally out of my line of work, but I would have thought point one or ten would have been the real killer. I'm curious, what would have been the purpose of the mv if it had been possible?

                              "When did ignorance become a point of view" - Dilbert

                              P 1 Reply Last reply
                              0
                              • J Jorgen Andersson

                                Mycroft Holmes wrote:

                                I will need to do some work to understand the relevance on the function based index

                                Say for example that you have a log table where one of the columns has the date datatype which carries both date and time, and you want to get all occurences from one specific day. A query for trunc(logdate) would make a full table scan, unless you have an index on trunc(logdate). Another example, You have a really large table where you have a status column, and the only value you ever make a search on is 'PENDING'. Then an index on "Case When status = 'PENDING' Then 1 Else Null" will be very small and fast, as only those entries where the status is PENDING will be stored in the index as null values are not indexed. The backside is that function based indexes is costing more to maintain.

                                "When did ignorance become a point of view" - Dilbert

                                M Offline
                                M Offline
                                Mycroft Holmes
                                wrote on last edited by
                                #23

                                Thanks for that Jorgen While the ability to do these tweaks is very good, the requirement to do them is painful. I beging to understand why a full time DBA is a requirement, I consider this type of tuning beyond the requirements of a developer.

                                Never underestimate the power of human stupidity RAH

                                J 1 Reply Last reply
                                0
                                • M Mycroft Holmes

                                  Thanks for that Jorgen While the ability to do these tweaks is very good, the requirement to do them is painful. I beging to understand why a full time DBA is a requirement, I consider this type of tuning beyond the requirements of a developer.

                                  Never underestimate the power of human stupidity RAH

                                  J Offline
                                  J Offline
                                  Jorgen Andersson
                                  wrote on last edited by
                                  #24

                                  Mycroft Holmes wrote:

                                  , the requirement to do them is painful

                                  Having to use Oracle?

                                  Mycroft Holmes wrote:

                                  beyond the requirements of a developer

                                  The learning threshold is indeed high, especially if you come from the world of SqlServer. BTW, I liked your comparison with VB, had it been more catchy I would have stolen it for a sig ;)

                                  "When did ignorance become a point of view" - Dilbert

                                  1 Reply Last reply
                                  0
                                  • J Jorgen Andersson

                                    Spatial is totally out of my line of work, but I would have thought point one or ten would have been the real killer. I'm curious, what would have been the purpose of the mv if it had been possible?

                                    "When did ignorance become a point of view" - Dilbert

                                    P Offline
                                    P Offline
                                    Pete OHanlon
                                    wrote on last edited by
                                    #25

                                    We are reliant on a separate supplier for a standardised gazetteer implementation in one particular project (the data's provided by the government), but we need it in a different format (a spatial one for spatial searches). We need the view to be updated on import of data into the master gazetteer. We've worked around the issue, but it would be nice not to have to work around the issue.

                                    I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                                    Forgive your enemies - it messes with their heads

                                    My blog | My articles | MoXAML PowerToys | Onyx

                                    J 1 Reply Last reply
                                    0
                                    • J Jorgen Andersson

                                      Pete O'Hanlon wrote:

                                      Nice. I didn't know you could do that. A 5 just for that trick.

                                      That single trick alone is worth the extra trouble of using Oracle

                                      "When did ignorance become a point of view" - Dilbert

                                      P Offline
                                      P Offline
                                      Pete OHanlon
                                      wrote on last edited by
                                      #26

                                      I've balanced out the univote.

                                      I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                                      Forgive your enemies - it messes with their heads

                                      My blog | My articles | MoXAML PowerToys | Onyx

                                      J 1 Reply Last reply
                                      0
                                      • P Pete OHanlon

                                        I've balanced out the univote.

                                        I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                                        Forgive your enemies - it messes with their heads

                                        My blog | My articles | MoXAML PowerToys | Onyx

                                        J Offline
                                        J Offline
                                        Jorgen Andersson
                                        wrote on last edited by
                                        #27

                                        Oh, hadn't noticed. Thanks!

                                        "When did ignorance become a point of view" - Dilbert

                                        1 Reply Last reply
                                        0
                                        • V V 0

                                          Guys, In a few days I have a meeting internally about redesigning the Oracle database from scratch. The downside is that none of the meeting participants is a real DBA (IMHO we should hire a DBA consultant for advice), but we do have some knowledge about Oracle. one of my major concerns is that someone opted for multiple smaller databases (that should communicate if necessary) I can think of multiple reasons why this is a bad idea, but I couldn't find any satisfactory links to proove it. (Maybe it isn't that bad after all?) I did write some stuff down already (never delete, but rather 'inactivate', use history mechanism etc..) In short: What do I need to watch out for when designing a new database ? If it can help, we're an insurance company, but we also do call taking (could result in some tables having rapid changes when a lot of calls come in) Also we will start with adding one project to it, then a second, a third etc... so no one time porting to another database. Many thanks in advance.

                                          V.

                                          D Offline
                                          D Offline
                                          David Mujica
                                          wrote on last edited by
                                          #28

                                          Add this to your pile ... Consider how the multiple "smaller" databases are related, do they need to be backed up at the same time to maintain consistency? How are you going to handle upgrades to these many, small databases ? Do they need to be upgraded at the same time ? One DB design consideration is to add a qualifier like "ACCOUNT_ID" to the beginning of each primary key, this would let you support many customers in a single database (schema) and still keep the data separate. (This typically applies to a SAAS (software as a Service) configuration. Think of a payroll company with hundreds of clients; each client doesn't have his own database, but each record is identified with a specified ID for the client). Without knowing any of your details, I would make a list of the current limitations and a wish list of what you would want to achieve ... this should help you in your design. If you need the advice of a true Oracle expert, contact me privately at david_mujica@yahoo.com and I can put you in touch with a consultant I've used in the past. He is a former Oracle employee with over 20 years of Oracle performance and tuning expertise. Highly recommended. Good luck with your project. :thumbsup:

                                          V 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