23 December 2011

Graphical Representation: Maps (Just the Quotes)

"Two important characteristics of maps should be noticed. A map is not the territory it represents, but, if correct, it has a similar structure to the territory, which accounts for its usefulness. If the map could be ideally correct, it would include, in a reduced scale, the map of the map; the map of the map, of the map [...]" (Alfred Korzybski, "Science and Sanity: An Introduction to Non-Aristotelian Systems and General Semantics", 1933)

"The first of the principles governing symbols is this: The symbol is NOT the thing symbolized; the word is NOT the thing; the map is NOT the territory it stands for." (Samuel I Hayakawa, "Language in Thought and Action", 1949)

"A fundamental value in the scientific outlook is concern with the best available map of reality. The scientist will always seek a description of events which enables him to predict most by assuming least. He thus already prefers a particular form of behavior. If moralities are systems of preferences, here is at least one point at which science cannot be said to be completely without preferences. Science prefers good maps." (Anatol Rapoport, "Science and the goals of man: a study in semantic orientation", 1950)

"No map contains all the information about the territory it represents. [...] Furthermore, the scale of the map makes a big difference. The smaller the scale the less features will be shown." (Anatol Rapoport, "Science and the goals of man: a study in semantic orientation", 1950)

"Good design looks right. It is simple (clear and uncomplicated). Good design is also elegant, and does not look contrived. A map should be aesthetically pleasing, thought provoking, and communicative."  (Arthur H Robinson, "Elements of Cartography", 1953)

"The design process involves a series of operations. In map design, it is convenient to break this sequence into three stages. In the first stage, you draw heavily on imagination and creativity. You think of various graphic possibilities, consider alternative ways." (Arthur H Robinson, "Elements of Cartography", 1953)

"The prevailing style of management must undergo transformation. A system cannot understand itself. The transformation requires a view from outside. The aim [...] is to provide an outside view - a lens - that I call a system of profound knowledge. It provides a map of theory by which to understand the organizations that we work in." (Dr. W. Edwards Deming, "The New Economics for Industry, Government, Education", 1994)

"Maps, due to their melding of scientific and artistic approaches, always involve complex interaction between the denotative and the connotative meanings of signs they contain." (Alan MacEachren, "How Maps Work: Representation, Visualization, and Design", 1995)

"The fact that map is a fuzzy and radial, rather than a precisely defined, category is important because what a viewer interprets a display to be will influence her expectations about the display and how she interacts with it." (Alan MacEachren, "How Maps Work: Representation, Visualization, and Design", 1995)

"The representational nature of maps, however, is often ignored - what we see when looking at a map is not the word, but an abstract representation that we find convenient to use in place of the world. When we build these abstract representations we are not revealing knowledge as much as are creating it." (Alan MacEachren, "How Maps Work: Representation, Visualization, and Design", 1995)

"Understanding how maps work and why maps work (or do not work) as representations in their own right and as prompts to further representations, and what it means for a map to work, are critical issues as we embark on a visual information age." (Alan MacEachren, "How Maps Work: Representation, Visualization, and Design", 1995)

"Eliciting and mapping the participant's mental models, while necessary, is far from sufficient [...] the result of the elicitation and mapping process is never more than a set of causal attributions, initial hypotheses about the structure of a system, which must then be tested. Simulation is the only practical way to test these models. The complexity of the cognitive maps produced in an elicitation workshop vastly exceeds our capacity to understand their implications. Qualitative maps are simply too ambiguous and too difficult to simulate mentally to provide much useful information on the adequacy of the model structure or guidance about the future development of the system or the effects of policies." (John D Sterman, "Learning in and about complex systems", Systems Thinking Vol. 3 2003)

"A road plan can show the exact location, elevation, and dimensions of any part of the structure. The map corresponds to the structure, but it's not the same as the structure. Software, on the other hand, is just a codification of the behaviors that the programmers and users want to take place. The map is the same as the structure. […] This means that software can only be described accurately at the level of individual instructions. […] A map or a blueprint for a piece of software must greatly simplify the representation in order to be comprehensible. But by doing so, it becomes inaccurate and ultimately incorrect. This is an important realization: any architecture, design, or diagram we create for software is essentially inadequate. If we represent every detail, then we're merely duplicating the software in another form, and we're wasting our time and effort." (George Stepanek, "Software Project Secrets: Why Software Projects Fail", 2005) 

"Graphics, charts, and maps aren’t just tools to be seen, but to be read and scrutinized. The first goal of an infographic is not to be beautiful just for the sake of eye appeal, but, above all, to be understandable first, and beautiful after that; or to be beautiful thanks to its exquisite functionality." (Alberto Cairo, "The Functional Art", 2011)

20 December 2011

Graphical Representation: Chart (Just the Quotes)

"Factual science may collect statistics, and make charts. But its predictions are, as has been well said, but past history reversed." (John Dewey, "Art as Experience", 1934)

"Although, the tabular arrangement is the fundamental form for presenting a statistical series, a graphic representation - in a chart or diagram - is often of great aid in the study and reporting of statistical facts. Moreover, sometimes statistical data must be taken, in their sources, from graphic rather than tabular records." (William L Crum et al, "Introduction to Economic Statistics", 1938)

"Graphic charts have often been thought to be tools of those alone who are highly skilled in mathematics, but one needs to have a knowledge of only eighth-grade arithmetic to use intelligently even the logarithmic or ratio chart, which is considered so difficult by those unfamiliar with it. […] If graphic methods are to be most effective, those who are unfamiliar with charts must give some attention to their fundamental structure. Even simple charts may be misinterpreted unless they are thoroughly understood. For instance, one is not likely to read an arithmetic chart correctly unless he also appreciates the significance of a logarithmic chart." (John R Riggleman & Ira N Frisbee, "Business Statistics", 1938)

"The eye can accurately appraise only very few features of a diagram, and consequently a complicated or confusing diagram will lead the reader astray. The fundamental rule for all charting is to use a plan which is simple and which takes account, in its arrangement of the facts to be presented, of the above-mentioned capacities of the eye."  (William L Crum et al, "Introduction to Economic Statistics", 1938)

"Planning is essentially the analysis and measurement of materials and processes in advance of the event and the perfection of records so that we may know exactly where we are at any given moment. In short it is attempting to steer each operation and department by chart and compass and chronometer - not by guess and by God." (Lyndall Urwick, "The Pattern of Management", 1956)

"A model is a qualitative or quantitative representation of a process or endeavor that shows the effects of those factors which are significant for the purposes being considered. A model may be pictorial, descriptive, qualitative, or generally approximate in nature; or it may be mathematical and quantitative in nature and reasonably precise. It is important that effective means for modeling be understood such as analog, stochastic, procedural, scheduling, flow chart, schematic, and block diagrams." (Harold Chestnut, "Systems Engineering Tools", 1965)

"Charts not only tell what was, they tell what is; and a trend from was to is (projected linearly into the will be) contains better percentages than clumsy guessing." (Robert A Levy, "The Relative Strength Concept of Common Stock Forecasting", 1968)

"Pencil and paper for construction of distributions, scatter diagrams, and run-charts to compare small groups and to detect trends are more efficient methods of estimation than statistical inference that depends on variances and standard errors, as the simple techniques preserve the information in the original data." (W Edwards Deming, "On Probability as Basis for Action", American Statistician Vol. 29 (4), 1975)

"We would wish ‘numerate’ to imply the possession of two attributes. The first of these is an ‘at-homeness’ with numbers and an ability to make use of mathematical skills which enable an individual to cope with the practical mathematical demands of his everyday life. The second is ability to have some appreciation and understanding of information which is presented in mathematical terms, for instance in graphs, charts or tables or by reference to percentage increase or decrease." (Cockcroft Committee, "Mathematics Counts: A Report into the Teaching of Mathematics in Schools", 1982) 

