JoeTech.com



### Contact | About Joe Tech | Advertise | Get Reviewed | Disclosure | Tools
Search:

Databases Part 1 – How To Select The Right Database

Posted in Code,How To by Joe Colburn on the April 22nd, 2013

So you want to build a data driven web site but don’t know what database to use? Maybe it’s an IOS or Android application and not a website at all. Either way, if you collect data, you’re going to want to determine the best way to store it for later. In this article, I’ll talk about what a database is, how to choose the right one, and what comes next.

What Is A Database?

By definition, a database (also commonly referred to as “DB”) is a collection of organized data. For example, if you have written down a list of all the CDs you have in your music collection, a database to represent that might include a table for artists and a table for albums and you could even link them together. This organization of data gives us the ability to work with data in just about every way imaginable, which is so much better than just a list. Examples of this can be seen right here on JoeTech.com. Articles on the main page of the site are shown newest first by sorting the article data, the search option at the top brings back specific articles by using MySQL searching and indexing tools, and your comment on this article gets stored in a comments table so that it can be retrieved later. There’s a lot to know about how databases work, but let’s start with some basics.

Types Of Databases

New databases (like MapD) pop up all the time, and it would be impossible to cover them all. In an effort to keep things simple, I’ll stick to some of the more popular DBs in use.

Some common object oriented databases that have been around for quite a while include MySQL, PostgreSQL, SQLite, Microsoft SQL Server, Microsoft Access, Oracle. Each database system has its own features and flaws. Oracle is well known for its enterprise stability and support while SQLite is fast, free, and well adapted to smaller data sets. MySQL and Microsoft SQL are extremely popular for use with PHP or ASP/.NET applications, respectively.

In what sounds like competition for the traditional database systems, NoSQL databases have emerged in recent years and have grown quickly in popularity. Known for their ability to easily scale horizontally and store a lot of simple data (like Tweets), NoSQL databases often compromise by lacking a lot of functionality like normalizing across a large number of tables. Some popular NoSQL DBs include MongoDB, memcached, Redis, and CouchDB and can often be easier to get started with due to their simplicity.

A third category of databases that is coming into the light but not a highly used is NewSQL. This category includes new DB technologies that allow for highly scalable databases without the loss of critical functionality for broad data sets. These are perhaps not as critical when you’re starting out, so I won’t go into further detail.

How To Choose The Right Database

Choosing the right database can be paramount to the success of your project and the larger the project, the more important your choice will be. With so many choices, how do you pick the right one?

Before anything else, you need to know your goal. What kind of data – and how much of it – do you expect to store? One thing I look at is how many tables I plan on storing. If it’s just a few, I might default to a NoSQL solution, but if it’s a bunch, I’ll look to a traditional object-oriented DB.

After narrowing down the category of database to use, you’ll need to pick the best one for the job, your budget, etc. If you plan to house your site on a Windows server and program it in .NET, MS SQL is probably a good bet. If you want free and need to have everything on a Linux server with your code in PHP, MySQL is often the way to go. When the client (or your company) demands support contracts and has a budget to deplete, Oracle could be a contender. Look at the specific features and pitfalls of each database before making a decision.

What Comes Next?

Knowing the right database to use is only the beginning. Depending on your hosting environment, you may need to take steps to get the database software installed and then you should:

- Think through all the data you plan to store – every little detail
- Design a database schema – more on schemas in Part 2
- Normalize, index, and otherwise optimize your database – Part 3?
- Connect to your database from your site’s code
- Secure against hacking and injections

As you can see, there’s a lot to consider when it comes to storing data for your website or application, but if you take it one step at a time, it’s not so bad. Stay tuned for additional pieces to the database puzzle.

If you liked this Joe Tech article, subscribe to the RSS feed for daily updates.

Submit this story to:

Learn About The Web And Programming

Posted in Code,Computers,How To,web by Joe Colburn on the April 21st, 2013

