---
title: Core Data model
framework: coredata
role: collectionGroup
role_heading: API Collection
path: coredata/core-data-model
---

# Core Data model

Describe your app’s object structure.

## Overview

Overview In most cases, you describe your app’s data model using Xcode’s data model editor. NSManagedObjectModel represents the .xcdatamodeld file in your project’s source list. This is where you define entities that you use to generate NSManagedObject subclasses for Core Data to manage. The entities you create are NSEntityDescription instances. Entities’ properties are subclasses of NSPropertyDescription, namely NSAttributeDescription for attributes, NSRelationshipDescription for relationships, and NSFetchedPropertyDescription for fetched properties. The various attribute types are enumerated in NSAttributeType.

## Topics

### Objects and entities

- [NSManagedObject](coredata/nsmanagedobject.md)
- [NSEntityDescription](coredata/nsentitydescription.md)

### Standard attributes

- [NSPropertyDescription](coredata/nspropertydescription.md)
- [NSAttributeDescription](coredata/nsattributedescription.md)
- [NSAttributeType](coredata/nsattributetype.md)
- [NSRelationshipDescription](coredata/nsrelationshipdescription.md)

### Computed attributes

- [NSCompositeAttributeDescription](coredata/nscompositeattributedescription.md)
- [NSDerivedAttributeDescription](coredata/nsderivedattributedescription.md)

### Fetched properties

- [NSFetchedPropertyDescription](coredata/nsfetchedpropertydescription.md)

## See Also

### Data modeling

- [Modeling data](coredata/modeling-data.md)