"[decision trees are the] most picturesque of all the allegedly scientific aids to making decisions. The analyst charts all the possible outcomes of different options, and charts all the latters' outcomes, too. This produces a series of stems and branches (hence the tree). Each of the chains of events is given a probability and a monetary value." (Robert Heller, "The Pocket Manager", 1987)

"90 percent of all problems can be solved by using the techniques of data stratification, histograms, and control charts. Among the causes of nonconformance, only one-fifth or less are attributable to the workers." (Kaoru Ishikawa, The Quality Management Journal Vol. 1, 1993)

"The illusion of randomness gradually disappears as the skill in chart reading improves." (John W Murphy, "Technical Analysis of the Financial Markets", 1999)

"Always bear in mind that the purposes of any chart are (1) to help gather, organize or visualize the facts; (2) to aid in analyzing them; (3) to help in developing the better method and evaluating it; (4) to assist in convincing management of the improvement’s value." (Ben B Graham, "Detail Process Charting: Speaking the Language of Process", 2004) 

"So what is the difference between a chart or graph and a visualization? […] a chart or graph is a clean and simple atomic piece; bar charts contain a short story about the data being presented. A visualization, on the other hand, seems to contain much more ʻchart junkʼ, with many sometimes complex graphics or several layers of charts and graphs. A visualization seems to be the super-set for all sorts of data-driven design." (Brian Suda, "A Practical Guide to Designing with Data", 2010)

"The amount of information rendered in a single financial graph is easily equivalent to thousands of words of text or a page-sized table of raw values. A graph illustrates so many characteristics of data in a much smaller space than any other means. Charts also allow us to tell a story in a quick and easy way that words cannot." (Brian Suda, "A Practical Guide to Designing with Data", 2010) 

"Graphics, charts, and maps aren’t just tools to be seen, but to be read and scrutinized. The first goal of an infographic is not to be beautiful just for the sake of eye appeal, but, above all, to be understandable first, and beautiful after that; or to be beautiful thanks to its exquisite functionality." (Alberto Cairo, "The Functional Art", 2011)

"if you want to show change through time, use a time-series chart; if you need to compare, use a bar chart; or to display correlation, use a scatter-plot - because some of these rules make good common sense." (Alberto Cairo, "The Functional Art", 2011) 

"The overuse of bubble charts in news media is a good example of how infographics departments can become more worried about how their projects look than with how they work." (Alberto Cairo, "The Functional Art", 2011)

"Graphs can help us interpret data and draw inferences. They can help us see tendencies, patterns, trends, and relationships. A picture can be worth not only a thousand words, but a thousand numbers. However, a graph is essentially descriptive - a picture meant to tell a story. As with any story, bumblers may mangle the punch line and the dishonest may lie." (Gary Smith, "Standard Deviations", 2014)

"Graphs should not be mere decoration, to amuse the easily bored. A useful graph displays data accurately and coherently, and helps us understand the data. Chartjunk, in contrast, distracts, confuses, and annoys. Chartjunk may be well-intentioned, but it is misguided. It may also be a deliberate attempt to mystify." (Gary Smith, "Standard Deviations", 2014)

"Numbers are not inherently tedious. They can be illuminating, fascinating, even entertaining. The trouble starts when we decide that it is more important for a graph to be artistic than informative." (Gary Smith, "Standard Deviations", 2014)

13 December 2011

Graphical Representation: Infographic (Just the Quotes)

"All graphics present data and allow a certain degree of exploration of those same data. Some graphics are almost all presentation, so they allow just a limited amount of exploration; hence we can say they are more infographics than visualization, whereas others are mostly about letting readers play with what is being shown, tilting more to the visualization side of our linear scale. But every infographic and every visualization has a presentation and an exploration component: they present, but they also facilitate the analysis of what they show, to different degrees." (Alberto Cairo, "The Functional Art", 2011)

"For too many traditional journalists, infographics are mere ornaments to make the page look lighter and more attractive for audiences who grow more impatient with long-form stories every day. Infographics are treated not as devices that expand the scope of our perception and cognition, but as decoration." (Alberto Cairo, "The Functional Art", 2011)

"Graphics, charts, and maps aren’t just tools to be seen, but to be read and scrutinized. The first goal of an infographic is not to be beautiful just for the sake of eye appeal, but, above all, to be understandable first, and beautiful after that; or to be beautiful thanks to its exquisite functionality." (Alberto Cairo, "The Functional Art", 2011)

"[...] the form of a technological object must depend on the tasks it should help with. This is one of the most important principles to remember when dealing with infographics and visualizations: The form should be constrained by the functions of your presentation. There may be more than one form a data set can adopt so that readers can perform operations with it and extract meanings, but the data cannot adopt any form. Choosing visual shapes to encode information should not be based on aesthetics and personal tastes alone." (Alberto Cairo, "The Functional Art", 2011)

"Thinking of graphics as art leads many to put bells and whistles over substance and to confound infographics with mere illustrations." (Alberto Cairo, "The Functional Art", 2011)

"Competition for your audiences attention is fierce. The fact that infographics are unique allows organizations an opportunity to make the content they are publishing stand out and get noticed." (Mark Smiciklas, "The Power of Inforgraphics", 2012)

"An infographic (short for information graphic) is a type of picture that blends data with design, helping individuals and organizations concisely communicate messages to their audience." (Mark Smiciklas, "The Power of Infographics: Using Pictures to Communicate and Connect with Your Audiences", 2012)

"Infographics combine data with design to enable visual learning. This communication process helps deliver complex information in a way that is more quickly and easily understood. [...] In an era of data overload, infographics offer your audience information in a format that is easy to consume and share. [...] A well-placed, self-contained infographic addresses our need to be confident about the content we’re sharing. Infographics relay the gist of your information quickly, increasing the chance for it to be shared and fueling its spread across a wide variety of digital channels." (Mark Smiciklas, "The Power of Infographics: Using Pictures to Communicate and Connect with Your Audiences", 2012)

"The main difference between journalistic and artistic infographics is that, while in the first information must try to be as objective as possible, the second supports a complete subjectivity and can lend itself to different interpretations, all of them valid. That’s the concept of 'subjective infographic', something apparently contradictory." (Jaime Serra, [interviewed] 2012)

"Good infographic design is about storytelling by combining data visualization design and graphic design." (Randy Krum, "Good Infographics: Effective Communication with Data Visualization and Design", 2013)

"A great infographic leads readers on a visual journey, telling them a story along the way. Powerful infographics are able to capture people’s attention in the first few seconds with a strong title and visual image, and then reel them in to digest the entire message. Infographics have become an effective way to speak for the creator, conveying information and image simultaneously." (Justin Beegel, "Infographics For Dummies", 2014)

"The power of infographics is that it keeps things short and sweet. [...] The concise, pointed nature of an infographic works well with the fact that people’s attention span is decreasing significantly." (Justin Beegel, "Infographics For Dummies", 2014)

"Infographics are an output which has gained popularity in the business world in recent years. They have proven to be a great way to engage when used along with other traditional outputs. Infographic principles can be used to enrich the more traditional outputs." (Travis Murphy, "Infographics Powered by SAS®: Data Visualization Techniques for Business Reporting", 2018)

"Infographics combine art and science to produce something that is not unlike a dashboard. The main difference from a dashboard is the subjective data and the narrative or story, which enhances the data-driven visual and engages the audience quickly through highlighting the required context." (Travis Murphy, "Infographics Powered by SAS®: Data Visualization Techniques for Business Reporting", 2018)

"A recurring theme in machine learning is combining predictions across multiple models. There are techniques called bagging and boosting which seek to tweak the data and fit many estimates to it. Averaging across these can give a better prediction than any one model on its own. But here a serious problem arises: it is then very hard to explain what the model is (often referred to as a 'black box'). It is now a mixture of many, perhaps a thousand or more, models." (Robert Grant, "Data Visualization: Charts, Maps and Interactive Graphics", 2019)

