Most software engineering books do not include a discussion on databases. If this approach is good? Let us find out.
Software engineering is the process which helps in building software products. For building a software product, first of all you need to have software requirement specification. These software requirement specifications specify what the software product will do. Based on these software requirement specification, software engineers create a design of the software product. This software design is implemented by writing source code. The executable machine code from this source code is your software product. This software product is tested to find out if it has any defects. If any defects are found out then they are fixed. Fully tested software product can then be used by users.
We can see that software engineering includes the processes of software requirement specification building, designing the software product, implementing the software design and finally testing the software product. Now what about databases? Most software products use databases. Databases are specialized area and a separate computer science discipline can be devoted entirely to study database engine design.
However since software products use databases, you need to create database design in form of Entity Relationship diagrams. This database design does not include database engine design. It concerns creating database schemas, database tables, indexes etc. Once you have these required database objects and entities created then you can connect the database to your business logic and your software product will be able to use the database.
Since databases are integral part of most of software products being built today, I strongly feel that database programming and database design should be always included in software engineering courses.