I have attempted to motivate myself to understand databases several occasions now, but I am getting a difficult time seeing where they are used. I do not inflict web design nor any scientific computing, same with there everywhere where I possibly could reasonably make use of a database?
I see that you're an embedded CS student, a minimum of because of your profile. I wager the majority of the projects you've done might have no practical use for any database, because of software/hardware restrictions oftentimes.
However, relational databases are used on certain small/embedded platforms now. Take a look at SQLite, the industry small relational database engine designed in C that's highly suited to embedded PC/PC-104 projects. This database can be used on various embedded systems, including mobile phones and Audio players. A prominent embedded Linux proponent carried out some investigation around the database and determined it appropriate to be used in soft-realtime programs.
Databases are for storing data. Should you application must store date in some manner, or retrieve it from the convenient location, you would then generally make use of a database.
If you're presently storing your computer data inside a flat file, you're losing all the advantages of the dwelling of the database. RDBMS (relational database management systems) assist you to structure your computer data to avoid redundancy (duplicate data), ensure data integrity and take into account scalability. They will also help with permitting multiple customers to gain access to the information while staying away from corruption. Most RDBMS offer some type of transactional access. Which means that you are able to group procedures up into logical transactions that has to be either fully effective, or fail without altering data. This is actually useful if you wish to update parts of the data, and it is important they stay in sync. Should you make use of a flat file and also the sysytem crashed in the center of you upgrading the file you'd be playing invalid/from sync data. By having an RDBMS no change could be made before the transaction in general completed effectively.
In a simple level, you can describe just about any data storage mechanism like a database. Anything you are presently storing details are might be referred to like a database. Now you ask ,, would your computer data storage enjoy the extra services supplied by a conventional RDBMS.
During my programs I'll frequently use flat/xml files to keep fundamental config information, but anything complex or multi user goes straight inside a database, even when it is a local SQL Express database file.
Databases (I am speculating you are speaking about relational DBs) is going to be helpful if you need to store data inside a STRUCTURED way, getting relations between elements saved and continued disk.
The concept is the fact that you'll have the ability to manipulate this data and keep things CONSISTENT.
- How does one process single Tb data set made from : menus <--> dishes <--> elements ?
- How would you remove a dish from the given menu ?
- How you can add just a cost to some menu without spinning all of your data as well as your code base ?
- All of this and keep fast-pathways in your data in order to not see clearly all from disk to locate menus more costly than X ? (they are known as index) ?
- All this permitting two customers to gain access to (ie read, modify) the information at the same time ?
Some options, for example storing an XML file (having a structure) or perhaps a memory dump on disk, or some type of serialization will need load everything to memory, process it with structure and dump everything to disk to modify your data and keep it organized.
After that, you should use different databases, (relational in-memory or on disk, in process or otherwise, document based for example couchdb, ...) with various scalability / simplicity tradeoffs, varying from sqlite to Oracle/postgresql.
The approach I'd propose would be to learn exactly what a relational DB is really, comprehend it, play wit it a bit (use sqlite) then attempt to experience how it might affect confirmed problem.
Just realize that opera browser bookmarks, apple iphone data or even the after sales on most enterprise applications (booking tickets) are saved like a database ...
Should you ever saved a listing of things not number-related in stand out and used some filters, you should maybe used a DB with this information.
Develop a simple web-based Contact manager that stores names, emails, telephone numbers etc. That will enable you to get acquainted with the mechanics of utilizing a database without getting crazy complicated.