Introduction to Databases (Healthcare)

In the very little spear time that I have, I began learning about databases as they pertain to medical informatics, a field that I am very interested in. So to help me retain what I have learned I am going to write short summaries on what I have learned and post them here.


 

Database: A Database is any collection of data that stored with a defined structure to serve a purpose. When we use the term database we refer to a computer database, that is a database that is stored on a computer or a series of computers. In order for a computer to create, access or modify the database the computer must first have a Database Management System (DBMS).

 

Types of Databases

Flat DatabasesThese databases have the least amount of structure. They are usually a large table with the first row being variable and all the other rows being data. Flat databases are very simple and work efficiently for small portions of data. However they are not able to be tweaked for specialized usage and functionality and they are not conducive to complicated search queries that divide the database further.

Relational Databases: These databases are databases in which records are stored with related fields as data. To effectively store data information items and and their relationships are stored in a table format. The first row of the tables usually belong to the same case and are related. One column of the table is considered the key. Tables in relational databases does not need to be the same size but must all have a key column which connects them to each other. These databases are usually harder to design but makes it easier for the end users.

Hierarchical Databases:  These are databases which have sub databases with the same characteristics as the parent database. They are like folders on ones computer. It works as the parent database has children databases within it, if something is modified on the parent the children will be affected too. If the parent is deleted so will the child databases within it. This database type makes it easy to modify databases as a group that should all have the same characteristics maintained.

Distributed Databases: So far all the databases I have mentioned are databases that are created and stored on one computer or server. Distributed databases however are different. Distributed databases are databases in which data is stored on different computers in different settings. One or more computers will contain the index as to where each piece of data is stored, by using the address of the data the DBMS could retrieve and modify the data as needed. One key feature of this type of database is an audit trail. Audit trails are created whenever someone modifies, adds, deletes, or access the data to keep track of who is accessing in or changing it. Therefore a system administrator can know and manage everything that is taking place within the database.

Federated Databases: These operate similarly to distributed databases but have more enhanced security features. Each local database are responsible for managing their own data and security. It is the local database that chooses whether or not to connect to the federation and how they process incoming requests and queries.

 

Source: http://gunston.gmu.edu/healthscience/709/EvolutionDatabases.asp

Android App Progress

 

 

 

My Android app is coming together slowly but surely. I have created a start up screen with the app tittle and the four main buttons. So far the first three buttons are active. The user can save their username then display it, see the instructions on how to play the game and the high scores activity can be viewed. I have done some work in photoshop to create some png files for the launcher logo as well as the start up screen logo. Have a look below at my progress and stay tuned for more!

 

 

 

Screenshot_2014-08-22-23-15-46Screenshot_2014-08-22-23-16-08High score activity

My Android App

I have began work on my Android trivia game app. So far I have set up the start up screen user interface with four basic buttons:

Username button- Where the user will create their username and save it.

How to play button- Instructions on how to play the game.

High scores button- Users can check their past high scores.

Play game button- Take the user to the game to begin playing.

So far only the username button works and it takes you to the page where the user can create their username or select their username. After the user creates their username and saves it, I added the return bar to take them back to the parent activity which is the start up screen. However I also want to create a work flow where the user can go from the username activity, to the instructions activity then to play the game. At least it is a start, take a look below to see what it looks like.

App1app2app3

Android App Proposal

For my Android app development workshop I was required to come up with a simple idea for an app that I would create over the upcoming weeks. I decided to create a simple trivia game in which the user would view an image then get asked a question about that image. The user would be given 3 multiple choice answers and points would be rewarded for each correct answer.

Here is the simple Presentation I made for my colleagues: Slide1 Slide2 Slide3 Slide4 Slide5 Slide6

eXpressive Internet Architecture

The eXpressive Internet Architecture (XIA) is another one of the four projects funded by the the National Science Fund(NSF) in 2010. It tries to cater to the needs of every single aspect of the internet as well as those still to come in the future. XIA sets of to be the continuously evolvable internet architecture which provides and support communication between: content, host, service and any others that will come next.

XIA keeps the current narrow waist model of the internet and still uses IP address to get to hosts. However the main idea behind it is to provide more innovations at upper and lower levels.  So XIA will not be able to support the Named Data Network structure due to the nature of its functionality.

XIX struct

 

 

XIA will deal with each request type individually and the application figure what would be the best way to communicate to the endpoint. A piece of content would be addressed by name, A service would be identified by a service ID, and a host will be obtainable by address or name. I believe that this makes sense as it handles each request in the best manor that the architecture knows how to, for example you wont go looking for apples in the sea or go looking for fish in an apple orchard.