Look around you… I mean online. Everything you see is powered by some form of web technology. Every day, you interface, indirectly, with MySQL databases, PHP code, and HTML that makes it all show up. Almost everything you touch on the web could be created by you, too, with some time and the right education. Last week, I talked about a slew of places to learn online for free and I know a lot of you are interested in how webpages are created, what programming languages exist, and the technology that drives the web. If you’re worries about where to start or things being too technical, don’t worry. My goal is to introduce more of this kind of information on this blog and help others learn what I know.

So what does all this mean? It means I’m planning to bring you much of my regular content (reviews, guest articles, etc.) as well as new content that explains how stuff works in plain language so everyone can follow along. But first, I need to know what you want to want to learn more about. You can suggest anything, but here’s a list of example topics to get you started:

- Basic HTML
- Glossary of web terms
- How to series (create a web page, set up a form, accept payments online)
- Beginners PHP
- Working with frameworks
- Software for programmers
- How the web works
- What’s a 404 or 403?

Choose from a topic above or offer up your own idea. Give me your request in a comment below and I’ll do my best to accommodate. In addition, loyal viewers may have noticed something new on the right side of the page recently. While in Vegas last January, I met up with a company called Wizpert who connects experts with people who need help. If you ever have a programming or technology question, click the little orange “W” on the right to connect with me on Skype. I’m here to help.

If you liked this Joe Tech article, subscribe to the RSS feed for daily updates.

Submit this story to:

How To Get A Free Education

Posted in Computers by Joe Colburn on the April 13th, 2013

With a recent career shift, I’ve found myself in search of all the knowledge I can absorb and I am truly amazed by all the free resources there are to learn on the Internet. My focus is on web programming, but I’ll include information about learning in other areas as well. Before we start, don’t forget to bookmark this page so you can always get back to the list of sites easily.

Know Your Focus

Like anything, learning takes time and if you’re like me, that time is very valuable. You will end up browsing through courses before you land on one, but it will help if you can minimize the time spent looking for the right courses and maximize the time spent learning. Before you begin your search, ask yourself three things:

  • What is my goal? (think generally)
  • How much time will I devote to this every week?
  • Will I learn better with a structured lengthy course or smaller sessions?

Just to give you an example, here are my answers:

  • Goal: Improve my web development knowledge and start learning about data science
  • Time: 10-15(max) hours a week
  • Structured or Fast: I’m better with fast learning but will try a structured course where needed.

Spend 10 minutes answering these questions and you’ll spend a lot less time finding your online courses.

Find The Free Classes

This may seem like the hardest part, but it’s pretty simple, really. I’ve listed some of what I’ve found below, although this is by no means an exhaustive list:

MIT Open Courseware
Yes, you read that correctly. You can get an MIT education for free. Using the built-in course finder, you can select from a variety of disciplines to choose from one of their (currently) 2,150 courses. With this many courses, a recognized and respected name, and a class structure eerily similar to being there, this may be the closest you’ll get to an expensive education without spending a dime. You may not get the degree, but you’ll have the tools to go out and get the experience.

Coursera
Like MIT, Coursera offers real courses online in a number of areas, making it a great fit for those looking to fill diverse learning needs. Coursera also provides the comfort of the established institution doing the teaching. The difference is that they bring together instructors and courses from many universities around the world. I haven’t started my first class yet, so I can’t speak to the experience, but in 17 days, I embark on a new learning adventure here and I’m excited about it.

ALISON
Although ALISON is also fresh on my radar, it’s one I’m looking closely at for it’s approach that stands apart from other free education sites. ALISON offers the standard list of free courses but also offers free certificate and diploma courses and from the looks of it, they’re pretty popular. In many industries, the certificate or diploma, itself is required just to get an interview. Whether either from ALISON will be treated the same as one from a brick-and-mortar university is something I don’t know, but it’s better than none at all, I’m sure.

edX
Another site offering certificate-wielding courses is edX. With free courses from places like Harvard, Berkeley, and Rice, both the certificate and the learning experience, itself promise to be a great free find.

Udacity
A much smaller player in the field, Udacity has a limited selection of courses, but free is free.

MOOC2Degree
MOOC2Degree, which in part stands for “massive open online course” has a different approach. Mixing the free learning practice with a sales hook, universities pick a number of classes from various degree paths that they provide online for free to give students a jump start. After taking the free classes, the goal is for the student to continue along the degree path which includes paying for classes as you would historically. The benefit is that you actually earn credit for the free classes, too.

