Is it ok to not a have child theme and just create a theme from scratch?
Yes of course, you'll just have to cover alot of ground, most developers work from a code base, so even if you're not using a child theme, it does help save alot of time by building on top of a theme framework(there's even minimalist frameworks available). That's not to say you can't code one from the ground-up, you might just be in for more work than you realise.
I personally use a child theme, because it means i have a code base that i can change simply by adding a file or a few lines CSS/HTML, ie. the child theme can selectively override templates or design elements it needs, and leave the rest to be inherited from the parent.
When a request is made, be it for a category or date archive(or whatever else), WP will check if your child theme has a specific template in place for that request, if it does, WP includes the template from the child theme, else it passes the buck to the parent theme.
So let's say for a moment that you request a category listing of posts for the category cakes.
WordPress will first check to see if the child theme has a
category-slug.php(where slug is an applicable category slug) and if not checks the parent theme for a file with the same name. If neither exist WordPress continues working it's way through the template hierarchy(see image below), first checking if the child theme has an applicable template to render the category archive, and again if not checks with the parent theme(moving down the template hierarchy as it goes).
The only file required in a child theme is the stylesheet, style.css, anything else is purely optional and only needed if you want to change/restyle that particular kind of request, again be it, category archives, date archives, the index, whatever..
It's explained quite well on the child theme's codex page, worth a read if you've not yet done so.