Tilted Forum Project Discussion Community  

Go Back   Tilted Forum Project Discussion Community > Interests > Tilted Technology


 
 
LinkBack Thread Tools
Old 08-08-2005, 10:08 AM   #1 (permalink)
Lover - Protector - Teacher
 
Jinn's Avatar
 
Location: Seattle, WA
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?
__________________
"I'm typing on a computer of science, which is being sent by science wires to a little science server where you can access it. I'm not typing on a computer of philosophy or religion or whatever other thing you think can be used to understand the universe because they're a poor substitute in the role of understanding the universe which exists independent from ourselves." - Willravel
Jinn is offline  
Old 08-08-2005, 01:28 PM   #2 (permalink)
Insane
 
Location: Vermont
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.
RAGEAngel9 is offline  
Old 08-08-2005, 01:35 PM   #3 (permalink)
Lover - Protector - Teacher
 
Jinn's Avatar
 
Location: Seattle, WA
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.
__________________
"I'm typing on a computer of science, which is being sent by science wires to a little science server where you can access it. I'm not typing on a computer of philosophy or religion or whatever other thing you think can be used to understand the universe because they're a poor substitute in the role of understanding the universe which exists independent from ourselves." - Willravel
Jinn is offline  
Old 08-08-2005, 06:42 PM   #4 (permalink)
Sky Piercer
 
CSflim's Avatar
 
Location: Ireland
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...
__________________
CSflim is offline  
Old 08-08-2005, 09:37 PM   #5 (permalink)
Darth Papa
 
ratbastid's Avatar
 
Location: Yonder
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.
ratbastid is offline  
Old 08-08-2005, 11:43 PM   #6 (permalink)
Tilted
 
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.
__________________
"Over here in my country , im a real sex object. Whenever I ask girls for sex ... they object." - taken from bash.org
iAmSpartacus is offline  
Old 08-09-2005, 02:58 AM   #7 (permalink)
Pure Chewing Satisfaction
 
Moskie's Avatar
 
Location: can i use bbcode [i]here[/i]?
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.
__________________
Greetings and salutations.
Moskie is offline  
Old 08-09-2005, 05:13 AM   #8 (permalink)
Professional Loafer
 
bendsley's Avatar
 
Location: texas
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.
__________________
"You hear the one about the fella who died, went to the pearly gates? St. Peter let him in. Sees a guy in a suit making a closing argument. Says, "Who's that?" St. Peter says, "Oh, that's God. Thinks he's Denny Crane."

Last edited by bendsley; 08-09-2005 at 05:17 AM..
bendsley is offline  
Old 08-09-2005, 06:19 AM   #9 (permalink)
Lover - Protector - Teacher
 
Jinn's Avatar
 
Location: Seattle, WA
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!
__________________
"I'm typing on a computer of science, which is being sent by science wires to a little science server where you can access it. I'm not typing on a computer of philosophy or religion or whatever other thing you think can be used to understand the universe because they're a poor substitute in the role of understanding the universe which exists independent from ourselves." - Willravel
Jinn is offline  
Old 08-09-2005, 08:08 PM   #10 (permalink)
Sky Piercer
 
CSflim's Avatar
 
Location: Ireland
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!
__________________
CSflim is offline  
Old 08-09-2005, 08:53 PM   #11 (permalink)
Insane
 
Location: Vermont
MySQL also has a graphical interface now.
I forget if it's called Admin anymore, but check that out too.
RAGEAngel9 is offline  
Old 08-10-2005, 03:30 AM   #12 (permalink)
Free Mars!
 
feelgood's Avatar
 
Location: I dunno, there's white people around me saying "eh" all the time
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.
__________________
Looking out the window, that's an act of war. Staring at my shoes, that's an act of war. Committing an act of war? Oh you better believe that's an act of war
feelgood is offline  
Old 08-12-2005, 07:56 AM   #13 (permalink)
Addict
 
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.
WillyPete is offline  
Old 08-13-2005, 01:56 PM   #14 (permalink)
Junkie
 
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.
SinisterMotives is offline  
Old 08-29-2005, 05:59 AM   #15 (permalink)
Insane
 
trache's Avatar
 
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. =)
__________________
"You looked at me as if I was eating runny eggs in slow motion." - Gord Downie of The Tragically Hip
trache is offline  
Old 08-29-2005, 06:34 AM   #16 (permalink)
Upright
 
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.
jrclark is offline  
Old 08-29-2005, 08:01 AM   #17 (permalink)
Lover - Protector - Teacher
 
Jinn's Avatar
 
Location: Seattle, WA
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.
__________________
"I'm typing on a computer of science, which is being sent by science wires to a little science server where you can access it. I'm not typing on a computer of philosophy or religion or whatever other thing you think can be used to understand the universe because they're a poor substitute in the role of understanding the universe which exists independent from ourselves." - Willravel
Jinn is offline  
Old 08-29-2005, 08:16 AM   #18 (permalink)
Adequate
 
cyrnel's Avatar
 
Location: In my angry-dome.
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...?
__________________
There are a vast number of people who are uninformed and heavily propagandized, but fundamentally decent. The propaganda that inundates them is effective when unchallenged, but much of it goes only skin deep. If they can be brought to raise questions and apply their decent instincts and basic intelligence, many people quickly escape the confines of the doctrinal system and are willing to do something to help others who are really suffering and oppressed." -Manufacturing Consent: Noam Chomsky and the Media, p. 195
cyrnel is offline  
Old 09-07-2005, 01:37 PM   #19 (permalink)
Upright
 
Location: Ohio
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.
Thorny is offline  
Old 09-19-2005, 01:34 PM   #20 (permalink)
Junkie
 
nukeu666's Avatar
 
Location: India
there was a big discussin on flatfile vs relational DB's on slashdot 2 weeks ago
see if u can dig that thread up
__________________
Why did the Comp. Engineer get X-mas and Halloween mixed up?
Because Oct(31) == Dec(25)
nukeu666 is offline  
Old 09-26-2005, 02:55 PM   #21 (permalink)
Knight of the Old Republic
 
Lasereth's Avatar
 
Location: Winston-Salem, NC
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
__________________
"A Darwinian attacks his theory, seeking to find flaws. An ID believer defends his theory, seeking to conceal flaws." -Roger Ebert
Lasereth is offline  
 

Tags
file, flat, relational


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -8. The time now is 03:18 AM.

Tilted Forum Project

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, 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