4
example the failure of a single node should not effect the availability of data in the
database.
 Soft State refers to the state of the system at a given time, which may change based
on the propagation of updates.
 Eventual Consistency means that the database will not guarantee that the database
will be in an updates states after every transaction, instead theupdates will propagate
through the database over time.
In order to define a structure for the spreadsheet the project will make use of a SQL
database that follows the ACID properties such as the H2 database. The H2 Database is
an open source project under the Eclipse Public License. The database it written entirely
in JAVA and is designed to be very fast. H2 database has support for a wide range of data
types, some of the most prominent ones are int, double, real, char, varchar, blob etc. H2
database is relatively new but is widely accepted owing to the inherent JAVA integration
and faster speeds when compared to other relational database systems. It also has a lot of
built in security features.
The data needs to be pre-processed before it is fit for conversion into a database table.
Thepre-processing includescleaning ofdataand its validation. Cleaning of data here refers
to removal of bad data, for example a column ID that stores values about a employee’s ID
cannot contain special characters in it. Such data has to be removed from the spreadsheet.
Thecleaning phase will check for such inconsistent values in the spreadsheet and warn the
user about their presence. The pre-processing phase is also responsible for dealing with
the missing values in the file. These values can either be imputed and replaced with appro-
priate data or be considered as blank when converting into a table. The missing values are
typically replaced with the mean or mode for numeric values. For nominal data the value
that is present maximum number of times in the column can be used.
Pdf select text - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
search text in pdf using java; how to select all text in pdf
Pdf select text - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
search pdf documents for text; convert pdf to word searchable text
5
Functional dependencies are relationships between one or more columns of a database
table. By definition a functional dependency between two columns or attributes is present
when one column can uniquely determine the values of the other. This is typically repre-
sented in the form of X ! Y which means that every value in X is associated with only
one value in Y. Here X is also called the determinanat and Y is called the dependant. For
example, consider a database table with two attributes Social Security Number (SSN) and
Name. In this case we can define a functional dependency SSN ! Name. Since every
person will have a unique SSN and given the SSN you can look up the Name from the
database table, it can be used as the determinant while Name will be the dependent. Such
afunctional dependency will be termed as a trivial functional dependency. There can be
multiple attributes that make up the determinant in a dependency. These are called as mul-
tivalued dependencies. They are of the form X,Y ! Z. In such a multivalued dependency
if thefunctional dependency still holds when an attribute is removed from thedeterminants
then it is not a full functional dependency. When there are two functional dependencies of
the form A ! B and B ! C, then we can imply that A ! C, this is known as a transitive
dependency.
There are different types of anomalies found in a database table. It is important to find
these functional dependencies in a database in order to remove anomalies from it. The
different types of anomalies found in databases are,
 Insertion Anomaly: An insertion anomaly occurs when there is a column that has
values depending on another attribute. For example if there is a database table that
holds information about cars, the attributemodel name dependson the attribute com-
pany, so if there were to be a new insertion in the model name column without a
corresponding entry in thecompany column then that would bean insertion anomaly.
 Updation Anomaly: An updation anomaly occurs when there are several entries of
the samedatapresent in different tables and if thereisan updateon oneof theentries
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#: Select All Images from One PDF Page. C# programming sample for extracting all images from a specific PDF page. C#: Select An Image from PDF Page by Position.
how to select text in pdf and copy; search text in multiple pdf
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET : Select An Image from PDF Page by Position. Sample for extracting an image from a specific position on PDF in VB.NET program.
converting pdf to searchable text format; how to make pdf text searchable
6
then there should a subsequent updates in the other tables.
 Deletion Anomaly: A deletion anomaly occurswhen thereisdataleft behind from an
