CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network...
-
Upload
nathaniel-manning -
Category
Documents
-
view
219 -
download
1
Transcript of CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network...
![Page 1: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/1.jpg)
CTFS Workshop
Shameema EsufaliAsian data coordinator and technical resource
for the network
![Page 2: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/2.jpg)
CTFS WorkshopRelational database basics Why relational databases?
Why MySQL?
What about R?
![Page 3: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/3.jpg)
Relational Theory
In order to work with MySQL it is necessary to understand the basics of relational theory.
i.e how and why data is stored and managed in a relational database.
The guiding principle behind a relational database is to store data once and only
once.
![Page 4: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/4.jpg)
What is a Relation?
A table. Columns are fields (attributes) of data related to other fields on the
same row (tuple).
![Page 5: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/5.jpg)
Primary Key
Identifies the row of a table without duplicates.
Tells you what the row contains Eg. If treeid is the primary key then the row
has information about that tree
![Page 6: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/6.jpg)
Candidate Primary Key
Any attribute(s) which together would serve as the primary key.
Must uniquely identify a row of data. Each part of the key must be essential to unique
identification. No redundancy.
![Page 7: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/7.jpg)
Foreign Key
A foreign key is a column in a table that matches the primary key column of another table. Its function is to link the basic data of two entities on demand, i.e. when two tables are joined using the common key.
![Page 8: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/8.jpg)
First Normal Form
One piece of information per column. No repeated rows. Eliminate fused data eg Code1,Code2
Tag Species Code
1234 SHORME A
1234 SHORME BA
Tag Species Code
1234 SHORME A, BA
Wrong!
Right
![Page 9: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/9.jpg)
Second Normal FormEach column depends on the entire primary key.
Tag Census Species Seedsize X Y DBH
1234 1 SHORTR Medium 11.3
15.4 12
Tag Species Seedsize X Y
1234 SHORTR Medium 11.3
15.4
Wrong
Right
![Page 10: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/10.jpg)
Third Normal FormEach column depends ONLY on the primary key. i.e.
there are no transitive dependencies
Tag Species Seedsize X Y
1234 SHORTR Medium 11.3 15.4
Tag Species X Y
1234 SHORTR 11.3 15.4
Wrong
Right
![Page 11: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/11.jpg)
Fourth Normal FormThe table must contain no more than one
multi-valued dependency
Tag DBH Code
1234 10 A
1234 11 A
1234 11 BA
![Page 12: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/12.jpg)
Entity Relationship diagram (ERD)
Shows in a diagram how entities (tables) are related to one another.
One to One One to many Many to many
![Page 13: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/13.jpg)
One to one Extension of number of attributes in a single
table Rarely required
Tree More tree attributes
![Page 14: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/14.jpg)
One to Many
Most common
Requires two tables.
Linked by Foreign Key
Parent Child
Family Genus Species
![Page 15: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/15.jpg)
Many to many
Need to break down to one to many
Requires three tables
Associative table provides common key
Measurement Code
Tree Code
Measurement
![Page 16: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/16.jpg)
Reassembling data
Data was broken down into tables to preserve integrity
How can we put it together to derive information?
Use Structured Query Language (SQL) to JOIN tables using a common attribute
![Page 17: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/17.jpg)
Joins Two tables may be
joined when they share at least one common attribute
The Primary key of the Parent table is stored in the Child table as a cross reference. This is called a Foreign Key.
Genus
1 Acacia 4
2 3
3 3
4 3
5 3
GenusID FamilyID
Acalypha
Adelia
Aegiphila
Alchornea
Species
1 1
2 2
3 2
4 3
5 4
6 5
7 5
SpeciesID GenusId
melanoceras
diversifolia
macrostachya
triloba
panamensis
costaricensis
latifolia
Primary Key in Parent
Foreign Key in Child
![Page 18: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/18.jpg)
Table joined on Foreign Key GenusID
Species Genus1 1 ⇿ 1 Acacia 4
2 2 ⇿ 2 33 2 ⇿ 2 3
4 3 ⇿ 3 35 4 ⇿ 4 3
6 5 ⇿ 5 37 5 ⇿ 5 3
SpeciesID GenusId GenusID FamilyIDmelanoceras
diversifolia Acalyphamacrostachya Acalypha
triloba Adeliapanamensis Aegiphila
costaricensis Alchornealatifolia Alchornea
The Genus ID in the Species table is used to pick up information for the corresponding Genus. It looks for a row with the matching Primary Key
![Page 19: CTFS Workshop Shameema Esufali Asian data coordinator and technical resource for the network shameemaesufali@gmail.com.](https://reader034.fdocuments.net/reader034/viewer/2022042703/5697c0021a28abf838cc2bc1/html5/thumbnails/19.jpg)
Extend to join many tables
With SQL you can join as many tables as you need to in order to get the set of information you need. Thus the previous example can be extended to include Family which is a parent table of Genus and/or extended in the another direction to include Tree which is a child of Species as long as there is a linking attribute. This attribute is called a Foreign Key.