"The term 'infographics' is used for eye-catching diagrams which get a simple message across. They are very popular in advertising and can convey an impression of scientific, reliable information, but they are not the same thing as data visualization. An infographic will typically only convey a few numbers, and not use visual presentations to allow the reader to make comparisons of their own." (Robert Grant, "Data Visualization: Charts, Maps and Interactive Graphics", 2019)

03 December 2011

SQL Server New Features: Window Functions


     In the past, in the absence or in parallel with other techniques, aggregate functions proved to be quite useful in order to solve several types of problems that involve the retrieval of first/last record or the display of details together with averages and other aggregates. Typically their use involves two or more joins between a dataset and an aggregation based on the same dataset or a subset of it. An aggregation can involve one or more columns that make the object of analysis. Sometimes it might be needed multiple such aggregations based on different sets of columns. Each such aggregation involves at least a join. Such queries can become quite complex, though they were a price to pay in order to solve such problems.


     The introduction of analytic functions in Oracle and of window functions, a similar concept, in SQL Server, allowed the approach of such problems from a different simplified perspective. Central to this feature it’s the partition (of a dataset), its meaning being same as of mathematical partition of a set, defined as a division of a set into non-overlapping and non-empty parts that cover the whole initial set. The introduction of partitions it’s not necessarily something new, as the columns used in a GROUP BY clause determines (implicitly) a partition in a dataset. The difference in analytic/window functions is that the partition is defined explicitly inline together with a ranking or average function evaluated within a partition. If the concept of partition is difficult to grasp, let’s look at the result-set based on two Products (the examples are based on AdventureWorks database):
-- Price Details for 2 Products 
SELECT A.ProductID  
, A.StartDate 
, A.EndDate 
, A.StandardCost  
FROM [Production].[ProductCostHistory] A 
WHERE A.ProductID IN (707, 708) 
, A.StartDate 

window function - details

   In this case a partition is “created” based on the first Product (ProductId = 707), while a second partition is based on the second Product (ProductId = 708). As a parenthesis, another partitioning could be created based on ProductId and StartDate; considering that the two attributes are a key in the table, this will partition the dataset in partitions of 1 record (each partition will have exactly one record).

Details and Averages

     In order to exemplify the use of simple versus window aggregate functions, let’s consider a problem in which is needed to display Standard Price details together with the Average Standard Price for each ProductId. When a GROUP BY clause is applied in order to retrieve the Average Standard Cost, the query is written under the form: 

-- Average Price for 2 Products 
SELECT A.ProductID  
, AVG(A.StandardCost) AverageStandardCost 
FROM [Production].[ProductCostHistory] A 
WHERE A.ProductID IN (707, 708) 

window function - GROUP BY 

    In order to retrieve the details, the query can be written with the help of a FULL JOIN as follows:

-- Price Details with Average Price for 2 Products - using JOINs 
SELECT A.ProductID  
, A.StartDate 
, A.EndDate 
, A.StandardCost 
, B.AverageStandardCost 
, A.StandardCost - B.AverageStandardCost DiffStandardCost 
FROM [Production].[ProductCostHistory] A    
  JOIN ( -- average price        
    SELECT A.ProductID         
    , AVG(A.StandardCost) AverageStandardCost         
    FROM [Production].[ProductCostHistory] A        
    WHERE A.ProductID IN (707, 708)        
    GROUP BY A.ProductID      
) B  
    ON A.ProductID = B.ProductID 
WHERE A.ProductID IN (707, 708) 
, A.StartDate 

 window function - Average Price JOIN   

    As pointed above the partition is defined by ProductId. The same query written with window functions becomes:

-- Price Details with Average Price for 2 Products - using AVG window function 
SELECT A.ProductID  
, A.StartDate 
, A.EndDate 
, A.StandardCost 
, AVG(A.StandardCost) OVER(PARTITION BY A.ProductID) AverageStandardCost 
, A.StandardCost - AVG(A.StandardCost) OVER(PARTITION BY A.ProductID) DiffStandardCost 
FROM [Production].[ProductCostHistory] A 
WHERE A.ProductID IN (707, 708) 
, A.StartDate 

window function - Average Price WF

    As can be seen, in the second example, the AVG function is defined using the OVER clause with PartitionId as partition. Even more, the function is used in a formula to calculate the Difference Standard Cost. More complex formulas can be written making use of multiple window functions.  

The Last Record

     Let’s consider the problem of retrieving the nth record. Because with aggregate functions is easier to retrieve the first or last record, let’s consider that is needed to retrieve the last Standard Price for each ProductId. The aggregate function helps to retrieve the greatest Start Date, which farther helps to retrieve the record containing the Last Standard Price.

-- Last Price Details for 2 Products - using JOINs 
SELECT A.ProductID  
, A.StartDate 
, A.EndDate 
, A.StandardCost 
FROM [Production].[ProductCostHistory] A  
    JOIN ( -- average price          
    SELECT A.ProductID          
    , Max(A.StartDate) LastStartDate          
    FROM [Production].[ProductCostHistory] A          
    WHERE A.ProductID IN (707, 708)          
    GROUP BY A.ProductID      
) B      
   ON A.ProductID = B.ProductID  
  AND A.StartDate = B.LastStartDate 
WHERE A.ProductID IN (707, 708) 

window function - Last Price JOIN  

With window functions the query can be rewritten as follows:

-- Last Price Details for 2 Products - using AVG window function 
FROM (-- ordered prices      
    SELECT A.ProductID      
    , A.StartDate      
    , A.EndDate      
    , A.StandardCost      
    , RANK() OVER(PARTITION BY A.ProductID ORDER BY A.StartDate DESC) Ranking      
    FROM [Production].[ProductCostHistory] A     
    WHERE A.ProductID IN (707, 708) 
  ) A 
WHERE Ranking = 1 
, A.StartDate 

window function - Last Price WF  

   As can be seen, in order to retrieve the Last Standard Price, was considered the RANK function, the results being ordered descending by StartDate. Thus, the Last Standard Price will be always positioned on the first record. Because window functions can’t be used in WHERE clauses, it’s needed to encapsulate the initial logic in a subquery. Similarly could be retrieved the First Standard Price, this time ordering ascending the StartDate. The last query can be easily modified to retrieve the nth records (this can prove to be more difficult with simple average functions), the first/last nth records.


    Without going too deep into details, I shown above two representative scenarios in which solutions based on average functions could be simplified by using window functions. In theory the window functions provide greater flexibility but they have their own trade offs too. In the next posts I will attempt to further detail their use, especially in the context of Statistics.

12 November 2011

SQL Server New Features: SQL Server 2012 is almost here

    I was quite quiet for the past 3-4 months, and this not because of the lack of blogging material, but lack of time. Instead of writing I preferred reading, diving in some special topics related to SQL Server (e.g. tempdb and security), in the near future following to post some of my notes. For short time I was busy learning for ITIL® v3 Foundation Certification, the topics on Knowledge Management giving me more ideas for several posts waiting in the pipe. I started also the online “Introduction to Databases” course offered by Stanford University, attempting thus a scholastic approach of the topic, of importance being the material on Relational Algebra, material I didn’t had the chance to study in the past.
   From my perspective, during this time two  important events related to SQL Server took place – the launch of AX Dynamics 2012 and, more recently, the introduction of SQL Server 2012 at PASS (The Professional Association of SQL Server) 2011.

SQL Server 2012
    At PASS Summit 2011 were disclosed 4 of the newest SQL Server Products: SQL Server 2012 (code Denali), Power View (code Crescent), ColumnStore Index (code Apollo) and SQL Server Data Tools (code Juneau). The PASS 2011 streamed sessions are available online with quite interesting materials on SQL Server topics like application and database development, database administration and deployment, BI, etc. If you want to learn more about SQL Server, check the CTP 3 Product Guide, which contains datasheets, white papers, technical presentations, demonstrations and links to videos, or the SQL Server 2012 Developer Training Kit Preview (requires Microsoft’s Web Platform Installer).

Dynamics AX 2012
    Because lately I’ve been spending more and more time with Dynamics AX, Microsoft’s ERP (Enterprise Resource Planning) solution, I’d like to include related content in my posts, at least presenting resources if I can’t get yet into technical stuff. As its backend is based mainly on SQL Server, AX is the perfect environment to see SQL Server at work, or to perform configuration and administration activities. In addition, AX material (best/good practices, methodologies, various other papers) related to SQL Server could be extended to other environments. I’m saluting Microsoft’s decision of making available publicly more Technet and MSDN content, previously most of the technical content being accessible mainly though Microsoft’s Partner Network and Customer Network. A good compilation of resources is available on AX Technical Support Blog and Inside Microsoft Dynamics AX blog.
    As pointed above, recently was launched Microsoft Dynamics AX 2012 (see global and local launch events).  It’s interesting to point out that, with this edition, SSRS becomes the reporting platform for AX, a considerable step forward.

     In what concerns the free books there are 3 free “new” appearances: Jonathan Kehayias and Ted Krueger’s book Troubleshooting SQL Server: A Guide for the Accidental DBA (zipped PDF), which provides a basic approach to troubleshooting, Fabiano Amorim’s book on Complete Showplan Operators (PDF, Epub), and Ross Mistry and Stacia Misner’s Introducing Microsoft SQL Server 2008 R2 (PDF, requires registration).

30 August 2011

Graphical Representation: Tree (Definitions)

"A complex data structure built from nodes, each of which points to two or more other nodes." (Jesse Liberty, "Sams Teach Yourself C++ in 24 Hours" 3rd Ed., 2001)

"In the hierarchical data mode, a single entity hierarchy." (Jan L Harrington, "Relational Database Design and Implementation" 3rd Ed., 2009)

"A structure for data relationships where all relationships are one-to-many and no child entity may have more than one parent entity." (Jan L Harrington, "SQL Clearly Explained" 3rd Ed., 2010)

"A graph in which child nodes do not have more than one parent. SEE ALSO chart; graph; structure, tree." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A hierarchy of things from the same population. The things could be a) instances from a population represented by a single type icon representing the population of instances, and a reflexive relationship on that type, or b) types from the set of types defined in a database represented by a tree structure where each node of the tree is a population of instances of the same type. In the first case, it is the instances that form a tree structure, and in the second, it is the types that form a tree structure. The latter is called a hierarchical data structure." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A linked data structure that forms a hierarchy where nodes at higher levels know about a subset of the nodes in the level below them. Each node in a tree can only be reached from a single node in the level above it." (Mark C Lewis, "Introduction to the Art of Programming Using Scala", 2012)

"A structure with a unique starting node (the root), in which each node is capable of having multiple child nodes, and in which a unique path exists from the root to every other node" (Nell Dale et al, "Object-Oriented Data Structures Using Java" 4th Ed., 2016)

"A tree is a constrained graph. Trees are directed graphs because the 'parent of' relationship between nodes is asymmetric: the edges are arrows that point in a certain direction. Trees are acyclic graphs, because if you follow the directed edges from one node to another, you can never encounter the same node twice. Finally, trees have the constraint that every node (except the root) must have exactly one parent." (Robert J Glushko, "The Discipline of Organizing: Professional Edition, 4th Ed", 2016)

"Trees consist of nodes joined by edges, recursively nested. When a single, root dictionary is connected to child nodes that are themselves dictionaries, we say that the dictionaries are nested into a kind of tree structure." (Robert J Glushko, "The Discipline of Organizing: Professional Edition" 4th Ed., 2016)

"Hierarchical data structure where each node may have any number of child nodes, but only one parent node (with the exception of the root node, which has no parent)." (Karl Beecher, "Computational Thinking - A beginner's guide to problem-solving and programming", 2017)

Graphical Representation: PERT Chart (Definitions)

"A type of network planning chart." (Michael S Dobson, "The Juggler's Guide to Managing Multiple Projects", 2003)

"Diagram that displays the dependency relationships between tasks." (Clyde M Creveling, "Six Sigma for Technical Processes", 2006)

"Diagram that displays the dependency relationships that exist between tasks and helps to discern the variation in expected task time." (Lynne Hambleton, "Treasure Chest of Six Sigma Growth Methods, Tools, and Best Practices", 2007)

"Project Evaluation and Review Technique; a graphical representation of work tasks and their predecessor and successor relations." (Bruce P Douglass, "Real-Time Agility", 2009)

"a type of chart used in project management, where tasks are represented as circles, and arrows between tasks are used to show the sequence and task dependencies." (Bill Holtsnider & Brian D Jaffe, "IT Manager's Handbook" 3rd Ed., 2012)

"A graph that uses nodes (circles or boxes) and links (arrows) to show the precedence relationships among the tasks in a project." (Rod Stephens, "Beginning Software Engineering", 2015)

Project Management: Program (Definitions)

"(1) A project. (2) A collection of related projects and the infrastructure that supports them, including objectives, methods, activities, plans, and success measures." (Sandy Shrum et al, "CMMI®: Guidelines for Process Integration and Product Improvement", 2003)

"A set of projects pointed toward the same objective." (Steve Williams & Nancy Williams, "The Profit Impact of Business Intelligence", 2007)

"A group of related projects managed in a coordinated way to obtain benefits and control not available from managing them individually. Programs may include elements of related work outside of the scope of the discrete projects in the program." (Cynthia Stackpole, "PMP® Certification All-in-One For Dummies®", 2011)

"A collection of projects with a common success criteria under integrated management. These projects consist of people, technology, and processes aimed at implementing significant business and technology change. A program is a major enterprise initiative, an element in the overall business strategy and direction." (Paul C Dinsmore et al, "Enterprise Project Governance", 2012)

"A portfolio of projects and initiatives managed together - sharing something critical like joint objectives or a common resource pool." (Mike Clayton, "Brilliant Project Leader", 2012)

"A group of related projects, subprograms, and program activities that are managed in a coordinated way to obtain benefits not available from managing them individually." (PMI, "Implementing Organizational Project Management: A Practice Guide", 2014)

"An endeavor that seeks to deliver benefits via activities that by their nature have uncertain outcomes. The uncertainty associated with programs dictates that they need to be managed adaptively, so that their strategies and plans can be modified in response to emergent outcomes. As a result, programs may be highly complex. The outcomes required by programs are pursued via projects, subprograms, and other program-related activities." (Richard J Heaslip, "Managing Complex Projects and Programs", 2014)

"Coordinated set of change projects that provide business benefits to the organization." (Gilbert Raymond & Philippe Desfray, "Modeling Enterprise Architecture with TOGAF", 2014)

"Related projects, subsidiary programs, and program activities that are managed in a coordinated manner to obtain benefits not available from managing them individually." (Project Management Institute, "A Guide to the Project Management Body of Knowledge (PMBOK® Guide)" 6th Ed., 2017)

"A group of related projects, subsidiary programs, and program activities managed in a coordinated way to obtain benefits not available from managing them individually. May include work outside the scope of projects but will always have two or more projects within its scope." (H James Harrington & William S Ruggles, "Project Management for Performance Improvement Teams", 2018)

"Projects/activities planned and managed together to achieve an overall set of related objectives and outcomes" (ITIL)

Graphical Representation: Flow Chart (Definitions)

"A flow chart is a diagram that visually displays interrelated information such as events, steps in a process, functions, etc., in an organized fashion, such as sequentially or chronologically. The things being represented can be tangible or intangible." (Robert L Harris, "Information Graphics: A Comprehensive Illustrated Reference", 1996)

"A pictorial representation of the flow of logic." (Greg Perry, "Sams Teach Yourself Beginning Programming in 24 Hours" 2nd Ed., 2001)

"An activity that defines the flow chart modeling style. Child activities can be added to this activity, and direct connections can be defined between the activities to control the flow of execution." (Bruce Bukovics, "Pro WF: Windows Workflow in .NET 4", 2010)