Academic Earth
Also somewhat limited, AE is more of a central repository of lecture videos. At a quick glance, I didn’t see any follow-up tests, but I did find a link to communicate with the instructor and ask questions. If you’re the type to watch, learn ask, and move on, this might be worth a look.

Khan Academy
One of the first such sites I learned about, Khan Academy offers quick learning sessions in programming, art, and a few other topics. Being more community based like Reddit University, Khan makes it easy for anyone to teach others as well.

iTunes University
I tried iTunes University some time ago with my iPhone and did not like it at first, although I’m now armed with an iPad and ready to give it another shot. A great benefit of iTunes U is the ability to download all the course video and material and take the class offline from wherever. Mostly reading and watching videos, it’s easy to participate from your iPad on a plane or road trip, while on the couch, etc.

University of Reddit
For those unfamiliar, Reddit is a site full of links, fun stuff, and general social and political discussions. As a software engineer, I have a couple areas on Reddit bookmarked for daily reading. It helps me keep up-to-date with industry talk. Although I’ve not used the sister site University of Reddit myself, it looks like a great source of free learning with a broad range of topics from computing to art to math to philosophy. Provided by other active Reddit users, each course receives upvotes and downvotes just like Reddit links, helping the most useful content bubble up to the top. This is definitely worth checking out and on my list for this weekend.

Code School
This is NOT a free learning site, but they do have some trial courses you can take and the courses are small and easy to complete in a single sitting. I check back now and then and take the free ones as the come up. I’ve taken a few and really like how they work, but I haven’t pulled the trigger on the $25 per month yet. For $25 per month, you can take all the courses you want, so when I have a large break in my other learning endeavours, I will likely pay my $25 and get as much as I can out of a month or two. Courses focus largely on web development, mostly with JavaScript, Ruby, HTML/CSS, and IOS. Sadly, you can’t search through courses, but browsing all courses or selecting a learning path is pretty intuitive.

Treehouse
Also not free, but worth a mention, Treehouse’s courses are structured much like Code School and it’s easy to complete one or two a night after work. Like Code School, Treehouse also has paths like Websites, Business, IOS, Programming, Android and similarly, you can pick and choose individual courses to your liking. I learned one day of a special which included all the courses I can handle (the Gold plan) in 12 months for about $50. This is normally $490 (or $49 per month), but If I were paying full price, I would opt for the Silver plan at $25 per month which is also unlimited courses but does not include other workshops and perks that the Gold plan includes. Taking a couple courses every other night at Treehouse, it would be well worth the $25 per month in my opinion.

Keep Searching

When I started to write this article, I began with a bookmarked list of seven sites I had looked at. With a couple quick searches, this list grew to 12 in no time. If you don’t find what you’re looking for on any of these sites, search Google and ask around. I’m sure there’s more I’ve missed and free online education is a topic that is only gaining in momentum with new sites turning up all the time.

I’d love to hear about any sites I’ve missed and your experiences with free education, so comment below. More importantly, I wrote this article because I’m asked about these sites every time I mention that I’m taking a free class online. Please share this list on Facebook or via email and help keep the free education movement growing.

If you liked this Joe Tech article, subscribe to the RSS feed for daily updates.

Submit this story to:

Next Page »

Sponsor




Events

Find me at any of the following events.

No upcoming events

Sponsors

Dedicated server hosting by Codero

led lighting

  • DocWhovian
  • Advertise Here

Need Help


Friends and Sponsors

 
Popular Posts
 • How to Crack the Account Password on Any Operating System
 • How To Send An Anonymous Text Or MMS Message
 • How To Replace A Dell Inspiron Laptop Heat Sink And Fan Assembly
 
More Popular Posts
 • 5 Geeky Ways to Say “I Love You” on Valentine’s Day
 • My Sony Vaio VGN-SZ430N Hard Drive Crashed and How I Fixed It
 • Swiss Mini Gun is Tiny, Lethal, and Expensive
 
© 2006 - 2013

Joe Colburn