For this a good approach is to use the excellent Dynamic Routing system in Craft.
Solution #1
First create your section "Artists":

After that go to "Settings" -> "Routes" and add this Dynamic Route:

When this is done all URL requests made to "/artists/-whatever-" will be routed to the "artists/_entry" template. Now you can create your link like this:
<a href="/artists/{{ entry.slug }}/{{ entry.firstNameField }}/{{ entry.lastNameField }}">Artist Name</a>
Your URL might now look like this rendered:
<a href="/artists/ladygaga/firstname/lastname">Lady Gaga</a>
In your "_entry" template you can now fetch your entry using this code:
{% set entry = craft.entries.section('artists').slug(craft.request.getSegment(2)).first() %}
Artist Name: {{ entry.title }}
Solution #2
If you instead want the URL to be "/artists/firstname-slug" you can alter the Dynamic Route slightly and use the Twig filter "split" to get the slug from the URL.
First change the Dynamic Route to:
artists/*
Then update your template "_entry" with the following code:
{% set segments = craft.request.getSegment(2)|split('-') %}
{% set entry = craft.entries.section('pages').slug(segments[1]).first() %}
Title: {{ entry.title }}
Your URL can now be "/artists/{{ entry.firstNameField }}-{{ entry.slug }}" and the template code will take care of the rest.