The main component of data storage is a database, which is a compilation of tables with typed columns. SQL Server supports different data types, including main types such as Integer, Float, Decimal, Char, Varchar, binary, Text among others. It also allows user-defined composite types to be defined and use. SQL Server also makes server data available as virtual tables and views. A database can also hold other objects including views, stored procedures, index and constraints, in addition to tables, along with a business log. A SQL Server database can contain a utmost of 231 objects, and can span multiple OS-level files with a maximum file size of 220 TB. The data in the database are stored in main data files with an extension .mdf. Secondary data files, identified with an .ndf extension, are used to store elective metadata. Log files are recognized with the .ldf extension.