Difference and relationship between View, Page, Panel and Mini Panel?
Views are used to create lists of things.

One difficulty with Views, is that when used on their own, views tend to become fairly static. Let's say that you have a view that lists "Friends of user X". In your view, you must know define where to find user X. This will mostly be either a contextual filter, possibly using a relationship, but whatever configuration you have, it becomes a static part of the view. This leads us to Pages.

Pages provide the rest of your site with Context. Continuing on the example above, a Page can figure out how to find user X at run-time, and then feed that as an argument to other components, such as the friend view. This means you can re-use the same view, and all the rules that go with it, on both the same page more than once, but also across pages, and having it base it's results on different users every time.

If you want to show the browsing users friends, and my best friends friends, on the same page, you tell the current Page about those two contexts, use the same View twice, and give each instance of that View, a different context as argument.

A page on it's own however, doesn't have a visible interface, neither back- nor front-end, which is were Panels comes in.

Panels Provides a GUI on top of Panels, allowing you to configure Page manager, as well as adding further functionality to Pages, such as render caching.

Mini Panels Essentially embeds an "small" Panel rendering into another Panel. You can think of it as a very intelligent version of a block, capable of defining layouts, requiring parameters, and more.