[flowcharting:] "The depiction in a diagram format of the inputs, process actions, and outputs of one or more processes within a system." (Cynthia Stackpole, "PMP® Certification All-in-One For Dummies®", 2011)

"A means of depicting a process from beginning to end, using flowcharting symbols to indicate the type of tasks in the process." (Charles Cooper & Ann Rockley, "Managing Enterprise Content: A Unified Content Strategy" 2nd Ed., 2012)

[flowcharting:] "A graphical method for depicting the movement of items, customers, or information though a system. Although many of the symbols were originally developed with information processing in mind, they have been adapted in various forms to map other process flows." (Kenneth A Shaw, "Integrated Management of Processes and Information", 2013)

"The depiction in a diagram format of the inputs, process actions, and outputs of one or more processes within a system." (For Dummies, "PMP Certification All-in-One For Dummies" 2nd Ed., 2013)

"A diagram that represents an algorithm or process. Some organizations use flow charts in troubleshooting guides to help technicians diagnose problems. They are also useful when developing expert systems." (Darril Gibson, "Effective Help Desk Specialist Skills", 2014)

26 August 2011

Graphical Representation: Bar Chart (Definitions)

"A graphic that uses rectangular bars in varying lengths to represent comparisons of amounts." (Jennifer George-Palilonis, "A Practical Guide to Graphics Reporting", 2006)

"A chart that shows bars to illustrate frequencies or values for individual categories." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A horizontal bar chart used in project management; a graphical illustration of a schedule that helps to plan, coordinate, and track specific tasks in a project." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A graphic display of schedule-related information. In the typical bar chart, schedule activities or work breakdown structure components are listed down the left side of the chart, dates are shown across the top, and activity durations are shown as date-placed horizontal bars." (For Dummies, "PMP Certification All-in-One For Dummies" 2nd Ed., 2013)

"A graphical representation of project activities shown in a time-scaled bar line with no links shown between activities." (Peter Oakander et al, "CPM Scheduling for Construction: Best Practices and Guidelines", 2014)

"A chart that uses horizontal bars to represent values." (Faithe Wempen, "Computing Fundamentals: Introduction to Computers", 2015)

"It is a statistical presentation technique that represents frequency data as horizontal or vertical bars. Bar charts are used to represent time series and quantitative data." (K  N Krishnaswamy et al, "Management Research Methodology: Integration of Principles, Methods and Techniques", 2016)

Graphical Representation: Gantt Chart (Definitions)

"A chart that represents project activities as horizontal lines whose length shows the time span of each activity. The ends of each line correspond to the start and finish milestones, indicated by triangles. Progress is indicated by filling in the triangles when milestones are completed. Gantt charts are useful for simple schedules, but do not show task dependencies. Resource loaded networks (RLNs) should be used for projects with many interdependent tasks." (Richard D Stutzke, "Estimating Software-Intensive Systems: Projects, Products, and Processes", 2005)

"A bar chart (named after Henry Gantt) that shows when tasks start and finish as well as the relationships between tasks." (Bonnie Biafore, "Successful Project Management: Applying Best Practices and Real-World Techniques with Microsoft Project", 2011)

"A horizontal bar chart used in project management; a graphical illustration of a schedule that helps to plan, coordinate, and track specific tasks in a project. Named for Henry Gantt." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A tool developed by Henry Gantt that helps a project manager to plan, communicate and manage a project. Shows project activities as horizontal bars, with a length that represents the duration of the task, and places them against a fixed timeline." (Mike Clayton, "Brilliant Project Leader", 2012)

23 August 2011

Graphical Representation: Infographic (Definitions)

"an infographic is defined as a visualization of data or ideas that tries to convey complex information to an audience in a manner that can be quickly consumed and easily understood." (Mark Smiciklas, "The Power of Infographics: Using Pictures to Communicate and Connect with Your Audiences", 2012)

"Tools and techniques involved in graphical representation of data, mostly in journalism, art, and storytelling." (Anna Ursyn, "Visualization as Communication with Graphic Representation", 2015)

"Use of visual images such as charts, graphic organizers, diagrams, photos, etc. in teaching and learning." (Esther Ntuli, "Active Learning Strategies in Technology Integrated K-12 Classrooms", 2015)

"Information graphics that are visual representations of data or information." (Julie A Delello & Rochell R McWhorter, "New Visual Literacies and Competencies for Education and the Workplace", 2016)

 "Information or data represented as a visual image in a chart or diagram. An infographic can be an excellent way to conceptualize dense text or numbers in ways that appeal to the eye and engage the reader." (Kindra Cotton et al, "Leveraging New Media as Social Capital for Diversity Officers", 2016)

"A short-form, visual representation of information, data, or knowledge presented through simple images that highlight patterns, trends, or insights. Simplified from the term information graphic." (Jonathan Ferrar et al, "The Power of People: Learn How Successful Organizations Use Workforce Analytics To Improve Business Performance", 2017)

[Infographic Map:] "Diagrammatic 'visualizations' of the space of knowledge and its associative logics that allows to use its own 'form' as a tool to 'act' on complex systems of knowledge." (Alessandra Cirafici & Alessandra Avella, "A Virtual Museum of Pompeii 'ex Votos': Design Strategies", 2020)

"Graphic visual representations of information, data or knowledge intended to present complex information quickly and clearly." (Jing Zhou, "Connecting Art, Culture, Science, and Technology", 2021)

"a form of communication that uses visual language and text. Both languages are complementary, part of a whole, and therefore can’t be understood when separate" (Jaime Serra)

"An infographic is a visual form of content used as a medium to represent and share information, knowledge, and data." (Infographic World)

"An infographic is an edited, summarized presentation of data selected by a designer to tell a story. A visualization is a display designed to explore data so every reader will be able to extract his or her own stories" (Alberto Cairo)

15 August 2011

Graphical Representation: Causal Loop Diagrams (Definition)

"One of the tools of systems thinking. Causal loop diagrams capture how variables in a system are interrelated. A CLD takes the form of a closed loop that depicts cause-and-effect linkages." (Virginia Anderson & Lauren Johnson, "Systems Thinking Basics: From Concepts to Casual Loops", 1997)

"A CLD is a graphic model of some of the key system variables connected by arrows that denote the causal influences among the variables. Each arrowhead is identified as either positive (+) or negative (-) to indicate how the dependent variable changes when the independent variable changes." (Daniel D Burke, System Dynamics-based Computer Simulations and Evaluation, 2006)

"A CLD is diagrammatic tool used to describe the causal relationship between key quantities and to identify feedback mechanisms." (Dina Neiger & Leonid Churilov, "Integration of Diagrammatic Business Modeling Tools", 2008)

"A network of actuators connected together is called a causal loop diagram. A causal loop diagram shows how potential business actions lead to complex dynamic effects." (David M Bridgeland & Ron Zahavi, "Business Modeling: A Practical Guide to Realizing Business Value", 2009)

"A tool that captures the causal interrelationships amongst a set of variables. CLDs reveal systemic patterns underlying complex relationships and highlight hidden causes and unintended consequences." (Kambiz E Maani, "Systems Thinking and the Internet from Independence to Interdependence", 2009)

"Causal loop diagramming is a form of cause-and-effect modeling. The diagrams represent systems and their behaviors as a collection of nodes and links. Nodes represent the things in a system, and links illustrate interactions and influences." (Olivia Parr Rudd, "Business Intelligence Success Factors: Tools for Aligning Your Business in the Global Economy", 2009)

"Causal loop diagrams (CLDs) are a kind of systems thinking tool. These diagrams consist of arrows connecting variables (things that change over time) in a way that shows how one variable affects another." (Raed M Al-Qirem & Saad G Yaseen, "Modelling a Small Firm in Jordan Using System Dynamics", 2010)

