Understanding Human Experience

How can we better understand the world around us?  The hard sciences help us tremendously.  But, the field of qualitative research also can provide useful insights into the human experience, even from a tech standpoint.

Here I will briefly describe three approaches to be familiar with:  phenomenology, grounded theory, and ethnography.

Phenomenology

Phenomenology is a method of investigating or inquiring into the means of our experiences and reflecting, make sense of or theorizing on lived experience.  In David Eagleman’s book SUM, he describes the terms epoche and reduction.  Epoche is about trying to enter a state of openness to the experience is are trying to understand in its pre-reflective sense.  And, the reduction is about one there is openness, to try to close in on the mean of the phenomenon as it appears in the experience or consciousness.  Therefore, the purpose of the research is to arrive at phenomenal insights that contribute to thoughtfulness by using the methods of epoche and reduction.  Generally speaking, meaning questions are asked, and the underlying framework is rooted in continental philosophy.  The data includes gathering direct descriptions of experience as lived through a particular moment in time.

Grounded Theory

Glaser and Strauss’ The Discovery of Grounded Theory in 1967 publication started the discussion and has been revised over time due to research publications.  The theory involves identification and integration of categories of meaning from data. As a method, it helps with guidelines around categories, and as a theory, it is the end product which provides an explanatory framework to understand the phenomenon.  The most recognized versions of grounded theory include three main versions: the classical (Glaserian) version, Strauss and Corbin’s structured approach and Charmaz’s constructivist approach.

Ethnography

Ethnography was made popular by anthropologist Bronislaw Malinowski in the early 20th century and has since adapted into a staple especially for sociological research.  This is a method of studying experiences through perceptions and opinions, often incorporating culture or “way of life” when understanding the participant’s point of view.  Interviews and observations are common data collection techniques.  The goal of the search to develop a deep understanding of how and why people think, behave and interact as they do in a community or organization and understand this from the standpoint of the participant thereby providing insight to social life, perception, and values that shape cultural meanings and practices.

Common Indexing Issues

As a new programmer you may have a lot of questions.

A more common initial question is should you index all the columns?

A database index is important for efficiently retrieving data.  To speed up data retrieval optimally, the correct indexes need to be defined for the tables.  For example, an index can speed up the query when putting in a filter in the WHERE clause.  Missing indexes in large databases can make queries take longer.

While indexes are widely used to implement query optimization, the reason there is not typically an index on every column in a table is because they do take up RAM and drive (in most cases the space constraint will be minimal).  Also, as each index is updated for every piece of data that is updated, this can slow down inserts and updates.  It can be inefficient to index columns that will never be utilized, especially if the system is at the point of surrendering drive space and risking the performance.  The risk of additional locking is something to seriously consider.

In conclusion, the most important piece to pay attention to are the queries that are frequently used by the indexes.  However, with the pace of technology advancements, it would not be a surprise if some of these constraints were eliminated in the future.  In the meantime, a query of the missing indexes can be performed and evaluated to consider optimization.

 

 

 

 

 

 

Database Manage Systems

In today’s digital world, companies are collecting, storing and analyzing data more than ever before in human history.  The data within a database needs to be managed effectively in order for it to provide optimal value to the company.    Database Manage Systems helps the data management process.

Fundamentally, a transaction is just a group of tasks which represents the minimum processing unit.  To put multiple transactions together, there are problems that can arise because of concurrency.  The transaction throughput is just the number of transactions that can be performed in a given time period.

Concurrency control is then the process of managing simultaneous execution of transactions in a shared database.  The purpose of concurrency control is to enforce isolation, preserve database consistency and to resolve read-write and write-write conflicts.  Concurrency control is important to ensure atomicity, isolation, and serializability of concurrent transactions.

If it is insisted that only one transaction can execute at a time (that is, in serial order), then performance can be poor.  At the highest level, concurrency control is a method for scheduling or controlling the operations of transactions in such a way that they can be executed safety.  For transactions to be executed safely, they need to not cause the database to reach an inconsistent state.

For the conservative concurrency control, the pros include that all transactions can be executed correctly, the data is properly consistent and the database is relatively stable and reliable.  The cons include that transactions can be slow, run time can be longer and throughput can be decreased.

For optimistic concurrency control, the strengths include transactions that are executed efficiently, relatively safe data content and potentially higher throughput.  The cons include the risk of data inference, that there could be hidden errors, and that transactions could deadlock.

If concurrency is controlled properly, then it is possible to maximize transaction throughput while avoiding the change of corrupting the database.

A company’s performance can be dependent on how effectively the data is managed.  Understanding these components help companies have effective Database Manage Systems.