Why Cassandra is not Relational
The other answers are close (I will explain why each incomplete), but this snippet of text from the documentation highlights what exactly makes Cassandra non-relational:
Apache Cassandra does not have the concept of foreign keys or
relational integrity.
The ability to enforce PK/FK relationships is integral to a RDBMS. To quote Codd's Relational Model for Database Management (emphasis mine):
1.2.4 Omission of Features When implementing a relational database management system, many questions arise regarding the relational model. Occasionally, support for some basic feature has been omitted due to it being assessed as useless. Unfortunately, the relational model has always had features that are inextricably intertwined. This means that omission of one feature of the model in a DBMS can inhibit implementation of numerous others. For example, omission of support for primary keys and foreign keys (defined in Section 1.8) jeopardizes the implementation of
• view updatability (see Chapter 17),
• the principal integrity constraints (see Chapter 13), and
• logical data independence (see Chapter 20).
You can change how the data is stored (Codd explicitly says all relations can be expressed as tables, not that they must be expressed as such), but if elements required to maintain the database in a consistent state are missing, the system cannot call itself a relational database.
Is Cassandra NoSQL?
In the sense that anything else is. NoSQL is largely a marketing term used to describe systems circumvented perceived shortcomings in relational databases, which they confused with the language, SQL.
We've seen a number of things marketed as "NoSQL" that are table/row oriented, using indexing methods common to RDBMs, and in the past few years, have added support for a subset of SQL.
In Cassandra's case, CQL is eerily similar to SQL, so you can see why the description is rather fuzzy.
Comments on Other Answers
I think it's very easy to get caught up on the physical implementation of data storage, as opposed to what framework exists for data.
Columnstore is a method for physically storing and retrieving data, it has nothing to do with the relational model.
Likewise, the idea of entities having optional/unspecified columns is not something unique to NoSQL - you can certainly implement a similar concept in a relational database either using subtypes and/or 6NF.