Discover Introduction To Bioinformatics and Clinical Scientific Computing 1st Edition One-Click Ebook Download
Discover Introduction To Bioinformatics and Clinical Scientific Computing 1st Edition One-Click Ebook Download
Visit the link below to download the full version of this book:
https://medidownload.com/product/introduction-to-bioinformatics-and-clinical-sci
entific-computing-1st-edition/
Reasonable efforts have been made to publish reliable data and information, but the author and publisher
cannot assume responsibility for the validity of all materials or the consequences of their use. The authors
and publishers have attempted to trace the copyright holders of all material reproduced in this publication
and apologize to copyright holders if permission to publish in this form has not been obtained. If any
copyright material has not been acknowledged please write and let us know so we may rectify in any
future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced,
transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter
invented, including photocopying, microfilming, and recording, or in any information storage or retrieval
system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, access www.copyright.com
or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923,
978-750-8400. For works that are not available on CCC please contact mpkbookspermissions@tandf.
co.uk
Trademark notice: Product or corporate names may be trademarks or registered trademarks and are used
only for identification and explanation without intent to infringe.
Typeset in Times
by SPi Technologies India Pvt Ltd (Straive)
Chapter 2 Databases............................................................................................. 21
2.1 Introduction.............................................................................. 21
2.2 Terminology.............................................................................22
2.3 The Goals of Database Design................................................. 23
2.4 Example.................................................................................... 24
2.5 More Terminology.................................................................... 24
2.6 Example – Making the Design More Efficient......................... 26
2.7 Fourth and Fifth Normal Form................................................. 29
2.8 Many-to-Many Relationships................................................... 33
2.9 Distributed Relational Systems and Data Replication.............. 33
2.10 Columnstore and Data Warehousing........................................ 35
2.11 OLAP Cubes............................................................................. 38
2.12 Star Schema.............................................................................. 40
2.13 Database Standards and Standards for Interoperability
and Integration.......................................................................... 41
2.13.1 Database Naming Conventions................................... 42
2.13.2 Data Administration Standards.................................... 43
2.13.3 Database Administration Standards............................44
2.13.4 System Administration Standards............................... 44
2.13.5 Database Application Development Standards........... 44
2.13.6 Database Security Standards....................................... 45
2.13.7 Application Migration and Turnover Procedures........ 45
2.13.8 Operational Support Standards.................................... 46
Notes��������������������������������������������������������������������������������������������������� 46
References........................................................................................... 47
Chapter 3 SQL..................................................................................................... 49
3.1 Introduction.............................................................................. 49
3.2 Common Commands: SELECT, INSERT, UPDATE and
DELETE................................................................................... 49
v
viContents
Notes������������������������������������������������������������������������������������������������� 280
Reference........................................................................................... 280
xiv
1 Data Structures
1.1 INTRODUCTION
At some point in the construction and development of programs, the question as to
what to do with the data1 is going to arise. Issues such as the order in which data is
required, whether it will change, whether new items will appear and old ones will
need to be removed will determine the shape of the data and as such, the structure in
which it is best stored.
A data structure defines how data is to be stored and how the individual items of
data are to be related or located, if at all, in a way that is convenient for the problem
at hand and easy to use. To return to an oft-quoted2 equation:
There are many ways of arranging data, some of which we will examine here. The
most important part is to select the most appropriate model for the data’s use: e.g. a
dictionary arranged in order of the number of letters in each word isn’t as useful as
one with the words in alphabetic order, even though it is still a valid sort (and, indeed,
this is how a Scrabble dictionary is arranged).
1.2 ARRAYS
An array is the simplest form of data structure and exists as a part of most (if not all)
high-level programming languages. An array is simply a collection of similar data
items, one after another, referred to by the same identifier. Different items within
the array are referenced by means of a number, called the index, which is the item’s
position in the array. There is no relationship between the value of the data item and
its position in the array, unless one is imposed by the programmer.
A 1-dimensional array is often referred to as a vector and can be thought of as a
simple list, such as in Figure 1.1.
An array’s logical structure (which item follows which) mirrors its physical struc-
ture, which aids its simplicity but does reduce its flexibility, as we shall see.
Most high-level languages start array indices at 0, which also points towards the
memory storage model: a 1D integer array will reserve 4 bytes per integer; thus this
example has reserved 40 bytes. Element 7 is thus stored at the base address of the
array plus 7 * 4 = 28 bytes. For this reason, languages that don’t check for program-
mers exceeding array bounds (e.g. C) will still produce working programs, they’ll
just overwrite (or read from) memory that they weren’t supposed to, with unpredict-
able results.
DOI: 10.1201/9781003316244-1 1
2 Introduction to Bioinformatics and Clinical Scientific Computing
FIGURE 1.3 Rows 1–3 of the greyscale array, the tips of the ears.
Note that 0=black and 255=white.
FIGURE 1.4 Rows 1–3 of the colour picture (the tips of the ears), as R, G, B, showing how
a 3D array is now required. The bottom two rows with a dark grey background are red values,
the light grey background shows the green values and the mid-grey background (top row and
right-hand side) show the blue values.
Note that 0 = no colour and 255 = maximum colour.
4 Introduction to Bioinformatics and Clinical Scientific Computing
So far we have data but little information, as the structure we have only really
allows data to be “thrown in” as it appears. Extracting data from such a structure is a
simple task but not an efficient one. Therefore arrays like this are usually kept in
order, which works well when the data changes little (if at all).3 However, adding and
inserting data into such a structure necessitates a lot of data moving, in order to create
Data Structures 5
new rows (and hence move everything below it down) or remove old ones (moving
all data “up one”).
In order to extract information from our example array, we could sort it each time;
e.g. to find all the addresses in Bridlington, we might sort on column “Value 3”, giv-
ing rise to Figure 1.6.
FIGURE 1.6 The previous array sorted on the column “Value 3”.