Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialTony Tomczeszyn
Courses Plus Student 2,919 PointsDatabases
I love databases, and always had built them with MS Access. Well I am getting more experience as a front end dev and wanted to know what is the difference between a Web Based database and something like MS Access. I understand that you build a Web Base one using SQL, and and then maybe use something like Access or use Python to write a code for a nice GUI. But the company I work for does not want their database on the internet. I though I read somewhere that you can use say SQL on our server, and that the GUI would be built using your internet browser, and that it would not have to go onto or use the internet. Is this correct? I would just like to build a better database, that would be in house and still have the nice GUI for people to enter and pull information from.
3 Answers
Jennifer Nordell
Treehouse TeacherHi there, Tony Tomczeszyn! I have used Microsoft Access for several years. I love it and it's great for my own personal use. In fact, it handles even multiple users accessing and manipulating the data simultaneously. To get the new data all you really need to do is click a refresh button. But keep in mind that it also uses SQL. SQL is not really a new language for you, it's just that Microsoft Access has built-in functions to make writing those SQL statements easier for people who really know nothing about SQL. If you select one of your queries that you currently have written (to fill out a report or whatever) and click the "Design View", you will have a list where you can pick the table, click some boxes, change the fields and it will pull out that data for you. But if you click the "SQL" view, it will show you the SQL that was built by you picking those options. You've been using SQL all this time. The primary difference here is that Microsoft Access has a bunch of wizards and whatnot to help with that.
You can write a fairly nice GUI using Microsoft Access, but even that is sort of limited. And some users are going to need to have Access installed. You will also have some users who see things like the list of tables etc which makes for a less clean UI. For instance, if I have a user who only needs to enter and edit customer information, I probably don't need them to also see the list of tables. Ideally, you'd just want to have the form for them to enter new customers and call it a day. You could also use the web version of that, but then that sort of goes against their policy of having the database on the internet.
However, using HTML, CSS, JavaScript and the backend language of your choice (C#, Java, PHP, Python, JavaScript), you can hook up a very nice UI to that database so that the logged in user sees only what they're supposed to see. Yes, the database will need to be centrally located, but you could have it on an internal server not accessible from the outside world. That's likely something you would need to talk to your IT department about. And the truly great thing about it is that your users really wouldn't need any more than login credentials and a web browser
Hope this helps!
Tony Tomczeszyn
Courses Plus Student 2,919 PointsThank you Jennifer Nordell, that was the best answer and well informative that I have ever been given. It seems that most of the time I get a stare. Is there a SQL that you would recommend that I could put on my server. I think the others all required you to be on the internet. I like Python, so I wouldn't mind something that could work with that. Again thank you so much for your help.
Jennifer Nordell
Treehouse TeacherKeep in mind that SQL is a sort of language for talking with databases. Even Microsft Access (as mentioned before) also uses it. It stands for "Structured Query Language". And, as you likely know, "query" simply means a question. You're questioning the database for information that matches your criteria. There are quite a few databases to choose from including NoSQL databases, which actually stands for Not Only SQL.
You might consider MySQL (by Microsoft) and Maria.db. SQL has different "flavors". Some databases will differ very slightly in their SQL syntax but not by much, from my experience. In Microsoft Access, their GUI is the hook into the database. It is the place you see and connect with the database. You are taking front-end development now. You can design a website on the front end that allows users to interact with that site and move from form to form or page to page. But when they click that button (to enter a new customer for example), it will be the back-end that makes the updates to the database and tells them that their changes were saved. This makes the database utterly transparent to the user. They can access it, read from it, but they never really see it mapped out the way you and I see it in Access.
Since you are so interested in the back-end and database side of things, I might suggest that once you finish the front-end track that you take a course or two in Python and JavaScript. See if one of those strikes your fancy. If not, you might also try C#, PHP, or Java.
Best of luck to you!
Michael Hulet
47,913 PointsAlso, while many databases communicate over HTTP, you don't have to put them on a publicly-facing network. 2 processes can speak HTTP to each other while both being on the same system without having to hit the network. That's something for your sysadmin to work out, though
Tony Tomczeszyn
Courses Plus Student 2,919 PointsCool, thank you both so much for the great advice.