improper deletion for example if there is only one entry in the table for a particular
car company and its corresponding model and if the model is deleted then the car
company entry has to be deleted as well.
The process of avoiding these anomalies is called normalization. When applying nor-
malization to a database table, the table is broken down into smaller more managable ta-
bles. Thesmaller tablesareall connected by therelationships defined between them. There
are various levels of normalization, the most commonly ones used are 1NF (First Normal
Form), 2NF (Second Normal Form), 3NF (Third Normal Form) and BCNF (Boyce-Codd
Normal Form).
The project makes use of an efficient algorithm called TANE [2] to determine the min-
imal functional dependencies from the created database table. Based on the output of the
algorithm the framework determines the transitive dependencies for the table. The con-
cept behind the TANE algorithm is to divide the tuples or individuals rows of the table
into partitions, hence creating smaller sets of rows. It does this partitioning based on the
attribute values of the rows. This makes the algorithm efficient in the sense that it can test
the presence of the functional dependencies for larger tables much faster. The TANE algo-
rithm also identifies the presence of approximate functional dependencies in the table. To
discover the functional dependencies the algorithm looks at a set of tuples that have some
set of attributes in common.
VB.NET PDF Text Redact Library: select, redact text content from
VB.NET PDF - Redact PDF Text. Help Users to Redact PDF Text to Protect PDF Document in VB.NET. Overview. Redact PDF Text using VB.NET. Add necessary references:
select text in pdf; how to search a pdf document for text
C# PDF Text Redact Library: select, redact text content from PDF
C#.NET PDF SDK - Redact PDF Text in C#.NET. C# Demo Code for Redacting PDF Text to Protect Your PDF Document in C#.NET Project. Best
pdf searchable text converter; how to search pdf files for text
7
1.2 Related Work
There has been considerable research in the field of spreadsheets and databases inter con-
nectivity with many papers being published about it. Most research though has not been
targeted at theconversion ofspreadsheet to databasesor viceversabutinstead to add frame-
works or plugins into spreadsheets and database systems to make them behave like the
other.
The authors of paper [5] suggest the use of extensions to the SQL language itself in or-
der to process spreadsheet like queries in an RDBMS environment. These SQL extensions
would in turn provide array based calculations to help create models like spreadsheets.
The authors have implemented these SQL extension to be used primarily with ROLAP
databases. ROLAP which stands for Relational Online Analytical Processing is used to
analysedata using multidimensional model. TheSQL extensions help in ROLAP will help
to create such multidimensional data models in the same as they would be possible in a
spreadsheet. The authors of paper [4] suggest using a spreadsheet as a relational database
table by constructing the operators that are used in relational algebra with the help of func-
tions present in spreadsheets. Theauthors use standard worksheets in spreadsheet software
like Microsoft Excel to store data and design formulas that act as queries. Another paper
that takes a look at a different approach towards the problem. The authors of paper [3]
develop aspreadsheet formula based language that defines structure to the existing spread-
sheet data to convert it into the target format. The target here could be a database, a web
service or any third party application that works on spreadsheet data. All these approaches
however suffer from the fact that a spreadsheet does not provide the scalabilty or security
that a database system does. The authors of paper [1] devise a solution to this problem
by implementing a framework that can be used to convert data to and from a spreadsheet
and a database. The framework works by defining the functional dependencies between
the data columns of a spreadsheet, thus removing redundant and irrelevant information in
the process. The framework then examines the functional dependencies to construct the
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
convert a scanned pdf to searchable text; searching pdf files for text
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Tools Tab. Item. Name. Description. 1. Select tool. Select text and image on PDF document. 2. Hand tool. Pan around the document. Go To Tab. Item. Name. Description
select text pdf file; find and replace text in pdf file
8
appropriate relational database schema.
1.3 Problem and Hypothesis
1.3.1 Problem Statement
When converting a spreadsheet to a database table it is very important to define a structure
for the spreadsheet. A spreadsheet inherently does not define any structure to its existing
data. This makes it difficult to define a schema when converting to a database table. The
important data required here is the data type of the columns from the spreadsheet that
is being converted. Typically this information can be obtained using various methods in
many programming languages that would return the data type of the spreadsheet column.
However spreadsheets have a very limited classification scheme for data types. The data
types included in Microsoft Excel 2010 for example are numbers and strings. The numbers
support values of type double and int while the strings can hold char values. A relational
database system on the other hand has support for a large number of data types. The H2
database for example classifies integer values into a more specific buckets like smallint,
mediumint, bigint. Apart from integer the H2 database also has support for double, real,
decimal and binary numerictypes. Theproblem of mapping of datatypes has been tackled
before but the process is usually very generic and uses a set of predefined rules to enable
the conversion. This project deals with the problem of mapping spreadsheet data types to
database data types before they can be converted.
1.3.2 Hypothesis
The inherent problem of not having a structure in a spreadsheet makes it difficult when
converting as spreadsheet to a database table. Without defining the data types the schema
for the database cannot be defined and hence the spreadsheet cannot adhere to a specific
structure. It is possible to define a pseudo structure for the spreadsheets if the data types
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Tools Tab. Item. Name. Description. Ⅰ. Hand. Pan around the PDF document. Ⅱ. Select. Select text and image to copy and paste using Ctrl+C and Ctrl+V.
text select tool pdf; how to make a pdf document text searchable
C# WPF PDF Viewer SDK to view PDF document in C#.NET
Tools Tab. Item. Name. Description. Ⅰ. Hand. Pan around the PDF document. Ⅱ. Select. Select text and image to copy and paste using Ctrl+C and Ctrl+V.
pdf select text; search multiple pdf files for text
9
for the columns can be determined dynamically. This involves using a framework that will
help determine the data types based on little or no previous knowledge of the spreadsheet
columns. For the purpose of this project the framework will be used to determine the data
types of the columns in the spreadsheet and create corresponding database columns.
The hypothesisof this project is that the use of aframework that uses range based com-
parison on the data entity in each column will enable the conversion of a spreadsheet to
adatabase by providing correct mapping of the current spreadsheet column data types to
existing data base types and in the process allowing the spreadsheet to be transferred to
the form of a database schema. The framework will also take into account the formula
columns defined in the spreadsheet. The data type for the formula columns will also be
predicted using the range based comparison framework. The conversion will help define a
structure to the otherwise unstructured data and also acquire database features like scala-
bility, security and multi user access. The hypothesis also includes an implementation of
the TANE algorithm to determine the functional dependencies between the columns in the
created database. These functional dependencies are then used to determine the transitive
dependencies between the database columns. The dependencies can then be used to nor-
malize the database table. This will enable the databaseto avoid the various anomalies that
leave the database in an inconsistent state.
1.4 Solution
1.4.1 Hypothesis Validation
The hypothesis will be validated based on the framework’s accuracy. The accuracy will
test the correctness of predictions for the data types of the spreadsheet data columns. The
predicted data types can be compared to data types produced from an existing dataset with
descriptions for the data types. The project can use these existing descriptions to compare
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Line color. Select the line color when drawing annotations on PDF document. Default create. Click to select drawing annotation with default properties. Text box.
how to select all text in pdf file; how to select text in pdf reader
VB.NET PDF - Annotate PDF with WPF PDF Viewer for VB.NET
Line color. Select the line color when drawing annotations on PDF document. Default create. Click to select drawing annotation with default properties. Text box.
cannot select text in pdf; search pdf for text in multiple files
10
the predictions obtained through both the developed algorithm for the same dataset. In or-
der to further validate the hypothesis the solution can be tested using multiple spreadsheets
documents which have contrasting values in them. The validation will involve comparing
the result under such different scenarios. The accuracy of the algorithm can not be quanti-
fied since it can not be measured as a metric as the output of the algorithm is just the data
types of the columns. The final predictions will be compared to the output of the existing
descriptions on the dataset. The column names of the spreadsheet will define the actual
data typesfor the prediction of values. The project will also determine the timecomplexity
of the data prediction component for the framework. This can be done by measuring the
time taken for the import and export operations and examining the trendlines for the the
same.
The accuracy of the functional dependencies found through the TANE algorithm will
also be examined to determine whether the dependencies actually exist. If there is a func-
tional dependency between two columns of the database table then they cannot contain
multiple values that map from the determinant to the dependent. The functional dependen-
cies can be verified by observing the semantics for the columns in the data. By understand-
ing the meaning behind the data in the column the validity of the functional dependencies
can be verified.
1.5 Roadmap
Section 2 describes the design of the framework. Section 3 describes the implementation
for theframework including theimplementation of the TANE algorithmused. Section 4 an-
alyzes the accuracy of the framework and TANE algorithm implementation using different
datasets. Section 5 discusses the conclusions and future work.
11
Chapter 2
Design
2.1 Primary Key and Data Type Prediction
2.1.1 Importing an Excel Sheet
The design for the project includes a standalone JAVA based application used to convert a
given spreadsheet into a databasetable. The application is designed to take as input thefile
locations for the spreadsheet along with the database details to open the database connec-
tion. Thedetailsinclude the database name, the usernameand password to makea database
connection. When importing the excel spreadsheet the application uses a path to the Excel
file that a user can input on the file to import field.
Before the user can import the spreadsheet into the database, the spreadsheet has to be
examined for missing and invalid data. The missing values pose a data consistency prob-
lem. The problem however with imputing values is that the there is data loss associated
with it, the original data will loose meaning sinceimputation of values is done using either
the mode and mean for numeric values or by using the values with the most occurrences
in the case of nominal or string values. The data loss depends on the type of dataset that
is being used. A dataset that has a high number of numeric columns representing static
data like prices for an item for example can be imputed while anumericcolumn that stores
the ID for an employer cannot. The advantage of imputing the data is that the clustering
algorithm perform better when given more data to train the model instead of being given
missing values. The first step when pre-processing the data is to validate the data stored in
12
each column and remove any redundant and inconsistent data. The spreadsheet software
Microsoft Excel has built in componentsto validate the data. TheRemoveDuplicates com-
ponent can be used on each column independently based on what the column type is for
example if the column stores zip codes then it is possible for the data values to be same
for certain rows. The Remove Duplicates component will remove all redundancies from
the desired spreadsheet columns. The other component that can be used isDataValidation.
The Data Validation component lets the user examine each column and specify the type
of data that is expected to be present in the column, any other data types will be treated
as an exception. The user can run this component on the spreadsheet to remove any data
value from the column that does not belong to the expected data type. The Data Validation
component allows the user to ignore blank or missing values if desired. The imputation
of missing values can also be handled using specialized data mining tools lile Weka, IBM
SPSS, R, RapidMiner etc.
The application allows the user to define the primary key of the table. The options for
the primary key are designed to let the user either select a primary key from the existing
columns of the spreadsheet or define a new primary key column. If the user decides to use
anew primary key column then an auto increment column of type integer called SR
NO
will be defined. On selecting the primary key the application will validate the data in the
column to look for duplicate values. If there are duplicate values present then the column
cannot be used as a primary key and the application will display an error to the user warn-
ing them about the same. Once all thedetails for importing the spreadsheet are entered, the
framework will initialize the code to read in the details of the spreadhseet that include the
column names and the data within. When reading in the column names the framework will
also determine whether the columns are of type formula and store this information for use
later. After the information is gathered thedataissent to theprediction algorithm to predict
the data type, this operation is done per column. There are numerous data types supported
by the H2 database. The broad classifications however are either string or numeric. The
13
string data types can be further classified into types like char, varchar, date, time, blob,
boolean etc. while the numeric data types supported by H2 database can be classified into
types like int, tinyint, smallint, bigint, decimal, double, real binary etc. Out of the various
data types supported by the H2 database the framework currently identifies the following
data types for string namely char, varchar, date, time and for the numeric data types the
framework supports binary, int, tinyint, smallint, bigint, double and real. The framework
broadly classifies each column entry into either string or numeric and then applies the pre-
diction algorithm on the data. The prediction algorithm takes as input all the data entities
from one column at atime. It then classifieseach value as either a string or anumber. Each
type is processed differently. On being classified as a string the data entity is compared to
regular expressions to check whether the value is a boolean, date or time. If that test fails
the data is compared to the check whether it is either of type char or varchar. This can be
determined based on whether the values are or same or different lengths. The same length
strings are classified as char while the other ones are varchar. On the other hand if the data
entity is classified as numeric then it is first compared through regular expressions to check
if it is of binary form, if not it passes through a series of comparisons to check whether it
is of type Integer, TinyInt, SmallInt or BigInt. The comparisons are done in a range based
fashion. For example to check if the given data entity is of type Integer it is checked to see
if it falls within the range of values for an Integer which are -2147483648 to 2147483647.
Depending on the data type being checked this range will either increase or decrease.
The result is the predicted data type for each column. A column that has values that are
made up of a formula are also treated the same way as other columns when predicting the
data. After having the data type information for each column the data is imported into the
H2 database table using those predicted data types and a create table SQL command is ex-
ecuted to create the table. The formula column information that was identified comes into
play afterthis step. Thecolumn that holds the formula values is renamed in the database ta-
ble to reflect thesame. The column is renamed to < Original column name >
<Arithmetic
Documents you may be interested
Documents you may be interested