"A visual representation of a system's feedback loops, where positive loops cycle clockwise, and negative loops cycle counter-clockwise." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"In systems thinking terms, causal loop diagrams are simplified ways to describe essential elements and relationships in a system. These diagrams include curved causal-link arrows (depicting influence from cause to effect) and the polarity of that linkage. An 's' indicates that cause and effect move in the same direction and an  'o' shows that they move in opposite directions (e.g., when cause increases, effect decreases below what it would have been). Causal-link arrows combine into balancing (B) and reinforcing (R) feedback loops. Significant lags between an action and the effects of that action appear as 'delay' on the causal-link arrows." (Karen L Higgins, "Economic Growth and Sustainability: Systems Thinking for a Complex World", 2015)

"A causal loop diagram (CLD) is a causal diagram that aids in visualizing how a number of variables in a system are interrelated and drive cause-and-effect processes. The diagram consists of a set of nodes and edges. Nodes represent the variables, and edges are the links that represent a connection or a relation between the two variables." (Andreas F Vermeulen, "Practical Data Science: A Guide to Building the Technology Stack for Turning Data Lakes into Business Assets", 2018)

"Methodology to build conceptual or simulation models depicting the causal structure of a complex system." (Francesca Costanza & Pietro Fontana, "Distributing Mutual Advantages in Italian Cooperatives: An Analysis of Patronage Refunds", 2019)

"In system dynamics modelling, they are closed causal chains involving relevant variables, whose interactions are responsible for the patterns of behavior taking place within a certain system." (Francesca Costanza, "Managing Patients' Organizations to Improve Healthcare: Emerging Research and Opportunities", 2020)

14 August 2011

Graphical Representation: Pareto Chart/Diagram (Definitions)

"Fundamental tool for determining which characteristic is causing problems in a given process. Constructed by categorizing data, ranking, and plotting frequency of occurrence in bar-chart form in descending order along the x axis. Sometimes dollars are plotted on the y axis to emphasize the cost factor." (Alan Wa Steiss, "Strategic Management for Public and Nonprofit Organizations", 2003)

"A graphical tool for ranking causes from most significant to least significant." (Sohail Anwar, "Quality Management and Control", 2009)

"A chart showing both bars and a line, where the line shows the cumulative total of the individual bars going left to right." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A histogram, ordered by frequency of occurrence, that shows how many results were generated by each identified cause." (Cynthia Stackpole, "PMP® Certification All-in-One For Dummies", 2011)

"A method of displaying data values over time and classification" (Daniel Linstedt & W H Inmon, "Data Architecture: A Primer for the Data Scientist", 2014)

"A basic Pareto chart analyzes the unique values of a process variable, which are referred to as Pareto categories or levels. These values typically represent problems encountered during some phase of a manufacturing or service activity." (SAS)

"A Pareto chart is a bar graph. The lengths of the bars represent frequency or cost (time or money), and are arranged with longest bars on the left and the shortest to the right. In this way the chart visually depicts which situations are more significant." (ASQ) [source]

[Pareto analysis] "A statistical technique in decision making that is used for selection of a limited number of factors that produce significant overall effect. In terms of quality improvement, a large majority of problems (80%) are produced by a few key causes (20%)." (IQBBA)

Graphical Representation: Data Flow Diagram (Definitions)

"A diagram that shows the data flows in an organization, including sources of data, where data are stored, and processes that transform data." (Jan L Harrington, "Relational Database Dessign: Clearly Explained" 2nd Ed., 2002)

"A diagram of the data flow from sources through processes and files to users. A source or user is represented by a square; a data file is represented by rectangles with missing righthand edges; a process is represented by a circle or rounded rectangle; and a data flow is represented by an arrow." (Jens Mende, "Data Flow Diagram Use to Plan Empirical Research Projects", 2009)

"A diagram used in functional analysis which specifies the functions of the system, the inputs/outputs from/to external (user) entities, and the data being retrieved from or updating data stores. There are well-defined rules for specifying correct DFDs, as well as for creating hierarchies of interrelated DFDs." (Peretz Shoval & Judith Kabeli, "Functional and Object-Oriented Methodology for Analysis and Design", 2009)

[Control Data Flow Graph (CDFG):] " Represents the control flow and the data dependencies in a program." (Alexander Dreweke et al, "Text Mining in Program Code", 2009)

"A graphic method for documenting the flow of data within an organization." (Jan L Harrington, "Relational Database Design and Implementation: Clearly explained" 3rd Ed., 2009)

"A graphic representation of the interactions between different processes in an organization in terms of data flow communications among them. This may be a physical data flow diagram that describes processes and flows in terms of the mechanisms involved, a logical data flow diagram that is without any representation of the mechansm, or an essential data flow diagram that is a logical data flow diagram organized in terms of the processes that respond to each external event." (David C Hay, "Data Model Patterns: A Metadata Map", 2010)

"Data-flow diagrams (DFDs) are system models that show a functional perspective where each transformation represents a single function or process. DFDs are used to show how data flows through a sequence of processing steps." (Ian Sommerville, "Software Engineering" 9th Ed., 2011)

"A model of the system that shows the system’s processes, the data that flow between them (hence the name), and the data stores used by the processes. The data flow diagram shows the system as a network of processes, and is thought to be the most easily recognized of all the analysis models." (James Robertson et al, "Complete Systems Analysis: The Workbook, the Textbook, the Answers", 2013)

"A picture of the movement of data between external entities and the processes and data stores within a system." (Jeffrey A Hoffer et al, "Modern Systems Analysis and Design" 7th Ed., 2014)

"A schematic indicating the direction of the movement of data" (Daniel Linstedt & W H Inmon, "Data Architecture: A Primer for the Data Scientist", 2014)

"A Data Flow Diagram (DFD) is a graphical representation of the 'flow' of data through an information system, modeling its process aspects. Often it is a preliminary step used to create an overview of the system that can later be elaborated." (Henrikvon Scheel et al, "Process Concept Evolution", 2015)

"Data flow maps are tools that graphically represent the results of a comprehensive data assessment to illustrate what information comes into an organization, for what purposes that information is used, and who has access to that information." (James R Kalyvas & Michael R Overly, "Big Data: A Business and Legal Guide", 2015)

"A graphical representation of the logical or conceptual movement of data within an existing or planned system." (George Tillmann, "Usage-Driven Database Design: From Logical Data Modeling through Physical Schmea Definition", 2017)

"a visual depiction using standard symbols and conventions of the sources of, movement of, operations on, and storage of data." (Meredith Zozus, "The Data Book: Collection and Management of Research Data", 2017)

"A data-flow diagram is a way of representing a flow of data through a process or a system (usually an information system). The DFD also provides information about the outputs and inputs of each entity and the process itself." (Wikipedia) [source]

"A graphical representation of the sequence and possible changes of the state of data objects, where the state of an object is any of: creation, usage, or destruction." (IQBBA)

Graphical Representation: Cause-Effect Diagram (Definitions)

"A chart that can be used to systematically gather the problem causes of quality defects. Sometimes referred to as the 5M- or 6M-chart because most causes can be related to man (e.g., human factors), machine, method, material, milieu (i.e., the work environment), or the medium (the IT-platform)." (Martin J Eppler, "Managing Information Quality" 2nd Ed., 2006)

"A root cause approach to identifying, exploring, and graphically displaying all possible causes of an issue using a standard quality technique." (Danette McGilvray, "Executing Data Quality Projects", 2008)

"A chart that links an outcome to chains of possible contributing factors as tree structure working backwards from an event to determine possible root causes, drawn sideways so that it resembles the skeleton of a fish. Because the chart resembles the skeleton of a fish, it is often called a fishbone diagram." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A chart associated with a technique for identifying factors linked to potential problems, risks, or effects. Factors can include time, machinery, methods, material, energy, measurements, personnel, and environment. Also known as the Ishikawa diagram or fishbone diagram." (Bonnie Biafore & Teresa Stover, "Your Project Management Coach: Best Practices for Managing Projects in the Real World", 2012)

