Results 1 to 12 of 12
  1. #1
    Join Date
    Jul 2007
    Posts
    4

    Beginner asking what language to code in

    I'm programming an application in C#. I'll need to create a database to use in the application for it to work well. An obstacle is that I have almost no experience with creating databases and using them for coding purposes.

    I've come here to ask you knowledgeable guys for advice on what database system/language I should use for my purpose. I'll describe what I'm looking for and then I'll await your recommendation on what system/language I should use.

    I'm looking for a database that:
    -is easy to use with C# and
    -is fast at answering queries

    The types of queries I'll want to run are very simple. They will always search the database by row (I will only make searches based on one variable) and for that specific row (never several rows at once) I will be querying for the value of columns.

    What language fits this description of a fast database that is easy to use with C# and doesn't need to be able to handle complex queries?

  2. #2
    Join Date
    Apr 2002
    Location
    Toronto, Canada
    Posts
    20,002
    all commonly used databases fit those criteria, so just pick one

    if you want a suggestion, pick mysql
    rudy.ca | @rudydotca
    Buy my SitePoint book: Simply SQL

  3. #3
    Join Date
    Jul 2007
    Posts
    4
    Quote Originally Posted by r937
    all commonly used databases fit those criteria, so just pick one

    if you want a suggestion, pick mysql
    OK. Thanks! Would I lose out by just using a huge XML file for "database"?

  4. #4
    Join Date
    Apr 2002
    Location
    Toronto, Canada
    Posts
    20,002
    that will work, provided the xml file isn't too big to be held in memory

    disclaimer: i have not used xml for storage, my impression is that it works well as a data transport mechanism across computers
    rudy.ca | @rudydotca
    Buy my SitePoint book: Simply SQL

  5. #5
    Join Date
    Feb 2004
    Location
    One Flump in One Place
    Posts
    14,912
    Quote Originally Posted by r937
    disclaimer: i have not used xml for storage, my impression is that it works well as a data transport mechanism across computers
    My experience & impressions almost to the word (I would swap the last word with "applications" but there you go)
    Testimonial:
    pootle flump
    ur codings are working excelent.

  6. #6
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    Id agree virtually any database will do what you want.
    however there are other criteria
    ..if you want to deploy the data on a web application then MySQL makes great sense
    ..if you think the application is going to be used in a multi user environment then a server product is almost certainly required (although Microsoft JET often wrongly called Access) may be appropriate
    ..if you are selling this as a commercial product then staying within the Microsoft stable (that means either SQL server or JET/Access) may make more sense... I suspect there are going to be far more C# applications using Microsoft db's than non microsoft Db's. But there is no reason why you couldn't have a choice of data backends if you so wished
    ..if its an exercise to tart up your CV.. then almost certainly stay within the Microsoft stable.

    I don't think you will see any significant performance difference between each of the server products.. you will see a significant cost difference between the various offerings.If you anticipate very few concerrent users then I wouldn't rule out JET/Access.. although it runs out of grunt somewhere around 25 users, depending on how good or bad your development & design skills are.

    so short of knowing what your applciation is its very difficult to say waht is appropriate.... its a bit like saying what car should I use to drive from A to B... virtually all vehicles will get you form A to B in abstract terms.. but if A or B is off road then you probably need an AWD vehicle, if you need to impress then a flashy car may be appropriate, if you need to keep the costs down then a second hand saloon may be appropriate... it depneds on what you want to achieve
    I'd rather be riding on the Tiger 800 or the Norton

  7. #7
    Join Date
    Jul 2007
    Posts
    4
    Thanks to all of you for your helpful posts! To healdem: None of the points you bring up apply in my case. Thank you for going out of your way to give me all that advice though.

    The only thing I need is what I wrote in my original post. Fast + easy with C#. It sounds like XML should work just as well as a database so I'll start with that and see how it works performance wise. If it turns out to be too slow I'll try PostgreSQL since it is free and I have at least some very limited experience with it. At least those are my conclutions for now.

  8. #8
    Join Date
    Jun 2004
    Location
    Arizona, USA
    Posts
    1,848
    If you're not updating the underlying data much, and there's not an issue with holding it all in RAM, then I would suggest just loading it into an ADO recordset, and index the fields you'll be using for searches. You'll get excellent sort/"query" performance with the rs.sort and rs.find methods.
    Lou
    使大吃一惊
    "Lisa, in this house, we obey the laws of thermodynamics!" - Homer Simpson
    "I have my standards. They may be low, but I have them!" - Bette Middler
    "It's a book about a Spanish guy named Manual. You should read it." - Dilbert


  9. #9
    Join Date
    Jul 2007
    Posts
    4
    Quote Originally Posted by loquin
    If you're not updating the underlying data much, and there's not an issue with holding it all in RAM, then I would suggest just loading it into an ADO recordset, and index the fields you'll be using for searches. You'll get excellent sort/"query" performance with the rs.sort and rs.find methods.
    That sounds interesting. I'll look into it.

  10. #10
    Join Date
    Jul 2007
    Posts
    4
    Healdem, thank you very much for your suggestions...

    But, I want to ask a question:
    How about ORACLE? I think it is more appropriate to learn ORACLE if someone need to add the skill to his/her CV.

    That is just what I think, and of course I can be wrong.

    Regards

  11. #11
    Join Date
    Jun 2004
    Location
    Arizona, USA
    Posts
    1,848
    Quote Originally Posted by shadowdancer
    Healdem, thank you very much for your suggestions...

    But, I want to ask a question:
    How about ORACLE? I think it is more appropriate to learn ORACLE if someone need to add the skill to his/her CV.

    That is just what I think, and of course I can be wrong.

    Regards
    per the OP, they "have almost no experience creating databases ..."

    I would think that Oracle would NOT be the database of choice for a database novice.
    Lou
    使大吃一惊
    "Lisa, in this house, we obey the laws of thermodynamics!" - Homer Simpson
    "I have my standards. They may be low, but I have them!" - Bette Middler
    "It's a book about a Spanish guy named Manual. You should read it." - Dilbert


  12. #12
    Join Date
    Nov 2004
    Location
    out on a limb
    Posts
    13,692
    from what little information in the original post persoanlly I'd go with MySQL.. its fast on queries, it scaleable, its cheap (well free), there are perfectly acceptable interfaces to .NET.. especailly if you use VS 2005.. they even come straight out of the box.

    but thats because Ive used MySQL more frequently over the last couple of years, so my learning/relearning curve on getting the DB side working is that much lower. that doesn't rule out what I think would be the other server product SQL Server Express.. or whatever the cut down version is called these days. It all depends

    But Id agree from waht I hear Oracle, DB2 and the other server products are inappropriate. Postgres could be a contender.

    of the file based systems SQL Lite, Access & Filemaker could be contenders.. heck oven the open office db product could be a contender. if the application is going to have few concurrent users and complex queries are going to be kept to a minimum, the network is pretty clear, querioes are only going to be on indexed fields..... then a file based SQL may be appropriate.
    I'd rather be riding on the Tiger 800 or the Norton

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •