Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My team and I have designed a simple, affordable conceptual modelling language as part or a larger research project. This language is aimed to end users with little or no training in information technologies. It allows them to create class models using basic constructs such as classes, attributes, associations, and the like.

The language is working nicely, but we are considering whether we should add multivalued attributes to it. In the OO paradigm, attributes are usually considered to be single-valued, i.e. they can take a value on each instance of a class, or they can be null, but they can never take multiple simultaneous values. However, some situations in certain application domains call for multivalued attributes. For example, imagine a Garment class with a Colour attribute. That attribute may as well be multivalued, since garments can be multi-coloured: the shirt I'm wearing as type this is white and purple.

However, very few approaches to OO conceptual modelling use multivalued attributes, and none of them are mainstream as far as I know. I seem to recall reading that multivalued attributes are not a good way to model things, but I can't recall a sound reason, and I can't think of one, and I refuse to accept this at face value. In addition, most of the work I know of about multivalued attributes is at the database level rather than at the conceptual modelling level.

So, my question is: Do you think that multivalued attributes make sense in a conceptual modelling language? Can you point me to any books, papers or other sources that discuss this? Thank you.

share|improve this question
up vote 2 down vote accepted

Sure, I use MV attributes every day. I work with a Multi-valued database called Unidata. These types of databases violate First Normal Form.

MV is easier to understand for the average hunter and you can still normalize it out to join tables under the hood if needed.

share|improve this answer
Thanks, Dan. My question is about conceptual modelling rather than databases. I know that multivalued attributes are used in databases, but I wonder whether they make sense at the conceptual modelling level. Do you have any advice in this regard? Thanks. – CesarGon Dec 23 '10 at 23:54
Sorry, I should have been more explicitin relating the MVDB to your question. I think it definitely makes sense as it is closer to how they would conceptually think about it. MVDBs are less abstract then there more normalized brethren, which is also what you would also want in your modelling language, right? – Dan McGrath Dec 24 '10 at 2:39
Thank you, Dan. Useful input. – CesarGon Dec 24 '10 at 17:43

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.