In general, Oracle Database SID included in Service name. For Ex: SID: orcl & Service Name: orcl.mycomp.com
So, It is possible to define the service name without including SID Ex: mydb.mycomp.com
for database SID is orcl
.
The SID is the identifier for the database, but the service_names are the names for the services that it provides, and can be functional rather than technical.
So you might have a database that provides invoice services, sales services, message services, and set up service_name appropriately. This has the advantage that the listener can then choose the appropriate database to connect to based on the requested service, and a single service can be available from multiple databases (via replication).
You can also move services from one database to another, and monitor service activity through v$session and v$sql.
Have a look at this as well: http://www.ardentperf.com/pub/services-schneider07.pdf