OT: Lern-yerself Databases.

I now have a spare computer on to which I have installed Ubuntu. I would like to learn about databases. Can anyone recommend some websites / books / subject areas, etc?

Thanks in advance,

David Paste.

Reply to
David Paste
Loading thread data ...

A bit more of an idea of what you want to do would be helpful. There is a wide divergence of view as to what constitutes a database.

What do you make of this link?

formatting link

Reply to
newshound

You could always install MUMPS.

Reply to
Huge

For a complete beginner you could of course use the Libre Office database function - installed by default I believe in many flavours of Ubuntu

For documentation but you could start with

formatting link

but I suspect much more web help available - here is a good start

formatting link

Reply to
news

If you have one eye on future employability, you might consider installing MySQL (if it's not installed already). It's a fairly traditional relational database, and is being used commercially. I think Oracle is also an option on Ubuntu.

If you're interested in relational databases, you ought to look at topics such as normalisation and referential integrity, which are good principles but unfortunately not always properly implemented in real world systems. People like Joe Celko and Chris Date are worth reading.

You might also want to learn about ways that object-oriented programming languages such as C# and Java access databases, and the mapping layers used such as Hibernate and Entity Framework.

Reply to
LumpHammer

another approach would be to install MySQL and use one of the many web resources on that...

Depends much on what kind of activities you had in mind.

Reply to
John Rumm

Is there a good graphy/reporty thing for that?

I keep wanting to do: Take table A (CSV from some webpage or something) Run query producing a list of results Xref with table B (different CSV), make a new query Plot some aspect of the combined query in interesting way

I've been hacking this up in Python/matplotlib, but complex dynamic data structures in Python aren't particularly pleasant.

This feels like the kind of problem SQL would solve (sqlite perhaps), but I don't know what to use for the output.

Don't even think about suggesting MS Access ;-)

Theo

Reply to
Theo Markettos

DIY using PHP.

Reply to
Mike Barnes

Hmm, interesting idea. There's a variety of graphing packages for PHP, but they're mostly 'plot a graph from a database on my website'. While I'm more like 'take a complex dataset, mess about with it, find an interesting trend, export the result data to plot up in a proper package'. Call it Small Data if you like :)

It's more about the messing about with the data than the prettiness of the result. It's also more about complex data queries than stats - so I'm not sure if something like R is the thing (and definitely not Matlab).

Theo

Reply to
Theo Markettos

SQL is the back-end only.

You can connect to a SQL database from, well, almost anything - a web page, a custom-written application, an ODBC driver into a spreadsheet or a word-processed doc - but you might need to do a bit of work to make it "look nice".

So all that'll be in your SQL back end - be it Oracle or MySQL or whatever - is the data ("table A"). Everything else is what you do with it on the front end.

Trouble is that Access and the like have confuzzled people as to what's "the database", and what's the nice pretty point-and-drool front to it.

Depending on what you want to do with the data, you might even manage just fine by ignoring the db and chucking a spreadsheet together. A page with "table A"'s data. A page with "table B"'s data. Another page pulling ranges for'ard, doing whatever to 'em, then drawing some graphs from 'em.

Reply to
Adrian

Thanks for the link, I'll have a good look at that later on.

Well, many years ago I worked in the accounts dept of a car sales place which had a central database of all the cars in stock - nothing you wouldn't expect - fields (if that's the correct nomenclature) for colour, engine, fuel, etc, etc. Now, the managers ran off a copy to a spreadsheet of all sales stock each day to which they had access to all fields, and then it was my job to make a copy of that SS, but with a few crucial bits of information missing, for the sales staff to use.

This daily sales SS then had a moster copy on the network which was altered when any details were changed or sold. The SS could only be used by one person at a time which was frequently inconveniant.

My idle brain now wonders if a DB would have been better than a SS but with the info dished up by the DB different for the managers & staff. As I understand it, this is possible, as is having more than one person access the DB at any one time.

This is basically what I would like to have a go at.

Cheers.

Reply to
David Paste

I'm going to mention PostgreSQL at this point. Similar to MySQL but some more hard core features - and does cool stuff like handling transactions that include DDL (Data Definition) statements like modify/create table, as well as the more traditional DML (like, insert/update/delete).

Also supports very powerful triggers and procedures that can be programmed in a variety of languages.

MySQL has a perfectly good place, but one should know about the main contender too :)

Traditionally, MySQL was all about speed whilst being a bit sloppy. Postgres was about features, being ACID compliant and bombproof but slow.

As time passes, the gap closes between them.

Reply to
Tim Watts

You can get free versions of oracle and M$ sql server (and mysql) for windows so why would you (or anyone else) want to use access?

Reply to
dennis

If you're only going to have a few accesses per sec, max, and only a few users, you don't really even need a server based solution. In which case try SQLite.

Reply to
Tim Streater

One of the nice aspects of relational DBs is the ability to create logical "views" of of any combination of the actual tables that are held, without affecting the physical structure or layout of the actual tables. So you can have multiple ways of looking at the same data but organised exactly how you need it for any given task.

Reply to
John Rumm

I seem to remember in another thread you sais you had Ubuntu.

SQLite will enable you to do all of the above with a command line interface.

formatting link
formatting link

Reply to
djc

Sqlite command line shell to import CSV into a db. Python to query and do clever stuff with the results.

Reply to
djc

nah stick a LAMP on it and learn mySQL/PHP

and join the correct usenet groups.

Loadsa fun are databases.

Reply to
The Natural Philosopher

if by plot you mean graphics than spreadsheet is what you want or be perpared for some serious hackery.

well the way the gridwatch does graphs is to query te database for a time series and use pngwriter to create them.

That creates a png file.

source code is on the site somewhere.

Reply to
The Natural Philosopher

DB good for accessing a selcetion of A LOT of data quickly under program control

SS better for 'playing' with more limited datasets and throwing graphs together.

Sounds like libre office calc would be best for you.

Reply to
The Natural Philosopher

HomeOwnersHub website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.