It depends on which tye of 'select' you are talking about.
If it is 'select * from ' then it is not a DML because it does not 'Modify' any data. But 'select .. into' format is considered a DML.
since it is not a transaction, you do not need a commit to get the results. We need not use a transaction commit when we use a select statement.
Hope that helps.