Antes, gostaria de sinalizar que o link para Data Access Object (DAO) está incorreto. Bom, gostaria de destrinchar esses dois conceitos para quem está confuso, como eu fiquei.
Composição: A DAL (Data Access Layer) geralmente é composta por vários DAOs (Data Access Objects). Cada DAO lida com uma entidade específica, e a DAL organiza e coordena esses DAOs para fornecer uma interface de acesso a dados coesa para o restante da aplicação.
Escopo: A DAL tem um escopo mais amplo, abrangendo toda a lógica de acesso a dados da aplicação, enquanto o DAO tem um escopo mais restrito, focado em uma entidade ou um conjunto de entidades.
Portanto, a DAL é uma camada inteira da arquitetura de software, enquanto o DAO encapsula a lógica de acesso a dados para uma entidade específica ou um conjunto de entidades. Além disso, o DAO fornece métodos CRUD (Create, Read, Update, Delete) para manipular os dados de uma entidade.
Bons estudos!