Another item to turn SQL DBA heads, and probably the future of Data Warehousing. No joins and no NULL values. Semantic Data Model & SDL is the way to go.
The semantic language does not allow for join-operations; it requires applying paths really existing in the underlying data model. The first step is to derive the required number of employees per department, using the temporal attribute “department its number”:
extend department with number = count employee
where town = “Amsterdam”
per department.value minimum = min department its number.
get department where number = minimum.
The term “per” means the same as “for each”, which most probably is easier to understand then “GROUP BY”: if an empty sub set of data is involved in a join combined with the “GROUP BY” construct then an incomplete, thus incorrect query result is possible! Here we have the strange situation that a seemingly semantically correct SQL-query produces a result of which the correctness depends on the actual contents of the database!
In the semantic approach NULL-values do not occur in the database.
1 comment:
Troy - out of interest, where and how
did you find this info and how much do you
know about semantic modeling?
-- Martin
Post a Comment