"A decomposition technique that helps trace an undesirable effect back to its root cause." (For Dummies, "PMP Certification All-in-One For Dummies" 2nd Ed., 2013)

"A model used for identifying cause and effect. Also known as a fishbone diagram and named after its creator, Kaoru Ishikawa." (Sally-Anne Pitt, "Internal Audit Quality", 2014)

"Named after Kaoru Ishikawa, a diagram that shows possible causes of effects that you want to study such as excessive bugs, delays, and other failures in the development process." (Rod Stephens, "Beginning Software Engineering", 2015)

"A diagramming technique, also called the Ishikawa diagramming, which teams can use to identify root causes to a problem, the effects of an action, or the action items they could take to meet a goal." (David K Pham, "From Business Strategy to Information Technology Roadmap", 2016)

"A decomposition technique that helps trace an undesirable effect back to its root cause." (Project Management Institute, "The Standard for Organizational Project Management (OPM)", 2018)

09 August 2011

Graphical Representation: Mind Map (Definitions)

"A visual note-taking process that pares thoughts to key words and pictures illustrating the relationships among concepts." (Ruth C Clark & Chopeta Lyons, "Graphics for Learning", 2004)

"A mind map consists of a central concept which acts as a headline for the map and the branches that represent the aspects of the main concept. A mind map allows summarizing and decomposition of the key aspects of a complex problem or issue." (Hannu Kivijärvi et al, "A Support System for the Strategic Scenario Process", 2008) 

"A mind map is a diagram uses intuition to depict words, ideas or other items in branches around a central key word or idea." (Wan Ng & Ria Hanewald, "Concept Maps as a Tool for Promoting Online Collaborative Learning in Virtual Teams with Pre-Service Teachers", 2010)

[mind mapping:] "A process that brainstorms ideas, words, tasks or other elements and arranges them in groups around a central notion."  (Wan Ng & Ria Hanewald, "Concept Maps as a Tool for Promoting Online Collaborative Learning in Virtual Teams with Pre-Service Teachers", 2010)

[mind-mapping:] "A technique that uses multiple levels of detail for a texture. This technique selects from among the different sizes of an image available, or possibly combines the two nearest sized matches to produce the final fragments used for texturing." (Graham Sellers et al, "OpenGL SuperBible: Comprehensive Tutorial and Reference" 5th Ed., 2010)

"Refers to a technique for the graphical representation of information items, enabling visualization. A mindmap has a radial structure: it is constructed by starting from a central information item, around which other information items are organized like rays from a star, except that each ray can in turn be subdivided in a plurality of finer rays, and so on. The 'rays' are linear, going from an upstream point to downstream, more secondary points, and so on." (Humbert Lesca & Nicolas Lesca, "Weak Signals for Strategic Intelligence: Anticipation Tool for Managers", 2011)

"Powerful techniques you can utilize to increase your comprehension of written materials." (Jeffrey Magee, "The Managerial Leadership Bible", 2015)

[mind-mapping:] "A technique used to consolidate ideas created through individual brainstorming sessions into a single map to reflect commonality and differences in understanding and to generate new ideas." (Project Management Institute, "A Guide to the Project Management Body of Knowledge (PMBOK Guide)", 2017)

[mind mapping:] "A method to brainstorm thoughts while showing relationships of the parts to the whole." (Errick D Farmer et al, "Digital Course Redesign to Increase Student Engagement and Success", 2019)

"A diagram used to represent words, ideas, tasks, or other items linked to and arranged around a central keyword or idea. Mind maps are  used to generate, visualize, structure, and classify ideas, and as an aid in study, organization, problem solving, decision making, and writing." (Software Quality Assurance)

04 August 2011

MS Office: Access vs. LightSwitch - About Starts and Ends of Software Products


    When an important software product or technology is released on the market, it brings with it dooming prophecies about the end/death of a competing or related product or technology. Even if maybe it catches the attention, the approach became a stereotype leading to other futile fights between adepts, some food for thought and a pile of words for search engines. As LightSwitch was released recently, people started already sketching dooming plans for competing tools like MS Access, Silverlight, WebMatrix, Visual Studio, etc. It’s actually interesting to study and understand how the entry on the software market impacts the overall landscape, the publishing of more or less pertinent thoughts on the future of a product are more than welcome, though from this to forecasting the end of a software product or technology, at least not without well-grounded reasons, it’s a long way.
    In many cases it’s not even needed to go too deep into the features of the compared software products in order to dismiss such statements, this because there are a few common sense reasons for which the respective products will coexist, at least for the near future. Here are a few of them grouped into technology, products, people, partners and processes. Please note that by the terms old and new (software) products I’m referring here to a product existing on the market for a longer time, respectively a newly entered product.


    In theory a new software product attempts to take advantage of the latest technological advances in the field, following the trends. Also an old product can take advantage of the latest technological developments, though a certain backward compatibility needs to be maintained, fact that could come with advantages and disadvantages altogether. Considering that nowadays such a product doesn’t exist “per se” but in a complex infrastructure with multiple layers of interconnectivity, a new product has to fit also in the overall picture.
    A product in particular and a technology in general is doomed to extinction when it’s not more able to cope with the trends, when its characteristics don’t satisfy anymore users’ demands or the overhead of using it is greater than its benefits. As long two competing software products are trying to keep up with the trends and consolidate their market, the chances that they will parish are quite small. On the other side, each technology has sooner or later its own end.


    Software products having a few years on the market have reached in theory a certain maturity and stability. New software products typically go through an adoption phase that may last from months to years, and it will take time until they reach a certain maturity and stability, until their market develops, until vendors include them in their portfolio, until other products will develop interfaces to them, etc. First of all it will take some time until the two will come to have the same market share, and secondly it will take even more time until the market share of one of the products will deprecate. In addition, markets embrace diversity and the demands are so various that each product arrives to find his place.
   When the products are coming from the same vendor and they are a part of greater packages and strategies, it’s hard to believe that a vendor would want to blow in the air his own business. Usually the two solutions target different markets, even if their markets intersect. Sure, there are also cases when a vendor might want to strengthen the position of a product in the detriment of another, especially when the benefits are higher.


    Often different products demand different skill sets or an upgrade of skill set. For sure not all developers will move from one platform to the other, some will be reticent, while others are declared fans so there is no way to move to something new. Sure, in IT there are frequent the cases when developers have knowledge about 2-3 competing products, though this aspect doesn’t necessarily have a huge impact on the short term. Considering that software products are becoming more and more complex, it’s sometimes even needed a specialization covering only a part of a product.


    Vendors and Customers, especially existing partners, will most probably approach and evaluate the new product, find a place in their portfolio/solution, conduct some pilot projects and eventually consider the product for further use. We can talk here about an adoption period, corroborated with the appearance of training material, best practices, books or any other material that facilitate the use of such a product. All this time requires time and effort, successful and unsuccessful projects, some years of experience.


    Organizations have already in place solutions based on a product and integrated with other products. Some of them could be personal solutions, and maybe quite easy to replace, though the replacement of business/enterprise solutions come maybe with important expenses, changes in the infrastructure, and maybe the most important, process changes. And why change something that’s working just for the sake of change?! Sure, if there is the need for a second or third product, this doesn’t (always) mean that all the previous similar products will be replaced. For sure the two or more products can coexist, even if provide similar functionality, and the can maybe complete each other.


    If one product or another will come to its end, for sure only time will tell. Usually when this happens, there are multiple factors that influenced the decay, factors that could be used maybe to foresee such an event. Though, without a detailed analysis or at least some well-supported ideas, dooming declarations about the rise or fall of software products are kind of futile, even if intended to catch readers’ attention. Enthusiastic or contradictory feelings about old or new products are natural, expressing opinions is free and welcomed when there is something to say, though are such declarations really necessary?!

Graphical Representation: Histogram (Definitions)

