Service came later after SID. Adding a service layer to in a way of encapsulating SID from connections.
– A database can dynamically register with a listener using one or more service names. In fact, more than one database can register with a listener using the same service name
– SID = unique name of the INSTANCE (eg the oracle process running on the machine). Oracle considers the “Database” to the be files.
– Service Name = alias to an INSTANCE (or many instances). The main purpose of this is if you are running a cluster, the client can say “connect me to SALES.acme.com”, the DBA can on the fly change it.