
|
View Full Version : Cost of SQL design
wseyller 02-23-2005, 03:42 PM I have need a database for my website. I have two choices. Either learning myself or hiring someone to do it for me. I would like a SQL database designed and code it into my site with some search utilities. I would like to find out if the cost would be practical for me. Also I would not know where to look to find someone that could preform those services.
stormraven 02-23-2005, 04:54 PM You could look on the "Employment Offers and Requests" forum here on WHT; lots of folks there can either do it for you or tell you who to go to to get it done.
You might want to have a good idea of what you want your database application to *do* - store real estate listings, movie reviews, whatever - before asking someone to do it for you. ;)
wseyller 02-23-2005, 05:02 PM thanks, I do know for the most part exactly what I want it to do.
monaghan 02-23-2005, 07:20 PM You also need to know sufficient about the database you're intersted in to know that the solution you buy is actually going to work well :)
It's very easy to chuck together a database with a simple web front end that works well, however when the volumes grow, then you notice the inefficient design and it's too late.
The biggest problem I've had with supporting databases in a production environment is bad design. It's then down to us DBA's to resolve the issues needed to keep the application running. If it's a small database on a lightly loaded server, then you can get away with bad design, but as the size or server load growns, then you'll notice how well / bad the system actually is.
daejuanj 02-24-2005, 07:06 PM The biggest problem I've had with supporting databases in a production environment is bad design.
Agreed, there are a lot of "black art"(mainly in the DDL) skills that make for a good design pattern.
Also, optimizing the actual DB software to your specific needs goes a long way.
innova 02-27-2005, 02:41 AM I dont really understand what you guys are all saying.
As DBA's, you could hardly be more vague.. 'bad design'?
What you mean is lack of normalization.
The point of a relational database, among other things, is to make the data as generically accessible as possible. I leave it to you to read up on database normalization.. it shoulds really difficult and scary, but in real life it makes sense.
Here is a great article to help you get started:
http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/
In general, devshed is your friend :)
I also STRONGLY recommend the book:
Beginning MySQL Database Design and Optimization
It illustrates a ton of newbie mistakes, and explains at length why things like using the proper column types matter (INT versus TINYINT versus CHAR/VARCHAR, etc). Its a very good read.
Agreed, there are a lot of "black art"(mainly in the DDL)
I disagree. Strongly. There is nothing magical about it, these are principles that were derived in the 1960's.
optimizing the actual DB software to your specific needs goes a long way.
Again, disagree. Proper design will allow you to use any database backend you choose. Again, the design of your tables and choosing the proper column types will payoff more than any database software tweaking.
If you like, I would be happy to have a crack at setting up your initial SQL schema (think of it as a database layout for the database to read).
monaghan 02-27-2005, 04:07 AM What you mean is lack of normalization.
No, what I mean is bad design !
Normalization deals with the table structure, "bad design" covers all aspects including the front end app accessing the data.
A crap query on a fully normalized schema is still going to perform badly, over indexing is still going to have an impact on insertion of data.
Select * from ... is still going to pull back all the data regardless of how well you've done the design of the tables.
No where clause will return all of the result set regardless of whether you choose to use it in your app.
Where you choose to process the data, for example having a custom function running within the context of the SQL engine to manipulate the data, or pulling the data set to the app, then running the same function within the app
The list goes on.
I fully agree the physical structure of the database tables (schema) needs to be right, but that alone will not make an efficient design :)
xelav 02-27-2005, 10:53 AM All depends on your needs. If it's simple news system, maybe with categories or something etc. and you know, you can learn how to do it and have skills - then try it yourself. In other variants it's better to give project to professionals.
About cost - are you saing about just database creation, or also some frontend to it, for example web-interface, or some software. Cost could be hourly based - price - it's depends on programmers skills, reputation etc.
innova 02-27-2005, 12:57 PM Sorry Monaghan, I thought you were coming at it from a different angle. Wholeheartedly agreed.
Another thing to consider is that you will likely want mysql to do as much work as possible in terms of preparing the data for your app.
It should usually be less expensive (in system resource use) to ask Mysql to prepare only the data you need in a query than to code around it in your frontend application. This is also very useful when it comes time to switch to another frontend, like from php to perl. By having mysql do all the work, it simplifies your frontend coding significantly and can help your work be less error-prone.
I guess what I am saying is this: If you want to learn, I think I would spend the most time really getting to know mysql and how to ask it for what you want. If your goal is to hand someone a set of specifications and let them work it out, ask in the advertising forums, rentacoder, and other places.
daejuanj 03-07-2005, 03:33 PM Originally posted by innova
I dont really understand what you guys are all saying.
As DBA's, you could hardly be more vague.. 'bad design'?
What you mean is lack of normalization.
The point of a relational database, among other things, is to make the data as generically accessible as possible. I leave it to you to read up on database normalization.. it shoulds really difficult and scary, but in real life it makes sense.
Here is a great article to help you get started:
http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/
In general, devshed is your friend :)
I also STRONGLY recommend the book:
Beginning MySQL Database Design and Optimization
It illustrates a ton of newbie mistakes, and explains at length why things like using the proper column types matter (INT versus TINYINT versus CHAR/VARCHAR, etc). Its a very good read.
I disagree. Strongly. There is nothing magical about it, these are principles that were derived in the 1960's.
Again, disagree. Proper design will allow you to use any database backend you choose. Again, the design of your tables and choosing the proper column types will payoff more than any database software tweaking.
If you like, I would be happy to have a crack at setting up your initial SQL schema (think of it as a database layout for the database to read).
You misinterpreted what I said, when I say "black art", I mean design patterns take time learning. Didn't say it was magic.:rolleyes:
Again, I said tweaking your configurations doesn't hurt, never said it was all you need.
monaghan 03-07-2005, 03:45 PM Originally posted by daejuanj
You misinterpreted what I said, when I say "black art", I mean design patterns take time learning. Didn't say it was magic.:rolleyes:
Again, I said tweaking your configurations doesn't hurt, never said it was all you need.
If you're going to work with databases, then you need to take the time to understand how they work in order to get the best out of them. If not, all you're going to do is complain when the system's not fast enough or your provider asks you to move on or buy a bigger package due to excessive CPU use.
daejuanj 03-08-2005, 08:04 PM Originally posted by monaghan
If you're going to work with databases, then you need to take the time to understand how they work in order to get the best out of them. If not, all you're going to do is complain when the system's not fast enough or your provider asks you to move on or buy a bigger package due to excessive CPU use.
Right, thats my point I was trying to make.
daegon 03-10-2005, 08:31 PM Originally posted by wseyller
I have need a database for my website. I have two choices. Either learning myself or hiring someone to do it for me. I would like a SQL database designed and code it into my site with some search utilities. I would like to find out if the cost would be practical for me. Also I would not know where to look to find someone that could preform those services.
It alllllll depends on what you're making. Simple web sites with a dynamic back end are pretty simple if you've got experience programming. PHP and MySQL is a great way to make simpler systems pretty easily, imho. If you're getting more complex, or handling a far larger volume, I suggest .NET and SQL Server 2000 (but at that point, you're better off actually hiring someone to do it).
Costs can vary a lot, but maybe you should look for software already made that lets you tweak it to your needs? It could save you a lot of time and money. Custom solutions imo are only really needed when you need something /custom/.
monaghan 03-11-2005, 03:55 AM You've got to be doing quite a big project if a .NET/SQL2K solution is needed to outperform a MySQL solution.
For simple(ish) flat single table / a few joined tables, then MySQL is your best option as it's so much cheaper (even if you buy the commercial license rather than GPL)
SQL2K is a great database (I work with it most days), but is real overkill for most hosting applications. Later versions of MySQL now offer things like views & stored procedures so are a realistic alternative. If you want to stay free, then look at PostGres as this has evolved into a very mature product over the last few years.
I've completed the certification process in both SQL2K and MySQL, both will do you average web hosting requirement. MySQL is probably the most popular solution for small companies / private customers and the bigger customers tend to like the paid solutions like MSSQL or Oracle
JustinH 03-11-2005, 04:31 AM Since when did MSSQL become grand poopah of RDBMS? In performance comparisons, DB2 and Oracle almost ALWAYS provide better results. Furthermore, both DB2 and Oracle are multiple platform... and thus, you can avoid using a horrid language base (.NET) with your application.
That said... I'd hire someone if this is a serious application, in other words, if you are looking at an overall average of 50 concurrent mysql connections, don't even touch this. If it's for a site that's just starting out, start small and do it yourself, and bring in a programmer when the revenue gives valid reason for it.
|