I installed BIND and I am aware that it is required to have at least two NS(Name Server) records in zone-file. This is true also for reverse-zone files. I understand that NS records point to authoritative name servers, but why do I need to have those records also in the authoritative name server itself? Basically they would point to the same servers where the zone file is configured.
NS Records in the zone file specify which hosts are authoritive for the domain. One of the NS records will point back to the server you are querying once recursion has provided the NS records to get you to the authoritive Name Servers.
NS records are pointer records for more information about a zone (non-authoritive NS records). When you query an authoritive DNS server it responds with NS records - one of which will be itsself in the Additional section of the response. When it provides a response for your A/MX/SRV/TXT etc record query - the response is considered authoritive.
The NS records are also used by the DNS master to send notifies to all of the slaves (NS records in the zone file) when the SOA Serial number is updated (zone data has changed). If NS records are not present, notifies will not be sent to the slaves causing DNS data to fall out of sync.
RFC 1035 requires that zones have an NS record in the local zone file. http://www.zytrax.com/books/dns/apd/rfc1035.txt
More detailed explanation about NS records and their relevance in DNS Infrastructure. http://www.zytrax.com/books/dns/ch8/ns.html
A similar question was also asked on ServerFault https://serverfault.com/questions/255241/why-do-dns-zone-files-require-ns-records