xia

 

To get content XIA finds the service identifier using either a web search, bookmark or secure DNS, then receives a destination ID from the content creator which will then be used to get content from the nearest service provider instead of going to the originator.

xia 2

Overall I think XIA is a great internet architecture as it tries to deal with all variations of internet communication and deals with each one individual in a unique way. However I think that because it tries to do so much it might be quite complicated to implement.

Named Data Network

The first research topic we looked at in the workshop was the Named Data Network.

The Named Data Network is one of four projects funded by the NSF in 2010, but has its roots from a project started by Van Jacobsen in 2006 called Content Centric Networking. It’s main feature is to evolve from being a host centric to a data centric architecture. It will use the current narrow waist model but would require IP packets to name objects rather than communication endpoints. NDN structure

 

NDN uses two packets to function, An interest packet and a Data packet. The user sends the an interest packet with contains the name of the data they want. Then the packet is forwarded by the routers until it gets to a destination where that piece of data is stored. Finally the data will be sent back to the user in a data packet.

NDN packets There are 3 types of data structures which are needed in routers for NDN; Content Stores, Pending Interest Tables, and Forwarding Information Base. Content stores (CS) saves the data within routers and allows the data to be served to the users. Pending Interest Tables (PIT) keeps a log of all forwarded interests that the router.

This architecture is interesting and appears simple in theory. I believe that it has great potential and will definitely play a part and have a hand in the future of the internet. It may save tremendous time in daily computing by going to the content instead of the host. If the original content creator is at a great distance and the content is stored at a closer distance there will be no need to send and receive packets all the way to and from the contents creator. Because at the end of the day everyone or everything using the internet is only interested in some type of content or service, so if they can receive that same content or service quicker and still be able to trust it, there is no need to worry about where it comes from. The data’s original producer public key is used to digitally sign each data packet so that the end user can verify its originality. Also the data producer can also choose who can access this data even though it is being stored else where. Overall I think that this is a great concept, but we just have to figure out what the names of the data are gonna look like.

Android app development week two

I finally got all the resources I needed to begin developing apps downloaded and installed on my computers, so now it is time for me to get my hands dirty and start learning.

In the second workshop we got about creating our own first applications. As most programmers know the very first program in any new language is usually a “Hello World” program, as most instructors uses it to demonstrate the basic features. We learned about different app layout styles and how to use and manipulate them. Our instructor gave us some sample code which we implemented and viewed the results. After creating our first app, I began to analyze the code to see what each line does to see how it works and all comes together. I understood a couple of things and began editing the code and trying new things.

As well as attending the workshops I also watch some tutorial videos online to learn new stuff vid2

Through the videos I learned some extra things like how to edit the text from the basic “Hello world”, changing the text color, the text background color as well as the app’s background color.

vid

 

Stay tuned for more posts as I expand my skills :)

 

Future Internet Architectures

Besides android app development, as a part of my Saturday’s workshop I also learn about the future internet architectures. So far we have went over each one that is currently being researched briefly and week by week we go over them more in-depth. All of the research topics are sponsored by the National science foundation(NFS) as a part of the Future Internet Architecture Program in hopes to engage individuals to find a better internet structure with more broad functionality that supports various types of devices, content, and services. The ultimate goal is to design a secure and highly dependable information technology infrastructure. In 2010 the NFS funded 4 projects:

  • Named Data Networking with principal investigator Lixia Zhang from UCLA.
  • MobilityFirst with principal investigator Dipankar Raychaudhuri from Rutgers.
  • NEBULA with principal investigator Jonathan Smith from University of Pennsylvania.
  • eXpressive Internet Architecture (XIA) with principal investigator Peter Steenkiste from Carnegie Mellon.

Android app development week one

Week 1 was interesting as well as filled with head aches.

This past saturday we began a workshop geared towards the future of the internet and mobile app development under the instruction and supervision of Dr. Shweta Jain with the help of CUNY graduate student Cuiyuan Wang. 

We Began by looking at the internets history throughout the years, and highlighted key problems and road blocks as it continues to evolve. We got introduced to various research topics that are on going.

In the second half of the workshop we got introduced to the basics of java and android programming. We had problems installing the Java environment and android studio on the computers therefore we did not get the chance to do much.

But I shall be working on my first app in the android studio, so stay tuned for updates in a following post!

Android_App_Development

Time to update

Well its been just about a year since I have uploaded any content on here. I think that its time I start blogging again and improve this site, since I pay to host it after all. I have updated the theme to give the site a whole new look and I will be posting new content soon as well :)