"A graph showing a variable's discrete values or ranges of values on the x-axis and counts or percentages on the y-axis. The number of observations for each value or range is presented as a vertical rectangle whose length is proportionate to the number of observations." (Glenn J Myatt, "Making Sense of Data: A Practical Guide to Exploratory Data Analysis and Data Mining", 2006)

"A graphical display of the frequency distribution of a set of data. Histograms display the shape, dispersion, and central tendency of the distribution of a data set." (Clyde M Creveling, "Six Sigma for Technical Processes: An Overview for R Executives, Technical Leaders, and Engineering Managers", 2006)

"A chart that shows quantities of data points that occur within various numeric ranges." (DAMA International, "The DAMA Dictionary of Data Management", 2011)

"A special form of bar chart used to describe the central tendency, dispersion, and shape of a statistical distribution." (For Dummies, "PMP Certification All-in-One For Dummies, 2nd Ed.", 2013)

[height-balanced histogram:] "A histogram in which column values are divided into buckets so that each bucket contains approximately the same number of rows." (Oracle, "Database SQL Tuning Guide Glossary", 2013)

[top frequency histogram:] "A variation of a frequency histogram that ignores nonpopular values that are statistically insignificant, thus producing a better histogram for highly popular values." (Oracle, "Database SQL Tuning Guide Glossary", 2013)

[hybrid histogram:] "An enhanced height-based histogram that stores the exact frequency of each endpoint in the sample, and ensures that a value is never stored in multiple buckets." (Oracle, "Database SQL Tuning Guide Glossary", 2013)

[frequency histogram:] "A type of histogram in which each distinct column value corresponds to a single bucket. An analogy is sorting coins: all pennies go in bucket 1, all nickels go in bucket 2, and so on." (Oracle, "Database SQL Tuning Guide Glossary", 2013)

"A chart that shows a frequency distribution." (E C Nelson & Stephen L Nelson, "Excel Data Analysis For Dummies ", 2015)

"A bar chart that shows the graphical representation of numerical data." (Project Management Institute, "A Guide to the Project Management Body of Knowledge (PMBOK Guide )", 2017)

16 July 2011

SQL Server Troubleshooting: Could not load file or assembly Microsoft.MSXML…

I’m not programming anymore as I used to do, though from time to time I still fancy some .Net programming. It’s not much, small applications or CLR-based libraries for SQL Server. Quite often, when I return to programming after a long pause it happens that I run into problems, finding that something that was working previously stopped working. During my last attempt I couldn’t load anymore one of the projects I worked on, receiving the following error:

“Could not load file or assembly ‘Microsoft.MSXML, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. The system cannot find the file specified.”

Same happened when I tried to load other projects. I looked then into GAC in “C:\Windows\assembly” folder and saw no reference to Microsoft.MSXML dll. So I tried to install the msxml6.dll assembly in GAC however, never doing that, I run into another problem. In the meantime I tried to install the Visual Studio 2010 SP1, the MSXML 6.0 and even the Windows .Net SDK. All this without success. After several good hours, I returned to one of the forum posts (here) I run into in a first place. Thomas Sun was pointing that it might be a problem with the Microsoft Document Explorer 20xx. The solution was to reinstall it from  “C:\Program Files\Common Files\microsoft shared\Help 9\Microsoft Document Explorer 2008”. Once I did that everything was back to normal. At least until I’ll run into another issue.

After all this there is still one positive point: I managed to install SP1 and all the goodies it comes with, and I’m thinking here at the support for HMTL5. The downside – several good hours of lost time! I don’t want to think how much time I lost until now trying to solve things that were supposed to work in a first place – probably weeks, months…  That’s part of programmers’ life.

As Microsoft changed the whole structure of their support websites, most of the resources become unavailable. Therefore I had to remove the links pointing to the various sources.

18 June 2011

SQL Reloaded: Pulling the Strings of SQL Server X (Dynamic Queries)

    A dynamic query is a query constructed at runtime, techniques often indispensable in many situations that require a certain flexibility in query’s creation. The creation of a dynamic query is nothing but a set of operations with strings, many of the techniques mentioned before becoming handy. SQL Server provides two functions for the execution of dynamic queries, namely EXECUTE statements (or its shortened form EXEC) and sp_executesql stored procedure. Even if the later it’s more flexible allowing passing parameters from and to the caller and allows reusing executions plans (see Using sp_esecutesql), for the following examples will be used only EXEC. But before let’s look how a static could become dynamic. For this let’s consider the following query based on AdventureWorks database:
-- example 1 - simple query   
FROM Person.Address  
WHERE AddressID = 1 

-- example 2 - query encapsulated in a string: 
EXEC ('SELECT * FROM Person.Address WHERE AddressID = 1') 

-- example 3 - query stored into a string variable      
EXEC ('SELECT * FROM Person.Address WHERE AddressID = 1') 

    Supposing that the AddressID is considered as parameter we can write:

-- example 4 - static query     
DECLARE @AddressID int 
SET @AddressID = 1 
FROM Person.Address  
WHERE AddressID = @AddressID  

-- example 5 - dynamic query  
DECLARE @sql varchar(100) 
DECLARE @AddressID int 
SET @AddressID = 1 
SET @sql = 'SELECT * FROM Person.Address WHERE AddressID = ' + CAST(@AddressID as varchar (10)) 
EXEC (@sql) 

   Until here there is no important conceptual difference. What if is needed to pass multiple AddressIDs? We can create a parameter for which expected values, though that’s not a reasonable solution as the number of values can vary. A more elegant solution would be to create a list of values and provided as a string parameter and then concatenate the original query and the string parameter like below. We just need to accommodate the length of the string variable to the expected size of the list of value.
-- example 6 (dynamic query) 
DECLARE @sql varchar(100) 
DECLARE @AddressIDs varchar(50) -- supposed parameter 
SET @AddressIDs = '1, 2, 4, 5, 6, 10'  
SET @sql = 'SELECT * FROM Person.Address WHERE AddressID IN (' + @AddressIDs + ')' 
EXEC (@sql) 

    There is actually a third solution. As in the previous post on list of values has been introduced the dbo.StringToTable function, the function can be used thus to transform the list in a table:
-- example 7 (list of values) 
DECLARE @AddressIDs varchar(50) -- supposed parameter 
SET @AddressIDs = '1,2,4,5,6,10'  
FROM Person.Address  
WHERE AddressID IN ( 
      SELECT value  
      FROM dbo.StringToTable(@AddressIDs, ',')) 

    In the same post was constructed the DoubleList list of values which can be used in a dynamic query in bulk inserts or table-value constructors. The list needs to be slightly modified by replacing the single quote with two single quotes in order to accommodate value’s storage in a string. Considering that there are no integrity constraints on the targeted table, he query for bulk insert can be written as follows:
-- example 8 (list of values & bulk insert) 
DECLARE @sql varchar(200) 
DECLARE @AddressTypes varchar(150)  
SET @AddressTypes = '(6,''Archive''), (1,''Billing''), (2,''Home''), (3,''Main Office''), (4,''Primary''), (5,''Shipping'')' 
SET @sql = 'INSERT Person.AddressType (AddressTypeID, Name) VALUES ' + @AddressTypes  
EXEC (@sql) 

    The same technique can be used with a table-value constructor:
-- example 9 (list of values & table-value constructor) 
DECLARE @sql varchar(400) 
DECLARE @AddressTypes varchar(150)  
SET @AddressTypes = '(6,''Archive''), (1,''Billing''), (2,''Home''), (3,''Main Office''), (4,''Primary''), (5,''Shipping'')' 
SET @sql = 'SELECT VA.AddressID, VA.AddressTypeID, AT.NAME FROM Purchasing.VendorAddress VA JOIN ( VALUES ' + @AddressTypes + ') AS AT(AddressTypeID, Name) ON VA.AddressTypeID = AT.AddressTypeID' 
EXEC (@sql) 

    The above examples are basic, in daily problems such queries can involve multiple parameters and operations. In addition, in the last examples the concatenation step was left out.
Related Posts Plugin for WordPress, Blogger...