Numerous Configuration Item records exist without a Name. What are these CI records, and why are they there?
Release or Environment
Discovery and Service Mapping will create CIs with empty name field.
Discovery will scan switches/routers and write their information to cmdb_ci. Not all components of the switch and routers will have names, such as Switch Ports, and Next-hop routing rules, Exit routing interfaces, etc... There is no relevant value to use as a name in these cases.
Service Mapping can also create Cis without name. These are normally Endpoints (some endpoints have names but it's not a must) and Qualifiers.
For some Endpoints such as cmdb_ci_endpoint_weblogic_module and cmdb_ci_endopint_iis it uses the application name or friendly name instead of name. This is why their names does not appear in cmdb_ci.
Examples of CI classes where empty names are to be expected:
MS SQL Server Endpoint
Oracle DB Endpoint
SSAS for MSSQL Endpoint
Hidden Connection Qualifier
Manual Connection Qualifier
Traffic Based Connection Qualifier
File System To Storage Path
Exit Interface Routing Rule
Next Hop Routing Rule
Switch Forwarding Rule
Leave the records as they are. This is expected behavior, and the records are almost certainly not duplicates.
If these records are included in lists you don't want them to appear in, then consider applying filters to the lists based on excluding certain classes, or reference qualifiers to the reference fields where CIs are selected.
Warning: Don't set the name field as Unique in the Dictionary, as this will prevent insertions at the SQL database level, and you will break Discovery/Service Mapping.