Tilted Forum Project Discussion Community

Tilted Forum Project Discussion Community (https://thetfp.com/tfp/)
-   Tilted Technology (https://thetfp.com/tfp/tilted-technology/)
-   -   Flat file or relational? (https://thetfp.com/tfp/tilted-technology/93101-flat-file-relational.html)

Jinn 08-08-2005 10:08 AM

Flat file or relational?
 
I just got some contract work progamming a little app for an HR department. As a third-year CS major I'm good, but not great. They want a program that will allow them to (a) create student profiles with name/address/phone/class schedule, (b) track who's working in what room, (c) be able to schedule vacation time for students and still have the rooms automatically assign new sudents, (d) print out schedules for the students and for the rooms, (e) and ideally assign the empty rooms to people with preferences for certain ones.

OK -- background aside; would I get much performance/ease of programming out of using a relational database? Every "assignment" program I've ever written was relatively simple and used a flat-file, so I've got no experience with relational databases beyond CREATE and DROP. Their budget wouldnt afford something like MS SQL, so I'd have to learn AND use mySQL in the two-ish weeks they've given me. There's about 10 rooms and an active payroll around 30-40 students...

So -- would you use a flat file database or a relational databse in my situation?

RAGEAngel9 08-08-2005 01:28 PM

Just a question, if all you know is create and drop (and I'll guess simple select stuff), what good would MSSQL do?

As for me I'd use a the relational because I think you'll start having problems once you get in the corner cases and the exceptions to rules (there are ALWAYS some).

Good luck though.

Jinn 08-08-2005 01:35 PM

The question was moreso whether learning what I need to of a relational database is worth it in the limited time frame of this project (2 weeks) or whether it seems simple enough to work with a flatfile.

CSflim 08-08-2005 06:42 PM

Another third year CS student here. I'm completly new to databases (never even took a class). I started learning MySql over the weekend, and it doesn't seem to be too challenging. So I'd say go for it.

On the other hand, given that you are working with such a small dataset, you could probably get away without using such a database...but it probably wouldn't be as nice a solution.

Wish I could be more helpful...

ratbastid 08-08-2005 09:37 PM

Even if you use flat-file storage, it's relational data. You'll need multiple flat files with relationships between them anyway. Were I you, I'd use the tool that's meant for that.

Besides, it's just as tricky managing file interactions, locks, atomiticity, etc. May as well let the database engine handle all that for you. You'll be glad you have the tools later.

iAmSpartacus 08-08-2005 11:43 PM

yes, a database, because of the whole mess with opening/writing/locking files.

But the real trouble for someone new to databases is creating a good enough database schema. Make sure it is normalized (http://en.wikipedia.org/wiki/Database_normalization), meaning that you do not have redundant data lying around.

Moskie 08-09-2005 02:58 AM

Maybe a.... "low end" database would be the best solution? Something like Access or a free equivalent (don't know of any myself). While not being a great database overall, it will at least help you to get things set up and running, and would be less of a hassle than learning/setting up/using something like MySql.

bendsley 08-09-2005 05:13 AM

If you're going to be using MySQL, I would recommend installing apache and php, then installing something called phpMyadmin. Web-based util to do anything with MySQL.

Thank god you're not MSSQL. MSSQL is built to handle massive amounts of data. This isn't an option, whether you have the budget or not. At my work, our Database server is running MSSQL 2000 Enterprise, has 18 databases on it ranging from 6 to 20 gigs in size. I think this would be a bit of overkill for less than 50 people.

You might try looking at Sourceforge.net to see if someone has anything similar to this. It would be free to use, and might give you some direction to go.

Also, if you use apache, mysql, phpmyadmin option, the easiest distros to use it with I believe are debian and gentoo. Their package management systems allow you just to tell is to install and the distros set it all up for you.

Jinn 08-09-2005 06:19 AM

Thanks guys. I think I'll check out Sourceforge or see if she has Access. The lady I'm developing this for barely knows how to turn on a computer, nonetheless install a DBMS (or Linux). :( Wish me luck! :)

CSflim 08-09-2005 08:08 PM

Quote:

Originally Posted by bendsley
If you're going to be using MySQL, I would recommend installing apache and php, then installing something called phpMyadmin. Web-based util to do anything with MySQL.


Just downloaded phpMyAdmin. It's great! I will definately be using this until I know my way around mySql, so that I am more confident with the command line interface. Thanks for the recommendation!

RAGEAngel9 08-09-2005 08:53 PM

MySQL also has a graphical interface now.
I forget if it's called Admin anymore, but check that out too.

feelgood 08-10-2005 03:30 AM

Another CS student here, yeah I agree with some of the possible solutions here. MySQL is the way to go to easy manage the data if your employer doesn't have Access. In this case, it seems that only a max of 10 rooms, 40 possible students (Max?) makes Access the best database solution for this situation. MySQL is designed to be a larger database.

MS SQL is overkill.

WillyPete 08-12-2005 07:56 AM

You can get MSSQL for free.
Will also PM you to make sure you get it.

MS Visual studio Express editions.
http://lab.msdn.microsoft.com/express/default.aspx

http://lab.msdn.microsoft.com/express/sql/default.aspx

It doesn't sound like you need them for this, but Express doesn't have any of the advanced MSSQL tools.
Quote:

How is SQL Server Express different from other editions of SQL Server 2005?

SQL Server Express is designed to meet the needs of simple applications. Therefore, it is limited to using a single CPU and up to 1GB RAM, with a 4GB maximum database size. SQL Server Express does not include any of the advanced components of SQL Server including Analysis Services, Reporting Services, Data Transformation Services, and Notification Services.

SinisterMotives 08-13-2005 01:56 PM

I missed what language you're writing this in, but if it supports serializing native objects or otherwise dumping native objects to flatfiles, that would be the way to go. If you use CSV flatfiles, not only do you have the same data design problems that you'd have with SQL (normalization, etc.), the programming overhead for reading/writing/updating/deleting lines will be worse than simply learning to use a database server.

trache 08-29-2005 05:59 AM

Watch what you get yourself into. This may blow up into something that could get you a grant or full-time work if people high up see the value of it.

Make sure you find some software that will scale well and program to that end. You never know, if you retain the rights, you could even sell it to other companies and make a small fortune out of it. =)

jrclark 08-29-2005 06:34 AM

You might also consider using SQLite. Free and GPL like MySQL, but it uses regular files for data storage so you don't need to set up a server or mess around with permissions like you do with MySQL. Also, using any language with decent abstraction you should be able to switch between the two fairly easly.

Jinn 08-29-2005 08:01 AM

Quote:

Watch what you get yourself into. This may blow up into something that could get you a grant or full-time work if people high up see the value of it.

Make sure you find some software that will scale well and program to that end. You never know, if you retain the rights, you could even sell it to other companies and make a small fortune out of it. =)
That's what I was hoping for. Alas, the guy flaked out the instant I asked him to give me a detailed specification document of what the program needed to be able to do. Something about his boss being sick, and then it became that he was busy.. etc. I'm done with the project, but thank you guys for your tips. I'll definitely remember these later if I come across a similar database project.

cyrnel 08-29-2005 08:16 AM

JK, for jobs I've been involved with, helping the spec process is part of my work. If nothing else as self-defense. The jobs of any complexity completed from "spec" either started as school assignments or ended in the trash.

If he knew how to properly and realistically spec the project...?

Thorny 09-07-2005 01:37 PM

A note on MS Access: Yeah, the JET engine craps out at 65k records, etc. etc., but the shiny things (forms and other front-end bits) are a snap to throw together, and the standardization of the user interface coupled with it being wrapped up in MS Office makes it an excellent choice.

I use access to build front-ends for big backend databases in mySQL. Anytime the boss wants a new sparkly toy, it's nothing to whip up a new form or report in access built on a mySQL query.

It's almost the best of both worlds, easy Lego frontend, powerful backend. Just that messy connection stuff in the middle.

nukeu666 09-19-2005 01:34 PM

there was a big discussin on flatfile vs relational DB's on slashdot 2 weeks ago
see if u can dig that thread up

Lasereth 09-26-2005 02:55 PM

To continue the discussion, my final CIS course at college is based around the two classes constructing a fully operational IS system for a local camp. The two classes are split into four groups. My team is the database group. Right now we're talking very specifically about relational and flatfile databases. Ours is definitely gonna be relational. Our group has developed level 1 and level 2 entity relationship diagrams. This week we're actually taking the level 2 ERDs and transforming them into Access tables using SQL.

Anyone have tips on doing this? We have to make approximately 50 tables in this database, all with at least 4 attributes. Is there an easier way to do this other than going into Access and manually creating 50 fucking tables? I have 3 days to get these done. :) All tables must be related to each other with three levels of normalization. Thanks for any comments or suggestions.

-Lasereth


All times are GMT -8. The time now is 09:52 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360